Software Engineering Process Models
Software Engineering Process Models
Software Development
Lifecycle (SDLC) Models
1
Agenda
Introduction
Generic SDLC Components
Target SDLCs
Sequential
Iterative
Evolutionary
Agile
Discussion of Each SDLC
Process Model (graphical)
Definition
Advantages and Disadvantages
Audience Experience
Conclusion
2
Introduction
Software development is a process
tracked by project managers, and
managed under various differing
models.
The models affect largely development
effectiveness and product quality.
SDLC – Software Development
LifeCycle
Types – sequential, iterative,
evolutionary, and agile
3
Generic SDLC Components
Requirements
Plan
Design
Build
Test
Maintain
4
General SDLC Model
5
Generic SDLC Benefits
Visibility
Chunks o’work
Task identification
Management framework
Budget and resource management
Encourage systematic evaluation of
risks, progress and options
A common and shared vocabulary
… Et al., D. Dalcher
6
Sequential
Classic
Most common
Linear-sequential lifecycle model
Examples – Waterfall, Dotted-U, V-
Model
7
Sequential Model
8
Definition
Each phase must be completed in its
entirety before the next phase can
begin.
At the end of each phase, a review
takes place to determine if the project
is on the right path, and whether or not
to continue or discard the project.
9
Advantages
Most common
Simple to understand and use
Easy to manage due to rigidity – each
phase has specific deliverables and a
review
Phases are processed and completed
individually
Works well for smaller projects, or
where requirements are well
understood
10
Disadvantages
Adjusting scope during the lifecycle
can end a project
No working software is produced until
late in the lifecycle
High amounts of risk and uncertainty
Poor model for complex or object-
oriented projects
Poor model for long or ongoing
projects, or where requirements are
likely to change
11
Iterative
12
Iterative Model
13
Definition
Multiple development cycles take place,
making the model a “multi-waterfall”
lifecycle; RAD includes business, data.
process modeling.
Cycles are divided up into smaller,
more easily managed iterations. Each
iteration passes through each of the
phases (Requirements thru Testing).
Working software is produced in
Iteration 1, and built upon during each
iteration thereafter.
14
Advantages
Generates working software quickly
and early during the lifecycle
More flexible – less costly to change
the scope or requirements
Easier to test and debug during a
smaller iteration
Easier to manage risk - risks are
identified and resolved during an
iteration; and each iteration is an easily
managed milestone
15
Disadvantages
16
Evolutionary
Build and test working versions of
software to learn and acquire
information, and gradually evolving the
final design.
Projects are defined in a limited sense
allowing a limited amount of work to
take place in each phase.
A.k.a. Prototyping lifecycle model
Examples – Adaptive Software
Development (ASD), Spiral
17
Evolutionary Model
PLANNING
RISK ANALYSIS
ENGINEERING
EVALUATION
$ PROJECT
$$ COST
$$$ $$$$
18
Advantages
19
Disadvantages
20
Agile
Developed to address users' needs
based on requirements to develop
relevant business apps quicker and
cheaper.
Approaches – test-driven (TDD), model-
driven (MDD), use case-driven (UCDD),
behavioral-driven (BDD), and feature-
driven (FDD)
Examples – eXtreme Programming
(XP), AUP
21
Agile Model (AMDD)
ENVISIONING: Iteration 0
©© Scott Ambler, IBM
DEVELOPMENT : Iteration 1, …, n
22
Definition
Focused on user involvement through
teams and workshops, with business
analysts and development .
Agile apps are delivered incrementally.
Iterations are small with short delivery
periods.
23
Advantages
Small numbers of rules and best
practices that are easy to employ.
Good model for early partial working
solutions, and in environments that
change steadily.
Supports concurrent development and
delivery within an overall planned
context.
Can be a tool to improve teamwork,
inspire and motivate, and cross-train.
24
Disadvantages
Managed by timeboxing (strict delivery
management which dictates the scope,
functionality to be delivered, and
adjustments to meet the deadlines).
Poor model if there is fire-fighting
addiction. poor communications, prima
donnas or donalds, or
micromanagement.
Does not work without an overall plan,
an Agile leader, and Agile PM
practices.
25
Conclusion
Agile models (including XP) deliver the
biggest and most comprehensive products.
Sequential models take the longest, have the
most written documentation, and the fewest
graphical docs. This adds up to delays in
considerations of technology, risk, and team
progress.
Suitability – depends on people, processes,
and products
26