SlideShare ist ein Scribd-Unternehmen logo
1 von 64
Downloaden Sie, um offline zu lesen
UsingActivityDiagrams toModel Use Cases VisuallyPart 1: TheBasics by Declan Chellar
START POINT
TheStart Point representstheEVENT that triggersthe use case.
LabeltheStart Point to makethe INTENT and TRIGGER of the use case explicit.
Actor elects to AddCustomer
Actor elects to AddCustomer END POINT
Actor elects to AddCustomer LabeltheEnd Point to EXPLICITLY confirm that theintent of the use case has beenachieved.
Actor elects to AddCustomer Customeradded
Actor elects to AddCustomer This makesitclear to thereader that the use case is complete and that nothingfurther is needed in order to fulfiltheintent. Customeradded
Actor elects to AddCustomer NOT a goodlabelforanEnd Point End of process
To reachtheEnd Point…
… you need to model STEPS.
Link thestepswith TRANSITIONS.
Transitions use arrowheads to show thedirection of  processflow.
I like to put a note againstanystep that achievesthegoal of the use case. Goal  X achieved
Goal  X achieved … becauseitmightnotbethelaststep.
Themostcommonroutefromthestartpoint to theendpoint has manynames.
Buttheyeffectively mean thesamething.
Combine anywordontheleftwithanyphraseontheright. PRIMARY… …PATH BASIC… …FLOW TYPICAL… …COURSE OF EVENTS …SCENARIO
Often in a use case theSystem has to make a decisionbasedonbusiness rules...
The actual decisiontakes place within a STEP
System determines whether X or Y The actual decisiontakes place within a STEP
System determines whether X or Y A DECISION POINT is then used to helpthereadernavigatethediagram.
DECISION POINT
DecisionPointscontaintextwhich describes thenature of thedecision to bemade.
So wasit X or Y?
Decisionpointsallowtheflow to branchawayfromthePrimaryPath.
Transitionscomingout of DecisionPointsmust have a GUARD. [Condition 2] [Condition 1]
[IT WAS “Y”] [IT WAS “X”] A Guardneeds to explicitly describe a conditionwhichmustbe true in order to proceeddown that path.
IftheflowrejoinsthePrimaryPath, it is known as anAlternatePath. [Condition 2] [Condition 1]
[Condition 2] [Condition 1] WithAlternatePaths, thegoal of the Use Case is stillachieved.
There are othernamesforAlternatePaths. [Condition 2] [Condition 1]
Combine anywordontheleftwithanyphraseontheright. ALTERNATE… …PATH ALTERNATIVE… …FLOW SECONDARY… …COURSE OF EVENTS …SCENARIO [Condition 2] [Condition 1]
[Condition 2] [Condition 1] You can show howpathsrejoinbyusing a MERGE POINT.
[Condition 2] [Condition 1] You can show howpathsrejoinbyusing a MERGE POINT.
I don’tlikeMergePointsbecausetheytake up spacewithoutaddingclarity. [Condition 2] [Condition 1]
I prefer to modelmergingpathslikethis. [Condition 2] [Condition 1]
MergePoints can sometimesbeparticularlysuperfluous. [Condition 2] [Condition 1]
[Condition 2] [Condition 1] I thinkit is neater to show themergethisway.
Iftheflowdoes NOT rejointhePrimaryPath, it is known as anExceptionPath. [Condition 2] [Condition3] [Condition 1]
WithExceptionPaths, thegoal of the Use Case is NOT achieved. [Condition 2] [Condition3] [Condition 1] Goal  X achieved
WithExceptionPaths, thegoal of the Use Case is NOT achieved. [Condition 2] [Condition3] [Condition 1] Uh, oh! Goal  X achieved
I like to use colour to highlightthedifferentpaths. [Condition 2] [Condition3] [Condition 1]
[Condition 2] [Condition3] [Condition 1]
[Condition 2] [Condition3] [Condition 1]
This makesiteasy to identify test scenarios at a glance. [Condition3] [Condition 2] [Condition 1]
I alsolike to labeltheGuards in order to easilyidentifythepaths. A1: [Condition 2] E1: [Condition 3] P: [Condition 1]
And I like to labeltheStepsforeasybackwardreferencefrom Business Rules and a Logical Data Model. P1: A1: [Condition 2] E1: [Condition 3] P: [Condition 1] P2: A1.1: E1.1:
PrimaryPath: 	P1, P2. P1: A1: [Condition 2] E1: [Condition 3] P: [Condition 1] P2: A1.1: E1.1:
PrimaryPath: 	P1, P2. AlternatePath 1: 	P1, A1.1, P2. P1: A1: [Condition 2] E1: [Condition 3] P: [Condition 1] P2: A1.1: E1.1:
PrimaryPath: 	P1, P2. AlternatePath 1: 	P1, A1.1, P2. ExceptionPath 1: 	P1, E1.1. P1: A1: [Condition 2] E1: [Condition 3] P: [Condition 1] P2: A1.1: E1.1:
In some Use Cases, you willneed to modelparallelsteps [Condition 2] [Condition3] [Condition 1]
[Condition 2] [Condition3] [Condition 1] X A B In thisexample, steps A and B mustbothstartafterstep X finishes and mustbothfinishbeforethe Use Case ends.
[Condition 2] [Condition3] [Condition 1] X A B Butwe do notcareabouttheorder in which A and B happen.
A and B couldevenhappen at thesame time. [Condition 2] [Condition3] [Condition 1] X A B
In thisexample, B mustfollow A, butwe do notcarewhen C happens in relation to (A + B). [Condition 2] [Condition3] [Condition 1] A C B
In some Use Cases, you willneed to modelrepeatedsteps. [Condition 2] [Condition3] [Condition 1] A B
[Condition 2] [Condition3] [Condition 1] Foreach X: A In thisexample, you repeat (A + B) untilthere is no more X. B
[Condition 2] [Condition3] [Condition 1] Foreach X: A Forexample, you might do thiswhenaddingpassengers to a holidaybooking. B
Let’sreviewtheshapes
START POINT DECISION POINT [Condition] END POINT GUARD STEP PARALLEL STEPS Foreach X: TRANSITION REPEATED STEPS
www.chellar.com/blog

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Requirements modeling
Requirements modelingRequirements modeling
Requirements modeling
 
