SlideShare a Scribd company logo
Requirements
Modeling
– 2 –
Modeling Requirements:Modeling Requirements:
from customer views to something translatablefrom customer views to something translatable
to softwareto software
echniques for developing functional requirements
What the software is supposed to do!
– 3 –
Requirements modeling
We build models in requirements analysis or/andWe build models in requirements analysis or/and
specifications to understandspecifications to understand
 current systems or business processes which we are
trying to automate
 how users will use a new system
– 4 –
The software requirements
document
The software requirements document is the officialThe software requirements document is the official
statement of what is required of the systemstatement of what is required of the system
developers.developers.
Should include both a definition of userShould include both a definition of user
requirements and a specification of the systemrequirements and a specification of the system
requirements.requirements.
It is NOT a design document. As far as possible, itIt is NOT a design document. As far as possible, it
should set WHAT the system should do rathershould set WHAT the system should do rather
than HOW it should do it.than HOW it should do it.
4
– 5 –
Agile methods and
requirements
Many agile methods argue that producing aMany agile methods argue that producing a
requirements document is a waste of time asrequirements document is a waste of time as
requirements change so quickly.requirements change so quickly.
The document is therefore always out of date.The document is therefore always out of date.
Methods such as XP use incremental requirementsMethods such as XP use incremental requirements
engineering and express requirements asengineering and express requirements as ‘user‘user
stories’stories’
This is practical for business systems and gamesThis is practical for business systems and games
but problematic for systems that require a lot ofbut problematic for systems that require a lot of
pre-delivery analysis (e.g. critical systems) orpre-delivery analysis (e.g. critical systems) or
systems developed by several teams, e.g.,systems developed by several teams, e.g.,
large government systems.large government systems.
5
– 6 –
Requirements document
variability
Information in requirements document depends onInformation in requirements document depends on
the type of system and the approach tothe type of system and the approach to
development used.development used.
Systems developed incrementally will, typically,Systems developed incrementally will, typically,
have less detail in the requirements document.have less detail in the requirements document.
Requirements documents standards have beenRequirements documents standards have been
designed e.g. IEEE standard. These are mostlydesigned e.g. IEEE standard. These are mostly
applicable to the requirements for large systemsapplicable to the requirements for large systems
engineering projects.engineering projects.
6
– 7 –
Requirements and Design
In principle, requirements should state what theIn principle, requirements should state what the
system should do and the design shouldsystem should do and the design should
describe how it does this.describe how it does this.
In practice, requirements and design areIn practice, requirements and design are
inseparableinseparable
 A system architecture may be designed to
structure the requirements;
 The system may inter-operate with other
systems that generate design requirements;
 The use of a specific architecture to satisfy
non-functional requirements may be a domain
requirement.
 This may be the consequence of a regulatory
requirement.
– 8 –
Tools for modeling
requirements
Use CasesUse Cases – in late 70s, my advisor wrote a tech– in late 70s, my advisor wrote a tech
paper on how to do thispaper on how to do this
State DiagramsState Diagrams
UI MockupsUI Mockups – standard process in DoD and auto– standard process in DoD and auto
industry – (Not in my kitchen)industry – (Not in my kitchen)
StoryboardsStoryboards
PrototypesPrototypes
– 9 –
Functional Reqs:
What should it do?
Functional Reqs:
What should it do?
Developer
connect mysql
database to
asp .net web
…
Client
sell my
beautifu
l jewelry
Customer of client
find a
cool
ring on
sale
– 10 –
Client
sell my
beautifu
l jewelry
Customer of client
find a
cool
ring on
sale
User-centric: What, not how
Difficult to express
Functional Reqs:
What should it do?
– 11 –
Modeling functional Reqs
Identify user classesIdentify user classes
Example:
jewelry store owner
buyer of jewelry
– 12 –
Modeling functional reqs
Identify user classesIdentify user classes
For each user class identify goalsFor each user class identify goals
Example
Buyer:
search for item
place an order
return an item
– 13 –
Modeling functional reqs
Identify user classesIdentify user classes
For each user class identify goalsFor each user class identify goals
For each user class/goalFor each user class/goal
 Describe how the user will use the system
