SlideShare a Scribd company logo
1 of 24
Download to read offline
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

More Related Content

What's hot

Ch4-Software Engineering 9
Ch4-Software Engineering 9Ch4-Software Engineering 9
Ch4-Software Engineering 9
Ian Sommerville
 
User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15
koolkampus
 
10 software maintenance
10 software maintenance10 software maintenance
10 software maintenance
akiara
 
Uml Activity Diagram
Uml Activity DiagramUml Activity Diagram
Uml Activity Diagram
Niloy Rocker
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
Er. Nancy
 

What's hot (20)

Ch2 sw processes
Ch2 sw processesCh2 sw processes
Ch2 sw processes
 
4+1 view model
4+1 view model4+1 view model
4+1 view model
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Ch4-Software Engineering 9
Ch4-Software Engineering 9Ch4-Software Engineering 9
Ch4-Software Engineering 9
 
User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
10 software maintenance
10 software maintenance10 software maintenance
10 software maintenance
 
Windows Security
Windows Security Windows Security
Windows Security
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
Ch 2 what is software quality
Ch 2 what is software qualityCh 2 what is software quality
Ch 2 what is software quality
 
Uml Activity Diagram
Uml Activity DiagramUml Activity Diagram
Uml Activity Diagram
 
Use case diagrams
Use case diagramsUse case diagrams
Use case diagrams
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
Ch4 req eng
Ch4 req engCh4 req eng
Ch4 req eng
 
9. Software Implementation
9. Software Implementation9. Software Implementation
9. Software Implementation
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 
Ooad
OoadOoad
Ooad
 
Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )
 

Viewers also liked (9)

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

Similar to Software Engineering :Behavioral Modelling - II State diagram

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

Similar to 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
 
08 state diagram and activity diagram
08 state diagram and activity diagram08 state diagram and activity diagram
08 state diagram and activity diagram
 
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...
 

More from Ajit Nayak

More from 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
 

Recently uploaded

FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 

Recently uploaded (20)

CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
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
 
Intro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdfIntro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdf
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.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...
 
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
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
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
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 

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.