SlideShare a Scribd company logo
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

Sql injection
Sql injectionSql injection
Sql injection
Sasha-Leigh Garret
 
JavaScript Object Oriented Programming Cheat Sheet
JavaScript Object Oriented Programming Cheat SheetJavaScript Object Oriented Programming Cheat Sheet
JavaScript Object Oriented Programming Cheat Sheet
HDR1001
 
SQL injection prevention techniques
SQL injection prevention techniquesSQL injection prevention techniques
SQL injection prevention techniques
SongchaiDuangpan
 
2 phase locking protocol DBMS
2 phase locking protocol DBMS2 phase locking protocol DBMS
2 phase locking protocol DBMS
Dhananjaysinh Jhala
 
Behavioural modelling
Behavioural modellingBehavioural modelling
Behavioural modelling
Benazir Fathima
 
Understanding isolation levels
Understanding isolation levelsUnderstanding isolation levels
Understanding isolation levels
Hieu Nguyen Trung
 
Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7
mohammad hossein Jalili
 
Pawan111
Pawan111Pawan111
Pawan111
ranjeetdon
 
Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...
Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...
Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...
Дмитрий Бумов
 
ColdFusion for Penetration Testers
ColdFusion for Penetration TestersColdFusion for Penetration Testers
ColdFusion for Penetration Testers
Chris Gates
 
Uml
UmlUml
Debugging Effectively
Debugging EffectivelyDebugging Effectively
Debugging Effectively
Colin O'Dell
 
SE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context ModelSE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context Model
Amr E. Mohamed
 
Jdbc in servlets
Jdbc in servletsJdbc in servlets
Jdbc in servlets
Nuha Noor
 
Ejb and jsp
Ejb and jspEjb and jsp
Ejb and jsp
rajshreemuthiah
 
Advanced SQL injection to operating system full control (whitepaper)
Advanced SQL injection to operating system full control (whitepaper)Advanced SQL injection to operating system full control (whitepaper)
Advanced SQL injection to operating system full control (whitepaper)
Bernardo Damele A. G.
 
Processes and threads
Processes and threadsProcesses and threads
Session bean
Session beanSession bean
Session bean
sandeep54552
 
MySQL Backup and Security Best Practices
MySQL Backup and Security Best PracticesMySQL Backup and Security Best Practices
MySQL Backup and Security Best Practices
Lenz Grimmer
 
Modelado de decisiones
Modelado de decisionesModelado de decisiones
Modelado de decisiones
Sergio Salimbeni
 

What's hot (20)

Sql injection
Sql injectionSql injection
Sql injection
 
JavaScript Object Oriented Programming Cheat Sheet
JavaScript Object Oriented Programming Cheat SheetJavaScript Object Oriented Programming Cheat Sheet
JavaScript Object Oriented Programming Cheat Sheet
 
SQL injection prevention techniques
SQL injection prevention techniquesSQL injection prevention techniques
SQL injection prevention techniques
 
2 phase locking protocol DBMS
2 phase locking protocol DBMS2 phase locking protocol DBMS
2 phase locking protocol DBMS
 
Behavioural modelling
Behavioural modellingBehavioural modelling
Behavioural modelling
 
Understanding isolation levels
Understanding isolation levelsUnderstanding isolation levels
Understanding isolation levels
 
Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7
 
Pawan111
Pawan111Pawan111
Pawan111
 
Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...
Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...
Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...
 
ColdFusion for Penetration Testers
ColdFusion for Penetration TestersColdFusion for Penetration Testers
ColdFusion for Penetration Testers
 
Uml
UmlUml
Uml
 
Debugging Effectively
Debugging EffectivelyDebugging Effectively
Debugging Effectively
 
SE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context ModelSE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context Model
 
Jdbc in servlets
Jdbc in servletsJdbc in servlets
Jdbc in servlets
 
Ejb and jsp
Ejb and jspEjb and jsp
Ejb and jsp
 
Advanced SQL injection to operating system full control (whitepaper)
Advanced SQL injection to operating system full control (whitepaper)Advanced SQL injection to operating system full control (whitepaper)
Advanced SQL injection to operating system full control (whitepaper)
 
Processes and threads
Processes and threadsProcesses and threads
Processes and threads
 
Session bean
Session beanSession bean
Session bean
 
MySQL Backup and Security Best Practices
MySQL Backup and Security Best PracticesMySQL Backup and Security Best Practices
MySQL Backup and Security Best Practices
 
Modelado de decisiones
Modelado de decisionesModelado de decisiones
Modelado de decisiones
 

Viewers also liked

Software Engineering :UML class diagrams
Software Engineering :UML class diagramsSoftware Engineering :UML class diagrams
Software Engineering :UML class diagrams
Ajit Nayak
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
Ajit Nayak
 
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
Ajit Nayak
 
Uml - An Overview
Uml - An OverviewUml - An Overview
Uml - An Overview
Raj Thilak S
 
Introduction to UML
Introduction to UMLIntroduction to UML
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
Mansouri Khalifa
 
Lecture04- Use Case Diagrams
Lecture04- Use Case DiagramsLecture04- Use Case Diagrams
Lecture04- Use Case Diagrams
artgreen
 
Types of UML diagrams
Types of UML diagramsTypes of UML diagrams
Types of UML diagrams
Mukesh Tekwani
 
