3

I am modeling in SPARX EA - and first I just came across two different icons:

  • glasses/chain enter image description here

  • The rake/trident enter image description here

Now my understanding is: A composite activity is one possibility for a structured activity. SPARX EA says, the chain symbol indicates a composite element (icon not being part of UML, but comes in handy).

The trident indicates a sub-activity. It is part of other stack-questions. Got that. here or here

But my question is:

How do they differ?

  1. Is a composite activity (its "sub diagram") only within that process and cannot be called/used by s.o. else? So not a distinct process on its own, just a part of the parent activity?
  2. Is a sub-activity always (technically) callable by others?
  3. And are there differences w.r.t. to forking? Like that a composite activity is "closed", just more details, and a sub-activity can run freely and parallel while the invoking process goes on? If so, why is this a sub-activity but seems "closed". So what does it have more or less compared to a composite activity? "Callability by others"?

Thanks for your clarifications :)

[I am asked what I tried. Well I googled. :)]


UPDATE 2023-05-08: Here I would expect the glasses:

Substeps_in_process

MaK
  • 33
  • 5
  • 1
    Hello MaK. Are you satisfied with one of the answers? If not, please let us know what you are missing. Otherwise, please check the best answer as accepted. This gives the person some credit points. – www.admiraalit.nl Mar 23 '23 at 09:56
  • Sorry for being so late, but nothing is forgotten! - First of all let me thank you for you quick support. And nice to have @Geert in here whom you cannot circumvent w.r.t. EA. Thank you all. - Well Admiraal, I am anyway left a little puzzeld. Why? - Because I see charts in which the rake symbol is used but where I would expect the glasses b/c it are only substeps. But keeping in mind that the glasses are a special EA feature, should one maybe even use both (which might not be possible)? – MaK May 05 '23 at 11:49
  • So the glasses are understood (just indicate: clickable; steps are "hidden", it'a nested thing of finer granularity). But what qualifies for the rake? Does it have to be a actively separate process? Must this be a process that then runs independently of the 1st one? Can the invoking process be ended no matter if the "rake process" has finished? I hope this does not sound too weird. – MaK May 05 '23 at 11:55

2 Answers2

3

In EA a structured activity is an activity which has a (composite) diagram associated. This will open when dbl-clicking the activity in a diagram. Else this is an Activity as defined in the UML specs.

The element with the fork is an instance of an Activity. It is therefore an Action (with CallBehavior). Thus you can have it in a chain of events connected via ControlFlow to other Actions.

enter image description here

When you press Ctrl-L with that Action in focus you will see the Activity which is it's classifier.

qwerty_so
  • 35,448
  • 8
  • 62
  • 86
  • Thanks. - So that would mean that the structured activity is nothing else than a diagram/visual thing. Folding/nesting, whatever you call it. But it is a question of presentation only, and the trident deals with "true" dinstinct activites that are linked/chained etc.? – MaK Mar 20 '23 at 12:35
  • (Generally, I am wondering why there is no SPARX EA tag available. Does that mean it is a niche thing here or simply the wrong stack/ forum?) – MaK Mar 20 '23 at 12:37
  • 1
    @MaK the tag [enterprise-architect] is the one for Sparx EA. – Geert Bellekens Mar 20 '23 at 15:45
  • 1
    Exactly so. EA is a bit _unique_ in quite some respects. The composite diagrams however are quite useful. It's generally so that that looking glass (or chain) icon indicates the presence og a composite diagram that can be opened via dbl-click. – qwerty_so Mar 20 '23 at 15:52
1

The glasses are not UML-compliant. I think it was present in earlier versions of the UML specs, but I'm not sure. To be UML-compliant, use the rake instead.

The disadvantage of the glasses (structured activity) is that they create a strict parent-child relationship between activities and subactivities, i.e. a tree. With the rake (call behavior), you can create any network of activities calling each other. This allows you to reuse an activity in multiple other activities.

By default, the symbol with the rake represents a synchronous call. The UML specification says that asynchronous calls are also possible. It defines a property isSynchronous on metaclass CallAction, which is true by default, but it does not specify how to an asynchronous call shall be visualized in an activity diagram.

www.admiraalit.nl
  • 5,768
  • 1
  • 17
  • 32
  • 1
    The chain/glasses are an EA speciality to indicate a composite diagram (dbl-clickability). They are not compliant, yes. But I've seen worse things in Mickeysoft's UMLishment. – qwerty_so Mar 26 '23 at 10:22
  • Regarding usability: You need a basic activity to have actions inside. The structure AC just creates that with the composite diagram already set. So you can not ignore it. You could just manually create it without the composite diagram. Syntactical sugar, but useful and not a disadvantage. – qwerty_so Mar 26 '23 at 10:25
  • Your remark here @admiraal is what I mean by my recent comments above - I guess. So if I am correct, in the mentioned tree structure yes you can only proceed if you have finished within. But rake ones called can live w/o further interaction with the 1st process. (So how about having a rake within a step hidden under glasses ... :) ) – MaK May 05 '23 at 12:07
  • 1
    No, the "rake ones" represent synchronous calls as well. I have added a paragraph about this issue to my answer. – www.admiraalit.nl May 08 '23 at 07:33
  • Thank you for your patience. Dank je wel. - I guess you all guess I think too complicated. I do understand that there is a difference b/w graphical representation ("unfolding the glasses") and invoking other processes (rake). But looking at processes that use both icons I am not sure whether it is consistent. I add an image to the initial question. - sorry it's in German, **Schritt** meaning **step**. – MaK May 08 '23 at 09:22
  • 1
    The only difference between the glasses and the rake is that the glasses are WRONG and the rake is RIGHT. The only authoritative resource is the UML specification. The glasses are not specified, so don't use them. It is not standard and therefore the meaning is undefined. Use the rake symbol instead. Does this answer your question? – www.admiraalit.nl May 08 '23 at 09:31
  • Thank you for clearing the fog :D - I hope this will also give clarification for future users. – MaK May 15 '23 at 17:17