Professional Documents
Culture Documents
UNIT 1
CHAPTER - 3
Software Process Models
• Process
– A process is a series of steps involving activities,
constraints and resources that produce an
intended output.
Software Process Models
• Process
– Activities
• Communicate with the customer
• Identify the requirements
• Check the feasibility
• Analyze the requirement
• Make a design
• Develop the s/w according to the design
• Test the developed s/w
• If the s/w is according to the customer specification and free of errors then
implement it otherwise repeat all the above steps
Software Process Models
• Process
– Constraints
• Requirements should be carefully identified
• Feasibility should be checked for the suitability of project in terms of
– S/w and H/w requirements
– Cost
– Time
• Software
• Hardware
• Equipments
• Time
• Money
Software Process Models
• Software Process
– Building a software product is actually known as
software process.
– Characteristics
• Used to understand and analyze the various s/w
process models.
Software Process Models
• Software Process
– Characteristics
• Understandability
– Extent to which the process is defined and the ease to understand the process
definition
• Visibility
– Process activities are properly performed and progress of the process is visible
or not
• Supportability
– Either the process is supported by CASE tools or not
• Acceptability
– The process is acceptable or usable by those involved in it or not.
Software Process Models
• Software Process
– Characteristics
• Reliability
– Product developed is free of errors
• Robustness
– Continuity of the process in spite of unexpected problems
• Maintainability
– Adaption of changing organizational needs
• Rapidity
– Speed of development of a process according to the specification
Software Process Models
• Software Process
– Characteristics
• Understandability
• Visibility
• Supportability
• Acceptability
• Reliability
• Robustness
• Maintainability
• Rapidity
Software Process Models
• Definition
– “A development strategy designed to solve an
actual problem in an industry setting”.
Analysis
Design
Code
Test
Software Process Models
• This strategy includes the
– Process
– Methods
– Tools
– Generic phases
Software Process Models
• All these models are called as prescriptive models
because they prescribe a set of process elements like
the following workflow
– Framework activities
– S/w engineering actions
– Tasks
– Work products
– Quality assurance and
– Change control mechanisms for each project
Software Process Models
• The various s/w process models are:
– Waterfall model
– Incremental process model
– Evolutionary process model
• Prototyping model
• Spiral model
• Concurrent development model
• It is a 5 phase model
Design
Implementation
& Unit testing
Integration &
System Testing
Operation &
Maintenance
Waterfall Model
– Work-product / Outcome:
• SRS (Software Requirement Specification) Document
– Use:
• Used as a contract between the developer & the customer
Waterfall Model
• Design
– Purpose:
• Transforms requirements into a structure suitable for implementation
in some programming language
• S/w architecture is specified in detail.
– Work-product / Outcome:
• SDD (Software Design Document)
– Use:
• Useful to start coding
Waterfall Model
• Requirements:
– Major requirements are specified by the customer at beginning and SRS is prepared.
– Priorities becomes the reason for multiple cycles.
– Implementation of these requirements is done based on priority.
Incremental Process Model
– The phases in iterative model are same as waterfall model but they are done
repeatedly.
– A usable product is delivered after each cycle. This allows obtaining the customers
feedback after each cycle. As the product is developed in increments the testing of
releases.
– The model consists of 3 iterative phases design, implementation and analysis. After
phase.
• Iterative process carried through various cycles permits customer to see the progress
of the software.
• This model is used when the partial portion of the software is to be quickly delivered
to the customer.
- Disadvantage
• Later software increments may require modifications in earlier ones which may
increase cost.
Differences
Waterfall Model Incremental Model
• Disadvantages:
– Actual cost may exceed the estimated cost
– System broken into small increments
Evolutionary Models
• Phases:
– Same as waterfall model but, they are applied in
cyclical manner.
Evolutionary Models
• Differences:
Waterfall Evolutionary
Time consuming Time saving
Costly Cheap
Inflexible Flexible
Process is easily understood, Clumsy due to excessive iterations
implementable and maintainable.
Feedback &
Implement Refinement
Implementation & (dummy approach which only explains about the outer
Unit Testing structure) of the software instead of the s/w.
Integration &
System Testing Final system development using
waterfall model
Operation &
Maintenance
Prototyping Model
But, used to
- Refine requirements
- Prepare final SRS
Prototyping Model
• The prototype is not the final product
• Prototype code is discarded after requirements are
finalized
• Benefits:
– Helps us to unravel the customer requirements
– Helps us to gather experience for developing the final system.
• Phases:
– Same as waterfall model but, they are applied in
cyclical manner.
Prototype Model
Requirements
Feedback &
Implement Refinement
Implementation & (dummy approach which only explains about the outer
Unit Testing structure) of the software instead of the s/w.
Integration &
System Testing Final system development using
waterfall model
Operation &
Maintenance
Spiral
Model
Combination of
Prototype & Iterative
Model
Spiral Model
• Simplified
Diagram
Proposed by Barry Boehm in 1986
• Advantages
– Best approach for testing and developing complex
and large projects
– Better risk analysis and management
– Better requirement analysis
– Fast and easy development
– Design
– Development
– Testing &
Implementation
Concurrent development model
Each activity has a ‘state’ and exists simultaneously
with other activities.
Process
Model This model is applicable to all types
of software development and
provides an accurate picture of the
current state of a project
Rapid Application Development (RAD) model
Requirement User
Construction Cut over
Planning Description
Used when we can modularize the software i.e. each functionality is developed by a
Developed by IBM
RAD Model
• Requirement Planning
– Many customers sit together as a group and provide many
requirements and functionalities that are expected from software
(called as group elicitation technique)
– We use prototype approach to gather requirements
– User communication is required for good understanding
Build rapid
User Prototype
prototype Feedback
Evaluation refined
Product released
• Major features
– Rapid prototype
• Quick initial views about product
RAD – Powerful development tools
• Development time reduced. E.g.
Model CASE tools
– User involvement
• Acceptability of product is
increased
RAD Model
• Drawbacks
Information
Features: Functions:
Content:
F1 F11
Doc_1
F2 F12
Doc_2
. .
.
. .
.
. .
.
Fn F1n
Doc_n
Components
Span the
entire
architecture
It emphasizes the important role of software architecture and helps the architect focus on
the right goals such as, understandability, reliance to future changes, and reuse.
• Use-case driven means that it is based on the user view of the software, how
user will interact with the system and possible actions it can perform on the
system.
• Architecture centric means that it focuses on the reliance on the changes of
architecture in the future; portability, adaptability and reusability.
• The iterative and incremental nature of the unified process enables it more
mature, comprehensive and having high quality.
• It is based on Unified Modeling Language (UML) developed for object-
oriented modelling
Phases of
Unified Model
– Inception
– Elaboration
– Construction
– Transition
– Production
END OF UNIT 1 - CHAPTER 3