Requirements Analysis and Design Engineering Southern Methodist University CSE 7313 Module 1 – The Requirements Problem.

Download Report

Transcript Requirements Analysis and Design Engineering Southern Methodist University CSE 7313 Module 1 – The Requirements Problem.

Requirements
Analysis and
Design
Engineering
Southern Methodist University
CSE 7313
1
Module 1 – The
Requirements Problem
2
Agenda
 Definitions and general concepts
 Process and product
 Product properties
 Requirements management
 The problem domain
3
What is a requirement?
 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
4
Definition of Requirement
 A condition or capability needed by a user
to solve a problem or achieve an
objective.
 A condition or capability that must be met
or possessed by a system or a system
component to satisfy a contract, standard,
specification, or other formally imposed
document. The set of all requirements
forms the basis for subsequent
development of the system or component.
(IEEE83), ANSI/IEEE Std 729/1983
5
Requirements Analysis is
Important
 Five Hypotheses:
The later in the lifecycle an error is found,
the more expensive it is to fix.
Many errors are not found until well after
they are made.
Many requirements errors are being made.
Requirements errors are typically
incorrect facts, omissions,
inconsistencies, and ambiguities.
Requirements errors can be detected
Davis90
6
Requirements Analysis
Definition
 The process of studying user needs to
arrive at a definition of system or software
requirements.
 The verification of system / software
requirements.
ANSI/IEEE Std729/1983
7
Requirements Analysis
Definition
An Iterative process of:
Definition of
required
system
behavior
 Identifying
 Analyzing
 Documenting
 Verifying
 (etc.)
8
Requirements Analysis Task
• build “outside-in”
 begin with
environment
 work inward to
the system
Conceptual
Model
derive
Software
Requirements
Document
• understandable
• modifiable
• precise
9
Environment and System
Environment
System
state of
entities in
environment
activities
events
state of
system
10
Process and Artifacts
Context
Analysis
Software
Needs
Artifact
Customer
Requirements
Process
CustomerOriented Software
Requirements Artifact
DeveloperOriented Software
Requirements Artifact
Developer
Requirements
Process
Design
Process
11
Brackett89,
CE-SPM-01-02-06
Process and Artifacts
Context
Analysis
Software
Needs
Artifact
Customer
Requirements
Process
Market Needs
User Needs
Document
CustomerSystem
Oriented Software
Requirements
Requirements
Artifact
Specification
Statement of
DeveloperOperational Need
Oriented
(SON) Software
Developer
Requirements
Process
Requirements Artifact
Design
Process
12
System Operational
Requirements
Document (SORD)
Brackett89,
ConceptCE-SPM-01-02-06
of
Operations
Process and Artifacts
Software
Needs
Artifact
Context
Requirements
Analysis
Requirements
Definition
CustomerRequirements
Customer
Oriented Software
Document
Requirements
Requirements Artifact
Process
Requirements
Specification
DeveloperDeveloper
Use Case
Model
Oriented Software
Requirements
Functional
Requirements Artifact
Process
Description
Part 1
Design
specification.
Brackett89,
Process
CE-SPM-01-02-06
13
Process and Artifacts
Software
Needs
Artifact
Context
Behavioral
Analysis
Specification
System
CustomerSpecification
Customer
Oriented Software
Specification
Requirements
Requirements Artifact
Process
Document
Requirements
DeveloperDeveloper
Specification
Oriented Software
Requirements
Functional
Requirements Artifact
Process
Specification
Functional
Design
Description
Brackett89,
Process
CE-SPM-01-02-06
14
Goals
 Process goal
keep the process under our intellectual
control at all times
 Artifact goal
organize the artifact so that it allows
others to comprehend the product to be
built
amount of effort should be proportional
to the size of the product -- not worse!
15
An Effective Artifact is
the Primary Goal
 COMMUNICATION
 Agreement between developer & customer
 A basis for design
 A basis for V&V
Weinberg89
16
Artifact Purposes
The artifact(s) answer these questions
What problem is the system supposed to
solve?
What does the customer require from the
system?
What does the developer need to know
about the system to design it?
The artifact(s) of the requirements
analysis process are specifications that
the software designer can use
17
Documentation
vs. Specifications
 "Documents" are all of the materials
produced during requirements analysis,
e.g. backs of envelopes, data dictionaries,
prototypes, etc.
 “Specifications” are formal documents
that are "contractually" binding in some
manner, such as:
Basis for acceptance tests
Basis for payment
etc.
18
Properties of a "Good"
Requirements Specification
 Unambiguous
 Complete
 Correct
 Prioritized
 Verifiable
 Sufficient for
design
 Consistent
 Modifiable
 Traceable
 Traced
 Useable during
operations &
maintenance
19
Unambiguous
Mathematically precise
ST
st : Symbol -|-> Type
defined = dom st
A matter of agreement
A “contract” between the
customer and the developer ...
20
Verifiable
 Customer and developer must agree on
the criteria and on the method for
verification.
testing
inspection
etc.
 Every requirement must have verification
criteria — or ... it isn’t a requirement ...
21
Traceable
Test Plans
4.
Context
Analysis
1.
Requirements
Document
2.
Design
Document
3.
 1.
 2.
 3.
 4.
Backward to context analysis
Forward to design
Within the document
To test/verification plans
22
Requirements Management
 Requirements Management is one of the
6 KPAs needed to go to level 2
(Repeatable) of the CMM.
 Requirements are set at the beginning
and not changed during the build -when they change, the current build
stops and a new cycle starts.
23
Key Considerations of
Requirements Management
 Identify functional requirements (e.g. draft
user’s manual)
 Identify system needs
 Identify customer expectations -- delivery,
