I revisited Hoffmanns' paper to look at the main battle tank example and had a question regarding the Separation of Events from operational contracts. Why would one want create an Event called reqCalcCmdrLosCmd() and then an operational contract called CalcCmdrLosCmd()? Why not just Keep one of them? Afterall, the fact that you are invoking via reqCalcCmdrLosCmd() automatically adds that Event to the object MBT in Rhapsody. So why go through the effort of creating a private operation?
top of page
bottom of page
Yes that's right:
UML = Rhapsody
Signal Event = Event
Call Event = Triggered operation
Time Event = timeout (although indicated with tm() rather than after())
Change event = change event (implemented via flow ports or proxy ports, generating a chXXX event when relevant data changes value)