Software Requirements By Pete Sawyer Presented by Ehsan Ghaneie – Software Engineering II

advertisement
Software Requirements
By Pete Sawyer
Presented by Ehsan Ghaneie
EEL6883 – Software Engineering II
Software Requirements
 Software requirements concern the
specification of software systems
 Software systems are always derived from
some business problem
 They are always embedded in an operational
context
 They have interfaces to human users,
business process elements, or other
hardware/software systems
Software Requirements
 Derivation of software requirements can
rarely be isolated from underlying business
problem
 Software requirements are not a discrete
area of software engineering
 They are part of the system engineering
process known as requirements engineering
Why is it important?
 An effective RE process that minimizes
occurrences of requirement errors is critical to
success of any development project
 The cost of rectifying errors in the
requirements increases significantly as
development proceeds
Requirements and Constraints
 A Requirement defines a property or capability that the system
must exhibit in order for it to solve the business problem for
which it was conceived
 Functional Requirements describe a function that the
system must perform
 Nonfunctional (Extra-Functional) Requirements describe
the qualities of a system


How well the system operates within its environment
The quality of delivery of functional requirements
 Some requirements are emergent properties and dependant on
a wide range of factors some of which are hard to analyze and
control
 Satisfying such requirements depends upon how the whole
system operates within its environment, and not just a particular
system component
Requirements and Constraints
 Requirements are specified at several points
on a spectrum that ranges from those with a
business focus to those with a technical focus
 At the highest level are the goals of a system
that set out in very broad strategic terms what
is needed to solve some business problem

Identifying these needs usually motivates a
development project
Requirements and Constraints
 The next level of requirements define what must be
observable in a black-box system that solves the
business problem

These are called user requirements
 Stakeholder requirements
 System requirements
 The technically focused requirements exist only to
make it possible to satisfy the business focused ones
 Constraints are like negative requirements and act to
limit the set of possible solutions
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Requirements Engineering Process
 Is a process that must transform a business
problem into a specification of the properties
of a system that will provide an appropriate
solution to the problem, through a set of
activities
What are the activities?
 The properties that the system must exhibit
must be elicited
 Elicited requirements must be subjected to
analysis to establish a set of requirements
that are correct, complete, and feasible
 This set of requirements must be then
recorded in a specification document that
communicate the requirements to the people
who will use them to develop the software
Requirements Engineering Process
 The documented requirements must be then
validated to ensure the software they specify
will meet the needs of the people whom from
the requirements were elicited
 As development proceeds requirements need
to be managed so that changed are
controlled
Requirements Engineering Process
 This process begins with scoping the system
which involves understanding the underlying
problem that the system is to address,
identifying the goals of the system, and
outlining how it will operate in its environment
 Then the system requirements are elicited
from their sources, analyzed, and validated
 For each software component, further
analysis of the allocated requirements is used
to derive the requirements that fully specify
the software
Requirements Engineering Process
 It is not always possible to capture all the
requirements
 If the product’s environment is volatile, the
requirements will also be volatile

When software products are developed to
compete in the market, the requirements are
likely to evolve with the market
 Other factors such as meeting the release
dates can also affect the RE process
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Requirements Elicitation
 Requirements elicitation is the process of
discovering the requirements
 The requirements engineer must identify the
sources of requirements, collect information
about the problem from these sources, and
synthesize requirements from this information
Requirements Elicitation
 Requirements elicitation is not a passive
learning process about what stakeholders
want
 Instead, the requirements engineer must dig
beneath the stakeholders’ accounts for their
concerns, needs, and desires to uncover the
underlying business problem
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Requirements Sources
 First step is to identify stakeholders
 Large systems have many stakeholders and they are
usually the main sources of requirements
 Stakeholders must be classified to ensure no
significant sources of requirements are overlooked
 Role of each stakeholder must be understood and a
representative must be selected to work with the
requirement engineer
 Since these people are usually busy people, it is
important to find people who are motivated to act as
“product champions”.
Requirements Sources
 Stakeholders have viewpoints
 These are partial views of the problem
domain which are colored by the
stakeholders’ own role and experience
 This means requirements might be
inconsistent

The requirements engineer must recognize
the scope and limitations of stakeholders’
viewpoints to help resolve inconsistencies and
apply priorities
Requirements Sources
 Stakeholders are not the only sources of
