Requirements Engineering - Computer Science Department …

Download Report

Transcript Requirements Engineering - Computer Science Department …

Requirements Engineering
CS350 Object-Oriented Software Engineering
Software Development Life Cycle
Requirements Engineering


A systems and software engineering process
which covers all of the activities involved in
discovering, documenting and maintaining a
set of requirements for a computer-based
system
A sub-discipline of systems and software
engineering and is concerned with
establishing the goals, functions and
constraints of hardware and software
systems
Requirements Engineering
Requirements inception
 Requirements identification

◦ Identifying new requirements

Requirements analysis and negotiation
◦ Checking requirements and resolving stakeholder
conflicts

Requirements specification
(Software Requirements Specification)
◦ Documenting the requirements in a requirements
document
Requirements Engineering

System modeling
◦ Deriving models of the system, often using a notation
such as the Unified Modeling Language

Requirements validation
◦ Checking that the documented requirements and
models are consistent and meet stakeholder needs

Requirements management
◦ Managing changes to the requirements as the system
is developed and put into use
Requirements Engineering
Feasibility study
 Elicitation & analysis
 Requirements analysis

Feasibility Study
Commences after project request phase
 Assesses the feasibility of providing an IT
solution for the request
 Quantifies the requirements, scope, costs,
benefits and other implications of the
proposed solution

Feasibility Study

The findings and recommendations should
be documented in a report, which
comprises two parts
◦ Management Summary
◦ Technical Specification
Management Summary

Approval Sought
◦ Highlight the major recommendations of the
Feasibility Study.

System Objectives
◦ State study objectives and intended usage of
the proposed system.

Background
◦ Describe the background picture and other
relevant information of the proposed system.
Management Summary

Present Situation
◦ Describe briefly the current operations,
environment and functions of the system
under study

Problem/Improvement Areas
◦ Describe the problems encountered or
anticipated and improvement areas identified
Management Summary

Proposed System
◦ Describe in high level terms the proposed
system and define the scope of the
subsequent SA&D study.

Resource Implications
◦ Estimate the resource requirements and
other implications of the proposed system.

Costs
◦ Estimate the non-recurrent and recurrent
costs of the proposed system
Management Summary

Benefits
◦ Estimate the tangible and intangible benefits of
the proposed system
◦ Realizable benefits, such as reduction in
expenditures, increases in revenue, and staff
savings resulting from deletion of posts, should
be expressed in financial terms. Where notional
or intangible benefits are quoted, the study
should include appropriate productivity and
performance indicators for measuring these
improvements subsequently
Management Summary

Cost-benefits Analysis
◦ Evaluate the cost effectiveness of the
proposed system with indications of the
funding requirements and timing for
realization of the identified benefits
Management Summary

Implementation Plan
◦ Schedule an implementation plan, with
detailed planning on appropriate
implementation stages, which should be in the
format specified in the adopted project
management method, e.g. project technical
plan in PRINCE

Recommendations
◦ Make study recommendations and propose
the way forward
Feasibility Study Technical
Specification

Current Environment Description
◦ Describe current operations and environment
◦ Describe current functions and data

Project Definition
◦ Describe the user requirements
◦ Describe the proposed system, in terms of its functions, data,
workload and user impact
◦ Describe the implementation approach and, if any, development
strategy
◦ Define the implementation plan and its cost/resource
implications with detailed backing information (e.g. Function
Point calculation, sizing, etc)
Elicitation & Analysis

Requirements elicitation
◦ The practice of collecting the requirements of
a system from users, customers and other
stakeholders
◦ Also referred to as requirements gathering
Elicitation & Analysis:
Problems
Scope
 Understanding
 Volatility

Elicitation & Analysis:
Problems

Scope
◦ The boundary of the system is ill-defined or
the customers/users specify unnecessary
technical detail that may confuse, rather than
clarify, overall system objectives
Elicitation & Analysis:
Problems

Understanding
◦ Customers/users are …
 Not completely sure of what is needed
 Have a poor understanding of the capabilities and limitations
