Lecture3 SDLCModels
Lecture3 SDLCModels
DEVELOPMENT
LIFE CYCLE
MODELS
PREDICTIVE MODELS
BUILDING SOFTWARE - SIMPLE LIFE CYCLE MODEL
Design Testing
Problem Model Working System
Requirements
Engineering
Implementation Maintenance
2
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
Milestones identified in a software development project correspond to
points in time at which certain output is available
Requirements Engineering ➔ SRS Document
Design ➔ FSD Document
Implementation ➔ Programs / Components
Testing ➔ Test Report
Development process is seen as a series of transformations
Starts with clear requirements document
Ends with running code
3
DOCUMENTATION
Includes
Project Plan / Business Requirements
Quality Assurance Plan
Software Requirements Specification
Functional Specification
Architecture Description
Design Documentation
User Interface Requirements
Test plan
4
GLOBAL DISTRIBUTION OF EFFORT
testing
implementation
design
requirement
engineering
maintenance
70%
5
KINDS OF MAINTENANCE ACTIVITIES
Corrective
correcting errors
Adaptive
adapting to changes in the environment
(both hardware and software)
Perfective
adapting to changing user requirements
Preventive
Increasing future maintainability (adding
comments, updating documentation)
6
SOFTWARE ENGINEERING ETHICS - PRINCIPLES
▪ Act consistently with the public interest
▪ Act in a manner that is in the best interest of the client and employer
▪ Ensure products meet the highest professional standards possible
▪ Maintain integrity in professional judgment
▪ Managers shall promote an ethical approach
▪ Advance the integrity and reputation of the profession
▪ Be fair to and supportive of colleagues
▪ Participate in lifelong learning and promote an ethical approach for
yourself
7
A BROADER VIEW ON SOFTWARE DEVELOPMENT
Meta-project planning information planning Overall guidelines set by organization
boundary • Use of certain standards
• Data interchange formats
conditions • Security policies
• Webpage layout
documentation people
software
program
input output
program
Interact with existing software
Software development project is Extend existing software
a misnomer Use existing subroutine libraries
procedures
➔ Develop full systems
8
PROJECT CONTROL
Exert control along the following dimensions during project execution
Time
Informa
Money
tion
Project
Control
Organi
Quality
zation
9
CONTENTS OF PROJECT PLAN
Standards,
Process Organization Management
Introduction Guidelines,
Model of Project Activities
Procedures
Budget and
Resources Changes Delivery
Schedule
10
CONTENTS OF PROJECT PLAN
Standards,
Process Organization Management
Introduction Guidelines,
Model of Project Activities
Procedures
Budget and
Resources Changes Delivery
Schedule
11
SOFTWARE PROCESS MODEL
A software process is an application of a model for a specific
project, which may include some adaptation
12
BAKING PROCESS MODELS
List Measure Measure
ingredients Ingredients and mix dry
Measure ingredients
and mix wet
components
Combine in
Bake
Tray
Bake
13
WHY PROCESS MODELS?
To manage large projects
To divide the project and properly assign tasks
To anticipate and manage the risks
14
CHOOSING A MODEL
No model is better than the other
The choice is made according to certain criteria
nature of the project
project size
nature of the client
Team skills
15
SOFTWARE DEVELOPMENT MODELS
SDLC Models
Heavyweight Lightweight
(Predictive) (Adaptive)
16
SOFTWARE DEVELOPMENT MODELS
17
PREDICTIVE VS ADAPTIVE MODELS
18
SOFTWARE DEVELOPMENT MODELS
SDLC Models
Heavyweight Lightweight
(Predictive) (Adaptive)
19
WATERFALL MODEL
V&V
V&V
20
WATERFALL MODEL
V&V
V&V
V&V
21
WATERFALL MODEL
advantages disadvantage
23
V MODEL
Project completion
24
V MODEL
advantages disadvantage
25
SASHIMI MODEL
Overlapping phases
A phase can start before previous
phase ends
Example
instead of waiting for the
requirement phase to complete,
you will start with your design
while the requirements are being
created
26
SASHIMI MODEL
advantages disadvantage
27
WATERFALL MODELS
Phase Implement Integration Acceptance
Design ation testing testing
Activity
Integration
testing
4.7 43.4 26.1 25.8
Implementation
(& unit testing)
6.9 70.3 15.9 6.9
28
SOFTWARE DEVELOPMENT MODELS
SDLC Models
Heavyweight Lightweight
(Predictive) (Adaptive)
29
INCREMENTAL MODELS
The requirements are divided into small
modules
Multiple mini waterfalls
The software is built with several
(overlapping) increments
Each increment is a partial construction of
software
Each construction part goes through the
phases of requirements analysis, design,
implementation and testing
A functional version of the software is
produced at the end of the first
increment
30
INCREMENTAL MODEL
advantages disadvantage
31
WHEN TO USE INCREMENTAL MODEL
When most specifications are known in advance and are
subject to small changes
Need to deliver a product to market quickly
When there are not enough developers to finish the project
on time, so an almost complete functional software can be
the solution
32
ITERATIVE MODEL
initial, simplified implementation
progressively gains more complexity
and a broader feature set until the
final system is complete
incremental alterations made during
the design and implementation of
each new iteration
33
RATIONAL UNIFIED PROCESS (RUP)
establish scope,
foundation of
feasibility, critical use release to user
architecture, establish manufacturing process,
cases, candidate community, often
tool support, get all use one or more releases
architectures, schedule several releases
cases
and cost estimates
• Complement to UML
(Unified Modeling
Language)
34
ITERATIVE MODEL (RUP)
advantages disadvantage
36
PROTOTYPE MODEL
The project is done over several iterations
The client and the developer meet and define the
goals and needs of software and items that are not
yet clear.
The developer builds a prototype according to client
expectations
The prototype is evaluated by the customer
The customer gives his feedback
Developers adapt the prototype according to
customer requirements
When the prototype meets the client requirements,
the code is normalized according to the standards
and best practices
37
PROTOTYPING
requirements elicitation is difficult
software is developed because the present situation is unsatisfactory
however, the desirable new situation is as yet unknown
prototyping is used to obtain the requirements of some aspects of the
system
prototyping should be a relatively cheap process
use rapid prototyping languages and tools
not all functionality needs to be implemented
production quality is not required
38
PROTOTYPING TYPES
Evolutionary Prototyping Throw-away prototyping
The prototype may evolve into the final Objective is to understand the
product. system requirements and
The user starts by formulating raw outline a better definition of
requirements and a first version of the requirements.
system is produced.
Should start with poorly
The user starts to work with this system,
which leads to new or changed
understood requirements to
requirements. clarify what is really needed
After numbers of iteration, and when the
user is satisfied, the last version
developed is the product to be
delivered.
39
PROTOTYPE MODEL
advantages disadvantage
40
SPIRAL MODEL
risk-driven iterative model
a combination of the waterfall
model and the iterative model
At the end of each cycle the
objectives of the next cycle are
determined
Each cycle consists of the same
activities as the waterfall model
41
SPIRAL MODEL
advantages disadvantage
43
READING REFERENCE
44
AGILE METHODS
45