packaging, and support
 Identify measures of success -- cost,
schedule, and performance
 Identify validation & acceptance criteria
 Identify support requirements
24
Managing the Process
 Estimation -- how can one estimate the
scope of the requirements definition effort
early?
 Effort depends on
size/scope of project
breadth of sources
duration of effort
 Two common errors
too much effort (over-specification)
too little effort (under-specification)
25
Why Requirements
Management?
 Sometimes we get firm requirements, but
the law of software perversity states:
“The firmer the requirements; the more
likely they are wrong.”
 Requirements change as the job progresses
writing the program changes our
perception of the task
computer implementation of a human
task changes the task itself
Humphrey89
26
Why Requirements
Management? (cont’d)
 In large-scale programs, the task of writing a
complete statement of requirements is not
just difficult – it is practically impossible.
customer doesn’t know what is needed
statement of requirements is wrong
statement of requirements will change
 Recommendation: establish a link to
someone who knows the application and
work together until the job is done.
Humphrey89
27
Practical Solution
 Incremental development process
gradually increase level of detail as the
requirements and implementation are
mutually refined
 Start with the minimal requirements that
both we and the user “know” are valid ...
implement
test
use in trial form
plan & develop next increment
Humphrey89
28
The requirements problem
Customers
External entity; buy ours instead of
theirs!!
Company that has hired us to
develop high quality s/w that will
give them a competitive advantage
Tools vendor
Defense business
Our company! Something that will
make us better!
29
Some Data (Standish)
 $250 billion spent on IT for 175,000
projects
$2,322,000 for large company
$1,331,000 for medium company
$434,000 for small company
 31% of projects canceled before
completion
 52.7% will cost an average of 181% of
original estimate
30
Errors
50%
You are here.
Source of Errors - %'s
Communications of the ACM, Jan. '84
30%
10%
Requirements Software
Definition
Design
Coding
Testing
Deployment
$ 10
$5
Relative Cost to Correct Errors - $1000's
Source: AT&T Bell Labs Estimates
Req’ts
Software
Definition Design
31
Coding
Testing
Deployment
Root causes of
“challenged” projects
 Lack of user input (13% of all projects)
 Incomplete requirements and
specifications (12% of projects)
 Changing requirements and specifications
(12% of projects)
 Inadequate technology skills (7%)
 …..
32
Primary success factors
 User involvement (16% of all successful
projects)
 Executive management support (14%)
 Clear statement of requirements (12%)
 Two largest problems cited in other
surveys
Requirements specifications
Managing customer requirements
33
Defect Summary
Defect origins
Requirements
Defect
potential
1.00
Removal Delivered
efficiency defects
77%
0.23
Design
1.25
85%
0.19
Coding
1.75
95%
0.09
Documentation
0.60
80%
0.12
Bad fixes
0.40
70%
0.12
Total
5.00
85%
0.75
34
Defect Summary
Defect origins
Requirements
Defect
potential
1.00
Removal Delivered
efficiency defects
77%
0.23
Design
1.25
85%
0.19
Coding
1.75
95%
0.09
Documentation
0.60
80%
0.12
Bad fixes
0.40
70%
0.12
Total
5.00
85%
0.75
35
Relative cost to repair
Stage
.1-.2
Requirements
.5
Design
1
Coding
2
Unit test
5
Acceptance test
20
Maintenance
36
Fixing a defect





Respecification
Redesign
Recoding
Retesting
Change orders; telling
users and operators to
replace
 Corrective action; refund
checks to angry
customers, rerunning a
computer job
37
 Scrap; code, design,
test cases
 Recall of defective
versions of shrink
wrap and manuals
 Warranty costs
 Product liability;
customers suing for
damages
 Service costs
 Documentation
Requirements Management
 A systematic approach to eliciting,
organizing, and documenting the
requirements of the system, and a process
that establishes and maintains agreement
between customer and the project team on
the changing requirements of the system
 Requirements management process called
for by both CMM and ISO 9000
38
Requirements Management
Boeing 777 – 300,000 requirements
 > 4 million loc
 1280 embedded processors
39
Lifecycle models
40
Stagewise Model
System
Requirements
1970 [Royce]
Software
Requirements
Analysis
Program
Design
Implementation
Testing
Operations
41
Waterfall Model
System
Requirements
1970 [Royce]
Software
Requirements
Analysis
Program
Design
Implementation
Testing
Operations
42
Spiral Model
CUMULATIVE
COST
Determine
Objectives,
Alternatives,
Constraints
Evaluate
Alternatives;
Identify,
Resolve Risks
COMMITMENT
PARTITION
Develop,
Verify
Next-Level
Product
Plan
Next
Phases
43
Requirements Definition
Overlaps Later Phases
Requirement
s
Definition
Desig
n
Generatio
n
Testing
at some arbitrary time
...
44
Evolutionary Delivery Model:
Rational Unified Process
Time
Phases
Workflows
Business Modeling
Inceptio
n
Elaboration
Construction
Transiti
on
Requirements
Content
Analysis & Design
Implementation
Test
Deployment
Configuration &
Change Management
Project Management
Environment
Initial
E#1
E#2
C#1
Iterations
45
C#2
C#n
T #1
T #2
Generalized Software Development Process
S/W
Requirements
S/W sys
test plan
Prelim
Design
Integration
test plan
Detail
Design
Unit
test
plan
coding
46
System
test
Integration
test
Unit
test
deliver
product
maintain &
enhance
Summary
 Definitions and general concepts
 Process and product
 Product properties
 Requirements management
 The problem domain
47