Professional Documents
Culture Documents
6
Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools
8
Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools
9
Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools
11
Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools
12
Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools
13
Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools
14
Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools
Typical Mistakes
• Noise = the presence of text that • Wishful thinking = text that defines
carries no relevant information to a feature that cannot possibly be
any feature of the problem validated
• Silence = a feature that is not • Jigsaw puzzles = e.g., distributing
covered by any text requirements across a document
• Over-specification = text that and then cross-referencing
describes a feature of the solution, • Inconsistent terminology =
rather than the problem inventing and then changing
• Contradiction = text that defines a terminology
single feature in a number of • Putting the onus on the
incompatible ways development staff = i.e. making the
• Ambiguity = text that can be reader work hard to decipher the
interpreted in >=2 different ways intent
• Forward reference = text that refers • Writing for the hostile reader (fewer
to a feature yet to be defined of these exist than friendly ones)
Source: Steve Easterbrook, U. of Toronto
20
Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools
21
Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools
• Feasible
• Needed
• Testable
22
Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools
• ARM
• Automated Requirement Measurement Tool
http://www.stcsig.org/quality/newsletters/NL0603/NL0603_Doc_Value-pf.html
• TIGER Pro
• Tool to Ingest and Elucidate Requirements
• http://www.therightrequirement.com/TigerPro/TigerPro.html
23
Requirements Specification with
the IEEE 830 and IEEE 29148
Standards
2
Requirements Specifications IEEE 830-1998 Standard IEEE 830 and ISO/IEC 12207 ISO/IEC/IEEE 29148:2011
4
Requirements Specifications IEEE 830-1998 Standard IEEE 830 and ISO/IEC 12207 ISO/IEC/IEEE 29148:2011
5
Requirements Specifications IEEE 830-1998 Standard IEEE 830 and ISO/IEC 12207 ISO/IEC/IEEE 29148:2011
6
Requirements Specifications IEEE 830-1998 Standard IEEE 830 and ISO/IEC 12207 ISO/IEC/IEEE 29148:2011
7
Requirements Specifications IEEE 830-1998 Standard IEEE 830 and ISO/IEC 12207 ISO/IEC/IEEE 29148:2011
• Contents of SRS
• Introduction
• General description of the software product
• Specific requirements (detailed)
• Additional information such as appendixes and index, if necessary
9
Requirements Specifications IEEE 830-1998 Standard IEEE 830 and ISO/IEC 12207 ISO/IEC/IEEE 29148:2011
• Table of Contents •Describe external interfaces: system, user, hardware, software, communication
•Describe constraints: memory, operational, site adaptation
• 2. Overall Description •Include the Use Case Diagram and supporting narrative
(identify actors and use cases)
•Include Data Flow Diagram if appropriate
• 2.1 Product Perspective
• 2.2 Product Functions •Describe and justify technical skills
and capabilities of each user class
• 2.3 User Characteristics
• 2.4 Constraints
• 2.5 Assumptions and Dependencies
• 3. Specific Requirements •Describe other constraints that will limit developer’s
• 4. Appendices options; e.g., regulatory policies; target platform,
database, network software and protocols, development
• 5. Index standards requirements
Requirements Specifications IEEE 830-1998 Standard IEEE 830 and ISO/IEC 12207 ISO/IEC/IEEE 29148:2011
• 2. Overall Description
those requirements and testers to verify
requirements
• 4. Appendices
• 5. Index
Requirements Specifications IEEE 830-1998 Standard IEEE 830 and ISO/IEC 12207 ISO/IEC/IEEE 29148:2011
• 3.2 Functions
•Include:
• 3.3 Performance Requirements a) Types of information used
b) Data entities and their relationships
• 3.4 Logical Database Requirements
• 3.5 Design Constraints •Should include:
a) Standards compliance
• 3.6 Software System Quality Attributes b) Accounting & Auditing procedures
• 3.7 Object Oriented Models •The main body of requirements organized in a variety of
• 4. Appendices possible ways:
a) Architecture Specification
14
Requirements Specifications IEEE 830-1998 Standard IEEE 830 and ISO/IEC 12207 ISO/IEC/IEEE 29148:2011
15
Requirements Specifications IEEE 830-1998 Standard IEEE 830 and ISO/IEC 12207 ISO/IEC/IEEE 29148:2011
ISO/IEC/IEEE 29148:2011
• ISO/IEC/IEEE 29148:2011: Systems and software
engineering — Life cycle processes — Requirements
engineering
• http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6146379
• This International Standard provides a unified treatment of
the processes and products involved in engineering
requirements throughout the life cycle of systems and
software.
• Harmonizes IEEE 830, SWEBOK, and 7 other standards.
• More emphasis on characteristics of good requirements, RE
activities and processes, operations (and operation context),
and different information items (including their structures)
such as specification of requirements for stakeholders,
systems and software.
• Complies with ISO/IEC 15288 and ISO/IEC 12207
17
Requirements Specifications IEEE 830-1998 Standard IEEE 830 and ISO/IEC 12207 ISO/IEC/IEEE 29148:2011
18
Requirements Specifications IEEE 830-1998 Standard IEEE 830 and ISO/IEC 12207 ISO/IEC/IEEE 29148:2011
19
Requirements Specifications IEEE 830-1998 Standard IEEE 830 and ISO/IEC 12207 ISO/IEC/IEEE 29148:2011
20
Tutorials and Tools
• http://plantuml.com/
• http://www.visual-paradigm.com
21
Tutorial 01 SEG3101 / Fall 2009
a. The electronic library system shall prevent a borrower from borrowing more than 5 books.
b. The electronic library system shall create a backup of the list of daily loans at 02:00 and allow the
administrator to view this list at will.
c. The electronic library system shall ensure that only authorized members can borrow books.
d. The borrower shall renew her membership every year.
e. Upon request from an authorized borrower, the electronic library system shall display the list of
currently borrowed books within 3 seconds.
f. The electronic library system shall provide foolproof identification of all borrowers to prevent
any unauthorized access to their account.
g. The borrower may use the electronic library system to query the availability of books by
providing the author’s name and to print the resulting list.
h. The electronic library system shall send an email to the borrower when her hold is ready for
pickup.
2. Are these requirements for an ATM system correctly written? If not, explain why and suggest a better
way to write them. Assume that readers know that an ATM is an Automated Teller Machine.
a. Often an ATM user may usually perform multiple transactions during a single account session.
b. The price of the ATM shall not exceed $30,000 and allow the maintainer to request a notification
be posted to indicate to all ATM users that the system is about to become unavailable.
c. The ATM user shall be able to view the current account balance after an update within 5 seconds.
3. Are these requirements correctly written? If not, explain why and suggest a better way to write them.
a. The elevator control software shall position the elevator cabin on the most frequently used floor.
b. The system shall move the elevator cabin to the required floor.
c. The system shall have one backup processor.
d. The system shall have a speedometer.
4. The following requirements have been taken from a NASA project. Are these requirements correctly
written? If not, explain why and suggest a better way to write them. Assume that all abbreviations have
been defined: SAFER (Simplified Aid for EVA Rescue), FTA (Flight Test Article), EVA (Extravehicular
Activity), EMU (Extravehicular Mobility Unit).
a. The SAFER FTA shall be stowed in the Orbiter Airlock Stowage Bag for launch, entry, landing,
and on-orbit.
b. The SAFER FTA shall be operated by an EVA Crewmember wearing EMU sizes medium
through extra large without limiting suit mobility.
5. These two sentences state requirements for an airplane and one of its subsystems. What is wrong with
these two requirements?
a. The A999 airplane shall be capable of operating over a planned operational life of twenty (20)
years.
b. The flight control subsystem shall have an operational life of twenty (20) years.
1) Sources: Guide for Managing and Writing Requirements, Compliance Automation, Inc.
Writing Good Requirements, Compliance Automation, Inc. 1/1
Requirements Inception
Problem Analysis
• Goal: gain a better understanding of the problem being
solved before development begins
• Identify root cause
• Identify stakeholders and their needs (or problems)
• Identify solution boundary
3
Problem Analysis Business Requirements Agreement Root Causes Stakeholders Vision & Scope Constraints Document
5
Problem Analysis Business Requirements Agreement Root Causes Stakeholders Vision & Scope Constraints Document
6
Problem Analysis Business Requirements Agreement Root Causes Stakeholders Vision & Scope Constraints Document
• Create problem
statement for root
cause problem
identified as worth
solving (and with
computer solution)
Source: Leffingwell & Widrig
7
Problem Analysis Business Requirements Agreement Root Causes Stakeholders Vision & Scope Constraints Document
8
Problem Analysis Business Requirements Agreement Root Causes Stakeholders Vision & Scope Constraints Document
Product Vision
9
Problem Analysis Business Requirements Agreement Root Causes Stakeholders Vision & Scope Constraints Document
10
Problem Analysis Business Requirements Agreement Root Causes Stakeholders Vision & Scope Constraints Document
11
Problem Analysis Business Requirements Agreement Root Causes Stakeholders Vision & Scope Constraints Document
12
Problem Analysis Business Requirements Agreement Root Causes Stakeholders Vision & Scope Constraints Document
13
Problem Analysis Business Requirements Agreement Root Causes Stakeholders Vision & Scope Constraints Document
14
Problem Analysis Business Requirements Agreement Root Causes Stakeholders Vision & Scope Constraints Document
• Business context
• Including priorities and operating environment
• Risks!!!
16
Problem Analysis Business Requirements Agreement Root Causes Stakeholders Vision & Scope Constraints Document
In Summary…
[Craig Larman]
17
Introduction to Requirements
Elicitation
• Sources of Requirements
• Elicitation Problems
• I know that you believe that you understood what you think I
said, but I am not sure you realize that what you heard is not
what I meant.1
Elicitation Goals
• Determine sources of information & appropriate techniques
6
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
8
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
9
Sources of Requirements
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
Sources of Requirements
• Various stakeholders
• Clients, customers, users (past and future), buyers, managers, domain
experts, developers, marketing and QA people, lawyers, people
involved in related systems, anyone who can bring added value!
• Pre-existing systems
• Not necessarily software systems
• Pre-existing documentation
• Competing systems
• Documentation about interfacing systems
• Standards, policies, collective agreements, legislation
•…
11
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
Stakeholder – Customer/Client
• Person who pays for the software development
12
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
Stakeholder – Buyer
• Person who pays for the software once it is developed
13
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
Stakeholder – User
• ... of the current system or future system
14
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
• Familiar with the problem that the software must solve. For
example:
• Financial expert for finance management software
• Aeronautical engineers for air navigation systems
• Meteorologist for weather forecasting system, etc…
15
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
16
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
Stakeholder – Others
• Inspector
• An expert in governmental rules and safety relevant to the project
• Examples: safety inspectors, auditors, technical inspectors,
government inspectors
17
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
Stakeholder – Others
• Lawyer
• Familiar with laws and legal aspects
• Standards relevant to the project
18
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
On Stakeholders Availability…
• Stakeholders are generally busy!
• Have priorities other than you
• Are rarely entirely disconnected from their daily routine and tasks
• See their participation in the elicitation process as a supplementary
task
• Hence, you must have the support and commitment of
managers (especially theirs!)
• You must also avoid being perceived as a threat:
• Loss of jobs caused by the improved system
• Loss of autonomy, powers, or privileges
• To the recognition and visibility of their work
19
Requirements Elicitation Tasks
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
21
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
• Elicitation is incremental
• Driven by information obtained
• You always do a bit of elicitation – analysis – specification –
verification at the same time
22
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
23
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
24
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
Extract Essence
• Extract the essence of the stakeholders' requirements
• Interpret stakeholders' descriptions of requirements
25
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
26
Goals, Risks, and Challenges Sources of Requirements Requirements Elicitation Tasks Elicitation Problems
27
Requirements Elicitation
Techniques
Elicitation Techniques
• Elicitation techniques
• Stakeholder analysis
• Analysis of existing systems or documentation,
background reading
• Discourse analysis
• Task observation, ethnography
• Questionnaires
• Interviewing
• Brainstorming
• Joint Application Design (JAD)
• Prototyping
• Pilot system
• Use cases and scenarios
• Risk analysis
• See also: http://www.slideshare.net/hayriyesakarya/
elicitation-procedures-10618009
4
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Interviews Exploring issues Some quantitative but Interviewer can guide Time consuming.
mostly qualitative data interviewee. Artificial environment
Encourages contact may intimidate
between developers interviewee
and users
Focus groups and Collecting multiple Some quantitative but Highlights areas of Possibility of dominant
workshops viewpoints mostly qualitative data consensus and conflict. characters
Encourages contact
between developers
and users
Naturalistic observation Understanding context Qualitative Observing actual work Very time consuming.
of user activity gives insight that other Huge amounts of data
techniques cannot give
[1] Preece, Rogers, and Sharp “Interaction Design: Beyond human-computer interaction”, p214
See also this intro and comparison from Ying Chen : http://www.umsl.edu/~ycnx6/
5
Analysis of Existing Systems
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
7
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
8
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
• Discourse analysis
• Use of words and phrases is examined in written or spoken language
9
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
10
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
11
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
12
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
13
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Ethnography – Example
• Sommerville et al. were involved in a project where they had
to elicit the requirements of an air traffic control system
• They observed the air traffic controllers in action with the
existing system
• Surprising observations
• Controllers often put aircrafts on potentially conflicting headings with
the intention of fixing them later
• System generates an audible alarm when there is a possible conflict
• The controllers close the alarms because they are annoyed by the
constant warnings
• Incorrect conclusion
• The controllers do not like audible alarms because they close them
• More accurate observation
• The controllers do not like being treated like idiots
• Need to minimize false alarms (more generally: false positives) 14
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
[http://en.wikipedia.org/wiki/Sensitivity_and_specificity]
15
Interviews
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Interviews (1)
• Requires preparation and good communication management
• Achieve interview objectives without preventing the exploration of
promising leads
19
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Interviews – Session
• Make the interviewee comfortable and confident
• Be polite and respectful!
• Adjust to the interviewee
• You have your goals – be persistent but flexible
20
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
22
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
I See.
Tell Me Why I Don’t Think So.
You Feel They I Think You Have an
Are Too Slow. Elevator Throughput
Problem, not a Speed
Problem
25
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
26
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
27
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
28
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
29
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
30
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
31
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
32
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
33
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
34
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
35
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
36
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
37
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
38
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
More on Interviews
• Watch for unanswerable questions…
• How do you tie your shoelaces?
39
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
“Ignorance is bliss”1
• According to Dan Berry, ignorance
of a domain is a good thing!
• Ignorance (not stupidity !) allows
one to expose hypotheses and
some implicit facts
• Berry even suggests that one day,
requirements engineers may
advertise their domains of
ignorance (rather than their
domains of expertise) to find a job!
• Actually, a mix of domain experts
and domain ignorants on a team is
a good thing2
[1] The Matrix, 1999
[2] Ali Niknafs, Daniel M. Berry: An industrial case study of the impact of
domain ignorance on the effectiveness of requirements idea generation
during requirements elicitation. RE 2013: 279-283
40
Questionnaires
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
• Statistical significance?
http://en.wikipedia.org/wiki/Statistical_significance
• Test your questionnaire and your analysis on a small group!
• See also this important video on surveys and questionnaires:
• http://www.youtube.com/watch?v=rSwVZJT9j1c
44
Brainstorming
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Brainstorming
• To invent new way of doing things or when much is unknown
• When there are few or too many ideas
• Early on in a project particularly when:
• Terrain is uncertain
• There is little expertise for the type of applications
• Innovation is important (e.g., novel system)
• Two main activities:
• The Storm: Generating as many ideas as possible (quantity, not
quality) – wild is good!
• The Calm: Filtering out of ideas (combine, clarify,
! !
prioritize, improve…) to keep the best one(s) –
!
may require some voting strategy
! !
participants
46
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Brainstorming – Objectives
• Hear ideas from everyone, especially unconventional ideas
• Keep the tone informal and non-judgemental
• Keep the number of participants “reasonable“ – if too many, consider a
“playoff “-type filtering and invite back the most creative to multiple
sessions
• Encourage creativity
• Choose good, provocative project name.
• Choose good, provocative problem statement
• Get a room without distractions, but with good acoustics, whiteboards,
coloured pens, provide coffee/donuts/pizza/beer
• Provide appropriate props/mock-ups
47
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Brainstorming – Roles
• Scribe
• Write down all ideas (may also contribute)
• May ask clarifying questions during first phase but without criticizing
• Moderator/Leader
• Cannot be the scribe
• Two schools of thought: traffic cop or agent provocateur
• Traffic cop – enforces "rules of order", but does not throw his/her
weight around otherwise
• Agent provocateur – traffic cop plus more of a leadership role, comes
prepared with wild ideas and throws them out as discussion wanes
• May also explicitly look for variations and combinations of other
suggestions
48
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Brainstorming – Participants
• Virtually any stakeholder, e.g.
• Developers
• Domain experts
• End-users
• Clients
• ...
49
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
• Blending ideas
• Unify similar ideas but be aware not to force fit
everything into one idea
• Give each participant $100 to spend on the ideas
• Apply acceptance criteria prepared prior to meeting
• Eliminate the ideas that do not meet the criteria
• Various ranking or scoring methods
• Assign points for criteria met, possibly use a
weighted formula
53
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
54
Joint Application Design (JAD)
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
• The whole is more than the sum of its parts. The part is more
than a fraction of the whole.1
• Analyst
• Scribe++
• Produces official JAD documents, experienced developer who
understands the big picture, good philosopher/writer/organizer
• Executive sponsor
• Manager who has ultimate responsibility for product being built
• Provides strategic insights into company's high-level goals/practices,
makes executive decisions later on as required
57
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
• Specialists
• Technical expert on particular narrow topics, e.g., security, application
domain, law, UI issues…
58
Challenges of Brainstorming and JAD Sessions
• Unnatural clusters of (uncomfortable) participants
• “Groupthink”
• Superficial responses to technical issues
• Bias and dominance
59
Prototyping
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Prototyping
• A software requirements prototype is a mock-up or partial
implementation of a software system
• Helps developers, users, and customers better understand system
requirements
• Helps clarify and complete requirements
• Provides early response to “I'll know it when I’ll see (or won’t see) it”
attitude
• Effective in addressing the “Yes, But” syndrome
• Helps find new functionalities, discuss usability, and establish priorities
• Prototyping is effective in resolving uncertainties early in the
development process
• Focus prototype development on these uncertain parts
• Encourages user participation and mutual understanding
61
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Prototyping – Types
• Evolutive: turned into a product incrementally, gives users a
working system more quickly (begins with requirements that
are more understood)
62
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Prototyping – Realizations
• Prototypes can take many forms:
• Paper prototypes (see http://www.paperprototyping.com/)
• Prototype on index card
• Storyboard
• Screen mock-ups
• Interactive prototypes
• Using high-level languages (e.g., Visual Basic, Prolog)
• Using scripting languages (e.g., Perl, Python)
• Using animation tools (e.g., Flash/Shockwave)
• Models (executables)
• Pilot systems
• …
63
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
64
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
65
Use Cases
& Scenarios
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Use Cases
• A use case should describe the user’s interaction with the
system ...
• Not the computations the system performs
68
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
69
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Scenarios (1)
• A scenario (according to the UML/UC community) is an
instance of a use case
• It expresses a specific occurrence of the use case (a specific path
through the use case)
• A specific actor ...
• At a specific time ...
• With specific data …
• Many scenarios may be generated from a single use case description
• Each scenario may require many test cases
70
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Scenarios (2)
• A use case includes primary and secondary scenarios
• 1 primary scenario
• Normal course of events
• 0 or more secondary scenarios
• Alternative/exceptional course of events, variations of primary scenario
• An alternative scenario meets the intent of the use case but with a
different sequence of steps
• An exceptional scenario addresses the conditions of main case and
alternative cases that differ from the norm and cases already covered
• Example with consensus as a goal
• Primary scenario: vote in a session
• Alternative scenario: voting in several sessions
• Exceptional scenario: what to do with a non-registrant who wishes to vote
71
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Types of Scenarios
• As-is scenario
• Used in describing a current situation, usually used in re-engineering
projects, the user describes the system
• Visionary scenario
• Used to describe a future system, usually used in greenfield
engineering and reengineering projects
• Can often not be done by the user or developer alone
• Evaluation scenario
• User tasks against which the system is to be evaluated
• Training scenario
• Step by step instructions that guide a novice user through a system
72
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
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 Objects Code Cases
73
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
74
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
75
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
<<extend>>
Reserve Facility Register Member
Handle Waiting List
generalization
<<include>>
<<include>>
Hotel Counter Staff
Customer Reserve Room
Check In Customer
Check Room
Details <<include>>
actor extension
<<extend>> point
Member Earn and Redeem Credits
Check Out Customer
77
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
78
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
80
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
81
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Example: HR System
Update Benefits
______________
Extension points extension point
benefit options: name and
after required enrollments location
Employee
<<extend>> <<extend>>
employee requests employee requests
reimbursement option stock purchase option
Elect
Elect Stock
Reimbursement extension
Purchase
for Healthcare condition
82
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
• ...
85
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
86
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
87
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
88
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
89
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
90
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
• Approach is iterative
• System scope and boundaries may change as more information is
known about actors, their goals, and use cases
91
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
<<extend>>
Applicant
Perform Enroll Family
Security Check Member of Staff
International Applicant
RCMP Security System
92
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
• Preconditions:
• The Registrar is logged into the system.
• The Applicant has already undergone initial checks to verify that they
are eligible to enroll.
• Postconditions:
• The Applicant will be enrolled in the university as a student if they are
eligible.
93
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
95
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Alternate Flows: …
96
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
• Do you specify which elements from a set are selected, when any arbitrary
element is needed?
• Example: Selecting new arbitrary phone number
97
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
98
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
99
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
• You do not want too many use cases; if you have too many,
you have probably included too much detail
(“If in doubt, leave it out”)
• Do not attempt to describe everything – too many variations – too
many things that can go wrong
• The requirements specification captures a more complete picture
100
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
• They can form the basis for the definition of test cases
101
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Tools
• Many UML tools support use case diagrams, without really
supporting use cases well
• http://www.site.uottawa.ca/~ssome/Use_Case_Editor_UCEd.html
103
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Use Case
model edition Use Case
area description
edition area
104
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
105
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
106
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Misuse Case
threatens
Drive Car Steal Car
Thief
107
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
mitigates
Lock the Car includes
mitigates
Lock the Transmission
Competitor
Crook
109
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Competitor
110
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Competitor
111
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
• Risks
• Get into premature design solutions in step 3 (mitigation)
• Goal should be to find requirements (safety, security…)
• Missing misactors and threats in a partial view
112
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
113
Elicitation Techniques Existing Systems Interviews Questionnaires Brainstorming Prototyping Use Cases
Recognize Users
mitigates
Impersonate Users
2
Objectives of Requirements Analysis
• Detect and resolve conflicts between (user) requirements
• Negotiate priorities of stakeholders
• Prioritize and triage requirements (covered later)
• Elaborate system requirements,
• To be documented in the requirement specification document
• such that managers can give realistic project estimates
• and such that developers can design, implement, and test
• Classify requirements information into various categories and
allocate requirements to sub-systems
• Evaluate requirements for desirable qualities
• Make sure that nothing major is forgotten
3
Requirements Analysis
• Analysis and elicitation feed each other
Elicitation
4
Requirements Modeling
This is an essential task in specifying requirements
• Map elements obtained by elicitation to a more precise form
• Help better understand the problem
• Help find what is missing or needs further discussion
6
The Use of Models
Models
• According to Bran Selic, a model is a reduced representation
(simplified, abstract) of (one aspect of) a system used to:
• Help understand complex problems and / or solutions
• Communicate information about the problem / solution
• Direct implementation (especially in software)
8
Modeling Notations
• Natural language • Semi-formal notation (URN,
(English) UML...)
+ No special training + Syntax (graphics) well defined
required + Partial common understanding,
- Ambiguous, verbose, reasonably easy to learn
vague, obscure ... + Partial automation
- No automation - Meaning only defined informally
• Ad hoc notation (bubbles - Still a risk of ambiguities
and arrows)
• Formal notation (Logic, SDL,
+ No special training Petri nets, FSM ...)
required
+ Syntax & semantics defined
- No syntax formally defined
+ Great automation (analysis and
meaning not clear,
transformations)
ambiguous
- More difficult to learn & understand
- No automation
9
Modeling Notations (2)
• Informal language is better understood by all stakeholders
• Good for user requirements, contract
• But, language lacks precision
• Possibility for ambiguities
• Lack of tool support
11
Modeling Inputs and Outputs
• Nature of inputs and outputs (IO):
• IO related to problem (problem data)
• Additional data related to solution (solution data)
• E.g., prompts, user options, error messages…
• Collected in Data Dictionary using
• Plain text (natural language)
• EBNF
• Code-like notations
• Logic (e.g., Z, B, CTL…)
• …
• Graphical output (screens, forms)
• Iconic (representational) drawings, prototype screens or forms,
printouts produced by operational prototype
12
Modeling Dynamic Behavior
• Behavior modeling techniques
• Text (plain, function statements, use cases)
• Decision tables
• Activity Diagrams / Use Case Maps
• Finite state machines
• Simple state machines (FSM) : use state diagrams or transition table
notation
• Extended state machines (e.g. UML State Machines – including SDL)
• Harel’s State Charts (concepts included in UML notation)
• Petri nets (allows for flexible concurrency, e.g. for data flow, similar to
Activitity Diagrams)
• Logic (e.g. Z, B, CTL) for describing input-output assertions and
relationships to internal object state that is updated by operations
• It is important to chose what best suits the problem
13
Model Analysis
• By construction
• We learn by questioning and describing the system
• By inspection
• Execute/analyze the model in our minds
• Reliable?
• By formal analysis
• Requires formal semantics (mathematical) and tools
• Reliable (in theory), but expensive (for certain modeling approaches)
• By testing
• Execution, simulation, animation, test...
• Requires well-defined semantics and execution/simulation tools
• More reliable than inspection for certain aspects
• Possible to interact directly with the model (prototype)
14
Typical Modeling Approaches
• Many approaches involve modeling to get a global picture of
the requirements
• Structured Analysis (1970)
• Object-Oriented Analysis (1990)
• Problem Frames (1995)
• State Machine-Based Analysis
• Conflict Analysis
• E.g. with mis-use cases or with GRL/UCM models and
strategies/scenarios
• It is important to distinguish between
• Notation used for defining the model
• Process defining a sequence of activities leading to a desired model
• Note: Analysis can be on individual requirements as well
• Remember tips and tricks on how to write better requirements
15
All models are false,
but some models are useful…
16
Non-Functional Requirements
and Quality Measures
• Implication:
• We need to be able to explicitly quantify requirements and verify that
any solution meets them
• We need measures
4
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
Non-functional
requir ements
Source: Gerald Kotonya and Ian Sommerville, Requirements Engineering – Processes and Techniques, Wiley, 1998
5
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
• "ilities"
• http://en.wikipedia.org/wiki/Ilities
6
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
Quantification
• Non-functional requirements need to be measurable
• Avoid subjective characterization: good, optimal, better...
8
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
9
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
10
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
11
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
12
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
13
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
• Availability Downtime
• 90% 36.5 days/year
• 99% 3.65 days/year
• 99.9% 8.76 hours/year
• 99.99% 52 minutes/year
• 99.999% 5 minutes/year
• 99.9999% 31 seconds/year
15
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
• Examples of requirements
• The application shall identify all of its client applications before
allowing them to use its capabilities.
• At least 99% of intrusions shall be detected within 10 seconds.
17
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
21
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
Testability Measures
Measures the ability to detect, isolate, and fix defects
• Time to run tests
• Time to setup testing environment (development and execution)
• Probability of visible failure in presence of a defect
• Test coverage (requirements coverage, code coverage…)
• May lead to architectural requirements
• Mechanisms for monitoring
• Access points and additional control
• Examples
• The delivered system shall include unit tests that ensure 100% branch
coverage.
• Development shall use regression tests allowing for full retesting in
less than 12 hours.
22
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
Portability Measures
Measure ability of the system to run under different computing
environments
• Hardware, software, OS, languages, versions, combination of these
• Can be measured as
• Number/Enumeration of targeted platforms (hardware, OS…)
• Proportion of platform specific components or functionality
• Mean time to port to a different platform
• Examples
• No more than 5% of the system implementation shall be specific to the
operating system.
23
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
Reusability
• Measures ability that existing components can be reused in new
applications
• Can be expressed as
• Percentage of reused requirements, design elements, code, tests…
• Coupling of components
• Degree of use of frameworks
24
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
Robustness Measures
Measure ability to cope with the unexpected
• Percentage of failures on invalid inputs
• Degree of service degradation
• Minimum performance under extreme loads
• Active services in presence of faults
• Length of time for which system is required to manage stress conditions
• Examples
• The estimated loss of data in case of a disk crash shall be less than
0.01%.
• The system shall be able to handle up to 10000 concurrent users
when satisfying all their requirements and up to 25000 concurrent
users with browsing capabilities.
25
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
Domain-specific Measures
The most appropriate quality measures may vary from one
application domain to another, e.g.:
• Performance
• Web-based system:
Number of requests processed per second
• Video games:
Number of 3D images per second
• Accessibility
• Web-based system:
Compliance with standards for the blind
• Video games:
Compliance with age/content ratings systems (e.g., no violence)
26
Introduction to Requirements Specification Software Quality Classifications of NFRs Quality Measures
27
Dilbert on Quality
28
Requirements Modelling
with UML 2
http://www.omg.org/uml/
Source: http://en.wikipedia.org/wiki/Unified_Modeling_Language
2
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
Dilbert on Standards
3
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
4
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
5
Class Diagram
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
ERM – Notations
• There are a variety of notations that have been used for ERM
• Chen’s notation
8
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
9
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
10
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
11
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
Scattering: design
Requirement1 (R1) elements to support R1
in many components
Requirement2 (R2) ComponentA
…
RequirementN (RN) ComponentB ComponentC ComponentD
R1 elements R1 elements R1 elements
ComponentF
Tangling: single
ComponentE R1 elements component has
elements for many
R2 elements requirements
R3 elements
RN elements
12
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
(identifies joinpoints
R1 elements
where advice is executed) R2 elements
R3 elements
RN elements
Partitions – Examples
16
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
17
Sequence Diagrams
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
19
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
20
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
Combined Fragments
• Allow multiple sequences to be represented in compact form
(may involve all participants or just a subset)
• Combined fragment operators
• alt, for alternatives with conditions
• opt, for optional behavior
• loop(lower bound, upper bound), for loops
• par, for concurrent behavior
• critical, for critical sections
• break, to show a scenario will not be covered
• assert, required condition
• ignore/consider(list of messages), for filtering messages
• neg, for invalid or mis-use scenarios that must not occur
• strict or seq, for strict/weak sequencing (WHAT IS THIS ?)
• ref, for referencing other sequence diagrams
21
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
22
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
23
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
25
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
26
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
27
State Machine Diagram
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
29
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
on on
Lamp Lamp On
On print(”on”)
on/print(”on”) on
off off
off off
Lamp Lamp
Off Off
on
ctr : Integer
Lamp On
on/ctr := ctr + 1
off
off
Lamp Off
31
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
Modeling Behavior
• In general, state machines are suitable for describing reactive
systems based or events
• Not appropriate to describe continuous systems (e.g.,
spacecraft trajectory control, stock market predictions)
threshold
time
32
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
Composite State
State
Initial
Pseudostate top
Trigger
Ready
Transition
stop /ctr := 0
Done
Final State Action
stop
33
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
LampOn
e2
entry/lamp.on();
exit/lamp.off();
e1
34
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
Action Ordering
LampOn LampOff
off/printf(“to off”);
entry/lamp.on(); entry/lamp.off();
exit/printf(“exiting”); exit/printf(“exiting”);
“do” activity
Error
entry/printf(“error!”)
do/alarm.ring()
36
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
Guards (Conditions)
• Conditional execution of transitions
bid [value < 100] /reject
Unhappy
LampOff
flash/ LampFlashing
entry/lamp.off()
FlashOn
off/ entry/lamp.on()
1sec/
1sec/
on/ on/
FlashOff
LampOn
on/
entry/lamp.off()
entry/lamp.on()
38
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
Group Transitions
Default transition to
Initial pseudostate
LampOff
flash/ LampFlashing
entry/lamp.off()
FlashOn
off/ entry/lamp.on()
1sec/
on/ 1sec/
FlashOff
LampOn
on/
entry/lamp.off()
entry/lamp.on()
Group transition
39
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
Completion Transition
• Triggered by a completion event
• Automatically generated when an embedded state machine terminates
CommitDone
Phase2
40
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
Triggering Rules
• Many transitions can share the same triggering event
• When leaving, the most deeply embedded one takes precedence
• The event disappears whether it triggers a transition or not
LampFlashing
FlashOn
on/
off/
on/
FlashOff
41
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
S1 S2
exit/exS1 entry/enS2
/initS2
S11 E/actE S21
exit/exS11 entry/enS21
42
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
Orthogonal Regions
• Combine many concurrent perspectives – interactions across
regions typically done via shared variables
age financialStatus
Child
Poor
Adult
age financialStatus
Child Rich
Retiree
Poor
Adult
Retiree Rich
43
Introduction Class Diagram Activity Diagram Sequence Diagram State Machine Diagram
legalStatus financialStatus
LawAbiding Poor
robBank/ robBank/
Outlaw Rich
44
Conclusion…
45
Requirements Triage and Negotiation
2
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
3
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
“It Will
Take Us 9
“Okay, Here Are Our Months”
Requirements By When Can
You Build Them?”
“Sorry, They
Must Be
Completed in 6 Typical Scenario
Months”
NOW WHAT?
Source: Davis, A.: “Just Enough Requirements Management”, Dorset House, 2005; “The art of requirements triage”, IEEE Computer, 03/2003
4
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
“Let’s see. If
“Okay, we’re going to build in a we build reqts 1
series of 3 month increments. through 9 and
Here are all the requirements.” 12, we’ll be able
to do them in 3
months”
“But we
really need
reqt 17 in “Okay. How
that first about if we add
release.” reqt 17 and
drop reqt 12?”
Source: Davis, A.: “Just Enough Requirements Management”, Dorset House, 2005; “The art of requirements triage”, IEEE Computer, 03/2003
5
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
“Well if we
“Hmmm. I really liked reqt
drop
12. Can we drop reqt 3
requirements 3
instead?.”
and 4, we could
do it.”
Teamwork!!!
Source: Davis, A.: “Just Enough Requirements Management”, Dorset House, 2005; “The art of requirements triage”, IEEE Computer, 03/2003
6
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
7
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
8
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
Difficulties (1)
• There are too many requirements!
• From many different sources
9
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
Difficulties (2)
• Different stakeholders have different goals and different
priorities
• Some stakeholders’ decisions carry more weight than others
• Attitude!
• "No need for priorities, we can do everything in the specification!“
• Yes, but when and at what cost?
• Suddenly, when the deadline is fast approaching, some requirements
are put aside in order to deliver something on time...
10
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
• Must help:
• Make acceptable tradeoffs among goals of value, cost, time-to-market
• Allocate resources based on importance of requirements to the project
as a whole (project planning)
• Determine when a requirements should become part of the product
• Offer the right product!
11
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
80-20 Rule
• 20% of functionalities provide 80% of revenues
• Think of MS Word…
12
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
A lot!
R11
R10
R6
R9
R13
Value
R7
R3
R15 R8 R14
R1
R2 R12
R4 R5
To avoid!
R16
0
Cost A lot!
13
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
14
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
15
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
• Difficulties:
• Hard to calculate absolute value/cost
• Relative value/cost figures are easier to obtain
• Interdependent requirements difficult to treat individually
• Inconsistencies or conflicts in priorities assigned by individual
stakeholders
16
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
Source: Wiegers, Karl E., First Things First: Prioritizing Requirements, http://www.processimpact.com/articles/prioritizing.html
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
19
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
Requirement/Product Use Factor - score %Weight Factor - score %Weight Factor - score out %Weight Factor - score %Weight Total
Number
Case/Feature out of 10 applied out of 10 applied of 10 applied out of 10 applied Weight
Minimise Ease of
Value to Value to Priority
40 20 Implementation 10 Implementati 30 100
Customer Business Rating
Cost on
Requirement 6.9
• Benefits
• Indicates what is important to the client
• Identifies requirements of high value and low cost (priority!)
• Identifies requirements of low value and high cost (likely to be
removed)
• Has already been used to assist numerous corporate and government
decision makers
• Choosing a telecommunication system, formulating a drug policy, choosing
a product marketing strategy
21
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
• Example approach
• Analytic Hierarchy Process1
[1] Karlsson, J. and Ryan, K. A cost-value approach for prioritizing requirements, IEEE Software, Sept/Oct 1997
22
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
24
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
25
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
26
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
28
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
29
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
30
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
31
Introduction Structured Analysis OO Analysis Problem Frames State Machine-Based Analysis Triage/Prioritization
35
Requirements Prioritization Model
Karl Wiegers
This spreadsheet contains a simple model for estimating the relative priorities of implementing
specific features or requirements in a software system. The "Example" worksheet contains an
example, from a project called the Chemical Tracking System. The worksheet called
"Template" contains several blank rows that contain all the formulas. To use this tool, copy
the "Template" worksheet into a new spreadsheet file and enter your own items to be prioritized,
copying and inserting blank rows as necessary to get enough space to handle all the items you
wish to prioritize in one pass.
After entering the relative numbers for all the features, the relative priority for each
feature is calculated by considering the percentage of the weighted feature desirability
(or value), cost, and risk attributable to each feature. If you sort the list of features
descending by the "Priority" column, the top priority items are at the top of the list.
You would not use this approach to estimate priorities for features that you know must be included,
for any reason (political, competitive advantage, regulatory or contractual requirement, etc.). Only
use this tool as a way to differentiate among requirements that are not on the list of "absolutely
must do"s.
The "Multiple Stakeholders" worksheet illustrates a refinement of the basic spreadsheet that accommodates
multiple stakeholders or user classes who have different ideas about requirement priorities. This example
handles three stakeholders. Each stakeholder has a separate pair of columns for rating benefit and penalty.
The numbers in row 1 indicate the relative weight that each stakeholder gets in the decision-making process.
Favored user classes get higher weighting factors. The spreadsheet incorporates those weights when it
calculates the overall benefit and penalty numbers for each proposed requirement. You can experiment
with the benefit and penalty values, and the weighting factors, in this worksheet to see the effect of different
stakeholder evaluations on the calculated priority numbers.
5
Introduction Simple Checks Prototyping Functional Test Design
1 User Manual Formal V&V Reviews and Inspections
The World and the Machine
(or the problem domain and the system) These 6 slides are taken from Introduction to Analysis
Specification (S)
⚫ Domain
properties (D)
these are assumptions problem solution
about the environment
interface
domain system
of the system-to-be
Hardware (C)
⚫ Requirements (R)
Software (P)
Example
• Requirement
• (R) Reverse thrust shall only be enabled
when the aircraft is moving on runway.
• Domain Properties
• (D1) Deploying reverse thrust in mid-flight
has catastrophic effects.
• (D2) Wheel pulses are on if and only if wheels are turning.
• (D3) Wheels are turning if and only if the plane is moving on the
runway.
• System specification
• (S) The system shall allow reverse thrust to be enabled if and only if
wheel pulses are on.
• Does D1 and D2 and D3 and S R?
• Are the domain assumptions (D) right? Are the requirement (R) or
specification
based on P. Heymans, 2005 (S) what is really needed?
7
Requirement specifications including assumptions
• Often the requirements for a system-to-be include
assumptions about the environment of the system.
• The system specification S, then, has the form:
S=AG
where A are the assumptions about the environment and G
are the guarantees that the system will provide as long as
A hold.
• If these assumptions (A) are implied by the known properties
of the domain (D), that is D A, and we can check that the
domain properties (D) and the system guarantees (G) imply
the requirements (R), that is D and G R, then the
“validation condition” D and S R is satisfied.
8
Specification with assumptions and guarantees (example)
Example: A power utility provides electricity to a client. The
problem is that the monthly invoice is not related to the
electricity consumption, because there is no information
about this consumption.
• Idea of a solution: introduce an electricity counter.
• Specification of the electricity counter
• Inputs and outputs
• input power from utility (voltage, current) – voltage supplied by
utility
• output power to client (voltage, current) – current used by client
• Reset button (input)
• consumption (output - watt-hours of electricity consumption)
9
Example (suite)
• Assumptions
• Input voltage < 500 Volts (determined by utility)
• Output current < 20 Amps (determined by client)
• Guarantees
• Output voltage = input voltage
• Input current = output current
• Consumption output shall indicate the consumption since the last
reset operation, that is, the integral of (output voltage x output
current) over the time period from the occurrence of the last reset
operation to the current time instant.
• Software example
• Specification of a method providing the interface “List search(Criteria c.
Assumption: c is a data structure satisfying the Criteria class properties.
Guarantee: the returned result is a list satisfying the List class properties and
includes all items from the database that satisfy c.
10
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
12
Requirements V&V Techniques
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
14
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
Simple Checks
• Various checks can be done using traceability techniques
• Given the requirements document, verify that all elicitation notes are
covered
• Tracing between different levels of requirements
• Checking goals against tasks, features, requirements…
• Involves developing a traceability matrix
• Ensures that requirements have been taken into consideration (if not
there should be a reason)
• Ensures that everything in the specification is justified
15
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
Prototyping (1)
• Excellent for validation by users and customers
• More accessible than specification
• Demonstrate the requirements and help stakeholders discover
problems
16
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
Prototyping (2)
• Important to choose scenarios or use cases for elicitation
session
17
Comment on next two techniques
• The two V&V techniques, namely Functional Test Design and
User Manual Development, are not really V&V techniques.
• They are activities that must be performed anyway, and they
are based on the specification document.
• Through these activities, as for any other activities based on the
specification document, errors and other problems with this document
may be detected.
18
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
20
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
• Can be expensive
• Careful planning and preparation
• Pre-review checking
• Need appropriate checklists (must be developed if necessary and
maintained)
21
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
22
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
23
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
24
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
25
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
26
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
Review Team
• Reviews should involve a number of stakeholders drawn from
different backgrounds
• People from different backgrounds bring different skills and knowledge
to the review
• Stakeholders feel involved in the RE process and develop an
understanding of the needs of other stakeholders
• Review team should always involve at least a domain expert and a
user
27
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
Pre-Review Checking
• Reviews can be expensive because they involve many
people over several hours reading and checking the
requirements document
• We can reduce this cost by asking someone to make a first
pass called the pre-review
• Check the document and look for straightforward problems such as
missing requirements (sections), lack of conformance to standards,
typographical errors, etc.
29
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
30
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
31
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
32
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
Active Review
33
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
34
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
35
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
36
Introduction Simple Checks Prototyping Functional Test Design User Manual Formal V&V Reviews and Inspections
8. Are there areas not addressed in the SRS that need to be?
10. If the requirements involve complex decision chains, are they expressed in
a form that facilitates comprehension (i.e., decision tables, decision trees,
etc.)?
12. Are there requirements that contain an unnecessary level of design detail?
17. Does the document contain all the information called out in the outline for
the SRS?
Requirements Management
4
Introduction Traceability Baselines Change Management Requirements Management Tools
5
Introduction Traceability Baselines Change Management Requirements Management Tools
Requirements Management
• A systematic approach to eliciting, organizing, and
documenting the requirement of the system, and a process
that establishes and maintains agreement between the
customer and the project team on the changing requirements
of the system.1
7
Introduction Traceability Baselines Change Management Requirements Management Tools
Requirements
Management
10
Introduction Traceability Baselines Change Management Requirements Management Tools
11
Introduction Traceability Baselines Change Management Requirements Management Tools
12
Introduction Traceability Baselines Change Management Requirements Management Tools
Requirements Volatility
• Requirements continuously change
• While the requirements are being elicited, analyzed, specified, and
validated and after the system has gone into service
• Some requirements are usually more subject to change than
others
• Stable requirements are concerned with the essence of a system and
its application domain
• Derived from the client’s principal business activities or the domain model
• They change more slowly than volatile requirements
• E.g., a hospital will always have doctors, nurses, patients…
• Volatile requirements are specific to the instantiation of the system in a
particular environment for a particular customer at a particular time
• E.g., in a hospital, we can think of requirements related to the policies of
the government health system
13
Introduction Traceability Baselines Change Management Requirements Management Tools
14
Introduction Traceability Baselines Change Management Requirements Management Tools
15
Introduction Traceability Baselines Change Management Requirements Management Tools
• Change control
• Change proposal system implements controlled process for managing
change
• How do we collect, document, and address changes?
16
Introduction Traceability Baselines Change Management Requirements Management Tools
Identification of Requirements
• It is essential for requirements management that every
requirement has a unique identification
• The most common approach is requirements numbering based on
chapter/section in the requirements document
• There are several problems with this approach
• Numbers cannot be unambiguously assigned until the document is
complete
• Assigning chapter/section numbers is an implicit classification of the
requirements ➔ may mislead readers of the document into thinking
that the most important relationships are with requirements in the
same section
17
Introduction Traceability Baselines Change Management Requirements Management Tools
Requirements Attributes
• Classes and attributes of a requirements management
database
20
Introduction Traceability Baselines Change Management Requirements Management Tools
Requirements Statuses
• Help manage the requirement lifecycle
• Their number and nature depend on the process in place
• Example of a set of statuses:
• Proposed: by some stakeholder
• Approved: part of baseline, committed to implement
• Rejected: after evaluation
• Implemented: designed and implemented
• Verified: Relevant tests have passed
• Deleted: Removed from list
• RM includes amongst its tasks the tracking of the status of all
requirements during the project
21
Introduction Traceability Baselines Change Management Requirements Management Tools
Version Control
• Another essential aspect of requirements management
• Every version of a requirement needs to be uniquely identified
• The last version of a requirement must be available to all team
members
• Changes need to be documented and clearly communicated
• A version identifier must be updated with every change to the
requirement
• Requirements documents should include
• A revision history: changes, dates, by whom, why...
• Standard markers for revisions (e.g., strikethrough or underlined text,
coloring, line markers…)
• Version control tool may be used
• To store and manage the revision history
• To store justifications (to add, modify, delete, reject a requirement)
22
Traceability
Introduction Traceability Baselines Change Management Requirements Management Tools
Traceability?
• "Can I ask you some questions?"
Source: Zaphod Beeblebrox & Zarniwoop, The Hitchhiker's Guide to the Galaxy
24
Introduction Traceability Baselines Change Management Requirements Management Tools
[1-2] Watkins and Neal, 1994; [3] Kotonya and Sommerville, 1998; [4] Greenspan, McGowan, 1978
26
Introduction Traceability Baselines Change Management Requirements Management Tools
27
Introduction Traceability Baselines Change Management Requirements Management Tools
28
Introduction Traceability Baselines Change Management Requirements Management Tools
Traceability Difficulties
• Various stakeholders require different information
• Huge amount of requirements traceability information must
be tracked and maintained
• Manual creation of links is very demanding
• Likely the most annoying problem
• Specialized tools must be used
• Integrating heterogeneous models/information from/to
different sources (requirements, design, tests, code,
documentation, rationales…) is not trivial
29
Introduction Traceability Baselines Change Management Requirements Management Tools
31
Introduction Traceability Baselines Change Management Requirements Management Tools
32
Introduction Traceability Baselines Change Management Requirements Management Tools
33
Introduction Traceability Baselines Change Management Requirements Management Tools
34
Introduction Traceability Baselines Change Management Requirements Management Tools
35
Introduction Traceability Baselines Change Management Requirements Management Tools
36
Introduction Traceability Baselines Change Management Requirements Management Tools
37
Introduction Traceability Baselines Change Management Requirements Management Tools
… a change by … shows up as a
this user here… warning flag to
this user here.
Traceability Planning
• Planning traceability? Yes, just like any other project!
• Who are the stakeholders?
• What are the needs (analysis, reports…)?
• Useful, measurable, feasible objectives
• Definition of links and attributes
• Can some be inferred automatically?
• Process (who collects and when to collect traceability information)
• Roles, access
• Data/link input and updates
• Exceptional situations (e.g., lack of time)
• Representations, queries, tools
• …
• Traceability policies define what and how traceability information
should be maintained
39
Introduction Traceability Baselines Change Management Requirements Management Tools
40
Introduction Traceability Baselines Change Management Requirements Management Tools
41
Introduction Traceability Baselines Change Management Requirements Management Tools
Modeling Traceability
• The types of links to use (and their attributes) must be
defined for different types of requirements
• It is a design problem!
42
Introduction Traceability Baselines Change Management Requirements Management Tools
43
Introduction Traceability Baselines Change Management Requirements Management Tools
Is origin of Is origin of
modifies modifies
Software functional
Depends on another
requirement
Is satisfied by
Is verified by Lead to creation of
Architectrue, Project plan
user interface, or System test
task
functional design
Is verified by Is implemented in
Is verified by
Unit test
44
Introduction Traceability Baselines Change Management Requirements Management Tools
45
Baselines
Introduction Traceability Baselines Change Management Requirements Management Tools
Baseline
• Non-modifiable (read-only) version of a document
• Describes a moment in time
• May include multiple documents at the same time
• Enables document comparison and management
• Comes with a change history for the document
• Information on objects, attributes, and links created, deleted, or edited
since the creation of the baseline
• Often also contains information on user sessions (when the document
was opened, by whom…)
• Requires access control
Baseline
48
Introduction Traceability Baselines Change Management Requirements Management Tools
Baseline Usage
• Baselines may be
• Created
• Complete image of requirements state at a given time
• Deleted
• Visualized
• Possibility to go back
• Compared
• To see changes since a certain time
• Copied
• Signed
• For authorization, contract
49
Change Management
Introduction Traceability Baselines Change Management Requirements Management Tools
52
Introduction Traceability Baselines Change Management Requirements Management Tools
54
Introduction Traceability Baselines Change Management Requirements Management Tools
56
Introduction Traceability Baselines Change Management Requirements Management Tools
Project-tracking
tool
Test
Version control
management
tool
tool
Requirements
management
tool
Change- Design
request tool modeling tool
Project
estimation tool
61
Introduction Traceability Baselines Change Management Requirements Management Tools
62
Introduction Traceability Baselines Change Management Requirements Management Tools
63
Introduction Traceability Baselines Change Management Requirements Management Tools
64
Introduction Traceability Baselines Change Management Requirements Management Tools
65