Techniques and Tools for Software Requirements Analysis and

advertisement
Software Development Process: Life
Cycle Models
Aditya P. Mathur
Department of Computer Science
Purdue University, West Lafayette
Last Update: Tuesday August 19, 2003
Aug 19, 2003
BITSC461/IS341 Software Engineering
Objectives

What is a process?

What is Software Development Process (SDP) ?

How is SDP organized (life cycle models)?

How is process maturity measured?

What are the benefits of a “good” process ?
Aug 19, 2003
BITSC461/IS341 Software Engineering
2
Process
Input
Input
Output
Step
Output
Step 1
Input
Step 2
Output
Input
Sequential or linear process
Aug 19, 2003
BITSC461/IS341 Software Engineering
3
Concurrent Process
Input
Output
Step 1
Step 2
Input
Step 3
Output
Input
Output
Input
Parallel or concurrent process
Aug 19, 2003
BITSC461/IS341 Software Engineering
4
Iterative Process
Input
Output
Step 1
Step 2
Input
Step 3
Output
Input
Output
Input
Iterative process
Aug 19, 2003
BITSC461/IS341 Software Engineering
5
Features of a process

One or more steps.

Each step is well defined.


Input and output of each step is well defined and
observable.
Start and end of a step can be identified.
Aug 19, 2003
BITSC461/IS341 Software Engineering
6
Process model: Linear

An arrangement of process steps.
Input
Output
Step 1
Linear model
Aug 19, 2003
Input
Step 2
Output
Input
BITSC461/IS341 Software Engineering
7
Process model: Concurrent
Input
Output
Step 1
Step 2
Concurrent
Input
Step 3
Output
Input
Output
Input
Aug 19, 2003
BITSC461/IS341 Software Engineering
8
Process model: Iterative
Input
Output Input
Step 1
Step 2
Output
Step 3
Input
Output
Input
Iterative
Aug 19, 2003
BITSC461/IS341 Software Engineering
9
Software Development Process


Steps correspond to one or more tasks related to software
development.
Tasks:
Integration
o
Requirements gathering
o
o
Requirements analysis
o
Design
Coding
o
Test
Delivery
o
Maintenance
o
Training
o
o

Software life cycle: Software Life Cycle consists of all phases
from its inception until its retirement. These are: Inception,
elaboration, construction, transition.
Aug 19, 2003
BITSC461/IS341 Software Engineering
10
Models of Software Life Cycle

Build and fix

Waterfall (classic)

Rapid prototyping

Incremental

Spiral

Unified
Aug 19, 2003
BITSC461/IS341 Software Engineering
11
Build and fix model [1]
Idea or client request
Build first version
Modify until client satisfied
Operations mode
Development
Maintenance
Aug 19, 2003
Retirement
BITSC461/IS341 Software Engineering
12
Build and fix model [2]



Product is constructed without specifications.
There is no explicit design. However, a design will
likely evolve in the mind of the developer.
The approach might work for small programming
projects [TA 162/252].
Aug 19, 2003
BITSC461/IS341 Software Engineering
13
Build and fix model [3]



Cost of fixing an error increases as one moves away
from the phase in which the error was injected.
There is a good chance that many errors will be found
in the operations phase thereby leading to high cost of
maintenance.
Rarely used in commercial projects.
Aug 19, 2003
BITSC461/IS341 Software Engineering
14
Waterfall model [1]
Requirements phase
Specification phase
Design phase
Retirement
Verification done at
the end of each
phase.
Development
Implementation phase
Integration phase
Operations mode
Maintenance
Aug 19, 2003
BITSC461/IS341 Software Engineering
15
Waterfall model [2]




Popular in the 70’s.
Requirements are determined and verified with the
client and members of the SQA group.
Project management plan is drawn, cost and duration
estimated, and checked with the client and the SQA
group
Then the design (i.e. “How is the product going to do
what it is supposed to do.”) begins and the project
proceeds as in the figure.
Aug 19, 2003
BITSC461/IS341 Software Engineering
16
Waterfall model [3]



Each phase terminates only when the documents are
complete and approved by the SQA group.
Notice the feedback loop between the Design phase
and the Specifications phase.
Maintenance begins when the client reports an error
after having accepted the product. It could also begin
due to a change in requirements after the client has
accepted the product.
Aug 19, 2003
BITSC461/IS341 Software Engineering
17
Waterfall model: Advantages