requirements
 Requirements and constraints might come
from the application domain or from business
rules that exists in the organizational
environment
 Key requirements therefore might be hidden
in documents, interface specifications, and
the experience of domain experts
Requirements Sources
 It is important to identify the key requirements that
are derived from the application domain and
therefore domain expertise plays a crucial role in
successful requirements elicitation
 Although stakeholders might be good domain
experts, but they’re not good candidates mostly
because of their view points and often they find it
difficult to articulate the tacit knowledge that
underpins how the domain operates
 If the requirement engineer doesn’t have sufficient
domain expertise and can not be trained within a
reasonable time, domain experts might have to be
brought in from elsewhere to play an active role in the
RE process
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Elicitation Techniques
 Once sources are identified, the process of
collecting knowledge about the problem
begins
 This starts with understanding the
stakeholders’ role in the problem domain, or
basically understanding their jobs
 The requirements engineer must find an
effective way to get the stakeholders analyze
what they need
Elicitation Techniques
 Users’ scenarios provide a valuable tool for
socio-technical systems
 The requirements engineer asks the users to
identify their main tasks, each consisting of a
sequence of events, noting preconditions,
post conditions, communication with
colleagues, and other events that are
involved in the task
Elicitation Techniques
 Elicitation may proceed as a series of
interviews with individual stakeholders
 It is helpful to get them all together (Elicitation
workshops) especially once the problem is
understood. This helps resolving
inconsistencies
 But elicitation workshops are not always the
best solution as some people may be
unwilling or unable to participate or may find
scenarios awkward
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Requirements Analysis
 Requirements Analysis is about
understanding the problem and synthesizing
a set of requirements that specify the best
solution
 Analysis is needed to help deepen the
understanding of the problem and what is
required, and to detect and resolve problems
such as inconsistencies and incompatibility
with the requirements
 Elicitation and analysis are closely coupled
Requirements Analysis
 Requirements Analysis will result in a
baseline set of requirements, meaning
requirements that the system will implant
 These are not necessarily everything the
stakeholders asked for.
 The requirements in the baseline should be
necessary and sufficient
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
The System Boundary
 Systems are developed to address some
strategic goal or goals and these goals are
first things that need to be identified
 The scope of the project must be defined
once the goals are identified
 The scope must include a definition of the
system boundaries meaning identifying what
elements of the problem are going to be
addressed by the proposed system
The System Boundary
 Outside the system boundaries are the things
in the system’s environment hat may impose
requirements or constraints
 Within the system boundary are all the
aspects of the problem for which the
proposed system will provide a solution
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Requirements Modeling
 Engineers use models to help make sense of
complex information and visualize complex system
properties
 Requirements engineers construct models of the
problem so they can discover suitable solution
requirements
 Models are also used to help describe the proposed
system to help communicate with the developers
 If the dynamic behavior of system can not be
analyzed using static models, simulation can be used
instead
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Why derive more requirements?
 The cost and technical implications of system requirements are
often unclear and this makes them hard to assess and validate
 The requirements elicited from the stakeholders will typically be
expressed in terms of the application domain. The requirements
needed by software developers are technical
 The requirements need to be translated from domain-centric to
software-centric, from abstract to technical
 So it is usually helpful to elaborate the system requirements by
deriving new requirements that focus on more detailed
properties of the proposed system
 One of the motives for deriving more detailed requirements
is understanding the system implications
 The other one is to provide enough details for the developers
Derived requirements
 The derivation of requirements is not confined
to functional requirements
 High-level expressions of non functional
requirements need to be quantified and
transformed into a set of equivalent functional
requirements
 The requirements engineer must choose a
suitable metric and specify how the system
must score against this metric
Derived requirements
 The derivation process should stop when the
requirements are sufficiently specific for


the requirements engineer to be confident that
the requirements are fully understood
the developers to commence solution design
 Getting too detailed leads to premature
design and constraining the design
unnecessarily
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Requirements Attributes
 It is insufficient merely to record the
statements of need that express the
requirements
 Requirements have a number of attributes
that should be assigned values in order to
ease their management
 Some of these attributes are:

Identifier, source, date, rationale, type, priority,
stability, verification procedure, and status
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Requirement Trade-offs
 Requirements from different stakeholders are valid