of their computing environment
 Don’t have a full understanding of the problem domain
 Have trouble communicating needs to the system engineer
 Omit information that is believed to be “obvious,”
 Specify requirements that conflict with the needs of other
customers/users
 Specify requirements that are ambiguous or untestable
Elicitation & Analysis:
Problems

Volatility
◦ Requirements change over time
◦ Rate of change is sometimes referred to as
the level of requirement volatility
Guidelines
Assess the business and technical
feasibility for the proposed system
 Identify the people who will help specify
requirements and understand their
organizational bias
 Define the technical environment (e.g.,
computing architecture, operating system,
telecommunications needs) into which
the system or product will be placed

Guidelines
Identify "domain constraints" (i.e.,
characteristics of the business
environment specific to the application
domain) that limit the functionality or
performance of the system or product to
be built
 Define one or more requirements
elicitation methods (e.g., interviews, focus
groups, team meetings)

Guidelines
Solicit participation from many people so
that requirements are defined from different
points of view; be sure to identify the
rationale for each requirement that is
recorded
 Identify ambiguous requirements as
candidates for prototyping
 Create usage scenarios or use cases to help
customers/users better identify key
requirements

Sequence of steps

Problem pyramid: Six steps which must be
performed in sequence
Sequence of steps
1.
2.
3.
Identify the real
problem, opportunity
or challenge
Identify the current
measure(s) which
show that the
problem is real
Identify the goal
measure(s) to show
the problem has been
addressed and the
value of meeting it
4.
5.
6.
Identify the "as-is"
cause(s) of the
problem, as it is the
causes that must be
solved, not the
problem directly
Define the business
"whats" that must be
delivered to meet the
goal measure(s)
Specify a product
design how to satisfy
the real business
requirements
Complementary approaches









Identifying stakeholders
Modeling goals
Modeling context
Discovering scenarios (or Use cases)
Discovering "qualities and constraints" (Nonfunctional requirements)
Modeling rationale and assumptions
Writing definitions of terms
Analyzing measurements (acceptance criteria)
Analyzing priorities
Requirements Analysis
Encompasses those tasks that go into
determining the needs or conditions to
meet for a new or altered product, taking
account of the possibly conflicting
requirements of the various stakeholders,
such as beneficiaries or users
 An early stage in the more general activity
of requirements engineering

Requirements Analysis
Requirements Analysis
Eliciting requirements
 Analyzing requirements
 Recording requirements

Eliciting requirements

Task of identifying the various types of
requirements from various sources
including …
◦ Project documentation
(e.g. the project charter or definition)
◦ Business process documentation
◦ Stakeholder interviews

This is sometimes also called
requirements gathering
Analyzing requirements

Determining whether the stated
requirements are …
◦
◦
◦
◦
Clear
Complete
Consistent and unambiguous
Resolving any apparent conflicts
Recording requirements

Requirements may be documented in
various forms, usually including a
summary list and may include naturallanguage documents, use cases, user
stories, or process specifications
Stakeholders
Anyone who operates the system
(normal and maintenance operators)
 Anyone who benefits from the system
(functional, political, financial and social
beneficiaries)
 Anyone involved in purchasing or
procuring the system

Stakeholders




Organizations which regulate aspects of the
system (financial, safety, and other regulators)
People or organizations opposed to the
system (negative stakeholders; see also Misuse
case)
Organizations responsible for systems which
interface with the system under design
Organizations who integrate horizontally with
the organization for whom the analyst is
designing the system
Stakeholder Issues








Users do not understand what they want or users don't
have a clear idea of their requirements
Users will not commit to a set of written requirements
Users insist on new requirements after the cost and
schedule have been fixed
Communication with users is slow
Users often do not participate in reviews or are
incapable of doing so
Users are technically unsophisticated
Users do not understand the development process
Users do not know about present technology
Types of Requirements










Customer
Architectural
Structural
Behavioral
Functional
Non-functional
Performance
Design
Derived
Allocated Requirements