You are on page 1of 28

Software Engineering II

Lecture 3
Software Life-Cycle Steps
Life-cycle model (formerly, process model)

– Requirements phase
– Specification phase
– Design phase
– Implementation phase
– Integration phase
– Maintenance phase
– Retirement
Different Lifecycle Models
• Build-and-fix model
• Waterfall model
• Rapid prototyping model
• Incremental model
• Extreme programming
• Synchronize-and-stabilize model
• Spiral model
• Object-oriented life-cycle models
• Comparison of life-cycle models
Build and Fix
Build first Model
version

Modify until
client is satisfied

Maintenance
phase

Development

Maintenance Retirement
Requirement
Definition Waterfall Model
System and
Software Design

Implementation
and Unit Testing

Integration and
System Testing

Operation and
Maintenance
Requirement
Definition Waterfall Model
System and
Software Design

Implementation
and Unit Testing

Integration and
System Testing

Operation and
Maintenance
Rapid
Prototyping Rapid Prototyping
Requirement
Model
Definition

System and
Software Design

Implementation
and Unit Testing

Integration and
System Testing

Operation and
Maintenance
The Process

• A software process is a road map that helps you create a timely,


high quality result.
• It is the way we produce software
• Provides stability and control
• Work Product
– Programs, documents, and data produced as a consequence o
the software engineering activities
CMM Maturity Levels

OPTIMIZED – Process Improvement

MANAGED – Process Measurement

DEFINED – Process Definition

REPEATABLE – Project Management

INITIAL – Ad hoc Process


Software Engineering Phases

1. Vision – focus on why


2. Definition – focus on what
2. Development – focus on how
3. Maintenance – focus on change

Vision Definition Development Maintenance


Software Lifecycle Models

• The way you organize your activities


• Lifecycle model is a series of steps through which the
product progresses
Requirements phase
Incremental
Verify
Model
Specification phase

Verify

Architectural design

Verify

For each build:


Perform detailed design,
implementation and integration,
test, deliver to client

Maintenance phase
Development

Maintenance Retirement
Incremental
Development
Model
Requirements phase
Incremental
Verify
Model
Specification phase

Verify

Architectural design

Verify

For each build:


Perform detailed design,
implementation and integration,
test, deliver to client

Maintenance phase
Development

Maintenance Retirement
Incremental Model (cont.)
Build 1
Implementation,
Specification Design Deliver to client
integration

Build 2
Implementation,
Specification Design Deliver to client
integration

Build 3
Implementation,
Specification Design Deliver to client
integration

Build n
Implementation,
Specification Design Deliver to client
integration

Specification team Implementation,


Design team integration team
Spiral Model

• Precede each
phase by
– Alternatives
– Risk analysis
• Follow each phase
by
– Evaluation
– Planning of
next phase
Simplified Spiral Model

Risk
• If risks cannot be Analysis
resolved, project
is immediately
terminated
Rapid Prototype
Specification
Design
Implementation
Verify
Integration
Full Spiral Model

Angular dimension (progress) Radial dimension (cost)


Extreme Programming
Extreme Programming
(animation is to be added)

Architectural User stories


spike

Release Iteration Acceptance


Planning test

Spike Small release


Rational Unified Process

(this Figure is from P. Krutchen’s paper)


Documentation Phase?
• There is NO documentation phase
• Every phase must be fully documented before starting the
next phase
– Postponed documentation may never be completed
– The responsible individual may leave
– The product is constantly changing—we need the
documentation to do this
– The design (for example) will be modified during
development, but the original designers may not be
available to document it
Phase Documents QA
Requirement • Rapid prototype, or • Rapid prototype
Definition • Requirements • Reviews
document
Functional • Specification • Traceability
Specification document • FS Review
(specifications) • Check the SPMP
• Software Product
Management Plan
Design • Architectural Design • Traceability
• Detailed Design • Review
Coding • Source code • Traceability
• Test cases • Review
• Testing
Integration • Source code • Integration testing
• Test cases • Acceptance testing
Maintenance • Change record • Regression testing
• Regression test cases
Traceability matrix

Requirement Use Case UID Class/ Test Case


ID ID function ID
Conclusions
• Different life-cycle models
• Each with own strengths
• Each with own weaknesses
• Criteria for deciding on a model include
– The organization
– Its management
– Skills of the employees
– The nature of the product
• Best suggestion
– “Mix-and-match” life-cycle model
Recap

You might also like