Hi All,
I am a UML newbie trying to educate myself on the semantics of Foundational UML.
I have looked at the specification, however, the specification is focused on documenting the semantics in a very detailed, unambiquous way, rather than in a way that is most easily understood by a novice :-).
Can anybody supply me with links to some introductory material on Foundation UML semantics?
Specifically I am especially interested in information regarding the concurrency of actions.
For instance, I have a question about class operations… it seems to me that an operation specified in an action language is really a specification of an activity – and the activity is executed when the operation is invoked. Is my mental model of operations correct?
For those interested, I found a really good introduction to UML semantics here…
On the Semantic Foundations of Standard UML 2.0
Ted —
Yeah, we really do need more introductory material on Foundational UML (fUML).
Note that the paper you referenced (in a replay below) from Bran Selic (On the Semantic Foundations of Standard UML 2.0) predates the fUML specification, so its discussion may not always be entirely consistent with how fUML ended up being. However, fUML was based directly on the UML 2 standard semantics Bran describes, and Bran was on (and active in) the fUML submission team, so his paper still provides good background.
Have you looked at my presentation at http://www.slideshare.net/seidewitz/executable-uml-and-sysml-workshop? That’s probably the closest I have TO introductory material. It does have a SysML flavor TO it, but Part II IS specifically about fUML. I will also be doing a 2 HOUR tutorial ON fUML AND Alf AT the OMG meeting IN March, AND I will make the materials FOR that publicly available afterward.
As TO your question ON the semantics OF operations, I think your mental model IS essentially correct. IN UML, an operation (which IS a specification) can have a behavior AS its method (which IS the implementation OF the operation). An ACTION LANGUAGE used TO WRITE the body OF such a method does NOT necessarily have TO map TO a UML activity, but it will necessarily define the behavior OF the method. The semantics OF statements IN the standard Alf ACTION LANGUAGE, however, ARE, IN fact, defined by mapping TO a UML activity model, so an operation method written IN Alf can indeed be considered AS the specification OF an equivalent activity.
In ANY CASE, WHEN the operation IS called, its CORRESPONDING method will be executed. If that method IS an activity, THEN the activity will be executed. If that activity IS within the fUML subset, THEN the semantics OF that execution ARE given by the fUML standard.
But I am NOT sure how this relates TO your interest IN “the concurrency of actions”.
In FULL UML, an operation can be called either synchronously OR asynchronously, but fUML ONLY defines the semantics OF synchronous operation calls. However, two OR MORE call operation actions within one calling activity may call different operations concurrently. Indeed, ALL actions within an activity ARE inherently concurrent IN less specific control OR DATA dependencies ARE modeled BETWEEN them.
If you have a further question, feel free TO post it here AND I will try TO answer it FOR you.
— Ed