Requirement Analysis & Specification Ist Lecture
Requirement Analysis & Specification Ist Lecture
“If a company wishes to let a contract for a large software development project, it
must define its needs in a sufficiently abstract way that a solution is not pre-defined.
The requirements must be written so that several contractors can bid for the contract,
offering, perhaps, different ways of meeting the client organisation’s needs. Once a
contract has been awarded, the contractor must write a system definition for the client
in more detail so that the client understands and can validate what the software will
do. Both of these documents may be called the requirements document for the
system.”
Types of requirement
User requirements
Statements in natural language plus diagrams of the
services the system provides and its operational constraints.
Written for customers.
System requirements
A structured document setting out detailed descriptions of
the system’s functions, services and operational constraints.
Defines what should be implemented so may be part of a
contract between client and contractor.
Definitions and specifications
User requir ement definition
1.1 The user should be pr ovided with facilities to define the type of
1.2 external files.
1.2 Each external file type may have an associa ted tool w hich ma y be
1.2 applied to the file .
1.3 Each external file type may be repr esented as a specific icon on
1.2 the user’s displa y.
1.4 Facilities should be pr o vided for the icon r epresenting an
1.2 external file type to be defined b y the user.
1.5 When a user selects an icon r epr esenting an e xternal file, the
1.2 effect of that selection is to apply the tool associated with the type of
1.2 the external file to the file represented by the selected icon.
Functional and non-functional requirements
Functional requirements
Statements of services the system should provide, how the
system should react to particular inputs and how the system
should behave in particular situations.
Non-functional requirements
constraints on the services or functions offered by the
system such as timing constraints, constraints on the
development process, standards, etc.
Domain requirements
Requirements that come from the application domain of the
system and that reflect characteristics of that domain.
Functional requirements
Product requirements
Requirements which specify that the delivered product must
behave in a particular way e.g. execution speed, reliability,
etc.
Organisational requirements
Requirements which are a consequence of organisational
policies and procedures e.g. process standards used,
implementation requirements, etc.
External requirements
Requirements which arise from factors which are external to
the system and its development process e.g. interoperability
requirements, legislative requirements, etc.
Non-functional requirement types
Non-functional
requir ements
A system goal
The system should be easy to use by experienced controllers
and should be organised in such a way that user errors are
minimised.
A verifiable non-functional requirement
Experienced controllers shall be able to use all the system
functions after a total of two hours training. After this
training, the average number of errors made by experienced
users shall not exceed two per day.
Requirements measures
Property Measure
Speed Processed transactions/second
User/Event response time
Screen refresh time
Size M Bytes
Number of ROM chips
Ease of use Training time
Number of help frames
Reliability Mean time to failure
Probability of unavailability
Rate of failure occurrence
Availability
Robustness Time to restart after failure
Percentage of events causing failure
Probability of data corruption on failure
Portability Percentage of target dependent statements
Number of target systems
Requirements interaction
Understandability
Requirements are expressed in the language of the
application domain;
This is often not understood by software engineers
developing the system.
Implicitness
Domain specialists understand the area so well that they do
not think of making the domain requirements explicit.
User requirements
Requirement Elicitation
Requirement Analysis & Negotiation
Requirements Validation
Requirements Specification
Requirements Elicitation
28
The first step... sources of information.
DOMAIN
Understanding it
Problem (application) domain
What’s the problem(s) and who can explain it to you?
History
Previous systems / current systems
Documentation
Old requirements/design etc.
Competitors
Have they solved the problem and how?
29
The first step... sources of information…
Surrounding environment
Other systems, processes which the system should support
(and/or processes which the system influences)
Stakeholders (management, users, future users,
system managers, partners, sub contractors, Law and
Policy, customer’s customers, domain experts,
developers etc)
Finding them (Stakeholder Identification)
Getting access to them (Cost, Politics)
STAKEHOLDER ACCESS ISCRITICAL AND SHOULD BE
STATED AS SUCH, e.g. in contract or other agreement. (true
for other resources also, e.g. documentation etc.)--
30
The information to elicit.
32
Elicitation – triangulation
33
Elicitation techniques – initial part
Interviews
Getting to know the present (domain, problems) and ideas for future
systems
Hard to see the goals and critical issues, subjective
Group interviews
Stimulate each other, complete each other
- Censorship, domination (some people may not get attention)
Observation
Look at how people actually perform a task (or a combination of
tasks) – record and review...
+ Map current work, practices, processes
- Critical issues seldom captured (e.g. you have to be observing
when something goes wrong), usability issues seldom captured, time
consuming
34
Elicitation techniques (Part 2) – mid part
Task demonstrations
Ask a user to perform a task and observe and study what is done, ask questions
during.
+ Clarify what is done and how, current work
- Your presence and questions may influence the user, critical issues seldom captured,
usability problems hard to capture
Questionnaires
+ Gather information from many users (statistical indications, views, opinions)
- Difficult to construct good questionnaires, questions often interpreted differently,
hard to classify answers in open questions and closed questions may be to narrow...
Brainstorming
Gathering of stakeholders and the exchange/gathering of ideas in an open
atmosphere where no one risks being ridiculed for their ideas and no ideas are
rejected/criticized
+ Many ideas (none are rejected)
- Many ideas (have to be sorted and prioritized), hard to create a good atmosphere,
hard to get everybody involved, small groups, time consuming
35
Elicitation techniques (Part 3) – late part
36
Problems you may encounter.
37
Further complexity.
38
Elicitation – Market driven development
(very short version)
Personas
Modeling (desc.) of a generic typical customer of a certain
type that can be said to be representative for a group (of
varying size – but homogenous)
Competitor analysis
Internally owned sources
Support DB/Support Dept.
Application Dept.
Sales Dept.
Developers / PMs /Experts
Management
Etc.
40
Reality Check !!!
41
Bespoke and
MDRE
42
development context
Single Customer Development Company
User Sales
representativ Buyer Project
e Manager
Users Maintenance
Users Developers
Users Other
stakeholders
43
development context II
Management
- Documentation, Change
Management, Traceability …
Analysis &
Elicitation Validation
change
Negotiation
Change
Agreed requirements
(requirements Developme
specification) nt
Development
New Project
requirements
Stakeholders (primarily
Customer) and other
sources (internal, external,
third-party etc) 44
Many Customers Development Company
User
representativ Buyer Sales
e
development context III
Marketing
Maintenance Product
Users Application
Management
Users
Users Other Marketing
stakeholders Developer
s
etc
Suppliers
Buyer/User Partners
Market-driven development
Many potential customers (e.g. a company and/or end- users)
–No “negotiation” but rather elicitation and evaluation, prediction, innovation
–Domain expertise internal primarily
–Success: Sales volume, ROI, market-share, growth etc. 45
development context IV
Product Management / Release Planning /(MDRE)
Management
- Documentation, Change Management,
Product
Traceability … Roadmap
R R
R
a+
a
Analysis & Validatio
1 n
Elicitation Management
Negotiation n
Repository
Triage
Estimation
Prioritizati
on Chang
Selection e
New
requirements
In-project RE
Agreed
(refinement of
requirements
req./technical
Market Analysis New requirements for release n
analysis)
New
Innovation requirements
(Invention) Developme
Marketing/ Key customers nt
Internal
Sources Sales
Distributors Development (release)
Support Project a
external Development
Market Sources Partners (release) Project
etc a+1
Development
Regulation (release) Project
a+n
Sub- 46
contractors
background – industry environment
Multiple influences (trends/hype/fashion, laws/regulations,
standards, other products etc) Multiple stakeholders (end-
customers, partners, sub-contractors, competitors, distributors etc)
Multiple sources
Elicited: e.g. market analysis, segment analysis, surveys, focus groups,
personas, competitor analysis
Other: e.g. support system/dept., installers/app., marketing/sales,
management (unofficial), developers, experts, history (limitations) etc
Management
Sub-
contractors
Gap analysis
Competitor
Project 1
Distributors Requirements Project 2
Partner
Engineers Engineering ….
Project n
Customer
Law &
regulation
Trend
Etc
47
background – industry environment (2)
Large amount of
information/data/requests/wishes/goals/requirements
coming in all the time…
Limited only by when we choose to do cut-off
Multiple levels of abstraction and refinement/contents
Traceability and access to requirement sources vary largely –
e.g. getting hold of more information regarding req.
Multiple projects for each product!
!Multiple products for each company
48
multiple perspectives of requirements and
requirements engineering
49
multiple perspectives (2)
Project perspective
Delivered to a project:
A package of requirements is allocated to a project!
They are specified, initially analyzed and prioritized!
Estimations/initial analysis, risk analysis are performed and attached to
the requirements (project planning parameters are based on these
estimations)!
RE in projects revolves around:
Manage requirements (V&V, refinement/break-down, update, risk analysis)
Assure testability
Assure that the end-result (e.g. software) of the project reflects the
requirements allocated to the project
Assure requirements: Inspections, reviews
Dependencies
Assure end-result is in accordance with requirements (that the req. were
realized inthe right way): System test, acceptance tests, inspections, reviews
Take care of CRs to requirements
50