but mutually inconsistent
Insufficient resources available to satisfy all the
requirements
Stakeholders must be made aware of such conflicts
and be explicitly involved in making the trade offs
Agreeing on requirements’ priorities helps the tradeoff process
Achieving agreement is often easier if stakeholders
are aware of each others’ concern
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Software Requirements Specification
 Projects may use up to three kinds of
“specification” document at different stages of
the RE process
 Concept of Operations (ConOps) document
sets out the projects vision and scope
 System requirements specification defines
the requirements for the whole system
 Software requirements specification (SRS)
specifies the requirements for a software
component or subsystem
Software Requirements Specification
 Each document has a different purpose
 System requirements specification must be
readable by the stakeholders to enable them
to validate the requirements and approve
them as the basis for subsequent
development
 The SRS, by contrast, is primarily a technical
document aimed at the developers. It must
specify the software completely and
unambiguously
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Requirements Validation
 Requirements validation can be crudely
characterized as ensuring correctness of the
requirements
 The set of requirements specified in the requirements
specification must accurately reflect what is needed
to solve the underlying business problem
 This concerns not just the correctness of individual
requirements, but the correctness, completeness,
and consistency of the specification as a whole
 The requirements must also conform to appropriate
standards, guidelines, and conventions in order to
ensure the readability, maintainability, consistency,
and other important qualities of a specification
document
Requirements Validation
 In most cases, the requirements are validated
statically
 In some cases in which complex dynamic
behavior is specified, the requirements may
need to be validated dynamically using
prototypes or simulations
 This kind of validation is costly and it should
be done well before the issue of the draft
requirements specification document
Requirements Validation
 Requirements reviews are a mechanism for
validating requirements
 Review panel must include both developer
and stakeholder representatives
 This task can be made easier by including
checklists of things to look for
Requirements Validation
 Another way to validate the requirements is to
write test cases against the requirements
 If it proves excessively hard to plan how a
requirement can be verified then there is
something wrong with the requirement
 Although non functional requirements are
inherently hard to verify, they must be
verifiable if they are to serve any useful
purpose
Requirements Validation
 Once the requirements specification
document has been validated and any
necessary changed have been made, the
requirements specification document will be
“signed off” on
 Although a formal “signing off” may not occur,
it will considerably complicates the
requirements management tasks
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Requirement Management
 Includes:




Change control
Version control
Requirements tracing
Status tracking
 A fundamental prerequisite for each of these
is that requirements must be uniquely
identifiable
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Change Control
 Changes will always occur after the
requirements specification document has
been signed off on
 It is crucial that change is not permitted to
occur without control
 Uncontrolled or ad-hoc changes to the
requirements will make project planning
impossible resulting in a system that is late
and/or over budget
Change Control
 A change request has to go through a formal
process and cost/benefit analysis has to be
performed before a decision is made to
accept or reject or perhaps postpone it to a
later release
 The implications of NOT approving the
change must also be considered
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Version Control
 Requirements changes must be recorded
 This includes the details of the change, the date of
approval, and the rational for the change, including
the rationale for the decision to approve the change
 Changes then need to be communicated to the
developers and this requires issuing of new versions
of the requirements specification document
 A numbering system for document versions is
essential
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Requirements Tracing
 Requirements must be traced in order to
enable change control, and status tracking
 At a minimum, requirements tracing means
recording the derivation relationships
between requirements
Requirements Tracing
 Tracing should be possible both forward and
backward


Forward tracing is necessary to assess the
impact of requirements down through its
derived requirements and into the components
in which they are allocated
Backward tracing is required so it is possible
to ensure that the system will ultimately solve
the business problem adequately if one of the
derived requirements is changed for any
reason
Software Requirements
 Requirements Engineering Process

Requirements Elicitation



Requirements Analysis








Requirements Sources
Elicitation Techniques
The System Boundary
Requirements Modeling
Derived Requirements
Requirements Attributes
Requirement Trade-offs
Software Requirements Specification
Requirements Validation
Requirements Management




Change Control
Version Control
Requirements Tracing
Status Tracking
Status Tracking
 Requirements can be classified according to
weather they are pending, approved,
rejected, deferred, validated, completed, or
cancelled
 Managing a record of requirements’ status is
important for tracking the project progress
Questions?
Download