SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Software Engineering Principles
Ajit K Nayak, Ph.D.
ajitnayak@soauniversity.ac.in
Behavioural Modelling - II
Acknowledgements
• Slides of Prof. Rajib Mall, IIT, KGP
State Diagram
• A state diagram describes the behaviour of a system,
some part of a system, or an individual object.
– At any given point in time, the system or object is in
a certain state.
• Being in a state means that it is will behave in a specific way in
response to any events that occur.
• Some events will cause the system to change state.
– In the new state, the system will behave in a
different way to events.
• A state diagram is a directed graph where the nodes
are states and the arcs are transitions.
Event, Condition
• Event: something that happens at a point in time
– Operator presses self-test button
– The alarm goes off
• Condition: something that has a duration
– The fuel level is high
– The alarm is on
• State : an abstraction of the attributes and links of an
object (or entire system)
– The controller is in the state self-test after the self-test
button has been pressed and the rest button is not yet
pressed.
– The tank is in the state too low when the fuel level has
been below Ievel-low for alarm-threshold seconds
State diagrams – an example
• tic-tac-toe game
(also called noughts and crosses)
State & Transition
• At any given point in time, the system is in one state.
• It will remain in this state until an event occurs that causes
it to change state.
• A state is represented by a rounded rectangle containing
the name of the state.
• Special states:
– A black circle represents the start state
– A circle with a ring around it represents an end state
• A transition represents a change of state in response to an
event.
– It is considered to occur instantaneously.
• The label on each transition is the event that causes the
change of state.
State diagram of a phone
State transition with condition
Activities in state diagrams
• An activity is something that takes place while the
system is in a state.
– It takes a period of time.
– The system may take a transition out of the state in
response to completion of the activity,
– Some other outgoing transition may result in:
• The interruption of the activity, and
• An early exit from the state.
Actions in state diagrams
• An action is something that takes place effectively
instantaneously
– When a particular transition is taken,
– Upon entry into a particular state, or
– Upon exit from a particular state
• An action should consume no noticeable amount of time
Nested substates and guard conditions
• A state diagram can be nested inside a state.
– The states of the inner diagram are called substates.
Activity Diagrams
• An activity diagram is like a
state diagram.
– Except most transitions are
caused by internal events,
such as the completion of a
computation.
• An activity diagram
– Can be used to understand
the flow of work that an
object or component
performs.
– Can also be used to visualize
the interrelation and
interaction between
different use cases.
– Is most often associated with
several classes.
• One of the strengths of
activity diagrams is the
representation of concurrent
activities.
Representing concurrency
• Concurrency is shown using forks, joins and
rendezvous.
– A fork has one incoming transition and multiple
outgoing transitions.
• The execution splits into two concurrent threads.
• A rendezvous has multiple incoming and multiple outgoing
transitions.
• Once all the incoming transitions occur all the outgoing
transitions may occur.
– A join has multiple incoming transitions and one
outgoing transition.
• The outgoing transition will be taken when all incoming
transitions have occurred.
• The incoming transitions must be triggered in separate threads.
• If one incoming transition occurs, a wait condition occurs at the
join until the other transitions occur.
Swimlanes
• Activity diagrams are
most often
associated with
several classes.
• The partition of
activities among the
existing classes can
be explicitly shown
using swimlanes.
Implementing Classes Based on
Interaction and State Diagrams
• You should use these diagrams for the parts of your
system that you find most complex.
– i.e. not for every class
• Interaction, activity and state diagrams help you
create a correct implementation.
• This is particularly true when behaviour is distributed
across several use cases.
– E.g. a state diagram is useful when different
conditions cause instances to respond differently to
the same event.
Example
Example
Example: States of the CourseSection class
• Planned
– closedOrCancelled == false && open == false
• Cancelled
– closedOrCancelled == true && registrationList.size() == 0
• Closed (course section is too full, or being taught)
– closedOrCancelled == true && registrationList.size() > 0
• Open (accepting registrations)
– open == true
• NotEnoughStudents (substate of ‘Open’)
– open == true && registrationList.size() <
course.getMinimum()
• EnoughStudents (substate of ‘Open’)
– open == true && registrationList.size() >=
course.getMinimum()
Example code - I
public class CourseSection {
// The many-1 association
private Course course;
// The 1-many association to class Registration
private List registrationList;
// The following are present only to determine the state, the
initial state is Planned
private boolean open = false;
private boolean closedOrCanceled = false;
. . .
}
Example code - II
public CourseSection(Course course){
this.course = course;
registrationList = new LinkedList();
}
public void openRegistration(){
if(!closedOrCanceled) {//must be in Planned
state
open = true; // to OpenNotEnoughStudents
state
}
}
Example code - III
public void closeRegistration(){
// to 'Canceled' or 'Closed' state
open = false;
closedOrCanceled = true;
if (registrationList.size() <
course.getMinimum()){
unregisterStudents(); // to 'Canceled' state
}
}
public void cancel() {
// to 'Canceled' state
open = false;
closedOrCanceled = true;
unregisterStudents();
}
Example code - IV
// Private method to remove all registrations
// Activity associated with 'Canceled' state.
private void unregisterStudents() {
Iterator it = registrationList.iterator();
while (it.hasNext()){
Registration r = (Registration)it.next();
r.unregisterStudent();
it.remove();
}
}
// Called within this package only, by the constructor
of Registration to ensure the link is bi-directional
void addToRegistrationList(Registration
newRegistration) {
registrationList.add(newRegistration);
}
}
Difficulties and Risks in Modelling
Interactions and Behaviour
• Dynamic modelling is a difficult skill as in a large
system there are a very large number of possible
paths a system can take.
• It is hard to choose the classes to which to allocate
each behaviour:
– Ensure that skilled developers lead the process, and
ensure that all aspects of your models are properly
reviewed.
– Work iteratively:
• Develop initial class diagrams, use cases, responsibilities,
interaction diagrams and state diagrams;
• Then go back and verify that all of these are consistent,
modifying them as necessary.
• Drawing different diagrams that capture related, but distinct,
information will often highlight problems.
Thank You

