In This Lecture You Will Learn: Specifying Control. Statechart. Event, State and Transition

Similar documents
Meltem Özturan

Ingegneria del Software Corso di Laurea in Informatica per il Management

System Analysis and Design. Statecharts

State Machine Diagrams

UNIT-4 Behavioral Diagrams

In this Lecture you will Learn: System Design. System Architecture. System Architecture

Object-Oriented Modeling. State Machine Diagram. Slides accompanying Version 1.0

Motivation State Machines

Thirty one Problems in the Semantics of UML 1.3 Dynamics

CA314 Object Oriented Analysis & Design - 7. File name: CA314_Section_07_Ver01 Author: L Tuohey No. of pages: 16

Interactions A link message

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c

What is a Class Diagram? A diagram that shows a set of classes, interfaces, and collaborations and their relationships

What is a Class Diagram? Class Diagram. Why do we need Class Diagram? Class - Notation. Class - Semantic 04/11/51

OMG Modeling Glossary B

Dynamic Modeling - Finite State Machines

In this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks

UML- a Brief Look UML and the Process

Introduction to Software Engineering. 6. Modeling Behaviour

Developing Shlaer-Mellor Models Using UML

Object Interaction Sequence Diagrams

Software Engineering. Page 1. Objectives. Object-Behavioural Modelling. Analysis = Process + Models. Case Study: Event Identification

UML 2.0 State Machines

Lesson 11. W.C.Udwela Department of Mathematics & Computer Science

Unified Modeling Language 2

UNIT-IV BASIC BEHAVIORAL MODELING-I

Pieter van den Hombergh. Fontys Hogeschool voor Techniek en Logistiek. September 9, 2016

STATE MACHINES. Figure 1: State Machines

Enterprise Architect. User Guide Series. UML Models. Author: Sparx Systems. Date: 30/06/2017. Version: 1.0 CREATED WITH

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)

Combined Modeling and Programming with State Machines

Chapter 2 Entity-Relationship Data Modeling: Tools and Techniques. Fundamentals, Design, and Implementation, 9/e

visualstate Reference Guide

UML Diagrams MagicDraw UML Diagrams

Activity Nets: A UML profile for modeling workflow and business processes

Modeling with Activity Diagram

System models Abstract descriptions of systems whose requirements are being analysed. System modelling. Structured methods

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

User Interface Design with Components

APPENDIX M INTRODUCTION TO THE UML

Steps in Using COMET/UML

Finite State Machine Modeling for Software Product Lines. Finite State Machines and Statecharts

12 Tutorial on UML. TIMe TIMe Electronic Textbook

Activities Radovan Cervenka

Exercise Unit 2: Modeling Paradigms - RT-UML. UML: The Unified Modeling Language. Statecharts. RT-UML in AnyLogic

Chapter 2 Entity-Relationship Data Modeling: Tools and Techniques. Fundamentals, Design, and Implementation, 9/e

HCM Modeling Elements. Creating a better understanding of the process model standards used within the MHR-BPS Process Modeling initiative.

Advanced State Modeling

PROCESSES AND THREADS

SOFTWARE ENGINEERING UML FUNDAMENTALS. Saulius Ragaišis.

UML REFERENCE SHEETS. 2013, 2014 Michael Marking; all rights reserved, including moral rights. Web site:

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

Statecharts 1.- INTRODUCTION 1.- INTRODUCTION

Business Process Modeling. Version /10/2017

the gamedesigninitiative at cornell university Lecture 13 Architecture Design

the gamedesigninitiative at cornell university Lecture 12 Architecture Design

Enterprise Architect - UML Dictionary

Prototyping Navigation in Web-Based Information Systems Using WebML

Business Process Modeling. Version 25/10/2012

Lecture 16: Hierarchical State Machines II

Contents Contents 1 Introduction Entity Types... 37

SCXML State Chart XML

Appendix D: Mapping BPMN to BPD Profile

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Object-Oriented Design

EXTENDED DISTRIBUTED UML-BASED PROTOCOL SYNTHESIS METHOD

Finite State Machines and Statecharts

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD

LABORATORY 1 REVISION

Software Model Checking: Theory and Practice

CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL

Chapter 1: Principles of Programming and Software Engineering

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)

EVENTS AND SIGNALS. Figure 1: Events. kinds of events Signal Event

Software Engineering with Objects and Components Open Issues and Course Summary

Advanced Software Engineering

06. Analysis Modeling

Chapter : Analysis Modeling

Software Service Engineering

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

