Professional Documents
Culture Documents
ENGINEERING
1
TODAY’S LECTURE: AGENDA
2
REQUIREMENT ENGINEER’S ROLE
Requirements
Engineer
REQUIREMENT ENGINEER'S TASKS
5
REQUIREMENT ENGINEER'S TASKS
6
REQUIREMENT ENGINEER'S TASKS
Elicit requirements.
Interviews, Facilitate requirements workshops, Document analysis,
Surveys, Customer site visits, Business process analysis, Work flow
and task analysis, Event lists, Competitive product analysis,
Users naturally emphasize the system's functional requirements, so
steer the discussions to include quality attributes, performance
goals, business rules, external interfaces, and constraints.
7
REQUIREMENT ENGINEER'S TASKS
Analyze requirements.
Look for
derived requirements
unstated requirements.
8
REQUIREMENT ENGINEER'S TASKS
9
10
REQUIREMENT ENGINEER'S TASKS
12
REQUIREMENTS MODELS
13
REQUIREMENT ENGINEER'S TASKS
Manage requirements.
A Requirements Engr. is involved throughout the entire
software development life cycle, so (s)he should help
create, review, and execute the project's requirements
management plan.
Storing the requirements in a requirements management
tool facilitates this ongoing management.
15
REQUIREMENT ENGINEER'S TASKS
16
REQUIREMENTS CLASSIFICATION
18
Determining ways in which the new system can support
user needs leads to statements of the system’s functional
requirements.
The International Institute of Business Analysis (IIBA)
defines functional requirements as “the product
capabilities, or things that a product must do for its users.”3
Functional requirements begin to define how the system
will support the user in completing a task
19
User requirements and functional requirements defined in
the analysis phase will flow into the design phase, where
they evolve to become more technical, describing how the
system will be implemented. Requirements in the design
phase reflect the developer’s perspective, and they usually
are called system requirements
These requirements focus on describing how to create the
software product that will be produced from the project.
20
The final category of requirements is nonfunctional
requirements
The IIBA defines this group of requirements as “the quality
attributes, design, and implementation constraints, and
external interfaces which a product must have
21
FUNCTIONAL REQUIREMENTS
22
NFRS/QUALITY ATTRIBUTES
23
EXAMPLES: NFRS
The system shall support up to 2000 The system shall provide access to
simultaneous users against the central a legacy course catalogue database
database at any given time, and up to with no more than a 10 seconds
500 simultaneous users against the latency
local server at any one time.
24
OTHER NON-FUNCTIONAL
REQUIREMENTS
• Functional
• Non-Functional (NFRs)
• Usability
• The ease with which the system can be learned and operated by the intended users.
• Help, documentation, required training time, task times for typical tasks,
conformance to usability standards, etc.
• Reliability
• Allowed MTBF (Mean Time Between Failures)
• Recoverability, etc.
26
FURPS+ CLASSIFICATION OF
REQUIREMENTS
Performance
Response time, throughput, …
Average, maximum response time for a transaction
Number of customers/transactions the system can
accommodate
Example:
Buyers want to complete sales processing very quickly.
One bottleneck is external payment authorization. Our goal:
authorization in less than 1 minute, 90% of the time.
Supportability:
Supportability is the ability of the software to be easily
modified to accommodate enhancements and repairs 27
FURPS+ CLASSIFICATION C O N T.
Design Constraints
E.g. requiring a relational database
Interface constraints
i.e. protocols for interaction with external systems
Implementation Constraints
Required platform, implementation language
Physical constraints
Hardware devices
28
FURPS+ CLASSIFICATION EXAMPLES
• "The system will run seven days a week, twenty-four hours per day"
FURPS+ Type?
• “R” reliability requirement.
29
NFR CLASSIFICATION
Non-functional
requir ements
Availability
Availability is a measure of the planned up time during
which the system is actually available for use and fully
operational.
More formally, availability equals the mean time to failure
(MTTF) for the system divided by the sum of the MTTF
and the mean time to repair the system after a failure is
encountered.
Scheduled maintenance periods also affect availability.
Some authors view availability as encompassing reliability,
maintainability, and integrity.
31
NON-FUNCTIONAL REQUIREMENTS
Efficiency
Efficiency is a measure of how well the system utilizes
processor capacity, disk space, memory, or communication
bandwidth.
Efficiency is related to performance, another class of
nonfunctional requirement.
If a system consumes too much of the available resources,
users will encounter degraded performance, a visible
indication of inefficiency.
32
NON-FUNCTIONAL REQUIREMENTS
Flexibility
Flexibility measures how easy it is to add new capabilities to the
product.
If developers anticipate making many enhancements, they can
choose design approaches that maximize the software's flexibility.
This attribute is essential for products that are developed in an
incremental or iterative fashion through a series of successive
releases or by evolutionary prototyping.
33
NON-FUNCTIONAL REQUIREMENTS
Interoperability
Interoperability indicates how easily the system can
exchange data or services with other systems.
34
NON-FUNCTIONAL REQUIREMENTS
Reliability
The probability of the software executing without failure
for a specific period of time is known as reliability.
Ways to measure software reliability include the
percentage of operations that are completed correctly and
the average length of time the system runs before failing.
35
NON-FUNCTIONAL REQUIREMENTS
Robustness
Robustness, sometimes called fault tolerance, is the degree to which a
system continues to function properly when confronted with invalid
inputs, defects in connected software or hardware components, or
unexpected operating conditions.
Robust software recovers gracefully from problem situations and is
forgiving of user mistakes.
When eliciting robustness requirements, ask users about error
conditions the system might encounter and how the system should react.
36
NON-FUNCTIONAL REQUIREMENTS
Usability
Also referred to as ease of use and human engineering,
usability addresses the myriad factors that constitute what
users often describe as user-friendliness.
Software designed for effective and unobtrusive usage.
Usability measures the effort required to prepare input for,
operate, and interpret the output of the product.
37
NON-FUNCTIONAL REQUIREMENTS
Integrity
38
NON-FUNCTIONAL REQUIREMENTS
Maintainability
Maintainability indicates how easy it is to correct a defect
or modify the software.
Maintainability depends on how easily the software can be
understood, changed, and tested.
39
ATTRIBUTE TRADE-OFFS
40
ORIGIN OF THE REQUIREMENTS
MISINTERPRETATIONS
The existence of a feature of the problem that is not covered by any element of the
Silence text.
The presence in the text of an element that corresponds for to a feature of the
Over-specification problem but to features of a possible solution.
The presence in the text of two or more elements that define a feature of the system
Contradiction in an incompatible way.
The presence in the text of an element that makes it possible to interpret a feature of
Ambiguity the problem in at least two different ways.
The presence in the text of an element that uses features of the problem not defined
Forward Reference until later in the text.
The presence in the text of an element that defines a feature of the problem in such
a way that a candidate solution cannot realistically be validated with respect
Wishful Thinking to this feature.
CHARACTERISTICS OF INDIVIDUAL
REQUIREMENT STATEMENTS
Complete
Correct
Feasible
Necessary
Prioritized
Unambiguous
Verifiable
Realistic
42
COMPLETE
44
FEASIBLE
45
NECESSARY
46
PRIORITIZED
49
EXAMPLE: VERIFIABLE NFR
50
REALISTIC
51
CHARACTERISTICS OF REQUIREMENT
SPECIFICATION (SRS)
Complete
Consistent
Modifiable
Traceable
Noiseless
Free of Over-specification
Ranked for importance and/or stability
COMPLETE SRS