Disciplined approach
Careful checking by the Software Quality Assurance
Group at the end of each phase.

Testing in each phase.

Documentation available at the end of each phase.
Aug 19, 2003
BITSC461/IS341 Software Engineering
18
Waterfall model: Disdvantages



Documents do not always convey the entire picture.
Specification documents are detailed and difficult to
read/understand for the client.
Feedback from one phase to another might be too late
and hence expensive.
Aug 19, 2003
BITSC461/IS341 Software Engineering
19
Rapid prototyping model



A working model of the product is developed (quickly,
1-3 months). Serves to elicit requirements.
Client interacts with the prototype; specifications are
developed.
Subsequent phases, design, coding etc., follow.
Feedback loops less likely and fewer.
Should the prototype be discardded or refined ?
Aug 19, 2003
BITSC461/IS341 Software Engineering
20
Incremental model [1]
Requirements phase
Specification phase
Architectural Design
Retirement
Verification done at
the end of each
phase.
For each build:
Detailed design, coding,
Integration, test, delivery.
Development
Operations mode
Maintenance
Aug 19, 2003
BITSC461/IS341 Software Engineering
21
Incremental model [2]





Product architecture is designed. It serves as the main
driver of the development process.
Features are prioritised and increments defined.
Product is designed, implemented, and integrated as a
series of incremental builds.
A build contains code from various modules to provide
the desired functionality.
A new build integrates code from previous build and
new code.
Aug 19, 2003
BITSC461/IS341 Software Engineering
22
Incremental model [3]

Client can begin using the first build.

Facilitates early adoption by the client.

Client pays in increments; financial benefit.

Design of the initial architecture is a difficult step. Poor
architecture may lead to lots of changes in builds.
Should we construct builds in parallel?
Aug 19, 2003
BITSC461/IS341 Software Engineering
23
Unified Development Process [1]





Key features: Iterative development; OO analysis and
design.
Development organized as a series of short iterations
Each iteration produces a working, executable,
product that might not be a deliverable.
No rush to code. Aslso, not a long drwan design
process.
Lots of visual modeling aids. Unified Modeling
Language (UML) used.
Aug 19, 2003
BITSC461/IS341 Software Engineering
24
Unified Development Process [2]



Early iterations seek feedback from the customer. Risk
and value to customer is managed through early
feedback.
Customer is engaged continuously in evaluation and
requirements gathering.
Architecture is built during early iterations.
Aug 19, 2003
BITSC461/IS341 Software Engineering
25
Unified Development Process [3]
Aug 19, 2003
BITSC461/IS341 Software Engineering
26
The Unified Process

Why a Process?




Software projects are large, complex,
sophisticated
time to market is key
many facets involved in getting to the end
Common process should




Aug 19, 2003
integrate the many facets
provide guidance to the order of activities
specify what artifacts need to be developed
offer criteria for monitoring and measuring a
project
BITSC461/IS341 Software Engineering
27
The Unified Process





Component based - meaning the software system is built as a
set of software components interconnected via interfaces
Uses the Unified Modeling Language (UML)
Use case driven
This is what makes
Architecture-centric
the Unified process
Iterative and incremental
Unique
Component: A physical and replaceable part of a system that conforms to
and provides realization of a set of interfaces.
Interface: A collection of operations that are used to specify a service of a
class or a component
Aug 19, 2003
BITSC461/IS341 Software Engineering
28
The Unified Process
User’s
requirements
Aug 19, 2003
Software
Development
Process
BITSC461/IS341 Software Engineering
Software
System
29
The Unified Process

Use Case driven



A use case is a piece of functionality in the
system that gives a user a result of value
Use cases capture functional
requirements
Use case answers the question: What is
the system supposed to do for the user?
Aug 19, 2003
BITSC461/IS341 Software Engineering
30
The Unified Process

Architecture centric




similar to architecture for building a house
Embodies the most significant static and dynamic
aspects of the system
Influenced by platform, OS, DBMS etc.
Primarily serves the realization of use cases
Aug 19, 2003
BITSC461/IS341 Software Engineering
31
The Unified Process

Iterative and Incremental


commercial projects continue many months
and years
to be most effective - break the project into
iterations


