0% found this document useful (0 votes)
117 views

Software Engineering Process Models

Uploaded by

Nikhil Satav
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
117 views

Software Engineering Process Models

Uploaded by

Nikhil Satav
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 26

A Comparison of

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

 Intuitive approach to the Waterfall


Model
 A.k.a. Incremental or progressive
lifecycle model
 Examples – Rapid Application
Development (RAD), Rational Unified
Process (RUP)

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

 Each phase of an iteration is rigid with


no overlaps
 Costly system architecture or design
issues may arise because not all
requirements are gathered up front for
the entire lifecycle

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

 Increased risk analysis (especially for


Spiral)
 Good for large and mission-critical
projects
 Software is produced early and often in
the lifecycle, with customer evaluation

19
Disadvantages

 Can be costly to use


 Risk analysis requires highly specific
expertise
 Project’s progress is highly dependent
upon the risk analysis phase
 Does not work well for smaller projects

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

(REVIEWS: Optional for all Iterations)

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

You might also like