I am teaching a course that uses UML as the tool to model systems. In the course we teach sequence diagrams and while preparing the course I found that there is no clear definition of the semantics of an “execution occurrence”.
For example. If an object makes a self call “wait for input” and this call is inside an execution occurrence, can the object receive messages? Obviously I think yes, because it is waiting for messages.
But this counters the idea that execution occurrences mean that the object is currently “busy” or “active”.
Any help/ideas? My conclusion was to leave the subject and tell the students to disregard execution occurrences. Any better ideas?
Overall, note that Sequence Diagrams don’t have precise semantics (and AFAIK, they’re not included in the new base UML semantics) so therefore they’re more or less “open to interpretation”, to suit your specific sketching needs.
In general, what does a Sequence Diagram mean? Is it a universal specification (“this is how the system will always behave” therefore there are no other allowable behaviors)? Or is it an existential specification (“this is a scenario which the system should support” therefore a system that doesn’t is incorrect)? Or is it merely a description (“this might happen”). There is no answer, because SDs don’t have precise semantics like that.
(Granted, some formalizations do exist, but then it depends what you want to teach.)
Therefore, I don’t think that this quesiton has a unique answer:
That said:
According to this tutorial, execution occurence (EO) denotes:
Look also at the next diargam, about self-messaging, where you have nested execution occurences.
Moreover, here it is simply said that EOs are:
Finally, EOs reference execution specifications which represent:
I hope it helps 🙂