– 14 –
Example
Name: Order jewelry from a catalogName: Order jewelry from a catalog
Actors: Customer Alice, Sales rep Bob,Actors: Customer Alice, Sales rep Bob,
Stockroom, Shipping dept.Stockroom, Shipping dept.
Initiator: AliceInitiator: Alice
Scenario:Scenario:
1.1. Alice calls companyAlice calls company
2.2. Bob answers phoneBob answers phone
3.3. Alice says she wants to place an order fromAlice says she wants to place an order from
the catalogue.the catalogue.
4.4. Bob asks how the order will be paid.Bob asks how the order will be paid.
5.5. …… USE CASE
– 15 –
Forms of Use Cases
Casual –Casual – “user stories”“user stories”
Fully dressed use cases – preconditions, post-Fully dressed use cases – preconditions, post-
conditions, actors, stakeholders, etc.conditions, actors, stakeholders, etc.
…
these are cultural issues
but in agile methods, less is more
– 16 –
Key aspects of Use Case
NameName: what we call this use case: what we call this use case
ActorsActors: entities that interact with system (typically: entities that interact with system (typically
people but also can be other systems)people but also can be other systems)
InitiatorInitiator: actor who initiates the use case: actor who initiates the use case
ScenarioScenario: sequence of steps users take and how: sequence of steps users take and how
system respondssystem responds
– 17 –
Example: Main scenario
Name: Order jewelry from a catalogName: Order jewelry from a catalog
Actors: Customer Alice, Sales rep Bob, Stockroom, ShippingActors: Customer Alice, Sales rep Bob, Stockroom, Shipping
dept.dept.
Initiator: AliceInitiator: Alice
Scenario:Scenario:
1.1. Alice calls companyAlice calls company
2.2. Bob answers phoneBob answers phone
3.3. Alice says she wants to order item X.Alice says she wants to order item X.
4.4. Bob checks stockroom for availability.Bob checks stockroom for availability.
5.5. Stockroom says it is available.Stockroom says it is available.
6.6. ……
– 18 –
Main scenario with branchesMain scenario with branches
Name: Order jewelry from a catalogName: Order jewelry from a catalog
Actors: Customer Alice, Sales rep Bob, Stockroom, ShippingActors: Customer Alice, Sales rep Bob, Stockroom, Shipping
dept.dept.
Initiator: AliceInitiator: Alice
Scenario:Scenario:
1.1. Alice calls companyAlice calls company
2.2. Bob answers phoneBob answers phone
3.3. Alice says she want to order item D23 from page 5 theAlice says she want to order item D23 from page 5 the
catalogue.catalogue.
4.4. Bob checks stockroom for availability.Bob checks stockroom for availability.
5.5. Stockroom says it is available.Stockroom says it is available.
5a. Stockroom says it is not available. See order out of5a. Stockroom says it is not available. See order out of
stock item use case.stock item use case.
6. ….6. ….
Alternative path can be completed or refer to another
use case.
– 19 –
Use case development
Brainstorm to identify Use CasesBrainstorm to identify Use Cases
Validate/prioritize/ensure consistencyValidate/prioritize/ensure consistency
Elaborate high priority/complex use casesElaborate high priority/complex use cases →→
identify new Use Casesidentify new Use Cases
Repeat until _________________Repeat until _________________
Waterfall: until done – done keeps moving
Agile: until good enough for now
– 20 –
Sequence Diagram -
Alternative
Sequence Diagram -
Alternative
Alice: Customer
Bob: Sales rep Stockroom
call on phone
answers phone
wants to order
…
– 21 –
Example: Pac Man Use Cases
Actor Goal/Title Priority
User Play game 1
User Initialize game 1
User View high scores 3
User Set level 3
User Pause game 2
User Exit game 2
User Save game 3
User Change Controls 4
User Play saved game 3
– 22 –
Elaborated Use Case
Play gamePlay game::
1.1. User choosesUser chooses “Play Game” from main menu.“Play Game” from main menu.
2.2. Start level is displayed with player having 3 livesStart level is displayed with player having 3 lives
3.3. User moves Pac Man left, right, up, down –User moves Pac Man left, right, up, down – (point to(point to
other UC)other UC)
4.4. Pac Man moves to empty space, return to step 3Pac Man moves to empty space, return to step 3
4.a.4.a. Pac Man hits dot but not end of level, 50 pointsPac Man hits dot but not end of level, 50 points
awarded, return to step 3awarded, return to step 3
4.b.4.b. Pac Man hits dot and level ends, 50 points awarded andPac Man hits dot and level ends, 50 points awarded and
new level starts (seenew level starts (see start new level use casestart new level use case))
4.c. Pac Man hits ghost (see4.c. Pac Man hits ghost (see hits ghost use casehits ghost use case))
4.d. Pac Man hits a wall, can4.d. Pac Man hits a wall, can’t move any further in that’t move any further in that
direction, returns to step 3 with new constraintdirection, returns to step 3 with new constraint
etc.etc.
– 23 –
Refined Use Case
Play game:Play game:
1.1. User choosesUser chooses “Play Game” from main menu.“Play Game” from main menu.
2.2. Start levelStart level displayeddisplayed with 3 lives and 0 scorewith 3 lives and 0 score
3.3. Play level (see separate use case)Play level (see separate use case)
4.4. Repeat 3 on successive levels until game overRepeat 3 on successive levels until game over
– 24 –
Refined Use Case (no UI spec)
Play game:Play game:
1.1. User chooses to play gameUser chooses to play game
2.2. First level starts with 3 lives and 0 scoreFirst level starts with 3 lives and 0 score
2.2. Play level (see separate use case)Play level (see separate use case)
3.3. Repeat 3 on successive levels until game overRepeat 3 on successive levels until game over
How do you refine a Use Case??
Talk to user!!
– 25 –
Pac Man Use Cases
Actor Goal Priority
User Play game 1
User Play level 1
User Initialize game 1
User View high scores 3
User Set level 3
User Pause game 2
User Exit game 2
User Save game 3
User Change Controls 4
User Play saved game 3
– 26 –
Agile method: goal stackAgile method: goal stack
highest priority, best modeled
use case, e.g, Play UC
lowest priority, least modeled
use case, e.g., store game history
prioritized
use cases
– 27 –
Uses of use case
RequirementsRequirements::
 Define functional requirements
 Expose business rules (constraints on behavior)
