Professional Documents
Culture Documents
2
Software Process
3
Risk Management
4
The software process
8
8
Use of the Models in Practice
9
The Waterfall Model
Requirements
Definition
System and
Software design
Programming
and Unit Testing
Integration and
System Testing
Operation and
10
Maintenance
Waterfall Model
material adapted from Steve Easterbrook
Requirements
Definition
System and
Software design
Programming
and Unit Testing
Integration and
System Testing
Operation and
12
Maintenance
[1] Requirements Analysis and
Definition
• The system's services, constraints and goals are
established by consultation with system users. They
are then defined in a manner that is understandable
by both users and development staff.
• This phase can be divided into:
Feasibility study (often carried out separately)
Requirements analysis
Requirements definition
13 Requirements specification
Terminology
A requirement is a technical objective which is imposed
upon the software, i.e., anything that might affect the kind
of software that is produced
A requirement may be imposed by
the customer
the developer
the operating environment
The requirement must be documented
Requirements fall into two broad categories
functional
14 non-functional
Functional Requirements
17
Define System Requirements
18
Define System Requirements
Requirements
Definition
System and
Software design
Programming
and Unit Testing
Integration and
System Testing
Operation and
20
Maintenance
[2] System and Software Design
22
Build System
24
[3] Programming and Unit Testing
26
The Waterfall Model
Requirements
Definition
System and
Software design
Programming
and Unit Testing
Integration and
System Testing
Operation and
27
Maintenance
[4] Integration and System Testing
28
The Waterfall Model
Requirements
Definition
System and
Software design
Programming
and Unit Testing
Integration and
System Testing
Operation and
29
Maintenance
[5] Operation and Maintenance
Advantages:
Process visibility
Dependence on individuals
Quality control
Cost control
31
The Classical Software Lifecycle
The classical software Requirements
Collection
lifecycle models the Analysis
software development Design
as a step-by-step Implementation
32
Problems with the Waterfall Lifecycle
1. “Real projects rarely follow the sequential flow that the model
proposes. Iteration always occurs and creates problems in the
application of the paradigm”
2. “It is often difficult for the customer to state all requirements
explicitly. The classic life cycle requires this and has difficulty
accommodating the natural uncertainty that exists at the beginning
of many projects.”
Each stage in the process reveals new understanding of the previous
stages, that requires the earlier stages to be revised.
33
Cons
34
Problem Case Study
display
System
36
Iterative Development
In practice, development is always iterative, and
all activities progress in parallel.
Evaluation Requirements
Implementation
(prototype) Design
38
Phased Models
material adapted from Steve Easterbrook
Release 1
Incremental development
design code test integrate O&M (each release adds more
release 2 functionality)
Requirements
version 1
reqts design code test integrate O&M
lessons learnt
version 2
reqts design code test integrate O&M
lessons learnt
Evolutionary development version 3
(each version incorporates reqts design code test integrate
39 new requirements) 39
Incremental Development
41
42
43
44
45
Incremental delivery
46
Incremental development advantages
48
Evolutionary Process Model
Concurr ent
activities
Initial
Specification
version
Outline Intermediate
Development
description versions
Final
Validation
version
49
50
Evolutionary
Version 1
Requirements Design Coding Test Deployment
Version 2
Requirements Design Coding Test Deployment
Version 3 Feedback
Requirements Design Coding Test Deployment
Problems
Lack of process visibility;
Systems are often poorly structured;
Special skills (e.g. in languages for rapid prototyping)
may be required.
Applicability
For small or medium-size interactive systems;
For parts of large systems (e.g. the user interface);
For short-lifetime systems.
52
Spiral development
Develop
Plan and
test
54 54
Details of the Spiral
55
Boehm’s Spiral Lifecycle
Planning = determination Risk Analysis = Analysis of
of objectives, alternatives alternatives and identification/
and constraints resolution of risks
56
Spiral model sectors
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.
57
The spiral model
The Risk Management Plan
58
5
Spiral Model Advantages
59
When to use Spiral model
60
V Model
Level of abstraction material adapted from Steve Easterbrook
system system
requirements integration
software acceptance
requirements test
preliminary software
design integration
“analyze “test
and detailed component and
design” design test integrate”
61 time
61
V Model
65
Case Study
Test System
Children hospital
Care for children in the Alexandria city and
some Arab countries
The average length of stay of inpatients is
3.6 days
All patients are accompanied by a parent
for the entire duration of their stay at
67 hospital
Case Study
68
Bank example
Requirements
Open an account for a customer (savings or chequing)
Deposit ƒ
Withdraw ƒ
Display details of an account ƒ
Change LOC ƒ
Produce monthly statements ƒ
Print a list of customers
Ambiguities
What is the difference between savings and chequing?
69
70
Design of Bank – Identify Classes
TELLER ƒ
CUSTOMER ƒ
SAVINGS_ACCOUNT ƒ
CHEQUING_ACCOUNT ƒ
MAIN_MENU ƒ
BALANCE_INQUIRY ƒ
INTEREST_RATE
71