Presentation on uml
Presentation on umlPresentation on uml
Presentation on uml
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Software design
Software designSoftware design
Software design
 
UML
UMLUML
UML
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
 
Software process
Software processSoftware process
Software process
 
Uml in software engineering
Uml in software engineeringUml in software engineering
Uml in software engineering
 
Uml - An Overview
Uml - An OverviewUml - An Overview
Uml - An Overview
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentation
 
Uml structural diagrams
Uml structural diagramsUml structural diagrams
Uml structural diagrams
 
Analysis modeling
Analysis modelingAnalysis modeling
Analysis modeling
 
Use case diagram
Use case diagramUse case diagram
Use case diagram
 
Class diagrams
Class diagramsClass diagrams
Class diagrams
 
Boehm Software Quality Model
Boehm Software Quality ModelBoehm Software Quality Model
Boehm Software Quality Model
 
Coupling and cohesion
Coupling and cohesionCoupling and cohesion
Coupling and cohesion
 
Uml class Diagram
Uml class DiagramUml class Diagram
Uml class Diagram
 

Ähnlich wie Activity diagram tutorial

Copy of dti2143/dam31303 chap 1 problem solving and program design
Copy of dti2143/dam31303 chap 1 problem solving and program designCopy of dti2143/dam31303 chap 1 problem solving and program design
Copy of dti2143/dam31303 chap 1 problem solving and program designalish sha
 
C# Tutorial MSM_Murach chapter-05-slides
C# Tutorial MSM_Murach chapter-05-slidesC# Tutorial MSM_Murach chapter-05-slides
C# Tutorial MSM_Murach chapter-05-slidesSami Mut
 
Railway Orientated Programming In C#
Railway Orientated Programming In C#Railway Orientated Programming In C#
Railway Orientated Programming In C#Tama000
 
Implementing the Adapter Design Pattern
Implementing the Adapter Design PatternImplementing the Adapter Design Pattern
Implementing the Adapter Design PatternProdigyView
 
Use of Classes and functions#include iostreamusing name.docx
 Use of Classes and functions#include iostreamusing name.docx Use of Classes and functions#include iostreamusing name.docx
Use of Classes and functions#include iostreamusing name.docxaryan532920
 
Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2
Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2
Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2Philip Schwarz
 
Testing survival Guide
Testing survival GuideTesting survival Guide
Testing survival GuideThilo Utke
 

Ähnlich wie Activity diagram tutorial (11)

Copy of dti2143/dam31303 chap 1 problem solving and program design
Copy of dti2143/dam31303 chap 1 problem solving and program designCopy of dti2143/dam31303 chap 1 problem solving and program design
Copy of dti2143/dam31303 chap 1 problem solving and program design
 
OLT open script
OLT open script OLT open script
OLT open script
 
C# Tutorial MSM_Murach chapter-05-slides
C# Tutorial MSM_Murach chapter-05-slidesC# Tutorial MSM_Murach chapter-05-slides
C# Tutorial MSM_Murach chapter-05-slides
 
