Chapter 2 SW process Models - CAP312 Software Engineering

Maha Al-Yahya First Semester 1430-1431
1
Objectives
After completing this chapter you should be able to:
 Describe various SW process models
 Identify the advantages and disadvantages of each
model
 Evaluate the applicability of each model for a certain
type of software development
Maha Al-Yahya First Semester 1430-1431
2
Overview
 What are SW process models?
 Why SW process models?
 The Waterfall Model
 Evolutionary Models
 The CBSE Model
 Agile Models
 Which is best?
Maha Al-Yahya First Semester 1430-1431
3
A Software Process is
A structured set of activities
required to develop a software
system
Requirements
Specification
Design and
Implementation
Validation
Maha Al-Yahya First Semester 1430-1431
Evolution
4
Ad hoc Software Development
 Developing software without planning for
each phase, and without specifying tasks,
deliverables, or time constraints.
 Relies entirely on the skills and experience
of the individual staff for performing the
work.
 The software process is constantly changed
or modified as the work progresses.
Maha Al-Yahya First Semester 1430-1431
5
Activity
 Formulate Teams
 As a team, answer the following question:
What do you think are the problems with ad-hoc
development?
Maha Al-Yahya First Semester 1430-1431
6
Ad hoc Software Development
 Some problems with ad-hoc development
 Difficult to distinguish between tasks and
therefore some important tasks may be ignored
 Schedules, budgets, functionality, and product
quality are generally (inconsistent).
 If problems are found late, they are more costly
to fix.
 How can we avoid these problems?
Maha Al-Yahya First Semester 1430-1431
7
We need ..
A Software process Model which is
“an abstract representation of a process. It presents
a description of a process from some particular
perspective.”
It provides guidelines to organize how software
process activities should be performed and in
what order.
Maha Al-Yahya First Semester 1430-1431
8
SW Process Models
1.
2.
3.
4.
Waterfall model
Evolutionary models
Component-based development model
Iterative Models
Maha Al-Yahya First Semester 1430-1431
9
Maha Al-Yahya First Semester 1430-1431
10
The Waterfall Model
Niagara Falls, Canada
Maha Al-Yahya First Semester 1430-1431
11
The Waterfall Model
 Oldest model, it’s been around since 1970.
 Called “Linear Sequential Model”.
 Most widely used model for SW engineering
 Documentation is produced at each stage.
Maha Al-Yahya First Semester 1430-1431
12
Phases
1. Requirements analysis and definition
2. System and software design
3. Implementation and unit testing
4. Integration and system testing
5. Operation and maintenance
Maha Al-Yahya First Semester 1430-1431
13
Waterfall model diagram
Requirements
Design
Code & Unit Test
Test & Integration
Operation &
Maintenance
Maha Al-Yahya First Semester 1430-1431
14
Maha Al-Yahya First Semester 1430-1431
15
Evolutionary Models
Exploratory
Model
Prototyping
Model
Maha Al-Yahya First Semester 1430-1431
16
Evolutionary Development
Maha Al-Yahya First Semester 1430-1431
17
Evolutionary Development
 Specification, development, and
validation are interleaved rather than
separate.
 Rapid feedback across activities.
Maha Al-Yahya First Semester 1430-1431
18
The Exploratory Model
 Objective is to work with customers
and evolve a final system from an initial
outline specification.
 Should start with well-understood
requirements and add new features as
proposed by the customer.
Maha Al-Yahya First Semester 1430-1431
19
The Prototyping Model
 When a customer defines a set of general
objectives for a software but does not identify
detailed input, processing, or output
requirement.
 It consists of the iterating phases:
1. Requirements gathering
2. Design and build SW prototype
3. Evaluate prototype with customer
4. Refine requirements
Maha Al-Yahya First Semester 1430-1431
20
The Prototyping Model
Listen to
Customer
Customer
Test
Drives the
prototype
Maha Al-Yahya First Semester 1430-1431
Build /
Revise
prototype
21
Maha Al-Yahya First Semester 1430-1431
22
Component Based Software Engineering
(CBSE)
 Based on systematic reuse where
