Book a Demo

Author Topic: Action as Activity instance?  (Read 18503 times)

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Action as Activity instance?
« Reply #15 on: September 23, 2009, 06:16:13 pm »
Quote
Paolo,

I've just looked in the UML specs and there is actually no such thing as an Object. (at least not that I can find)
What looks most like the Object in EA is the InstanceSpecification. This represents the instance of a classifier.
Activities are classifiers.
If indeed EA's Object represents the UML concept InstanceSpecification then an Object with a classifier of type Activity is in fact an Activity instance completely by the book.

What do you think?

Geert
Thanks for reminding me Geert!  

I now recall having gone looking for Objects (like you) in the UML specs and not finding them!  I think I posted a comment about that somewhere in the Forum.

So, it sounds like we're converging on the notion of Object taking its instance type from its classifier.  That would allow Sparx to implement a consistent UI for instances.  All instances could have the t_object type = Object (though I might prefer Instance (or better:InstanceSpecification)).  

Unclassified objects (without attached classifiers) would have the caption Object Instance when showing their properties.  All other (classified) objects would display the caption <ClassifierType> Instance.  In order to determine the type of the instance, you'd have to look up its Classifier - EA could then render the appropriate shape etc...

This would provide some serious (thought possibly not complete) support for Instances within EA (and ease David's lament).  Certainly, it would be a good step toward a final resolution.

What do others think?  Any holes in this design?
Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Action as Activity instance?
« Reply #16 on: September 23, 2009, 06:29:22 pm »
Sounds like a good solution.

PS. How much does Sparx pay us to design EA for them?  :P

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Action as Activity instance?
« Reply #17 on: September 23, 2009, 07:06:45 pm »
Quote
Sounds like a good solution.

PS. How much does Sparx pay us to design EA for them?  :P
Not to mention the Testing!   ::)

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Van Lepthien

  • EA User
  • **
  • Posts: 21
  • Karma: +0/-0
    • View Profile
Re: Action as Activity instance?
« Reply #18 on: November 06, 2009, 10:29:47 am »
One thing to note is that in the UML Superstructure, there is no mention of activities within activities. Activities contain ActivityNodes, ActivityEdges, ActivityGroups ("a ... grouping construct for nodes and edges"), ActivityPartitions (a kind of ActivityGroup), StructuredActivityNodes, and Variables.



Activities do not contain other activities. That EA allows one to embed activities is not good UML.

The CallBehaviorAction is how one invokes another activity.

An analogy is to think of activities as being equivalent to callable programs, and a CallBehaviorAction is a call to the Activity (hence the name). If we ignore some better-forgotten programming constructs of the past, it doesn't make much sense for flow to go between a callable program and another callable program without a call.

Interestingly, if you do embed Activities within activities in EA, you get effects analogous to those one might expect with executing callable code inline in some ancient programming language - the constructs that make it OK to use inline make reuse difficult (or, conversely, the constructs that enable the code to be called make its inline use difficult). If you have two activities linked by an edge in one activity diagram, those links persist when you copy the activites to another activity diagram.

It might help to notice that unlike (most) other diagrams, an activity shares the same boundaries as its diagram. One of the problems with the EA implementation is that its easy to create a diagram without the activity.

Martin Terreni

  • EA User
  • **
  • Posts: 672
  • Karma: +0/-0
  • Sorry, I can't write
    • View Profile
Re: Action as Activity instance?
« Reply #19 on: November 10, 2009, 09:03:50 pm »
Ok,
We do a lot of work with the options in this thread, and though I'm too lazy to read it all (I read only the first 6-7 posts), I would like to present my opinion in here. I hope you don't find it rude, but it will take too much time to read it all.

We use the "CallBehavior" Action a lot as "instance" (actually invocation) of processes. Spetially we use if for services, for which we state the inner logic in a composed activity representing the service flow and then call it from different places using invocations (from composed services diagrams or cross component system flows for example).

This mode of working is very confortable and easily understood by our users. Also is it understood the D&D menu when you drop an activity and it offers either "Link" or "Invocation" .

I'm sorry if I don't care that much weiter OMG supports it or not, it is a good feature in EA, it represents the software model properly and I would like to keep it.
Recursion definition:
If you don’t understand the definition read "Recursion definition".

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Action as Activity instance?
« Reply #20 on: November 10, 2009, 09:40:46 pm »
Martin,

I think nobody is saying that there Sparx should remove the easy way in which you can create an invocation (CallBehaviour Action) of an Activity. What we are saying is that they need to call it that (and not "instance") and provide an additional option to create a real Activity instance.

Geert

Martin Terreni

  • EA User
  • **
  • Posts: 672
  • Karma: +0/-0
  • Sorry, I can't write
    • View Profile
Re: Action as Activity instance?
« Reply #21 on: November 11, 2009, 02:10:40 am »
What an activity instance would be if not an invocation?
Recursion definition:
If you don’t understand the definition read "Recursion definition".

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Action as Activity instance?
« Reply #22 on: November 11, 2009, 05:40:05 am »
Oh no, here we go again, from the top ::)

Just joking Martin, but I think you should really read the whole tread. We've discussed the difference between an Activity instance and an Action as Activity invocation at length.


Geert

Martin Terreni

  • EA User
  • **
  • Posts: 672
  • Karma: +0/-0
  • Sorry, I can't write
    • View Profile
Re: Action as Activity instance?
« Reply #23 on: November 11, 2009, 07:27:00 am »
I guess so :)
I was hoping to  tempt you to do a brief ;) but you wer not tempted... :P
Recursion definition:
If you don’t understand the definition read "Recursion definition".