SE Lec4 Req Engineering
SE Lec4 Req Engineering
Requirements Engineering
𝐴
Requirements engineering = 𝜋𝑟 2
Interaction….match
– Different “worlds”
– using vs designing something
– knowing what should be done vs knowing to let a
computer do that
– Users/stakeholders are not an uniform group
– conflict between cost and usability / performance /
features
– conflicting demands from different departments
– Getting the good (ideal) system vs possibility building it
3
good
𝐴
Requirements Example = 𝜋𝑟 2
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.
RE Process and Related Activities
Where? 7
𝐴
Users of a requirements document = 𝜋𝑟 2
𝐴
Requirement Elicitation Techniques = 𝜋𝑟 2
Interviews
▪ Structured (closed) interviews
▪ Non-structured (open) interviews
▪ One-to-one interviews
▪ Group interviews
Surveys
Questionnaires
𝐴
Requirements categorized logically = 𝜋𝑟 2
Feasibility Study
Requirement Gathering
Requirement Specification
Requirement Validation
𝐴
Feasibility study = 𝜋𝑟 2
Business Requirements:
▪ the scope of the project and identify stakeholders
User requirements
▪ concern the user goals of the
system
▪ Statements in natural language plus
diagrams of the services the system
provides and its operational
constraints. Written for customers.
𝐴
Types of requirement = 𝜋𝑟 2
System requirements
▪ define functional and non-functional (or
quality) 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.
𝐴
Example = 𝜋𝑟 2
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
▪ Constraints on the system from the domain of operation
𝐴
Functional requirements = 𝜋𝑟 2
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.
𝐴
Examples of nonfunctional requirements
= 𝜋𝑟 2
Product requirement
The system shall be available to all clinics during normal working
hours (Mon–Fri, 0830–17.30). Downtime within normal working
hours shall not exceed five seconds in any one day.
Organizational requirement
Users of the system shall authenticate themselves using their
health authority identity card.
External requirement
The system shall implement patient privacy provisions as set out in
HStan-03-2006-priv.
𝐴
Usability requirements Example = 𝜋𝑟 2
Property Measure
Speed Processed transactions/second
User/event response time
Screen refresh time
Size Mbytes
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
𝐴
Domain requirements = 𝜋𝑟 2
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.
𝐴
The software requirements document= 𝜋𝑟 2
Answering question:
▪ What problem is being solved?
10-25% of life cycle should be spent here
▪ E.g., Expected software or application life is 10 years
• 1 to 2.5 years in this phase
Techniques
▪ Partitioning: Divide and conquer
• Parts & relationships
▪ Abstraction: Defining in general terms
• Leaving out details
▪ Projection: Viewing problem from different perspectives
• User perspective, programmer perspective, maintainer perspective
▪ Many other techniques
• E.g., data flow diagrams
𝐴
Banking ATM system Example = 𝜋𝑟 2
System evolution This should describe the fundamental assumptions on which the system is
based, and any anticipated changes due to hardware evolution, changing user
needs, and so on. This section is useful for system designers as it may help
them avoid design decisions that would constrain likely future changes to the
system.
Appendices These should provide detailed, specific information that is related to the
application being developed; for example, hardware and database descriptions.
Hardware requirements define the minimal and optimal configurations for the
system. Database requirements define the logical organization of the data used
by the system and the relationships between data.
Notation Description
Natural language The requirements are written using numbered sentences in natural
language. Each sentence should express one requirement.
Structured natural The requirements are written in natural language on a standard form or
language template. Each field provides information about an aspect of the
requirement.
Design description This approach uses a language like a programming language, but with
languages more abstract features to specify the requirements by defining an
operational model of the system. This approach is now rarely used although
it can be useful for interface specifications.
Graphical notations Graphical models, supplemented by text annotations, are used to define the
functional requirements for the system; UML use case and sequence
diagrams are commonly used.
Mathematical These notations are based on mathematical concepts such as finite-state
specifications machines or sets. Although these unambiguous specifications can reduce
the ambiguity in a requirements document, most customers don’t
understand a formal specification. They cannot check that it represents
what they want and are reluctant to accept it as a system contract
Example requirements for the insulin pump
software system 𝐴
= 𝜋𝑟 2
3.2 The system shall measure the blood sugar and
deliver insulin, if required, every 10 minutes. (Changes
in blood sugar are relatively slow so more frequent
measurement is unnecessary; less frequent
measurement could lead to unnecessarily high sugar
levels.)
Condition Action
Requirements reviews
▪ Systematic manual analysis of the
requirements.
Prototyping
▪ Using an executable model of the system to
check requirements. Covered in Chapter 2.
Test-case generation
▪ Developing tests for requirements to check
testability.
𝐴
Requirements management = 𝜋𝑟 2