State-Based Testing Part B Error Identification. Generating test cases for complex behaviour

Introduction Events States Transition State Diagrams State Diagram Behavior Advanced State Modeling In-Class Exercises.

Object Oriented Design. Program Design. Analysis Phase. Part 2. Analysis Design Implementation. Functional Specification

Modeling Hybrid Systems with Petri Nets

Software Modeling & Analysis

ANALYZING PROCESS MODELS USING GRAPH REDUCTION TECHNIQUES

Events in AnyLogic. Nathaniel Osgood MIT

Course "Softwaretechnik" Book Chapter 5 Analysis: Dynamic Modeling

Chapter 5, Analysis: Dynamic Modeling

Chapter 4. Capturing the Requirements. 4th Edition. Shari L. Pfleeger Joanne M. Atlee

Chapter 2, lecture 2 Modeling with UML

SCXML State Chart XML. Previously, in this course...

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,

IS 0020 Program Design and Software Tools

Architectural Blueprint

CS 370 REVIEW: UML Diagrams D R. M I C H A E L J. R E A L E F A L L

Specifying Precise Use Cases with Use Case Charts

Hippo Software BPMN and UML Training

Transcription:

In This Lecture You Will Learn: Specifying Control Lecture 11 How to identify requirements for control in an application How to model object life cycles using statecharts How to develop statechart diagrams from interaction diagrams How to model concurrent behaviour in an object How to ensure consistency with other UML models M8748 Peter Lo 2007 1 M8748 Peter Lo 2007 2 Statechart A statechart describes the possible dynamic behavior and associated state changes of a class. Statecharts can also be used to model the dynamic behavior of other classifiers E.g. sub-systems and use cases. Event, State and Transition Event Occurrence that is relevant to an object or application. State The state of an object is determined by the value of some of its attributes and the presence or absences of links with other objects. Transition The movement from one state to another, triggered by an event. M8748 Peter Lo 2007 3 M8748 Peter Lo 2007 4

State State A State is a condition during the life of an object or an interaction during which it satisfies some condition, performs some action or waits for some event. Conceptually, an object remains in a state for an interval of time. However, the semantics allow for modelling "flow-through" states which are instantaneous as well as transitions that are not instantaneous. The current state of an object is a result of the events that have occurred to the object, and is determined by the current value of the object s attributes and the links that it has with other objects. Some attributes and links of an object are significant for the determination of its state while others are not. For example the class StaffMember has an attribute startdate which determines whether a StaffMember object is in the probationary state M8748 Peter Lo 2007 5 M8748 Peter Lo 2007 6 Basic Notation for Statechart Statechart Explanation GradeRate() Initial state Transition between states Final state Pending Active Lapsed when [ratestartdate <= currentdate] when [ratefinishdate <= currentdate] after [1 year] Change event Elapsed-time event Movement from one state to another is dependent upon events that occur with the passage of time. The current state of a GradeRate object can be determined by the two attributes ratestartdate and ratefinishdate An enumerated state variable may be used to hold the object state, possible values would be Pending, Active or Lapsed M8748 Peter Lo 2007 7 M8748 Peter Lo 2007 8

Guard Condition A Guard Condition is evaluated when a particular event occurs and only if the condition is true does the associated transition fire. All the guard conditions from a state should be mutually exclusive so that for each set of circumstances there is only one valid transition from a state. If they are not mutually exclusive more than one transition may be valid and the behavior of the statechart is indeterminate. Events An Event is an occurrence of a stimulus that can trigger a state change and that is relevant to the object or to an application M8748 Peter Lo 2007 9 M8748 Peter Lo 2007 10 Types of Event Actions and Activities Events can be grouped into several general types. A Change Event occurs when a condition becomes true A Call Event occurs when an object receives a call to one of its operations either from another object or from itself A Signal Event occurs when an object receives a signal (an asynchronous communication) An Elapsed-time Event is caused by the passage of a designated period of time after a specified event (frequently the entry to the current state) An action is considered to be instantaneous (its duration is actually determined by the processing environment) while an activity persists for the duration of a state, for example (its duration is dependent upon the occurrence of events that may cause a state change). M8748 Peter Lo 2007 11 M8748 Peter Lo 2007 12