Software Engineering : OOAD using UML
Software Engineering : OOAD using UMLSoftware Engineering : OOAD using UML
Software Engineering : OOAD using UML
Ajit Nayak
 
Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
Ajit Nayak
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
Ashesh R
 

Viewers also liked (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
 

Similar to Software Engineering :Behavioral Modelling - II State diagram

State modeling
State modelingState modeling
State modeling
Yashodha Sambrani
 
state modeling In UML
state modeling In UMLstate modeling In UML
state modeling In UML
Kumar
 
08 state diagram and activity diagram
08 state diagram and activity diagram08 state diagram and activity diagram
08 state diagram and activity diagram
Baskarkncet
 
Activity diag
Activity diagActivity diag
Activity diag
Preeti Mishra
 
State Diagrams
State DiagramsState Diagrams
State Diagrams
Vaidik Trivedi
 
Diagrams
DiagramsDiagrams
Diagrams
janessa24
 
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)
Manoj Reddy
 
Java
Java   Java
State chart diagram
State chart diagramState chart diagram
State chart diagram
Preeti Mishra
 
Unit three Advanced State Modelling
Unit three Advanced State ModellingUnit three Advanced State Modelling
Unit three Advanced State Modelling
Dr Chetan Shelke
 
Free ebooks download ! Edhole
Free ebooks download ! EdholeFree ebooks download ! Edhole
Free ebooks download ! Edhole
Edhole.com
 
Free ebooks download ! Edhole
Free ebooks download ! EdholeFree ebooks download ! Edhole
Free ebooks download ! Edhole
Edhole.com
 
3 interaction and_state_modeling
3 interaction and_state_modeling3 interaction and_state_modeling
3 interaction and_state_modeling
Minal Maniar
 
State Diagram.pdf
State Diagram.pdfState Diagram.pdf
State Diagram.pdf
ssuser226e3e
 
STATE DIAGRAM.pptx
STATE DIAGRAM.pptxSTATE DIAGRAM.pptx
STATE DIAGRAM.pptx
ssuser2d043c
 
T305 tutorial 4
T305 tutorial 4T305 tutorial 4
T305 tutorial 4
hoooma
 
Seminar State Chart1
Seminar State Chart1Seminar State Chart1
Seminar State Chart1
Jenish Bhavsar
 
States machine
States machineStates machine
States machine
Satyamevjayte Haxor
 
Unit 4 dbms
Unit 4 dbmsUnit 4 dbms
Unit 4 dbms
Sweta Singh
 
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...
European SharePoint Conference
 

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

Software Engineering : Software testing
Software Engineering : Software testingSoftware Engineering : Software testing
Software Engineering : Software testing
Ajit Nayak
 
Software Engineering : Process Models
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process Models
Ajit Nayak
 
Database Programming using SQL
Database Programming using SQLDatabase Programming using SQL
Database Programming using SQL
Ajit Nayak
 
Ns2: Introduction - Part I
Ns2: Introduction - Part INs2: Introduction - Part I
Ns2: Introduction - Part I
Ajit Nayak
 
Ns2: OTCL - PArt II
Ns2: OTCL - PArt IINs2: OTCL - PArt II
Ns2: OTCL - PArt II
Ajit Nayak
 
NS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt IIINS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt III
Ajit Nayak
 
Socket programming using C
Socket programming using CSocket programming using C
Socket programming using C
Ajit Nayak
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
Ajit Nayak
 
Parallel programming using MPI
Parallel programming using MPIParallel programming using MPI
Parallel programming using MPI
Ajit Nayak
 
Operating Systems Part III-Memory Management
Operating Systems Part III-Memory ManagementOperating Systems Part III-Memory Management
Operating Systems Part III-Memory Management
Ajit Nayak
 
Operating Systems Part I-Basics
Operating Systems Part I-BasicsOperating Systems Part I-Basics
Operating Systems Part I-Basics
Ajit Nayak
 
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
Ajit Nayak
 
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
Ajit Nayak
 
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
Ajit Nayak
 
Introduction to database-Normalisation
Introduction to database-NormalisationIntroduction to database-Normalisation
Introduction to database-Normalisation
Ajit Nayak
 
Introduction to database-ER Model
Introduction to database-ER ModelIntroduction to database-ER Model
Introduction to database-ER Model
Ajit Nayak
 
Computer Networks Module III
Computer Networks Module IIIComputer Networks Module III
Computer Networks Module III
Ajit Nayak
 
Computer Networks Module II
Computer Networks Module IIComputer Networks Module II
Computer Networks Module II
Ajit Nayak
 
Computer Networks Module I
Computer Networks Module IComputer Networks Module I
Computer Networks Module I
Ajit Nayak
 
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
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

Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
co23btech11018
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
ihlasbinance2003
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
mahammadsalmanmech
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
wisnuprabawa3
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
171ticu
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
Hitesh Mohapatra
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
University of Maribor
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
mamunhossenbd75
 
Casting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdfCasting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdf
zubairahmad848137
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
nooriasukmaningtyas
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
RadiNasr
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
Rahul
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
Victor Morales
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Christina Lin
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
jpsjournal1
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
Las Vegas Warehouse
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
abbyasa1014
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
mamamaam477
 
The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.
sachin chaurasia
 

Recently uploaded (20)

Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
 
Casting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdfCasting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdf
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
 
The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.
 

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.