executable object modelling with state charts

Post on 22-Feb-2016

40 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

EXECUTABLE OBJECT MODELLING WITH STATE

CHARTSBy: David Harel & Eran GreyPresenter: 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 Semantics should be rigorously defined

Model properties cont’d Semantics not well defined => produce fully

executability and automatic code synthesis impossible

Statecharts must 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.

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

Object Model DiagramsStateCharts

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]

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

Object Model DiagramOne diagram/systemClassesStructural relationships unidirectional bidirectional partof

RelationshipName or role

its

Car can refer to a set of its terminals itstopsAt

Navigation Expressions

Passenger->itsCar->stopsAtSet of all terminals that the carCarrying the passenger stopsAt

System->itsTerminal[1:6]

Is the object model diagram concerned with the static aspects only?

System refers to an explicit composite objectthat encloses the entire model

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

Initialisation – composite structures

Composite structures Associations initialisation scripts

Initialisation - Associations Setting up relation ships and defining

how instances collaborate Unambiguous Ambiguous but bounded unworkable

Unambiguous

Unworkable

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])}

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.

StateCharts – cont’d Object Communication and Collaboration:

Objects generate events (asynchronous) Invoke operation on an other object

(synchronous)

Obj B

Obj A

ObjC

Queue

Server

<Server> - > gen((<event name>(<parameters>))gen(<event name>(<parameters>)) // events that are generated within and

limited to the present state chart

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

Object Communication and Collaboration : Operations

<server> -> <operationname> (<parameters>)

Method call within the called object <operationname>(<parameters>)

Object Behavior Statecharts can be

Full State hierarchyMultilevel orthogonal ComponentsHistory connectors andBroadcast communication

used to describe “modal” `Partial statecharts

Only to specify pre and post conditions of operations Discard concurrent states and broadcast mechanism

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

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

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

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>)

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.

Top level state chart - Car

Arrival portion

Departure portion

CarHandler Statechart

InheritanceEstablishing 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.

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.

http://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

Thank you.

top related