You are on page 1of 50

Requirement Analysis & Specification

 Dr. Saqib Saeed


 PhD Information Systems [University of Siegen, Germany]
 MS Software Technology [Stuttgart University of Applied
Sciences Germany]
 Saqib.saeed@gmail.com
 5 Edited Books
 7 Guest Edited Journal Special Issues
 5 Book Chapters
 12 Journal Articles
 15 Conference Papers
 Research Interests
 Empirical Software Engineering
 Human Centered Computing
Course Objective

 On completion of the course the student will:


 be able to skillfully elicit software requirements
 be able to clearly and unambiguously document software
requirements according to industry standards
 thoroughly understand and be able to describe how to
conduct bespoke requirements engineering in terms of
common processes and techniques
 thoroughly understand and be able to describe the
challenges involved in traditional requirements engineering
 be able to comprehensively assess current requirements
engineering practices in a software project or a software
development company
 be able to suggest relevant improvements on the
requirements engineering processes in a convincing way
Textbook(s)

 Requirements Engineering – A Good Practice Guide


 I. Sommerville & Pete Sawyer
 Software Requirements
 Karl Wiegers
Contents

 Introduction to requirements analysis and specification.


 Market-driven requirements engineering (MDRE) vs.
Bespoke
 Requirements Elicitation
 Requirements Specification
 Quality Assurance
 Requirements Prioritization
 Management
 Buffer time
What is a requirement?

 It may range from a high-level abstract statement of


a service or of a system constraint to a detailed
mathematical functional specification.
 This is inevitable as requirements may serve a dual
function
 May be the basis for a bid for a contract - therefore must be
open to interpretation;
 May be the basis for the contract itself - therefore must be
defined in detail;
 Both these statements may be called requirements.
Requirements abstraction (Davis)

“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. The softw are m ust provide a means of representing and


1. accessing e xternal files crea ted b y other tools.

System requir ements specification

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

 Describe functionality or system services.


 Depend on the type of software, expected users and
the type of system where the software is used.
 Functional user requirements may be high-level
statements of what the system should do but
functional system requirements should describe the
system services in detail.
Examples of functional requirements

 The user shall be able to search either all of the


initial set of databases or select a subset from it.
 The system shall provide appropriate viewers for the
user to read documents in the document store.
 Every order shall be allocated a unique identifier
(ORDER_ID) which the user shall be able to copy to
the account’s permanent storage area.
Requirements inaccuracy

 Problems arise when requirements are not precisely


stated.
 Ambiguous requirements may be interpreted in
different ways by developers and users.
 Consider the term ‘appropriate viewers’
 User intention - special purpose viewer for each different
document type;
 Developer interpretation - Provide a text viewer that shows
the contents of the document.
Requirements completeness and
consistency

 In principle, requirements should be both complete


and consistent.
 Complete
 They should include descriptions of all facilities required.
 Consistent
 There should be no conflicts or contradictions in the
descriptions of the system facilities.
 In practice, it is impossible to produce a complete
and consistent requirements document.
Non-functional requirements

 These define system properties and constraint e.g.


reliability, response time and storage requirements.
Constraints are I/O device capability, system
representations, etc.
 Process requirements may also be specified
mandating a particular CASE system, programming
language or development method.
 Non-functional requirements may be more critical
than functional requirements. If these are not met,
the system is useless.
Non-functional classifications

 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

Product Organisational External


requir ements requir ements requir ements

Efficiency Reliability Portability Inter oper a bility Ethical


requir ements requir ements requir ements requir ements requir ements

Usa bility Deli very Implementa tion Standar ds Leg islative


requir ements requir ements requir ements requir ements requir ements

Perfor mance Space Pri vacy Safety


requir ements requir ements requir ements requir ements
Goals and requirements

 Non-functional requirements may be very difficult to


state precisely and imprecise requirements may be
difficult to verify.
 Goal
 A general intention of the user such as ease of use.
 Verifiable non-functional requirement
 A statement using some measure that can be objectively
tested.
 Goals are helpful to developers as they convey the
intentions of the system users.
Examples

 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

 Conflicts between different non-functional


requirements are common in complex systems.
 Spacecraft system
 To minimise weight, the number of separate chips in the
system should be minimised.
 To minimise power consumption, lower power chips should
be used.
 However, using low power chips may mean that more chips
have to be used. Which is the most critical requirement?
Domain requirements

 Derived from the application domain and describe


system characteristics and features that reflect the
domain.
 Domain requirements be new functional
requirements, constraints on existing requirements or
define specific computations.
 If domain requirements are not satisfied, the system
may be unworkable.
Domain requirements problems

 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

 Should describe functional and non-functional


requirements in such a way that they are
understandable by system users who don’t have
detailed technical knowledge.
 User requirements are defined using natural