Contenu connexe

Tendances

Software estimation
Software estimationSoftware estimation
Software estimation
Md Shakir
 
5.state diagrams
5.state diagrams5.state diagrams
5.state diagrams
APU
 
Ch 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycleCh 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycle
Kittitouch Suteeca
 
7. sequence and collaboration diagrams
7. sequence and collaboration diagrams7. sequence and collaboration diagrams
7. sequence and collaboration diagrams
APU
 

Tendances (20)

Software estimation
Software estimationSoftware estimation
Software estimation
 
5.state diagrams
5.state diagrams5.state diagrams
5.state diagrams
 
Analysis modeling
Analysis modelingAnalysis modeling
Analysis modeling
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)
 
Iterative model
Iterative modelIterative model
Iterative model
 
Analysis modeling
Analysis modelingAnalysis modeling
Analysis modeling
 
Waterfall model in SDLC
Waterfall model in SDLCWaterfall model in SDLC
Waterfall model in SDLC
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
Grasp patterns and its types
Grasp patterns and its typesGrasp patterns and its types
Grasp patterns and its types
 
Ch 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycleCh 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycle
 
7. sequence and collaboration diagrams
7. sequence and collaboration diagrams7. sequence and collaboration diagrams
7. sequence and collaboration diagrams
 
Program security
Program securityProgram security
Program security
 
Behavioural modelling
Behavioural modellingBehavioural modelling
Behavioural modelling
 
Functional modeling
Functional modelingFunctional modeling
Functional modeling
 
behavioral model (DFD & state diagram)
behavioral model (DFD & state diagram)behavioral model (DFD & state diagram)
behavioral model (DFD & state diagram)
 
18306_lec-2 (1).ppt
18306_lec-2 (1).ppt18306_lec-2 (1).ppt
18306_lec-2 (1).ppt
 
Egg Catcher Android Game..
Egg Catcher Android Game..Egg Catcher Android Game..
Egg Catcher Android Game..
 
The principles of simulation system design.pptx
The principles of simulation system design.pptxThe principles of simulation system design.pptx
The principles of simulation system design.pptx
 