Example Explanation of the Diagram Entry action causes the menu to be displayed Menu Visible state for a DropDownMenu object Menu Visible itemselected() / highlightitem() entry / displaymenu exit / hidemenu do / playsoundclip Event itemselected() triggers the action highlightitem() Exiting the state triggers hidemenu() While the object remains in the Menu Visible state, the activity causes a sound clip to be played M8748 Peter Lo 2007 13 The entry action causes the menu to be displayed. While the object remains in the Menu Visible state, the activity causes a sound clip to be played and, if the event itemselected() occurs, the action highlightitem() is invoked. It is important to note that when the event itemselected() occurs the Menu Visible state is not exited and entered and as a result the exit and entry actions are not invoked. When the state is actually exited the menu is hidden. M8748 Peter Lo 2007 14 Example: Statechart for the class Campaign Action-expression assigning manager and staff on object creation Guard condition ensuring complete payment before entering Paid /assignmanager(); assignstaff() authorized(authorizationcode) [contract signed] /setcampaignactive() campaigncompleted() /preparefinalstatement() paymentreceived(payment) [paymentdue payment <= zero] Commissioned Active Completed Recursive transition models any payment event that does not reduce the amount due to zero or beyond paymentreceived(payment) [paymentdue - payment > zero] Paid archivecampaign() M8748 Peter Lo 2007 /unassignstaff(); unassignmanager() 15 Explanation of the Diagram The recursive transition from the Completed state models any payment event that does not reduce the amount due to zero or beyond. Only one of the two transitions from the Completed state (one of which is recursive) can be triggered by the paymentreceived event since the guard conditions are mutually exclusive. It would be bad practice to construct a statechart where one event can trigger two different transitions from the same state. A life cycle is only unambiguous when all the transitions from each state are mutually exclusive. M8748 Peter Lo 2007 16

Example: Revised Statechart for the class Campaign If the user requirements were to change, so that an overpayment is now to result in the automatic generation of a refund, a new transition is added /assignmanager(); assignstaff() paymentreceived(payment) [paymentdue - payment < zero] /generaterefund() Commissioned Active Completed paymentreceived(payment) [paymentdue - payment = zero] authorized(authorizationcode) [contract signed] /setcampaignactive() campaigncompleted() /preparefinalstatement() paymentreceived(payment) [paymentdue payment > zero] Paid archivecampaign() M8748 Peter Lo 2007 /unassignstaff(); 17 unassignmanager() Explanation of the Diagram If the user requirements were to change, so that an overpayment is now to result in the automatic generation of a refund, the statechart can be changed as follows. Since the action that results from an overpayment is different from the action that results from a payment that reduces paymentdue to zero, a new transition is needed from the Completed state to the Paid state. The guard conditions from the Completed state must also be modified. M8748 Peter Lo 2007 18 Nested Substates Explanation of the Diagram extendcampaign() /modify Budget() When the state behavior for an object or an interaction is complex it may be necessary to represent it at different detail levels of detail and to reflect any hierarchy of states that is present in the application Running Adverts Active Advert Preparation confirmschedule() The transition from the initial pseudo state symbol should not be labelled with an event but may be labelled with an action, though it is not required in this example advertsapproved() /authorize() Scheduling campaigncompleted() /preparefinalstatement() M8748 Peter Lo 2007 19 In the nested statechart within the Active state, there is an initial state symbol with a transition to the first substate that a Campaign object enters when it becomes active. The transition from the initial pseudostate symbol to the first substate (Advert Preparation) should not be labelled with an event but it may be labelled with an action, though it is not required in this example. It is implicitly fired by any transition to the Active state. A final pseudostate symbol may also be shown on a nested state diagram. A transition to the final pseudostate symbol represents the completion of the activity in the enclosing state (i.e. Active) and a transition out of this state triggered by the completion event. This transition may be unlabelled (as long as this does not cause any ambiguity) since the event that triggers it is implied by the completion event. M8748 Peter Lo 2007 20

Nested States Concurrent States A high level statechart for the class can be drawn to include within the main diagram the detail that is shown in the nested statechart if so desired. If the detail of the submachine is not required on the higher level statechart or is just too much to show on one diagram the higher level statechart can be annotated with the hidden composition indicator icon. The submachine Running is referenced using the include statement Active include / Running Hidden decomposition indicator icon An object can be in concurrent states if it has a complex composite state with concurrent substates. A transition to a complex state is equivalent to a simultaneous transition to the initial states of each concurrent statechart An initial state must be specified in both nested statecharts in order to avoid ambiguity about which substate should first be entered in each concurrent region A transition to the Active state means that the Campaign object simultaneously enters the Advert Preparation and Survey states M8748 Peter Lo 2007 21 M8748 Peter Lo 2007 22 Concurrent States The Active State with Concurrent Substates Once the composite states is entered a transition may occur within either concurrent region without having any effect on the state in the other concurrent region A transition out of the Active state applies to all its substates (no matter how deeply nested) M8748 Peter Lo 2007 23 M8748 Peter Lo 2007 24

