The life cycle model is one of the key concepts of systems engineering (SE). A life cycle for a system generally consists of a series of stages regulated by a set of management decisions which confirm that the system is mature enough to leave one stage and enter another.
2. Lifecycle Model
A (software/system) lifecycle model is a
description of the sequence of activities
carried out in an SE project, and the relative
order of these activities.
3. Lifecycle Model
By changing the lifecycle model, we can
improve and/or tradeoff:
Development speed (time to market)
Product quality
Project visibility
Administrative overhead
Risk exposure
Customer relations, etc, etc.
4. Different Lifecycle Models
1. Build-and-fix model
2. Waterfall model
3. Rapid prototyping model
4. Incremental model
5. Extreme programming
6. Synchronize-and-stabilize model
7. Spiral model
8. Object-oriented life-cycle models
5. Build and Fix Model
This model starts with an informal general
product idea and just develops code until a
product is ”ready”.
Work is in random order.
6. Build and Fix Model
Build first
version
Modify until
client is satisfied
Maintenance
phase
Retirement
Development
Maintenance
7. Advantages
1. No administrative overhead
2. Signs of progress (code) early.
3. Low expertise, anyone can use it!
4. Useful for small “proof of concept”
projects
8. Disadvantages
1. Dangerous!
1. No visibility/control
2. No resource planning
3. No deadlines
4. Mistakes hard to detect/correct
2. Impossible for large projects,
communication breakdown, chaos.
9. The Waterfall Model
• The waterfall model is the classic lifecycle
model – it is widely known, understood
and commonly used.
• In some respect, waterfall is the ”common
sense” approach.
• Introduced by Royce 1970.
12. Advantages
1. Easy to understand and implement.
2. Widely used and known (in theory!)
3. Reinforces good habits: define-before- design,
design-before-code
4. Identifies deliverables and milestones
5. Document driven, Published documentation
standards,
6. Works well on mature products and weak
teams.
13. Disadvantages
1. Idealised, doesn’t match reality well.
2. Doesn’t reflect iterative nature of exploratory
development.
3. Unrealistic to expect accurate requirements so
early in project
4. Software is delivered late in project, delays
discovery of serious errors.
14. Disadvantages
6. Difficult to integrate risk management
7. Difficult and expensive to make changes
to documents, ”swimming upstream”.
8. Significant administrative overhead,
costly for small teams and projects.
15. Rapid Prototyping
Key idea: Customers are non-technical and
usually don’t know what they want/can have.
Rapid prototyping emphasises requirements
analysis and validation, also called:
customer oriented development,
evolutionary prototyping
17. Advantages
1. Reduces risk of incorrect user requirements
2. Good where requirements are
changing/uncommitted
3. Regular visible progress aids management
4. Supports early product marketing
18. Disadvantages
1. An unstable/badly implemented prototype
often becomes the final product.
2. Requires extensive customer collaboration
Needs committed customers
Difficult to finish if customer withdraws
May be too customer specific, no broad
market
19. Disadvantages
3. Difficult to know how long project will last
4. Easy to fall back into build-and-fix without
proper requirements analysis, design,
customer evaluation and feedback.
20. Incremental
Model
For each build:
Perform detailed design,
implementation and integration,
test, deliver to client
Maintenance phase
Requirements phase
Verify
Specification phase
Verify
Architectural design
Verify
Retirement
Development
Maintenance
21. Incremental Model
Implementation,
integration
Deliver to clientDesignSpecification
Implementation,
integration
Deliver to clientDesignSpecification
Implementation,
integration
Deliver to clientDesignSpecification
Build 1
Implementation,
integration
Deliver to clientDesignSpecification
Build 2
Build 3
Build n
Specification team
Design team
Implementation,
integration team
22. Advantages
1. The cost of accommodating changing customer
requirements is reduced.
2. It is easier to get customer feedback on the
development work that has been done.
3. More rapid delivery and deployment of useful
software to the customer is possible.
23. Disadvantages
1. The process is not visible. As it is not cost-
effective to produce documents that reflect
every version of the system.
2. System structure tends to degrade as new
increments are added. As regular change tends
to corrupt its structure. Incorporating further
software changes becomes increasingly difficult
and costly.