Managing software development
Managing software developmentManaging software development
Managing software development
 
Class diagrams
Class diagramsClass diagrams
Class diagrams
 

En vedette

En vedette (11)

Software Engineering :UML class diagrams
Software Engineering :UML class diagramsSoftware Engineering :UML class diagrams
Software Engineering :UML class diagrams
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
 
Software Engineering :Behavioral Modelling - I Sequence diagram
Software Engineering :Behavioral Modelling - I Sequence diagram Software Engineering :Behavioral Modelling - I Sequence diagram
Software Engineering :Behavioral Modelling - I Sequence diagram
 
Uml - An Overview
Uml - An OverviewUml - An Overview
Uml - An Overview
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
 
Lecture04- Use Case Diagrams
Lecture04- Use Case DiagramsLecture04- Use Case Diagrams
Lecture04- Use Case Diagrams
 
Types of UML diagrams
Types of UML diagramsTypes of UML diagrams
Types of UML diagrams
 
Software Engineering : OOAD using UML
Software Engineering : OOAD using UMLSoftware Engineering : OOAD using UML
Software Engineering : OOAD using UML
 
Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 

Similaire à Software Engineering :Behavioral Modelling - II State diagram

T305 tutorial 4
T305 tutorial 4T305 tutorial 4
T305 tutorial 4
hoooma
 

Similaire à Software Engineering :Behavioral Modelling - II State diagram (20)

State modeling
State modelingState modeling
State modeling
 
state modeling In UML
state modeling In UMLstate modeling In UML
state modeling In UML
 
Activity diag
Activity diagActivity diag
Activity diag
 
State Diagrams
State DiagramsState Diagrams
State Diagrams
 
Diagrams
DiagramsDiagrams
Diagrams
 
Unit 3(advanced state modeling & interaction meodelling)
Unit  3(advanced state modeling & interaction meodelling)Unit  3(advanced state modeling & interaction meodelling)
Unit 3(advanced state modeling & interaction meodelling)
 
Java
Java   Java
Java
 
State chart diagram
State chart diagramState chart diagram
State chart diagram
 
Unit three Advanced State Modelling
Unit three Advanced State ModellingUnit three Advanced State Modelling
Unit three Advanced State Modelling
 
Free ebooks download ! Edhole
Free ebooks download ! EdholeFree ebooks download ! Edhole
Free ebooks download ! Edhole
 
Free ebooks download ! Edhole
Free ebooks download ! EdholeFree ebooks download ! Edhole
Free ebooks download ! Edhole
 
3 interaction and_state_modeling
3 interaction and_state_modeling3 interaction and_state_modeling
3 interaction and_state_modeling
 
State Diagram.pdf
State Diagram.pdfState Diagram.pdf
State Diagram.pdf
 
STATE DIAGRAM.pptx
STATE DIAGRAM.pptxSTATE DIAGRAM.pptx
STATE DIAGRAM.pptx
 
T305 tutorial 4
T305 tutorial 4T305 tutorial 4
T305 tutorial 4
 
Seminar State Chart1
Seminar State Chart1Seminar State Chart1
Seminar State Chart1
 
States machine
States machineStates machine
States machine
 
Unit 4 dbms
Unit 4 dbmsUnit 4 dbms
Unit 4 dbms
 
State Machine Workflow: Esoteric Techniques & Patterns Everyone Should Buy pr...
State Machine Workflow: Esoteric Techniques & Patterns Everyone Should Buy pr...State Machine Workflow: Esoteric Techniques & Patterns Everyone Should Buy pr...
State Machine Workflow: Esoteric Techniques & Patterns Everyone Should Buy pr...
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event Scheduling
 

Plus de Ajit Nayak

Plus de Ajit Nayak (20)

Software Engineering : Software testing
Software Engineering : Software testingSoftware Engineering : Software testing
Software Engineering : Software testing
 
Software Engineering : Process Models
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process Models
 
Database Programming using SQL
Database Programming using SQLDatabase Programming using SQL
Database Programming using SQL
 
Ns2: Introduction - Part I
Ns2: Introduction - Part INs2: Introduction - Part I
Ns2: Introduction - Part I
 