PlanningPlanning: Suggest an iterative strategy: Suggest an iterative strategy
DesignDesign: Validate design models, i.e., does design: Validate design models, i.e., does design
provide for Use Caseprovide for Use Case
TestingTesting: Provide scenarios for validation testing: Provide scenarios for validation testing
– 28 –
Requirement Quality
Specify what not howSpecify what not how
UnambiguousUnambiguous
TestableTestable
FeasibleFeasible
ConsistentConsistent
PrioritizedPrioritized
Traceable – Agile: back to requestorTraceable – Agile: back to requestor
Interative: back to aInterative: back to a
specification #specification #
Agreed upon by customerAgreed upon by customer
How can Use Cases contribute to quality in
functional requirements?
– 29 –
Tools for modeling (functional)
requirements
Tools for modeling (functional)
requirements
Use CasesUse Cases
State DiagramsState Diagrams
UI MockupsUI Mockups
StoryboardsStoryboards
PrototypesPrototypes
good for describing
“flow”
– 30 –
State diagramsState diagrams
Moves to
empty spot
Pac Man has n lives,
score k
moves left, right, up,
down
Hits ghost:
Sound effect
n reduced by 1
Lose level
n=0
n>0
Hits dot:
Sound effect
k increased by 50
k<MAX
Win level
Play level: initialize n=3 (#lives), k=0 (level score)
k<0
– 31 –
Tools for modeling (functional)
requirements
Tools for modeling (functional)
requirements
Use CasesUse Cases
State DiagramsState Diagrams
UI MockupsUI Mockups
StoryboardsStoryboards
PrototypesPrototypes
good for describing “flow”
Better for state machines
– 32 –
UI Mock UP
• UI Mock Up (or even full design) is often
considered part of the requirements process
because it summarizes the ways a user can
interact with the system.
• UI design can also address non functional
requirements, e.g., look and feel
– 33 –
Storyboards
Good for communicating “look and feel” inGood for communicating “look and feel” in
addition to “flow”addition to “flow”
 (again addressing non-functional requirements)
 (Indian Jones vs Casablanca movies)
 Missing in my GPS experience
– 34 –
Tools for modeling (functional)
requirements
Use CasesUse Cases
State DiagramsState Diagrams
UI MockupsUI Mockups
StoryboardsStoryboards
PrototypesPrototypes
these are special cases of prototypes
– 35 –
Prototypes
Sample level with simplified art, minimal features
Use fast prototyping tools to clarify functionality, look and feel, etc.
– 36 –
Which model should you use?
All that are appropriate!
Invent new ones as needed!
– 37 –
Requirements for games
Game Designer
Management
Marketing
Users
…
Software engineers
– 38 –
Top down game specificationTop down game specification
High conceptHigh concept
Competitive analysisCompetitive analysis
Main characterMain character
Game MechanicsGame Mechanics
Underlying modelsUnderlying models
Major featuresMajor features
Look and feelLook and feel
ScoringScoring
UIUI
etc.etc.
Traditional
Game Design Document
“Game Bible”
– 39 –
Bottom up game specificationBottom up game specification
Use casesUse cases
State diagramsState diagrams
UI mock upsUI mock ups
StoryboardsStoryboards
PrototypesPrototypes
Make your vision “concrete”
Discover technical requirements:
• Display sprite
• Move sprite
• Detect collision
• etc.
Address feasibility
Suggest iterative design/development
strategy
– 40 –
Agile method: goal stack
initial top goals – risks, proof of conceptinitial top goals – risks, proof of concept
move
sprite
display
sprite
level 0
prioritized
use cases,
proofs of concept
proof of concept to
understand feasibility
use case

More Related Content

PPT
Lecture 12 requirements modeling - (system analysis)
PPT
PPT
User Interface Design in Software Engineering SE15
PPT
Software Process Improvement
PPTX
Overview of UML Diagrams
PDF
Requirement Engineering
PPTX
Design concept -Software Engineering
PPTX
Design Concepts in Software Engineering-1.pptx
Lecture 12 requirements modeling - (system analysis)
User Interface Design in Software Engineering SE15
Software Process Improvement
Overview of UML Diagrams
Requirement Engineering
Design concept -Software Engineering
Design Concepts in Software Engineering-1.pptx

What's hot (20)

PDF
Software engineering lecture notes
PPTX
Ch8-Software Engineering 9
PPTX
Ch7-Software Engineering 9
PPTX
Risk Mitigation, Monitoring and Management Plan (RMMM)
PPTX
Design Concept software engineering
PPTX
Context model
PPT
SE CHAPTER 2 PROCESS MODELS
PPTX
Use case diagram
PPTX
Software architecture
PPTX
RMMM Plan
PPT
Lecture 2 introduction to Software Engineering 1
PPT
3.2 The design model & Architectural design.ppt
PPT
Analysis modeling
PPTX
Data Designs (Software Engg.)
PDF
Software Process Models
PPT
Use Case Diagram
PPTX
Algorithmic Software Cost Modeling
PDF
Domain specific Software Architecture
PPTX
Ch3. agile sw dev
PPTX
Designing Techniques in Software Engineering
Software engineering lecture notes
Ch8-Software Engineering 9
Ch7-Software Engineering 9
Risk Mitigation, Monitoring and Management Plan (RMMM)
Design Concept software engineering
Context model
SE CHAPTER 2 PROCESS MODELS
Use case diagram
Software architecture
RMMM Plan
Lecture 2 introduction to Software Engineering 1
3.2 The design model & Architectural design.ppt
Analysis modeling
Data Designs (Software Engg.)
Software Process Models
Use Case Diagram
Algorithmic Software Cost Modeling
Domain specific Software Architecture
Ch3. agile sw dev
Designing Techniques in Software Engineering
Ad

Viewers also liked (15)

PDF
JAD Guidelines
DOCX
3 d modelling_task_sheet_2014_yr12
PPTX
Sadchap3
PPT
Supermarket delivery system
PPTX
Software Engineering- Crisis and Process Models
PDF
Requirements Engineering
PPT
Supermarkets
PPTX
Ch5- Software Engineering 9
PDF
software engineering
PDF
software development, process model, requirement engineering, srs, structured...
PDF
A Complete Model Of The Supermarket Business - Presentation
PPT
Requirements engineering process in software engineering
PDF
Supermarket Business Plan
PPTX
System Analysis and Design
PPTX
Introduction To Software Engineering
JAD Guidelines
3 d modelling_task_sheet_2014_yr12
Sadchap3
Supermarket delivery system
Software Engineering- Crisis and Process Models
Requirements Engineering
Supermarkets
Ch5- Software Engineering 9
software engineering
software development, process model, requirement engineering, srs, structured...
A Complete Model Of The Supermarket Business - Presentation
Requirements engineering process in software engineering
Supermarket Business Plan
System Analysis and Design
Introduction To Software Engineering
Ad

Similar to Requirement modeling (20)

PPTX
Lecture_four-_Requirements_Modeling (1).pptx
PDF
6-UseCfgfhgfhgfhgfhgfhfhhaseActivity.pdf
PPTX
Unit2 Software engineering UPTU
PPT
Analysis-Models jjjkkkkjgffffffttui3k3k3j3n
PDF
Day01 01 software requirement concepts
PPT
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
PPT
Use case modeling
PPT
PPT
Analysis modeling & scenario based modeling
PDF
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
PDF
User Requirements, Functional and Non-Functional Requirements
PPT
UseCase.ppt software engineering use3 cases
PPT
chapter_5_5.ppt
PPTX
Software engineering
PDF
Non-functional requirements
PPT
System Modelling.ppt
PDF
Software Modeling and Design for Real-Time Embedded Systems
PDF
SE_RE-II-CH5 (3).pdf
PPTX
Pressman_Pressman_SoftwareEngineeringPA_9e_Ch008_PPT.pptx
PDF
Requirement Engineering.pdf
Lecture_four-_Requirements_Modeling (1).pptx
6-UseCfgfhgfhgfhgfhgfhfhhaseActivity.pdf
Unit2 Software engineering UPTU
Analysis-Models jjjkkkkjgffffffttui3k3k3j3n
Day01 01 software requirement concepts
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
Use case modeling
Analysis modeling & scenario based modeling
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
User Requirements, Functional and Non-Functional Requirements
UseCase.ppt software engineering use3 cases
chapter_5_5.ppt
Software engineering
Non-functional requirements
System Modelling.ppt
Software Modeling and Design for Real-Time Embedded Systems
SE_RE-II-CH5 (3).pdf
Pressman_Pressman_SoftwareEngineeringPA_9e_Ch008_PPT.pptx
Requirement Engineering.pdf

More from Abdul Basit (20)

PDF
Atlassian git cheatsheet
PDF
Github git-cheat-sheet
PPT
White box testing
PPT
Web testing
PPT
Testing the documentation
PPT
Testing software security
PPT
Testing fundamentals
PPT
Test planning
PPT
Test cases planning
PPT
Software Testing
PPT
Software Compatibility testing
PPT
Black box testing
PPT
Software Automated testing and tools
PPT
Why test software
PDF
Git Developer Cheatsheet
PPT
Static white box testing lecture 12
PPT
Software testing lecture 10
PPT
Software testing lecture 9
PPT
Software quality assurance lecture 1
PPT
Software measurement lecture 7
Atlassian git cheatsheet
Github git-cheat-sheet
White box testing
Web testing
Testing the documentation
Testing software security
Testing fundamentals
Test planning
Test cases planning
Software Testing
Software Compatibility testing
Black box testing
Software Automated testing and tools
Why test software
Git Developer Cheatsheet
Static white box testing lecture 12
Software testing lecture 10
Software testing lecture 9
Software quality assurance lecture 1
Software measurement lecture 7

Recently uploaded (20)

PDF
01-Introduction-to-Information-Management.pdf
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PPTX
Cell Structure & Organelles in detailed.
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Computing-Curriculum for Schools in Ghana
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
Institutional Correction lecture only . . .
PPTX
master seminar digital applications in india
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Insiders guide to clinical Medicine.pdf
PPTX
Pharma ospi slides which help in ospi learning
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Microbial diseases, their pathogenesis and prophylaxis
01-Introduction-to-Information-Management.pdf
Module 4: Burden of Disease Tutorial Slides S2 2025
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
Cell Structure & Organelles in detailed.
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Computing-Curriculum for Schools in Ghana
2.FourierTransform-ShortQuestionswithAnswers.pdf
FourierSeries-QuestionsWithAnswers(Part-A).pdf
VCE English Exam - Section C Student Revision Booklet
Institutional Correction lecture only . . .
master seminar digital applications in india
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPH.pptx obstetrics and gynecology in nursing
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Insiders guide to clinical Medicine.pdf
Pharma ospi slides which help in ospi learning
Supply Chain Operations Speaking Notes -ICLT Program
Microbial diseases, their pathogenesis and prophylaxis

Requirement modeling

  • 2. – 2 – Modeling Requirements:Modeling Requirements: from customer views to something translatablefrom customer views to something translatable to softwareto software echniques for developing functional requirements What the software is supposed to do!
  • 3. – 3 – Requirements modeling We build models in requirements analysis or/andWe build models in requirements analysis or/and specifications to understandspecifications to understand  current systems or business processes which we are trying to automate  how users will use a new system
  • 4. – 4 – The software requirements document The software requirements document is the officialThe software requirements document is the official statement of what is required of the systemstatement of what is required of the system developers.developers. Should include both a definition of userShould include both a definition of user requirements and a specification of the systemrequirements and a specification of the system requirements.requirements. It is NOT a design document. As far as possible, itIt is NOT a design document. As far as possible, it should set WHAT the system should do rathershould set WHAT the system should do rather than HOW it should do it.than HOW it should do it. 4
  • 5. – 5 – Agile methods and requirements Many agile methods argue that producing aMany agile methods argue that producing a requirements document is a waste of time asrequirements document is a waste of time as requirements change so quickly.requirements change so quickly. The document is therefore always out of date.The document is therefore always out of date. Methods such as XP use incremental requirementsMethods such as XP use incremental requirements engineering and express requirements asengineering and express requirements as ‘user‘user stories’stories’ This is practical for business systems and gamesThis is practical for business systems and games but problematic for systems that require a lot ofbut problematic for systems that require a lot of pre-delivery analysis (e.g. critical systems) orpre-delivery analysis (e.g. critical systems) or systems developed by several teams, e.g.,systems developed by several teams, e.g., large government systems.large government systems. 5
  • 6. – 6 – Requirements document variability Information in requirements document depends onInformation in requirements document depends on the type of system and the approach tothe type of system and the approach to development used.development used. Systems developed incrementally will, typically,Systems developed incrementally will, typically, have less detail in the requirements document.have less detail in the requirements document. Requirements documents standards have beenRequirements documents standards have been designed e.g. IEEE standard. These are mostlydesigned e.g. IEEE standard. These are mostly applicable to the requirements for large systemsapplicable to the requirements for large systems engineering projects.engineering projects. 6
  • 7. – 7 – Requirements and Design In principle, requirements should state what theIn principle, requirements should state what the system should do and the design shouldsystem should do and the design should describe how it does this.describe how it does this. In practice, requirements and design areIn practice, requirements and design are inseparableinseparable  A system architecture may be designed to structure the requirements;  The system may inter-operate with other systems that generate design requirements;  The use of a specific architecture to satisfy non-functional requirements may be a domain requirement.  This may be the consequence of a regulatory requirement.
  • 8. – 8 – Tools for modeling requirements Use CasesUse Cases – in late 70s, my advisor wrote a tech– in late 70s, my advisor wrote a tech paper on how to do thispaper on how to do this State DiagramsState Diagrams UI MockupsUI Mockups – standard process in DoD and auto– standard process in DoD and auto industry – (Not in my kitchen)industry – (Not in my kitchen) StoryboardsStoryboards PrototypesPrototypes
  • 9. – 9 – Functional Reqs: What should it do? Functional Reqs: What should it do? Developer connect mysql database to asp .net web … Client sell my beautifu l jewelry Customer of client find a cool ring on sale
  • 10. – 10 – Client sell my beautifu l jewelry Customer of client find a cool ring on sale User-centric: What, not how Difficult to express Functional Reqs: What should it do?
  • 11. – 11 – Modeling functional Reqs Identify user classesIdentify user classes Example: jewelry store owner buyer of jewelry
  • 12. – 12 – Modeling functional reqs Identify user classesIdentify user classes For each user class identify goalsFor each user class identify goals Example Buyer: search for item place an order return an item
  • 13. – 13 – Modeling functional reqs Identify user classesIdentify user classes For each user class identify goalsFor each user class identify goals For each user class/goalFor each user class/goal  Describe how the user will use the system
  • 14. – 14 – Example Name: Order jewelry from a catalogName: Order jewelry from a catalog Actors: Customer Alice, Sales rep Bob,Actors: Customer Alice, Sales rep Bob, Stockroom, Shipping dept.Stockroom, Shipping dept. Initiator: AliceInitiator: Alice Scenario:Scenario: 1.1. Alice calls companyAlice calls company 2.2. Bob answers phoneBob answers phone 3.3. Alice says she wants to place an order fromAlice says she wants to place an order from the catalogue.the catalogue. 4.4. Bob asks how the order will be paid.Bob asks how the order will be paid. 5.5. …… USE CASE
  • 15. – 15 – Forms of Use Cases Casual –Casual – “user stories”“user stories” Fully dressed use cases – preconditions, post-Fully dressed use cases – preconditions, post- conditions, actors, stakeholders, etc.conditions, actors, stakeholders, etc. … these are cultural issues but in agile methods, less is more
  • 16. – 16 – Key aspects of Use Case NameName: what we call this use case: what we call this use case ActorsActors: entities that interact with system (typically: entities that interact with system (typically people but also can be other systems)people but also can be other systems) InitiatorInitiator: actor who initiates the use case: actor who initiates the use case ScenarioScenario: sequence of steps users take and how: sequence of steps users take and how system respondssystem responds
  • 17. – 17 – Example: Main scenario Name: Order jewelry from a catalogName: Order jewelry from a catalog Actors: Customer Alice, Sales rep Bob, Stockroom, ShippingActors: Customer Alice, Sales rep Bob, Stockroom, Shipping dept.dept. Initiator: AliceInitiator: Alice Scenario:Scenario: 1.1. Alice calls companyAlice calls company 2.2. Bob answers phoneBob answers phone 3.3. Alice says she wants to order item X.Alice says she wants to order item X. 4.4. Bob checks stockroom for availability.Bob checks stockroom for availability. 5.5. Stockroom says it is available.Stockroom says it is available. 6.6. ……
  • 18. – 18 – Main scenario with branchesMain scenario with branches Name: Order jewelry from a catalogName: Order jewelry from a catalog Actors: Customer Alice, Sales rep Bob, Stockroom, ShippingActors: Customer Alice, Sales rep Bob, Stockroom, Shipping dept.dept. Initiator: AliceInitiator: Alice Scenario:Scenario: 1.1. Alice calls companyAlice calls company 2.2. Bob answers phoneBob answers phone 3.3. Alice says she want to order item D23 from page 5 theAlice says she want to order item D23 from page 5 the catalogue.catalogue. 4.4. Bob checks stockroom for availability.Bob checks stockroom for availability. 5.5. Stockroom says it is available.Stockroom says it is available. 5a. Stockroom says it is not available. See order out of5a. Stockroom says it is not available. See order out of stock item use case.stock item use case. 6. ….6. …. Alternative path can be completed or refer to another use case.
  • 19. – 19 – Use case development Brainstorm to identify Use CasesBrainstorm to identify Use Cases Validate/prioritize/ensure consistencyValidate/prioritize/ensure consistency Elaborate high priority/complex use casesElaborate high priority/complex use cases →→ identify new Use Casesidentify new Use Cases Repeat until _________________Repeat until _________________ Waterfall: until done – done keeps moving Agile: until good enough for now
  • 20. – 20 – Sequence Diagram - Alternative Sequence Diagram - Alternative Alice: Customer Bob: Sales rep Stockroom call on phone answers phone wants to order …
  • 21. – 21 – Example: Pac Man Use Cases Actor Goal/Title Priority User Play game 1 User Initialize game 1 User View high scores 3 User Set level 3 User Pause game 2 User Exit game 2 User Save game 3 User Change Controls 4 User Play saved game 3
  • 22. – 22 – Elaborated Use Case Play gamePlay game:: 1.1. User choosesUser chooses “Play Game” from main menu.“Play Game” from main menu. 2.2. Start level is displayed with player having 3 livesStart level is displayed with player having 3 lives 3.3. User moves Pac Man left, right, up, down –User moves Pac Man left, right, up, down – (point to(point to other UC)other UC) 4.4. Pac Man moves to empty space, return to step 3Pac Man moves to empty space, return to step 3 4.a.4.a. Pac Man hits dot but not end of level, 50 pointsPac Man hits dot but not end of level, 50 points awarded, return to step 3awarded, return to step 3 4.b.4.b. Pac Man hits dot and level ends, 50 points awarded andPac Man hits dot and level ends, 50 points awarded and new level starts (seenew level starts (see start new level use casestart new level use case)) 4.c. Pac Man hits ghost (see4.c. Pac Man hits ghost (see hits ghost use casehits ghost use case)) 4.d. Pac Man hits a wall, can4.d. Pac Man hits a wall, can’t move any further in that’t move any further in that direction, returns to step 3 with new constraintdirection, returns to step 3 with new constraint etc.etc.
  • 23. – 23 – Refined Use Case Play game:Play game: 1.1. User choosesUser chooses “Play Game” from main menu.“Play Game” from main menu. 2.2. Start levelStart level displayeddisplayed with 3 lives and 0 scorewith 3 lives and 0 score 3.3. Play level (see separate use case)Play level (see separate use case) 4.4. Repeat 3 on successive levels until game overRepeat 3 on successive levels until game over
  • 24. – 24 – Refined Use Case (no UI spec) Play game:Play game: 1.1. User chooses to play gameUser chooses to play game 2.2. First level starts with 3 lives and 0 scoreFirst level starts with 3 lives and 0 score 2.2. Play level (see separate use case)Play level (see separate use case) 3.3. Repeat 3 on successive levels until game overRepeat 3 on successive levels until game over How do you refine a Use Case?? Talk to user!!
  • 25. – 25 – Pac Man Use Cases Actor Goal Priority User Play game 1 User Play level 1 User Initialize game 1 User View high scores 3 User Set level 3 User Pause game 2 User Exit game 2 User Save game 3 User Change Controls 4 User Play saved game 3
  • 26. – 26 – Agile method: goal stackAgile method: goal stack highest priority, best modeled use case, e.g, Play UC lowest priority, least modeled use case, e.g., store game history prioritized use cases
  • 27. – 27 – Uses of use case RequirementsRequirements::  Define functional requirements  Expose business rules (constraints on behavior) PlanningPlanning: Suggest an iterative strategy: Suggest an iterative strategy DesignDesign: Validate design models, i.e., does design: Validate design models, i.e., does design provide for Use Caseprovide for Use Case TestingTesting: Provide scenarios for validation testing: Provide scenarios for validation testing
  • 28. – 28 – Requirement Quality Specify what not howSpecify what not how UnambiguousUnambiguous TestableTestable FeasibleFeasible ConsistentConsistent PrioritizedPrioritized Traceable – Agile: back to requestorTraceable – Agile: back to requestor Interative: back to aInterative: back to a specification #specification # Agreed upon by customerAgreed upon by customer How can Use Cases contribute to quality in functional requirements?
  • 29. – 29 – Tools for modeling (functional) requirements Tools for modeling (functional) requirements Use CasesUse Cases State DiagramsState Diagrams UI MockupsUI Mockups StoryboardsStoryboards PrototypesPrototypes good for describing “flow”
  • 30. – 30 – State diagramsState diagrams Moves to empty spot Pac Man has n lives, score k moves left, right, up, down Hits ghost: Sound effect n reduced by 1 Lose level n=0 n>0 Hits dot: Sound effect k increased by 50 k<MAX Win level Play level: initialize n=3 (#lives), k=0 (level score) k<0
  • 31. – 31 – Tools for modeling (functional) requirements Tools for modeling (functional) requirements Use CasesUse Cases State DiagramsState Diagrams UI MockupsUI Mockups StoryboardsStoryboards PrototypesPrototypes good for describing “flow” Better for state machines
  • 32. – 32 – UI Mock UP • UI Mock Up (or even full design) is often considered part of the requirements process because it summarizes the ways a user can interact with the system. • UI design can also address non functional requirements, e.g., look and feel
  • 33. – 33 – Storyboards Good for communicating “look and feel” inGood for communicating “look and feel” in addition to “flow”addition to “flow”  (again addressing non-functional requirements)  (Indian Jones vs Casablanca movies)  Missing in my GPS experience
  • 34. – 34 – Tools for modeling (functional) requirements Use CasesUse Cases State DiagramsState Diagrams UI MockupsUI Mockups StoryboardsStoryboards PrototypesPrototypes these are special cases of prototypes
  • 35. – 35 – Prototypes Sample level with simplified art, minimal features Use fast prototyping tools to clarify functionality, look and feel, etc.
  • 36. – 36 – Which model should you use? All that are appropriate! Invent new ones as needed!
  • 37. – 37 – Requirements for games Game Designer Management Marketing Users … Software engineers
  • 38. – 38 – Top down game specificationTop down game specification High conceptHigh concept Competitive analysisCompetitive analysis Main characterMain character Game MechanicsGame Mechanics Underlying modelsUnderlying models Major featuresMajor features Look and feelLook and feel ScoringScoring UIUI etc.etc. Traditional Game Design Document “Game Bible”
  • 39. – 39 – Bottom up game specificationBottom up game specification Use casesUse cases State diagramsState diagrams UI mock upsUI mock ups StoryboardsStoryboards PrototypesPrototypes Make your vision “concrete” Discover technical requirements: • Display sprite • Move sprite • Detect collision • etc. Address feasibility Suggest iterative design/development strategy
  • 40. – 40 – Agile method: goal stack initial top goals – risks, proof of conceptinitial top goals – risks, proof of concept move sprite display sprite level 0 prioritized use cases, proofs of concept proof of concept to understand feasibility use case