language, tables and diagrams as these can be
understood by all users.
System requirements

 More detailed specifications of system functions,


services and constraints than user requirements.
 They are intended to be a basis for designing the
system.
 They may be incorporated into the system contract.
 System requirements may be defined or illustrated
using system models discussed in Chapter 8.
Requirement engineering Process

 Requirement Elicitation
 Requirement Analysis & Negotiation
 Requirements Validation
 Requirements Specification
Requirements Elicitation

 “...the process of discovering the requirements for a


system by communication with customers, system
users and other who have a stake in the system
development.” (Ian Sommerville)
 “...the process of discovering the requirements for a
system by communication with stakeholders and
through the observation of them in their domain”
(Tony Gorschek)

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.

 Domain description (operating environment)


 Business goals pertaining to the system
 Constraints on the system structure and/or behavior by clients
(human or not...)
 Problems that need to be solved – WHAT –
 -- Requirements –
 Attributes, e.g.
 Title, description
 ......but also...
 Rationale
 Source
 Importance
 Benefit
 Etc.
31
Elicitation – the time has come to start.

 To have the Domain and background information is an clear


advantage as you start the elicitation process.
 Know the environment
 Know the vocabulary
 Know the problem as good as possible beforehand
 Read documentation (process descriptions, manuals, mission statements,
specifications, organizational descriptions etc.)
 All this prepares you for the elicitation process
 Stakeholders are the main source for eliciting requirements...
but finding them does not mean you understand them!
 Important to get multiple views on the same issue
 Conflicts
 Many pieces can give a more complete picture

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

 Use cases and Scenarios


 Description of a particular interaction between the (proposed)
system and one or more users (or other terminators, e.g. another
system). A user is walked through the selected operations and the
way in which they would like to interact with the system is recorded.
 + Concentration on the specific (rather than the general) which can
give greater accuracy
 - Solution oriented (rather than problem oriented), can result in a
premature design of the interface between the problem domain and
the solution
 Prototyping
 + Visualization, stimulate ideas, usability centered, (can be
combined with e.g. use cases)
 - Solution oriented (premature design), “is it already done?!”

36
Problems you may encounter.

 Stakeholders can’t express what they need


 (or express/exaggerate too much – risk forgetting important problems)
 Doing it is one thing, explaining it is another...
 Stakeholders express solutions instead of demands
 (e.g. “We want a faster car” when the need is to get to the destination faster – could
be solved with better roads or better route planning)
 Hard to imagine new ways of doing things, as well as consequences thereof...
 Different stakeholders have different (sometimes conflicting) views on the same
thing
 Resistance to change
 Political issues, Status, Culture
 Requirement change over time
 Many requirements
 Stakeholder Access
 Understanding of why RE is done.

37
Further complexity.

 Different kinds of systems – different considerations


 Bespoke (customized)
 Systems (software) designed for a particular customer
 CUSTOMER – DEVELOPER
 This category is often the one thought of in RE literature...
...but there are also...
 Generic products (Market driven)
 E.g. Word processors, databases etc.
 Not designed for a certain customer but a generic one (a group or several different ones)
 Very hard to identify “a customer” – stakeholder ID and stakeholder consultation very
hard...
 Based on market segments etc.
 Semi-generic products (Market driven)
 Products that have to comply to a certain set of rules (e.g. conform to a certain
operating environment and/or interact with other systems) but also be generic in nature.
 E.g. Software for mobile phones.
 Market driven – implies Continuous RE effort.

38
Elicitation – Market driven development
(very short version)

 Stakeholders can consist of complex constellations/ groups


that are not easily accessed or approached...
 Product Champions
 Representatives of a certain group of stakeholders, e.g. a certain user
group
 Often long term (project life cycle)
 A partner of sorts to the req. engineer that elicits and to some extent
analyses the req. that he/she gathers from the PC’s group
 Communicative, “a champion”, cooperative, access
 Focus Groups
 Similar to PC’s but often short term
 More than one person
 Representative for a group of stakeholders
 Work in “workshop” like environment with focus groups (e.g. JAD)
39
Market driven elicitation

 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 !!!

 “the system should be fast enough for our purposes”


 “its important for the users to feel at home with the
system”
 “PCX protocol v.1.3 should be implemented”
 Req. on different abstraction levels
 “Use open standards” vs. “print screen”
 Req. not updated the last six months...
 Test, V&V, change???
 Req. not updated/archived at project completion

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

• Bespoke development (developer – supplier)


• RE primarily as a start up activity within contractual work (maybe as a pre-study)
constructing a SRS to build, changes require negotiations btw customer and supplier
• Project focus (RE, Analysis, Design, V&V, Release.... etc)
• Domain knowledge largely has to be elicited from customers
• Success is characterized by e.g. contractual fulfillment and customer satisfaction (if yo
want repeat business)

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

Many end Customers

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

You might also like