Software Process Models: Chapter 2 & 3 in Software Engineering Book
Software Process Models: Chapter 2 & 3 in Software Engineering Book
Software Process Models: Chapter 2 & 3 in Software Engineering Book
Lecture 3
Software Process Models
Chapter 2 & 3 in Software Engineering Book
2
Overview
Models:
Waterfall models.
Evolutionary models.
CBSE models.
Iterative models.
3
6
7
SaudiTech adopts an ad hoc approach to software development and has not worked
on large scale projects before. What problems do you anticipate in this project?
8
Waterfall model.
Evolutionary models.
Iterative Models.
10
Requirements
Design
Test &
Integration
Operations &
Maintenance
11
Concurrent
Activities
Initial
Specification Version
Outline
Description
Development
Validation Final
Version
14
1. Requirements gathering.
2. Design and build SW prototype.
3. Evaluate prototype with customer.
4. Refine requirements.
15
Development
System
and
validation
integration
16
17
Develop
Validate Integrate Validate Final
system
increment increment system system
increment
System incomplete
Planning: the project is reviewed and the next phase of the spiral
is planned.
21
What is risk?
Situations or possible events that may cause a project to fail to meet its
goal.
Example risks:
Experienced staff leave the project.
Hardware which is essential for the system will not be delivered on
schedule.
More about risks in Chapter 3 (22 in the book).
22
Development team:
Size.
Location: distributed vs. co-located.
Experience (skilled) and discipline (self-organizing).
Methods:
Individuals & interactions vs. Processes, phases & tools.
Adaptations to changing circumstances.
Measures of progress: working software, rapid delivery.
Characterized by quickness, lightness, and ease of
movement
Mentally quick or alert
Containing little excess or waste
Thrifty in management
Excellent; skillful (slang)
“I think Agile is both being able to respond quickly
(which means you have to know that you have to
respond quickly—not an easy thing to do) as well
as being able to anticipate when the rules or
principles are changing or, more importantly, can
be changed,” Bob Charette – Lean Development.
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individualsand interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Time-boxed
33
Evaluation of Models
34
Activity
Applicability:
Appropriate when requirements are well-understood.
Changes will be fairly limited during the design process.
Large interactive systems.
Problems:
Lack of process visibility;
Systems are often poorly structured;
Applicability:
For small or medium-size interactive systems;
For parts of large systems (e.g. the user interface);
For short-lifetime systems.
37
Advantages:
Users get a feel for the actual system.
Developers get to build something immediately.
Specifications can be developed incrementally.
Disadvantages:
Developers may make implementation compromises in order to
get a prototype working quickly.
The process in not visible (few documents that reflect every version
of the system).
Systems poorly structured.
38
3. CBSE
Advantages:
Reduce amount of software to be developed.
Reduce costs and risks.
Faster delivery.
Disadvantages:
Requirements compromises’, system does not meet real needs of
users.
Control over system evolution is lost.
39
Advantages:
Customer value can be delivered with each increment so system
functionality is available earlier.
Early increments act as a prototype to help elicit requirements for later
increments.
Lower risk of overall project failure.
The highest priority system services tend to receive the most testing.
Disadvantages:
Increments should be relatively small (20,000 lines of code).
Can be difficult to map the customer’s requirements onto increments of the
right size.
Hard to identify common functions.
40
Advantages:
Risks are explicitly assessed and resolved throughout the process.
Software engineers can start working on the project earlier rather
than wading through a lengthy early design process.
Disadvantages:
Requires highly skilled people in risk analysis and planning.
Requires more time, and is more expensive.
Estimates of budget and time are harder to judge at the beginning of
the project since the requirements evolve through the process.
41