1 / 31

Executable Object Modelling with State Charts

Executable Object Modelling with State Charts. By: David Harel & Eran Grey Presenter: Elizabeth Antony CISC 836. Models. Desirable properties of Models. Models for the development of Object Oriented System should be: Behaviorally expressive Well structured And intuitive

vivian
Download Presentation

Executable Object Modelling with State Charts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Executable Object Modelling with State Charts By: David Harel & Eran Grey Presenter: Elizabeth Antony CISC 836

  2. Models

  3. Desirable properties of Models • Models for the development of Object Oriented System should be: • Behaviorally expressive • Well structured • And intuitive • Semantics should be rigorously defined

  4. Model properties cont’d • Semantics not well defined => produce fully executability and automatic code synthesis impossible • Statechartsmust capture not only the state of the object as a precondition to service requests, but also the dynamics of the object’s internal behavior in responding to those requests and in maintaining relationships with other objects.

  5. This paper .. Focuses on developing an integrated set of diagrammatic languages for object modelling, built around Statecharts. Language set includes : Object Model Diagrams StateCharts

  6. StateCharts • Statecharts extend statemachines or state diagrams with three elements namely, hierarchy, concurrency and communications • Complex systems such as multicomputer real time systems, communication protocols and digital control units Source: [1]

  7. Automated Rail Car System • Each car • Cruise control • Engine • Max speed till it is within 80 yards from another car • Each Platform • Single car • Car within 100 yards from the terminal • platform and • entrance segments allocated • Car departing terminal • after being parked for 90 secs • Exit segment allocated • Turns off the destination indicator

  8. Object Model Diagram One diagram/system Classes Structural relationships unidirectional bidirectional partof Relationship Name or role its Car can refer to a set of its terminals it stopsAt

  9. Navigation Expressions Passenger->itsCar->stopsAt Set of all terminals that the car Carrying the passenger stopsAt System->itsTerminal[1:6] System refers to an explicit composite object that encloses the entire model Is the object model diagram concerned with the static aspects only?

  10. Behavioral semantics • Initialisation: • What object instances are created at the start and how the attributes and relationships with other objects are set up. • Dynamics over time: • Dynamics concerns the way models behave while running. • Triggers like events, operations change the model status

  11. Initialisation – composite structures Composite structures Associations initialisation scripts

  12. Initialisation - Associations • Setting up relation ships and defining how instances collaborate • Unambiguous • Ambiguous but bounded • unworkable Unambiguous Unworkable

  13. Initialisation – initialising scripts for (int car = 0; car < 6; car++) { System -> itsCar[2*car] = new Car(System -> itsTerminal[car]); System -> itsCar[2*car+1] = new Car(System -> itsTerminal[car]) }

  14. StateCharts • An extension to statemachines and statediagrams • Used to model complex systems • Describe how objects communicate and collaborate and how they carry out their internal behavior • It must also reflect issues such as inheritance.

  15. StateCharts – cont’d • Object Communication and Collaboration: • Objects generate events (asynchronous) • Invoke operation on an other object (synchronous) Obj A Server Queue Obj B ObjC <Server> - > gen((<event name>(<parameters>)) gen(<event name>(<parameters>)) // events that are generated within and limited to the present state chart

  16. Object Communication and Collaboration: Events • Event delegation • If server A is a composite object Who responds to the event e addressed to A ? Composite object endowed with forwarding spec • delegate(e,B) • delegate(e,B,C,…) • broadcast(e) Delegation continues down the tree of composites

  17. Object Communication and Collaboration : Operations • <server> -> <operationname> (<parameters>) • Method call within the called object • <operationname>(<parameters>)

  18. Object Behavior • Statecharts can be • Full State hierarchy Multilevel orthogonal Components History connectors and Broadcast communication used to describe “modal” • `Partial statecharts Only to specify pre and post conditions of operations Discard concurrent states and broadcast mechanism

  19. Object Behavior – Triggers and Actions • Reactions of the form • Trigger[condition]/action-list • Reactions can be adorned on the transition arrow or within a state’s reaction spec • A trigger – either an event expression or an operation request • Action – sequences of event generation expressions, operation invocations, and C++ statements

  20. Object Behavior -Actions • in(s) • test if the current statechart configuration includes the state s • tm(ev,n) • occurs t time units after event ev; the clock is reset to 0 upon each occurrence of event ev

  21. Object Behavior - Actions • Creating and deleting instances • <object> = new <classname> (<parameters>) • delete(object) • Adding and removing components from a composite instance • <new component> = add<component name>() • Remove<component name>(<component type>) • Ex., stopsAt- > add(term) • Car is now scheduled to stop at the term also

  22. Actions cont’d • Actions for maintaining association relationships • Adding an object to the other end of a relationship • <rolename> - > add(<objectname>) • <rolename> - > remove(<object name>)

  23. Statechart cont’d • Entrance to the statechart’s top level state is the initialisation entrance for any newly created instance of the object. • A reaction attached to the top level default arrow serves as an intialisation script for instances of that class.

  24. Top level state chart - Car

  25. Arrival portion

  26. Departure portion

  27. CarHandlerStatechart

  28. Inheritance • Establishing relationship between statecharts of a parent class A and its inherited subclass B: • Base the two statecharts on the same underlying state/transition topology. • Modify states by : • decomposing a basic state by Or (substates) or by And(into orthogonal components) • Modify the conditions and change the action-list by deleting some actions and adding new ones.

  29. About the paper.. • At the time the paper was written (1996), • Event delegation was not implemented. • This paper does not talk about concurrency • Inheritance • Rhapsody tool was not fully developed. • I-Logix released Rhapsody in 1996 • Now it is one of the products of IBM Rational Software Unit.

  30. http://homepage.cs.uiowa.edu/~fleck/181content/statecharts.pdfhttp://homepage.cs.uiowa.edu/~fleck/181content/statecharts.pdf • Harel, D.; Gery, E., "Executable object modeling with statecharts," Computer , vol.30, no.7, pp.31,42, Jul 1997 • Statecharts: a visual formalism for complex systems by David Harel , Department of Applied Mathematics, The Weizmann Institute of Science, Rehovot, Israel,1987

  31. Thank you.

More Related