UML 2.2 RTF Avatar
  1. OMG Issue

UML22 — ReduceAction

  • Key: UML22-565
  • Legacy Issue Number: 7977
  • Status: closed  
  • Source: Object Management Group ( Stephen Mellor)
  • Summary:

    It has come to my attention that the removal of the ReduceAction (fair
    enough) requires the use of a variable (a very bad idea) to construct an
    alternative specification.

    To do something like Reduce(<data expression>, Add) in UML 1.5, you
    would have to say:

    • An activity/structure node with variable Sum.
    • The expansion region takes the collection as input and has no
      output. In this case, the output collection will have only one
      element in it.
    • In the region, edges coming from/going to the inputs/outputs take
      elements from the input collections and put elements in the output
      collections.
    • The region uses CallOperationAction with operation timeofLastCall to
      get the time and CallBehaviorAction on the (primitive)
      FunctionBehavior for addition and updates the variable.
    • After the region is complete, the variable has the sum in it.

    The 1.5 Action Model included variables so that those who "needed" them
    could have them. However, the introduction of variables changes the
    static-single-assignemnt nature of the language and would now require
    data-flow analysis of a developer model to work out what is happening.
    Before all we had to do was scan for Variable Actions and reject the
    developer model so proposed.

    In other words, those of us in the translation business did not need
    variables, and we could ignore those models that used them. Now we're
    stuck.

    Topic: ReduceAction

    UML 1.5 had ReduceAction, which repeatedly applied a function pairwise
    to elements of a collection until only only element is left. It did not
    constrain order or concurrency of application. It was replaced with
    ExpansionRegion UML 2, which requires commitment to order and
    concurrency.

  • Reported: UML 1.4.2 — Tue, 14 Dec 2004 05:00 GMT
  • Disposition: Resolved — UML 2.1
  • Disposition Summary:

    Corrections to issue description:

  • Updated: Fri, 6 Mar 2015 20:58 GMT