Ns2: OTCL - PArt II
Ns2: OTCL - PArt IINs2: OTCL - PArt II
Ns2: OTCL - PArt II
 
NS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt IIINS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt III
 
Socket programming using C
Socket programming using CSocket programming using C
Socket programming using C
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
 
Parallel programming using MPI
Parallel programming using MPIParallel programming using MPI
Parallel programming using MPI
 
Operating Systems Part III-Memory Management
Operating Systems Part III-Memory ManagementOperating Systems Part III-Memory Management
Operating Systems Part III-Memory Management
 
Operating Systems Part I-Basics
Operating Systems Part I-BasicsOperating Systems Part I-Basics
Operating Systems Part I-Basics
 
Operating Systems Part II-Process Scheduling, Synchronisation & Deadlock
Operating Systems Part II-Process Scheduling, Synchronisation & DeadlockOperating Systems Part II-Process Scheduling, Synchronisation & Deadlock
Operating Systems Part II-Process Scheduling, Synchronisation & Deadlock
 
Introduction to database-Transaction Concurrency and Recovery
Introduction to database-Transaction Concurrency and RecoveryIntroduction to database-Transaction Concurrency and Recovery
Introduction to database-Transaction Concurrency and Recovery
 
Introduction to database-Formal Query language and Relational calculus
Introduction to database-Formal Query language and Relational calculusIntroduction to database-Formal Query language and Relational calculus
Introduction to database-Formal Query language and Relational calculus
 
Introduction to database-Normalisation
Introduction to database-NormalisationIntroduction to database-Normalisation
Introduction to database-Normalisation
 
Introduction to database-ER Model
Introduction to database-ER ModelIntroduction to database-ER Model
Introduction to database-ER Model
 
Computer Networks Module III
Computer Networks Module IIIComputer Networks Module III
Computer Networks Module III
 
Computer Networks Module II
Computer Networks Module IIComputer Networks Module II
Computer Networks Module II
 
Computer Networks Module I
Computer Networks Module IComputer Networks Module I
Computer Networks Module I
 
Object Oriented Programming using C++ Part III
Object Oriented Programming using C++ Part IIIObject Oriented Programming using C++ Part III
Object Oriented Programming using C++ Part III
 

Dernier

"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
mphochane1998
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Dernier (20)

School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 