Railway Orientated Programming In C#
Railway Orientated Programming In C#Railway Orientated Programming In C#
Railway Orientated Programming In C#
 
Implementing the Adapter Design Pattern
Implementing the Adapter Design PatternImplementing the Adapter Design Pattern
Implementing the Adapter Design Pattern
 
Savitch ch 02
Savitch ch 02Savitch ch 02
Savitch ch 02
 
AUTOCAD RAHUL
AUTOCAD  RAHULAUTOCAD  RAHUL
AUTOCAD RAHUL
 
Use of Classes and functions#include iostreamusing name.docx
 Use of Classes and functions#include iostreamusing name.docx Use of Classes and functions#include iostreamusing name.docx
Use of Classes and functions#include iostreamusing name.docx
 
Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2
Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2
Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2
 
Testing survival Guide
Testing survival GuideTesting survival Guide
Testing survival Guide
 
TDD
TDDTDD
TDD
 

Mehr von Declan Chellar

Business analysis is about more than software requirements
Business analysis is about more than software requirementsBusiness analysis is about more than software requirements
Business analysis is about more than software requirementsDeclan Chellar
 
BPMN 2.0 - an introduction to the Level 1 Palette
BPMN 2.0 - an introduction to the Level 1 PaletteBPMN 2.0 - an introduction to the Level 1 Palette
BPMN 2.0 - an introduction to the Level 1 PaletteDeclan Chellar
 
Defining process scope
Defining process scopeDefining process scope
Defining process scopeDeclan Chellar
 
BPMN in Pegasystems' PRPC Flow Rules
BPMN in Pegasystems' PRPC Flow RulesBPMN in Pegasystems' PRPC Flow Rules
BPMN in Pegasystems' PRPC Flow RulesDeclan Chellar
 
Process Model versus PRPC Discovery Map
Process Model versus PRPC Discovery MapProcess Model versus PRPC Discovery Map
Process Model versus PRPC Discovery MapDeclan Chellar
 
Activity Diagram tutorial part 3
Activity Diagram tutorial part 3Activity Diagram tutorial part 3
Activity Diagram tutorial part 3Declan Chellar
 
Tracing Data Requirements
Tracing Data RequirementsTracing Data Requirements
Tracing Data RequirementsDeclan Chellar
 
The Importance of Data Analysis in Producing a Robust Physical Data Model
The Importance of Data Analysis in Producing a Robust Physical Data ModelThe Importance of Data Analysis in Producing a Robust Physical Data Model
The Importance of Data Analysis in Producing a Robust Physical Data ModelDeclan Chellar
 
Activity diagram tutorial part 2
Activity diagram tutorial part 2Activity diagram tutorial part 2
Activity diagram tutorial part 2Declan Chellar
 
A Tale Of Two Projects
A Tale Of Two ProjectsA Tale Of Two Projects
A Tale Of Two ProjectsDeclan Chellar
 

Mehr von Declan Chellar (11)

Business analysis is about more than software requirements
Business analysis is about more than software requirementsBusiness analysis is about more than software requirements
Business analysis is about more than software requirements
 
BPMN 2.0 - an introduction to the Level 1 Palette
BPMN 2.0 - an introduction to the Level 1 PaletteBPMN 2.0 - an introduction to the Level 1 Palette
BPMN 2.0 - an introduction to the Level 1 Palette
 
Defining process scope
Defining process scopeDefining process scope
Defining process scope
 
Iliad Book 1
Iliad Book 1Iliad Book 1
Iliad Book 1
 
BPMN in Pegasystems' PRPC Flow Rules
BPMN in Pegasystems' PRPC Flow RulesBPMN in Pegasystems' PRPC Flow Rules
BPMN in Pegasystems' PRPC Flow Rules
 
Process Model versus PRPC Discovery Map
Process Model versus PRPC Discovery MapProcess Model versus PRPC Discovery Map
Process Model versus PRPC Discovery Map
 
Activity Diagram tutorial part 3
Activity Diagram tutorial part 3Activity Diagram tutorial part 3
Activity Diagram tutorial part 3
 
Tracing Data Requirements
Tracing Data RequirementsTracing Data Requirements
Tracing Data Requirements
 
The Importance of Data Analysis in Producing a Robust Physical Data Model
The Importance of Data Analysis in Producing a Robust Physical Data ModelThe Importance of Data Analysis in Producing a Robust Physical Data Model
The Importance of Data Analysis in Producing a Robust Physical Data Model
 
Activity diagram tutorial part 2
Activity diagram tutorial part 2Activity diagram tutorial part 2
Activity diagram tutorial part 2
 
A Tale Of Two Projects
A Tale Of Two ProjectsA Tale Of Two Projects
A Tale Of Two Projects
 

Activity diagram tutorial