Professional Documents
Culture Documents
System Features
Chapter 4
Prepared by: Dr. Hayfa Abu Addous
1
Requirement Pyramid
Depending on the format, source, and common characteristics, the requirements can
be split into different requirement types. Here are some requirement types that are
often used in projects:
Stakeholder need: a requirement from a stakeholder (STRQ)
Feature: a service provided by the system, usually formulated by a business analyst;
a purpose of a feature is to fulfill a stakeholder need (FEAT)
Use case: a description of system behavior in terms of sequences of actions (UC)
Supplementary requirement: another requirement (usually nonfunctional) that cannot
be captured in use cases (SUPL)
Test case: a specification of test inputs, execution conditions, and expected results
(TC)
Scenario: a specific sequence of actions; a specific path through a use case
2
Requirement Pyramid, Cont.,
3
Requirement Pyramid, Cont.,
The main difference between needs and features is in the source of the
requirement.
Needs come from stakeholders
Stakeholder Requests Document include the needs
and features are formulated by business analysts.
The Vision document aims to derive features from stakeholder needs ( can
include the needs if there is not a separate Stakeholder Requests document)
Use cases are derived from features that describe the system’s functionality.
Supplementary requirements are derived from features that cannot be captured
in the use cases.
Scenarios help derive test cases from use cases and facilitate the design and
implementation of specific paths through use cases.
The role of test cases is to check if use cases and supplementary requirements
are implemented correctly.
4
Requirement Pyramid, Cont.,
The lower the level, the more detailed the requirement.
For example:
a need might be “Data should be persistent.”
The feature can refine this requirement to be “System
should use a relational database.”
On the supplementary specification level, the
requirement is even more specific: “System should use
Oracle 9i database.”
5
Requirement Pyramid, Cont.,
One of the best practices of requirements management
is to have at least two different levels of requirement
abstraction.
For example, the Vision contains high-level requirements
6
Traceability between Requirements
Traceability is a technique that provides a relationship
between different levels of requirements in the system.
This technique helps you determine the origin of any
requirement.
requirements in requirement pyramid are traced from the
top level down
7
The Importance of Tractability
Traceability plays several important roles:
Verifying that an implementation fulfills all requirements:
Everything that the customer requested was implemented.
Verifying that the application does only what was requested:
Don’t implement something that the customer never asked
for.
Impact analysis: What elements will be affected when we
consider adding a new requirement or changing an existing
one?
Helping with change management: When some
requirements change, we want to know which test cases
should be redone to test this change.
8
Requirement to Requirement Traceability
Check that every element is traced to something
This ensures that all needs and features are in the requirements
This ensures that there is not a requirement not needed by the
user – gold plating
9
Requirement to Requirement Traceability,
Cont.,
Every need usually maps to some features. Generally, it is a many-
to-many relationship because one need can trace to many features,
but one feature may be derived from many needs. One need
mapping to one feature is also a common case.
The features map to use cases in a many-to-many relationship.
The features also map to supplementary requirements in a many-to-
many relationship.
Every use case maps to one or more scenarios, so a one-to-many
relationship exists between use cases and scenarios.
Scenarios map to test cases in a one-to-many relationship.
10
An Overview of the Requirements
Management Process
We learned before that Requirements management is a systematic
approach to eliciting, organizing, and documenting the requirements
of the system.
A simplified description of the requirements management process
contains the following major steps:
n Establishing a requirements management plan (RMP)
n Requirements elicitation
n Developing the Vision document
n Creating use cases
n Supplementary specification
n Creating test cases from use cases
n Creating test cases from the supplementary specification
n System design
11
Requirements Management Process
The first step (requirements management plan) defines
the requirements pyramid.
In each of the next seven steps, one of the elements of
the pyramid is built.
12
Requirements Management Process,
Cont.,
Requirements management is an interactive process.
In a typical iteration, a full pass through the pyramid is performed.
Even in the same iteration, we can go back a few steps and repeat
the activity.
For example, during the creation of a test case, we can discover
that some information is missing, and we need more input from a
stakeholder, so we go back a step to “gathering requirements.”
To maintain the model’s integrity, it is important to update all
affected requirements.
In initial iterations the emphasis is placed on the first few steps (the
top of the pyramid), and in later iterations more time is spent on the
lower part of the pyramid.
13
The Features of a Product or System
Chapter 9 in the Textbook
14
Problem Domain & Solution Domain
Needs
– in user
terms Problem Domain
Features – a
service provided
by the system that
fulfills a need
Software requirements
– more specific Solution Domain
15
Needs and Features Documents
Stakeholder Needs and Features are included in the
Vision document.
Sometimes we include the needs in a separate
document such as “Stakeholder Requests Document”
16
Stakeholder and User Needs
Definition: a reflection of the business, personal, or
operational problem (or opportunity) that must be
addressed in order to justify consideration, purchase, or
use of a new system.
Examples:
I need easier ways to understand the status of my inventory
I’d like to see a big increase in the productivity of sales order
entry
In RequisitePro we call the need “Stakeholders
Requests” and refer to it by STRQ.
17
Features
Definition: a service the system provides to fulfill one or more
stakeholder needs
Sometimes in talking to users, they will discuss features not needs
and can be hard to distinguish between them
Features are a convenient way to describe the functionality without
getting bogged down in detail
Features are at a high level of abstraction
It is important to keep track of which feature was derived from which
request, so they could be traced to the features implementing them.
In Requisite Pro we refer to a feature as FEAT.
Usually features are one of the main requirements in the project, but
if the user can express all requirements in the form of use cases
(UC), features may not be necessary.(page 37)
18
Examples of Features
Application Domain Example of a Feature
Elevator control system Manual control of doors during fire
emergency
Inventory control system Provide up-to-date status of all inventoried
items
Defect tracking system Provide trend data to assess product
quality
Payroll system Report deductions-to-date by category
19
Managing Complexity
Limit features to somewhere between 25-99 to avoid getting in
the details (preferred<50)
Any more than 50 is probably too much detail
Any less than 25 is probably not enough
Add attributes (properties) to the features to track additional
information
Example attributes:
Name or Unique identifier
Sponsor
History data
Allocated from
Traced to
Priority
20
Features Attributes
For example, the attribute priority could be used to
capture the results of the cumulative voting in a
brainstorming session.
the attribute version number might be used to record the
specific software release in which we intend to
implement a specific feature.
No limit to the types of attributes you might find useful.
However, experience has demonstrated that some
common attributes for features apply to most project
circumstances
21
Features Attributes , Cont.,
Attributes can be either list-type (identified by the sets of predefined
descriptive values such as High, Medium, and Low) or entry-type
(text, time, date, numeric integer, numeric real).
The default attributes of features in RequisitePro are as follows
(Page. 111):
Priority (usually used to determine order of implementation)
Status (tracks the progress of requirement development—Proposed,
Approved, Incorporated, and Validated)
Difficulty (how difficult is implementing this requirement—the default
values are High, Medium, and Low)
Stability (the probability that the feature will not change during the
project)
22
Features Attributes , Cont.,
Risk (the probability of issues related to this requirement—problems
with implementation, missing deadlines, and so on)
Planned iteration (for example, E1—the first iteration in the
Elaboration phase)
Actual iteration
Origin (source of the requirement)
Contact Name (usually the person responsible for this requirement)
Enhancement Request
Defect
Author
Location (in which document it resides)
23
Features Attributes , Cont.,
This list may vary depending on the version of
RequisitePro.
Very often we need to add attributes.
We may want to have an attribute Importance, because
it is not the same as Priority. It may help to manage the
scope in case of delays. Values that can be used include
Mandatory,Desirable, and Nice to have.
Described attributes may be used not only for features,
but also for other requirements (such as use cases and
supplementary requirements).
24
Other possible attributes (Textbook Table
9-2)
Attribute Description
25
Other possible attributes, Cont.,
Risk Indicates a measure of the probability that
the feature will cause undesirable events,
such as cost overruns, schedule delays, or
even cancellation. Example: High, Medium,
.Low risk level
Stability Reflects a measure of the probability that
the feature will change or that the team's
understanding of the feature will change.
This attribute helps establish development
priorities and determine those items for
which additional elicitation is the
appropriate next action. Example: High,
.Medium, Low stability
27
Problem of Project Scope
Project scope is a function of…
The functionality that must be delivered to meet the user’s
needs
The resources available to the project
The time available in which to achieve the implementation
28
Problem of Project Scope
Resources – primarily labor
Brooks [1975] demonstrated that adding resources to a software
project is risky and would most likely hurt the schedule
You can not make a baby with 9 women in one month
Time
Sometimes time is fixed – i.e. tax software
Assume both resources and time is fixed, the scope is
depicted as the area of the box.
Achievable scope – when the effort required to
implement the system features is equal to the resources
available during the scheduled time
Resources
Scope
Time Deadline 29
The Requirements Baseline
Requirements baseline definition
The itemized set of features intended to be delivered in a
specific version of the application.
30
Setting Priorities
After all, if we could do all the work, the prioritization would be
unnecessary.
If we can't do all the work, we still haven't figured out how much we
can do, and therefore, we do not yet know where to draw the
baseline for the project.
Let users set the priorities not the development team.
Priority—High: Must be implemented no later than in the first
iteration of the Construction phase.
Priority—Medium: Must be implemented no later than by the end of
Construction.
Priority—Low: May be implemented if time permits.
Sometimes we use (critical-important-useful) scale instead of (high-
medium-low).
31
Assessing Effort
Establish the rough level of effort implied by each feature
of the proposed baseline
Rough Order of Magnitude – ROM
Include the development team in the estimate
Use past project if possible
Use expert judgment
Do this early in the project to understand at a high level
the scope
Delaying this until later may mean that some analysis is wasted
when it is found out that this is 200% of what can be done
Rough Order of Magnitude – ROM : An estimate of costs and time provided in the early stages of a
project when its scope and requirements has not been fully defined
32
Assessing Effort, Cont.,
Let's assume that the product or project manager is the champion for
our project and has the following dialogue with the developers for the
project
PRODUCT MANAGER: How difficult is this feature to do?
DEVELOPMENT TEAM: We don't know. We don't have any
requirements or design yet.
PRODUCT MANAGER: I respect that, but is it the easiest thing
we've ever done?
DEVELOPMENT TEAM: No.
PRODUCT MANAGER: OK, is it the most difficult feature on the
list?
DEVELOPMENT TEAM: No.
PRODUCT MANAGER: On a scale of low-medium-high, we'll
give it a medium. OK?
DEVELOPMENT TEAM: OK. Medium it is.
PRODUCT MANAGER: OK, on to the next feature.
33
Risk
Risk in this context
Probability that the implementation of a feature will cause an
adverse impact on the schedule and/or budget
Can also think of this as uncertainty of the estimate
Risk Mitigation
No need to mitigate all risks
But if a feature is of high risk and critical priority…then risk
mitigation is a must
Risk—Technology High: such as using a new technology with which
the team does not have any experience.
Risk—Technology Low: such as using a well-known technology with
which the team has a lot of experience.
Sometimes we use the scale( high, medium, low) instead of (high,
low)
34
Example: Shrink-wrapped Software Product.
Prioritized Features List with Effort and Risk Estimates
Feature Priority Effort Risk
1. External relational database Critical Medium Low
support
4. Portability to a new operating Critical High Medium
system release
6. Import of external data by style Critical Low High
36
User’s Bill of Rights
The user is always right. If there is a problem with the use of the system,
the system is the problem, not the user.
The user has the right to easily install and uninstall software and hardware
systems without negative consequences.
The user has a right to a system that performs exactly as promised.
The user has a right to easy-to-use instructions (user guides, online or
contextual help, and error messages) for understanding and utilizing a
system to achieve desired goals and recover efficiently and gracefully from
problem situations.
The user has a right to be in control of the system and to be able to get the
system to respond to a request for attention.
37
User’s Bill of Rights
The user has the right to a system that provides clear, understandable, and
accurate information regarding the task it is performing and the progress
toward completion.
The user has a right to be clearly informed about all system requirements
for successfully using software or hardware.
The user has a right to know the limits of the system's capabilities.
The user has a right to communicate with the technology provider and
receive a thoughtful and helpful response when raising concerns.
The user should be the master of software and hardware technology, not
vice versa. Products should be natural and intuitive to use.
38
Key Points
The development team must play a more active role in
eliciting the requirements for the system
Product or system features are high-level expressions of
desired system behavior
System features should be limited to 25-99, with fewer
than 50 preferred
Attributes provide additional information about a feature
39