Lecture 5
Lecture 5
Ebrahim Karami
ENGI-9874
Software Specification and Design
Outline
Today:
Motivation: Software Lifecycle
Requirements elicitation challenges
Problem statement
Requirements specification
Types of requirements
Validating requirements
Software Lifecycle Definition
Software lifecycle
Models for the development of software
Set of activities and their dependency relationships to each
other to support the development of a software system
Examples:
Analysis, design, implementation, testing
Design depends on analysis, testing can be done before
implementation
A Typical Example
of Software Lifecycle Activities
Use Case
Model
Software Lifecycle Activities
...and their models
Expressed in
terms of
Expressed in Structured
terms of by
Implemented by
Expressed in Structured Realized by
terms of by
class...
class...
class...
Use Case Application Solution
Domain Sub- Source
Model Domain
Objects systems Code
Objects
Software Lifecycle Activities
...and their models
Implemented by
Expressed in Structured Realized by Verified
terms of by
By
class...
class... ?
class... ?
class....
Use Case Application Solution
Domain Sub- Source Test
Model Domain
Objects systems Code Case
Objects
Model
What is the best Software Lifecycle?
Typical Lifecycle questions:
Which activities should I select when I develop software?
What are the dependencies between activities?
How should I schedule the activities?
For now we assume we have a set of predefined activities:
Requirements Elicitation, Analysis, System Design, Detailed
Design, Implementation, Testing
Today we focus on the activity Requirements Elicitation.
Software Lifecycle Activities
Requirements System Detailed Implemen-
Analysis Testing
Elicitation Design Design tation
Implemented
Expressed in By
Structured By Realized By
Terms Of Verified
By
class...
class...
class... ?
class.... ?
Use Case Application Solution
Domain Subsystems Source Test
Model Domain
Objects Code Case Model
Objects
Techniques to elicit Requirements
Bridging the gap between end user and developer:
Questionnaires: Asking the end user a list of pre-
selected questions
Task Analysis: Observing end users in their operational
environment
Scenarios: Describe the use of the system as a series of
interactions between a specific end user and the system
Use cases: Abstractions that describe a class of
scenarios.
Scenarios
Scenario
“that which is pinned to the scenery“ (Italian)
A synthetic description of an event or series of actions and
events
A textual description of the usage of a system. The
description is written from an end user’s point of view
A scenario can include text, video, pictures and story boards.
It usually also contains details about the work place, social
situations and resource constraints.
Scenario-Based Design
Focuses on concrete descriptions and particular
instances, not abstract generic ideas
It is work driven not technology driven
It is open-ended, it does not try to be complete
It is informal, not formal and rigorous
Is about envisioned outcomes, not about specified
outcomes.
Types of Scenarios
As-is scenario:
Describes a current situation. Commonly used in re-engineering
projects. The user describes the system
Example: Description of Letter-Chess
Visionary scenario:
Describes a future system
Example: Home Computer of the Future
Often used in greenfield engineering and interface engineering
projects
Example: Description of an interactive internet-based Tic Tac Toe game
tournament
Visionary scenarios are often not done by the user or developer
alone.
Additional Types of Scenarios (2)
Evaluation scenario:
Description of a user task against which the system is to
be evaluated.
Example: Four users (two novice, two experts) play in a TicTac
Toe tournament in ARENA.
Training scenario:
A description of the step by step instructions that guide a
novice user through a system
Example: How to play Tic Tac Toe in the ARENA Game
Framework.
Scenario example: Warehouse on Fire
Bob, driving down main street in his patrol car notices smoke coming
out of a warehouse. His partner, Alice, reports the emergency from her
car.
Alice enters the address of the building into her wearable computer , a
brief description of its location (i.e., north west corner), and an
emergency level.
She confirms her input and waits for an acknowledgment;
John, the dispatcher, is alerted to the emergency by a beep of his
workstation. He reviews the information submitted by Alice and
acknowledges the report. He allocates a fire unit and sends the
estimated arrival time (ETA) to Alice.
Alice received the acknowledgment and the ETA..
Observations about the Warehouse on Fire
Scenario
It is a concrete scenario
It describes a single instance of reporting a fire incident
It does not describe all possible situations in which a fire
can be reported
Participating actors
Bob, Alice and John.
After the scenarios are formulated
Find all the use cases in the scenario that specify all instances of
how to report a fire
Example from the Warehouse on Fire scenario:
“Bob… notices smoke coming out of a warehouse. His partner, Alice, reports the emergency from her
car”
“Report Emergency“is a candidate for a use case
Describe each of these use cases in more detail
Participating actors
Describe the entry condition
Describe the flow of events
Describe the exit condition
Describe exceptions
Describe nonfunctional requirements
The set of all use cases is the basis for the Functional Model(see
next lecture)
Requirements Elicitation: Difficulties and
Challenges
Accurate communication about the domain and the
system
People with different backgrounds must collaborate to
bridge the gap between end users and developers
Client and end users have application domain knowledge
Developers have solution domain knowledge
Requirements Requirements
elicitation Specification
:nonfunctional
requirements
:functional
model
:dynamic model
Constraints or
Quality requirements Pseudo requirements
Types of Nonfunctional Requirements
Usability
Reliability
Robustness
Safety
Performance
Response time
Scalability
Throughput
Availability
Supportability
Adaptability
Maintainability
Constraints or
Quality requirements Pseudo requirements
Types of Nonfunctional Requirements
Usability Implementation
Reliability Interface
Robustness Operation
Safety
Packaging
Performance
Legal
Response time
Licensing (GPL, LGPL)
Scalability
Certification
Throughput
Regulation
Availability
Supportability
Adaptability
Maintainability Constraints or
Quality requirements Pseudo requirements
Types of Nonfunctional Requirements
Usability Implementation
Reliability Interface
Robustness Operation
Safety
Packaging
Performance
Legal
Response time
Licensing (GPL, LGPL)
Scalability
Certification
Throughput
Regulation
Availability
Supportability
Adaptability
Maintainability Constraints or
Quality requirements Pseudo requirements
Some Quality Requirements Definitions
Usability
The ease with which actors can perform a function in a system
Usability is one of the most frequently misused terms (“The
system is easy to use”)
Usability must be measurable, otherwise it is marketing
Example: Specification of the number of steps – the measure! - to perform
a internet-based purchase with a web browser
Robustness: The ability of a system to maintain a function
even if the user enters a wrong input
even if there are changes in the environment
Example: The system can tolerate temperatures up to 90 C