Every iteration - identify use cases,create
a design, implement the design
Every iteration is a complete development
process
Aug 19, 2003
BITSC461/IS341 Software Engineering
32
The Unified Process

Look at the whole process





Aug 19, 2003
Life cycle
Artifacts
Workflows
Phases
Iterations
BITSC461/IS341 Software Engineering
33
The Life of the Unified Process



Unified process repeats over a
series of cycles
Each cycle concludes with a
product release
Each cycle consists of four phases:




Aug 19, 2003
inception
elaboration
construction
transition
BITSC461/IS341 Software Engineering
34
The Life of the Unified Process
Time
Inception
Iteration
1
Iteration
Elaboration Construction
Iteration
1
Iteration
Iteration
Iteration
1
Transition
Iteration
Iteration
1
Release 1
A cycle with its phases and its iterations
Aug 19, 2003
BITSC461/IS341 Software Engineering
35
Life Cycle Models: Summary [1]




Build and fix: Acceptable for short programs that do
not require maintenance.
Waterfall: Disciplined approach, document driven;
delivered product may not meet client needs.
Rapid prototyping: Ensures that delivered product
meets client needs; might become a build-and-fix
model.
Incremental: Maximizes early return on investment;
requires open architecture; may degenerate into buildand-fix.
Aug 19, 2003
BITSC461/IS341 Software Engineering
36
Life Cycle Models: Summary [2]


Spiral: Risk driven, incorporates features of the above
models; useful for very large projects
UDP: Iterative, supports OO analysis and design; may
degenerate into code-a-bit-test-a-bit.
Aug 19, 2003
BITSC461/IS341 Software Engineering
37
Objectives



Why do software projects fail/succeed?
How is process maturity measured ? Key Process
Areas?
How to do requirements analysis? What are UML, use
cases, domain model, actors ?
Aug 19, 2003
BITSC461/IS341 Software Engineering
38
Standish Report [1995]
Company categorization by revenue:

Large company: >$500M

Medium company: $200-500M

Small comp;any: $100-200M
Sample size: 365 respondants, 8380 applications.
Aug 19, 2003
BITSC461/IS341 Software Engineering
39
Standish Report: Project categorization: Success/failure

Resolution Type 1: On time, on budget, all features.
16.2%

Resolution Type 2: Completed, over time, over budget, fewer
features.
52.7%

Resolution Type 3: Cancelled during the development cycle.
31.1%
Aug 19, 2003
BITSC461/IS341 Software Engineering
40
Standish Report: Failure Statistics

Success rate: Large companies: 9%



Resolution type 2: Large: 61.5%



Medium: 16.2%
Small: 28%
Medium: 46.7%
Small: 50.4%
Resolution type 3: Medium: 37.1%,