Explanation of the Diagram Synchronized Concurrent Threads Suppose that further investigation reveals that at Agate a campaign is surveyed and evaluated while it is also active. A campaign may occupy either the Survey substate or the Evaluation substate when it is in the Active state. Transitions between these two states are not affected by the campaign s current state in relation to the preparing and running of adverts. We model this by splitting the Active state into two concurrent nested statecharts, Running and Monitoring, each in a separate sub-region of the Active statechart. This is shown by dividing the state icon with a dashed line. Explicitly showing how an event triggering a transition to a state with nested concurrent states causes specific concurrent substates to be entered Shows that the composite state is not exited until both concurrent nested statecharts are exited M8748 Peter Lo 2007 25 M8748 Peter Lo 2007 26 Class Exercise Preparing Statecharts How do nested states differ from concurrent states? Two approaches may be used: Behavioural Approach Life Cycle Approach M8748 Peter Lo 2007 27 M8748 Peter Lo 2007 28

Behavioural Approach 1. Examine all interaction diagrams that involve each class that has heavy messaging. 2. Identify the incoming messages on each interaction diagram that may correspond to events. Also identify the possible resulting states. 3. Document these events and states on a statechart. 4. Elaborate the statechart as necessary to cater for additional interactions as these become evident, and add any exceptions. 5. Develop any nested statecharts (unless this has already been done in an earlier step). 6. Review the statechart to ensure consistency with use cases. In particular, check that any constraints that are implied by the statechart are appropriate. 7. Iterate steps 4, 5 and 6 until the statechart captures the necessary level of detail. 8. Check the consistency of the statechart with the class diagram, with interaction diagrams and with any other statecharts and models. M8748 Peter Lo 2007 29 Sequence Diagram with Implicit States Sequence diagram for use case Set Campaign Completed Note that getcampaigndetails() does not change the state as this message only queries aspects of the objects state. However, campaigncompleted() does cause a state change and changes the values of some attributes of the object. M8748 Peter Lo 2007 30 Initial Statechart for the Campaign Revised statechart for the Campaign M8748 Peter Lo 2007 31 M8748 Peter Lo 2007 32

Final version of Campaign statechart Life Cycle Approach Consider the life cycles for objects of each class Events and states are identified directly from use cases and from any other requirements documentation that happens to be available First, the main system events are listed Each event is then examined in order to determine which objects are likely to have a state dependent response to it Less formal than the behavioural approach in its initial identification of events and relevant classes Often helpful to use a combination of the two, since each provides checks on the other M8748 Peter Lo 2007 33 M8748 Peter Lo 2007 34 Life Cycle Approach Steps 1. Identify major system events. 2. Identify each class that is likely to have a state dependent response to these events. 3. For each of these classes produce a first-cut statechart by considering the typical life cycle of an instance of the class. 4. Examine the statechart and elaborate to encompass more detailed event behaviour. 5. Enhance the statechart to include alternative scenarios. 6. Review the statechart to ensure that is consistent with the use cases. In particular, check that the constraints that the statechart implies are appropriate. 7. Iterate through steps 4, 5 and 6 until the statechart captures the necessary level of detail. 8. Ensure consistency with class diagram and interaction diagrams and other statecharts. M8748 Peter Lo 2007 35 Consistency Checking A statechart should be cross-checked with relevant class diagrams to ensure that the class specifications are consistent, with interaction sequence diagrams and collaboration diagrams that involve this class (and hence its statechart), with any nested statecharts and also with any linked activity diagrams (e.g. parent activity diagram). Consistency checking is an important task in the preparation of a complete set of models Highlights omissions and errors, and encourages the clarification of any ambiguity or incompleteness in the requirements The consistency checks should include class names, location of operations and signature of operations. M8748 Peter Lo 2007 36

Consistency Checking Guideline Every event should appear as an incoming message for the appropriate object on an interaction diagram Every action should correspond to the execution of an operation on the appropriate class, and perhaps also to the despatch of a message to another object Every event should correspond to an operation on the appropriate class (but note that not all operations correspond to events) Every outgoing message sent from a statechart must correspond to an operation on another class Class Exercise What are the indications that a statechart has not been drawn to model state changes? M8748 Peter Lo 2007 37 M8748 Peter Lo 2007 38