Software Engineering :Behavioral Modelling - II State diagram

  • 1. Software Engineering Principles Ajit K Nayak, Ph.D. ajitnayak@soauniversity.ac.in Behavioural Modelling - II
  • 2. Acknowledgements • Slides of Prof. Rajib Mall, IIT, KGP
  • 3. State Diagram • A state diagram describes the behaviour of a system, some part of a system, or an individual object. – At any given point in time, the system or object is in a certain state. • Being in a state means that it is will behave in a specific way in response to any events that occur. • Some events will cause the system to change state. – In the new state, the system will behave in a different way to events. • A state diagram is a directed graph where the nodes are states and the arcs are transitions.
  • 4. Event, Condition • Event: something that happens at a point in time – Operator presses self-test button – The alarm goes off • Condition: something that has a duration – The fuel level is high – The alarm is on • State : an abstraction of the attributes and links of an object (or entire system) – The controller is in the state self-test after the self-test button has been pressed and the rest button is not yet pressed. – The tank is in the state too low when the fuel level has been below Ievel-low for alarm-threshold seconds
  • 5. State diagrams – an example • tic-tac-toe game (also called noughts and crosses)
  • 6. State & Transition • At any given point in time, the system is in one state. • It will remain in this state until an event occurs that causes it to change state. • A state is represented by a rounded rectangle containing the name of the state. • Special states: – A black circle represents the start state – A circle with a ring around it represents an end state • A transition represents a change of state in response to an event. – It is considered to occur instantaneously. • The label on each transition is the event that causes the change of state.
  • 9. Activities in state diagrams • An activity is something that takes place while the system is in a state. – It takes a period of time. – The system may take a transition out of the state in response to completion of the activity, – Some other outgoing transition may result in: • The interruption of the activity, and • An early exit from the state.
  • 10. Actions in state diagrams • An action is something that takes place effectively instantaneously – When a particular transition is taken, – Upon entry into a particular state, or – Upon exit from a particular state • An action should consume no noticeable amount of time
  • 11. Nested substates and guard conditions • A state diagram can be nested inside a state. – The states of the inner diagram are called substates.
  • 12. Activity Diagrams • An activity diagram is like a state diagram. – Except most transitions are caused by internal events, such as the completion of a computation. • An activity diagram – Can be used to understand the flow of work that an object or component performs. – Can also be used to visualize the interrelation and interaction between different use cases. – Is most often associated with several classes. • One of the strengths of activity diagrams is the representation of concurrent activities.
  • 13. Representing concurrency • Concurrency is shown using forks, joins and rendezvous. – A fork has one incoming transition and multiple outgoing transitions. • The execution splits into two concurrent threads. • A rendezvous has multiple incoming and multiple outgoing transitions. • Once all the incoming transitions occur all the outgoing transitions may occur. – A join has multiple incoming transitions and one outgoing transition. • The outgoing transition will be taken when all incoming transitions have occurred. • The incoming transitions must be triggered in separate threads. • If one incoming transition occurs, a wait condition occurs at the join until the other transitions occur.
  • 14. Swimlanes • Activity diagrams are most often associated with several classes. • The partition of activities among the existing classes can be explicitly shown using swimlanes.
  • 15. Implementing Classes Based on Interaction and State Diagrams • You should use these diagrams for the parts of your system that you find most complex. – i.e. not for every class • Interaction, activity and state diagrams help you create a correct implementation. • This is particularly true when behaviour is distributed across several use cases. – E.g. a state diagram is useful when different conditions cause instances to respond differently to the same event.
  • 18. Example: States of the CourseSection class • Planned – closedOrCancelled == false && open == false • Cancelled – closedOrCancelled == true && registrationList.size() == 0 • Closed (course section is too full, or being taught) – closedOrCancelled == true && registrationList.size() > 0 • Open (accepting registrations) – open == true • NotEnoughStudents (substate of ‘Open’) – open == true && registrationList.size() < course.getMinimum() • EnoughStudents (substate of ‘Open’) – open == true && registrationList.size() >= course.getMinimum()
  • 19. Example code - I public class CourseSection { // The many-1 association private Course course; // The 1-many association to class Registration private List registrationList; // The following are present only to determine the state, the initial state is Planned private boolean open = false; private boolean closedOrCanceled = false; . . . }
  • 20. Example code - II public CourseSection(Course course){ this.course = course; registrationList = new LinkedList(); } public void openRegistration(){ if(!closedOrCanceled) {//must be in Planned state open = true; // to OpenNotEnoughStudents state } }
  • 21. Example code - III public void closeRegistration(){ // to 'Canceled' or 'Closed' state open = false; closedOrCanceled = true; if (registrationList.size() < course.getMinimum()){ unregisterStudents(); // to 'Canceled' state } } public void cancel() { // to 'Canceled' state open = false; closedOrCanceled = true; unregisterStudents(); }
  • 22. Example code - IV // Private method to remove all registrations // Activity associated with 'Canceled' state. private void unregisterStudents() { Iterator it = registrationList.iterator(); while (it.hasNext()){ Registration r = (Registration)it.next(); r.unregisterStudent(); it.remove(); } } // Called within this package only, by the constructor of Registration to ensure the link is bi-directional void addToRegistrationList(Registration newRegistration) { registrationList.add(newRegistration); } }
  • 23. Difficulties and Risks in Modelling Interactions and Behaviour • Dynamic modelling is a difficult skill as in a large system there are a very large number of possible paths a system can take. • It is hard to choose the classes to which to allocate each behaviour: – Ensure that skilled developers lead the process, and ensure that all aspects of your models are properly reviewed. – Work iteratively: • Develop initial class diagrams, use cases, responsibilities, interaction diagrams and state diagrams; • Then go back and verify that all of these are consistent, modifying them as necessary. • Drawing different diagrams that capture related, but distinct, information will often highlight problems.