Large: 29.5%
Small: 21.6%
Aug 19, 2003
BITSC461/IS341 Software Engineering
41
Standish Report: Cost Overruns
Cost Overruns
% of Responses
Under 20%
15.5%
21 - 50%
31.5%
51 - 100%
29.6%
101 - 200%
10.2%
201 - 400%
8.8%
Over 400%
4.4%
Aug 19, 2003
BITSC461/IS341 Software Engineering
42
Standish Report: Time Overruns
Time Overruns % of Responses
Under 20%
13.9%
21 - 50%
18.3%
51 - 100%
20.0%
101 - 200%
35.5%
201 - 400%
11.2%
Over 400%
1.1%
Aug 19, 2003
BITSC461/IS341 Software Engineering
43
Standish Report: Success Profile [1]
Project Success Factors
% of Responses
1. User Involvement
5.9%
2. Executive Management Support
13.9%
3. Clear Statement of Requirements
13.0%
4. Proper Planning
9.6%
5. Realistic Expectations
8.2%
Aug 19, 2003
BITSC461/IS341 Software Engineering
44
Standish Report: Success Profile [2]
Project Success Factors
% of Responses
6. Smaller Project Milestones
7.7%
7. Competent Staff
7.2%
8. Ownership
5.3%
9. Clear Vision & Objectives
2.9%
10. Hard-Working, Focused Staff
2.4%
11. Other
13.9%
Aug 19, 2003
BITSC461/IS341 Software Engineering
45
Standish Report: Failure stories
California DMV:
Started 1987.
Project cancelled: 1993.
Cost:$45M
American airlines:
1994
Settled lawsuit with
Hilton/Marriott/Budget-rent-a car
CONFIRM car rental project failed
Aug 19, 2003
BITSC461/IS341 Software Engineering
46
Standish Report: Success Potential
Success Criteria
Points
DMV
1. User Involvement
19
NO ( 0) NO ( 0) YES (19)
2. Management Support
16
NO ( 0) YES (16) YES (16)
YES (16)
3. Clear Requirements
15
NO ( 0) NO ( 0) YES (15)
NO ( 0)
5. Realistic Expectations 10
YES (10) YES (10) YES (10)
YES (10)
10. Hard-Working Staff
3
NO ( 0) YES ( 3) YES ( 3)
YES ( 3)
TOTAL
100
10
85
Aug 19, 2003
CON
29
HYATT
100
BITSC461/IS341 Software Engineering
ITAMARATI
YES
47
Capability Maturity Model (CMM)
Process maturity is a measure of the discipline used by an
organization during the development of a software product.
CMM assists in determining how mature a process is.
Purpose:
To assess and help improve process in software development
organizations.
Aug 19, 2003
BITSC461/IS341 Software Engineering
48
Capability Maturity Model (CMM)
Capability maturity levels:
Level 1:
Level 2:
Level 3:
Level 4:
Level 5:
Aug 19, 2003
Initial
Repeatable
Defined
Managed
Optimizing
Worst
Best
BITSC461/IS341 Software Engineering
49
CMM Levels [1]
Initial
The software process is characterized as ad hoc, and
occasionally even as chaotic. Few processed are
defined, and success depends on individual effort.
Lacks: Reasonable process.
Aug 19, 2003
BITSC461/IS341 Software Engineering
50
CMM Levels [2]
Repeatable
Basic project management processes are established to track
cost, schedule and functionality. the necessary process
discipline is in place to repeat earlier successes on projects
with similar applications.
Lacks: Complete process.
Aug 19, 2003
BITSC461/IS341 Software Engineering
51
CMM Levels [3]
Defined
The software process for both management and engineering
activities is documented, standardized and integrated into a
standard software process for the organization.
All projects use an approved, tailored version of the
organization's standard software process for developing and
maintaining software.
Lacks: Predictable outcomes.
Aug 19, 2003
BITSC461/IS341 Software Engineering
52
CMM Levels [4]
Managed
Detailed measures of the software process and product
quality are collected. Both the software process and products
are quantitatively understood and controlled.
Lacks: Mechanism for process improvement.
Aug 19, 2003
BITSC461/IS341 Software Engineering
53
CMM Levels [4]
Optimized
Continuous process improvement is enabled by quantitative
feedback from the process and from piloting innovative ideas
and technologies.
Aug 19, 2003
BITSC461/IS341 Software Engineering
54
Key Process Areas [1]
Optimizing
Defect prevention
Technology change management
Process change management
Managed:
Quantitative process management
Software quality management
Aug 19, 2003
BITSC461/IS341 Software Engineering
55
Key Process Areas [2]
Defined
Organization process focus
Training programs
Integrated software management
Peer reviews
Repeatable
Requirements management
Software project planning
Software quality assurance
Software configuration management
Aug 19, 2003
BITSC461/IS341 Software Engineering
56
Maturity and product quality [1]
Results from 34 Motorola Government Electronics
Division (GED) projects
-----------------------------------------------------------CMM Level # Projects
Relative
Faults/MEASL
Decrease in
Duration
-------------------- ----------------------------------------
-------Relative
Productivity
1
3
1
--
--
2
9
3.2
890
1.0
3
5
2.7
411
0.8
4
8
5.0
205
2.3
5
9
--------------------
7.8
126
- ----------------------------------------
- -------
2.8
- -------
MEASL: Million Equivalent Assembler Source Lines
Aug 19, 2003
BITSC461/IS341 Software Engineering
57
Maturity and product quality [2]
Raytheon:
Equipment Division moved from Level 1 to Level 3. This
resulted in a productivity gain of 2.0 and a $7.70 return on
every dollar invested.
Aug 19, 2003
BITSC461/IS341 Software Engineering
58
CMM Documents ?
http://www.sei.cmu.edu/cmm/cmms/cmms.html
Aug 19, 2003
BITSC461/IS341 Software Engineering
59
Download