systems are integrated from existing
components or COTS (Commercialoff-the-shelf) systems.
 This approach is becoming
increasingly used as component
standards have emerged.
Maha Al-Yahya First Semester 1430-1431
23
CBSE Process Stages
Maha Al-Yahya First Semester 1430-1431
24
Maha Al-Yahya First Semester 1430-1431
25
Iterative Models
Incremental
Model
Spiral
Model
Agile Model
Maha Al-Yahya First Semester 1430-1431
26
The Incremental Model
Rather than deliver the system as a
single delivery, the development
and delivery is broken down into
increments with each increment
delivering part of the required
functionality.
Maha Al-Yahya First Semester 1430-1431
27
The Incremental Model
User requirements are prioritised and the
highest priority requirements are
included in early increments.
Once the development of an increment is
started, the requirements are frozen
though requirements for later
increments can continue to evolve.
Maha Al-Yahya First Semester 1430-1431
28
The Incremental Model
Maha Al-Yahya First Semester 1430-1431
29
The Spiral Model
 Defined by Barry Boehm in his 1988 article A
Spiral Model of Software Development and
Enhancement.
 Process is represented as a spiral rather than as a
sequence of activities with backtracking.
 Each loop in the spiral represents a phase in the
process.
 Suitable for large, expensive and complicated
projects
Maha Al-Yahya First Semester 1430-1431
30
The Spiral Model
Maha Al-Yahya First Semester 1430-1431
31
The Spiral Model
 Objective setting
 Specific objectives for the phase are identified.
 Risk assessment and reduction
 Risks are assessed and activities put in place to reduce the key
risks.
 Development and validation
 A development model for the system is chosen which can be
any of the generic models.
 Planning
 The project is reviewed and the next phase of the spiral is
planned.
Maha Al-Yahya First Semester 1430-1431
32
The Spiral Model
 Risk driven process model
 Different risk patterns can lead to choosing different
process models
 What is a 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)
Maha Al-Yahya First Semester 1430-1431
33
Agile Models
Assignment 1: Individual Homework
 Write a short essay about Agile models
(history, description, difference from other
models, known methods, evaluation and
suitability.
 The essay should not exceed 1000 words.
More details can be found on the course
blog.
Maha Al-Yahya First Semester 1430-1431
34
Process Activities
Reading
Please read your book section 4.3
pages 74-82
Maha Al-Yahya First Semester 1430-1431
35
Maha Al-Yahya First Semester 1430-1431
36
Activity
 Formulate teams
 Each team chooses a slip from the envelope.
 List the advantages, disadvantages, and when to use a
certain software process model.
 Share your list with the rest of the class.
Maha Al-Yahya First Semester 1430-1431
37
The Waterfall Model
 Inflexible partitioning of the project into distinct
stages makes it difficult to respond to changing
customer requirements.
 Only appropriate when the requirements are wellunderstood and changes will be fairly limited during
the design process.
 The waterfall model is mostly used for large systems
engineering projects.
Maha Al-Yahya First Semester 1430-1431
38
The Exploratory Model
 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.
Maha Al-Yahya First Semester 1430-1431
39
The Prototyping Model
 Advantages
 Users get a feel for the actual system
 Developers get to build something immediately
 Specifications can be developed incrementally
 Disadvantages
 The developer 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
Maha Al-Yahya First Semester 1430-1431
40
Component Based Software Engineering
(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
Maha Al-Yahya First Semester 1430-1431
41
The Incremental Model
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.
Maha Al-Yahya First Semester 1430-1431
42
The Incremental Model
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
Maha Al-Yahya First Semester 1430-1431
43
The Spiral Model
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.
Maha Al-Yahya First Semester 1430-1431
44
The Spiral Model
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
Maha Al-Yahya First Semester 1430-1431
45
Which model is best?
 The choice of a model depends on the project
circumstances and requirements.
 A combination of models is used sometimes get
the benefits of more than one model.
 Criteria for evaluating models:
 Risk management
 Quality / cost control
 Visibility of progress
 Early system functionality
 Customer involvement and feedback
Maha Al-Yahya First Semester 1430-1431
46