1 requirements management - general concepts - noureddine abbadeni king saud university college of...
TRANSCRIPT
1
Requirements Management- General concepts -
Noureddine Abbadeni
King Saud UniversityCollege of Computer and Information Sciences
Based on “Software Requirements Management, A use case approach”, by Leffingwell and Widrig
2
The requirements Problem
3
Key points The goal of software development is to develop
quality software—on time and on budget—that meets customers' real needs.
Project Features
Pro
ject C
ost
Proj
ect Ti
me
4
Key Points Project success depends on effective
requirements management. Requirements errors are the most
common type of systems development error and the most costly to fix.
A few key skills can significantly reduce requirements errors and thus improve software quality.
5
Some numbers … A study by the Standish Group [1994] reported (USA):
More than $250 billion each year on IT application development 175,000 projects.
Avg. cost of a development project: for a large company: $2,322,000; for a medium company: $1,331,000, and for a small company: $434,000
31% of projects canceled before they ever get completed! 52.7% of projects will cost 189% of their original estimates!
American companies and government agencies will spend $81 billion for canceled software projects.
These same organizations will pay an additional $59 billion for software projects that will be completed but will exceed their original time estimates.
6
Root causes of success and failure Standish Group study noted the three most
commonly cited factors that caused projects to be "challenged“ (late/did not meet expectations): Lack of user input: 13 % of all projects Incomplete requirements and specifications:
12 % of all projects Changing requirements and specifications:
12 % of all projects Unrealistic schedule or time frame: 4 % Inadequate staffing and resources: 6 % Inadequate technology skills: 7 %
7
Root causes of success and failure
9 % of the projects in large companies were delivered on time and on budget (16 % of the projects in small companies)
Primary "success factors" for those projects? User involvement: 16 % of all successful
projects Executive management support: 14 % of all
successful projects Clear statement of requirements: 12 % of all
successful projects
8
Root causes of success and failure Survey done by
European Software Process Improvement Training Initiative (ESPITI) - 3,800 responses –
9
Root causes of success and failure
The two largest problems, appearing in about half the responses, were:
Requirements specifications Managing customer requirements
10
Frequency of requirements errors
11
The cost of requirements errors
12
Summary
Two main things: Requirements errors are likely to be the most
common class of error. Requirements errors are likely to be the most
expensive errors to fix. Requirements errors are likely to consume 25 % to
40 %: Requirements errors will contribute the majority—
often 70 % or more—of the rework costs. Rework typically consumes 30 % to 50 % of a typical
project budget [Boehm and Papaccio 1988]
13
Overview on Requirements Management
14
Key Points
A requirement is a capability that is imposed on the system.
Requirements management is a process of systematically eliciting, organizing, and documenting requirements for a complex system.
Our challenge is to understand users' problems in their culture and their language and to build systems that meet their needs.
A feature is a service that the system provides to fulfill one or more stakeholder needs.
A use case describes a sequence of actions, performed by a system, that yields a result of value to a user.
15
What Is a Software Requirement?
Dorfman and Thayer [1990]: A software capability needed by the user
to solve a problem to achieve an objective
A software capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed documentation
16
What Is Requirements Management? Requirements define capabilities that the systems
must deliver, and conformance (or lack of conformance) to a set of requirements often determines the success (or failure) of projects. It makes sense, therefore, to find out what the requirements are, write them down, organize them, and track them in the event that they change.
Requirements management is:
a systematic approach to eliciting, organizing, and documenting the requirements of the system, and a process that establishes and maintains agreement between the customer and the project team on the changing requirements of the system.
17
Needs, Features, Requirements Stakeholder Needs Features of the System: services
provided by the system that fulfill one or more stakeholder needs.
Software Requirements: Once we have established the feature set and have gained agreement with the customer, we can move on to define the more specific requirements we will need to impose on the solution.
18
Problem & Solution Domains
Problem domain: user needs we discovered
Solution domain: a definition of a system that will be represented by the features of the system and the software requirements that will drive its design and implementation.
19
Problem & Solution Domains
20
Requirements &
the Software Lifecycle
21
The team's development process defines who is doing what, when, and how.
In the waterfall model, software activities proceeded through a sequence of steps, and requirements were "fixed" early.
In the spiral model, the first steps were taken to a more risk-driven and incremental approach to development.
The iterative approach, a hybrid of the waterfall and spiral models, decouples the lifecycle phases from the software activities that take place in each phase.
The iterative model is a more robust model and provides for successive refinement of the requirements over time.
Key Points
22
Traditional Software Process Models
The Waterfall Model
23
Traditional Software Process Models
The Spiral Model
24
The Iterative Approach
Lifecycle phases
Iterations
25
The Iterative Approach
Disciplines
26
Requirements in the Iterative Model The iterative approach provides
two major advantages:
Better adaptability to requirements change
(revisited at every iteration new requirements can be considered at each iteration)
Better scope management (If the first iteration is missed by 30 % indicator that the
project may be badly scoped, and adjustments can be made)
27
The Software Team
28
Key Points
Effective requirements management can be accomplished only by an effective software team.
Requirements management touches every team member, in different ways.
Effective requirements management requires mastering six team skills.
29
Team Skills for Effective Requirements Management
Team Skill 1 - Analyzing the Problem: techniques the team can use to gain a proper understanding of the problem that a new software system is intended to solve.
Team Skill 2 - Understanding User and Stakeholder Needs: techniques the team can use to elicit requirements from the system users and stakeholders.
Team Skill 3 - Defining the System: initial process by which the team converts an understanding of the problem and the users' needs to the initial definition of a system that will address those needs.
30
Team Skills for Effective Requirements Management
Team Skill 4 - Managing Scope: arm the team with the ability to do a better job of managing the scope of the project.
Team Skill 5 - Refining the System Definition: help the team organize/refine the requirements information.
Team Skill 6 - Building the Right System: discuss some more technical aspects of testing and change management, and show how traceability can be used to help ensure a quality outcome.
31
The Project team
Team Members Have Different Skills
The Organization of Software Teams
32
Skill 1
Analyzing the problem
…