Professional Documents
Culture Documents
Unit - 2 (Software Process Models)
Unit - 2 (Software Process Models)
UNIT-2
Software Process Model
A Generic Process Model
• A process was defined as a collection of work activities, actions, and
tasks that are performed when some work product is to be created.
• Each of these activities, actions, and tasks reside within a framework
or model that defines their relationship with the process and with
one another.
• The software process is represented schematically in Figure. Referring
to the figure, each framework activity is populated by a set of
software engineering actions.
• Each software engineering action is defined by a task set that
identifies the work tasks that are to be completed, the work products
that will be produced, the quality assurance points that will be
required, and the milestones that will be used to indicate progress.
• A generic process framework for software
engineering defines five framework activities
communication, planning, modeling,
construction, and deployment.
Software
• Process models are not perfect, but provide Development
roadmap for software engineering work.
Life
• Software models provide stability, control and Cycle
organization to a process that if not managed
can easily get out of control. Construction Modelling
• Software process models are adapted
(adjusted) to meet the needs of software
engineers and managers for a specific project.
Different Process Models
Process model is selected based on Process Models
different parameters
Type of the project & people • Waterfall Model (Linear Sequential Model)
Complexity of the project • Incremental Process Model
Size of team • Prototyping Model
Expertise of people in team • The Spiral Model
Working environment of team • Rapid Application Development(RAD) Model
Software delivery deadline • Concurrent Development Models
• Component Based Development Model
The Waterfall Model Classic life cycle or linear sequential model
Communication
• Project initiation
Planning
• Requirements
gathering • Estimating
Modeling
• Scheduling
• Tracking • Analysis
Construction
• Design
• Coding
Deployment
• Testing
• Delivery
• Support
• Feedback
When requirements for a problems are well understood then this model is used
in which work flow from communication to deployment is linear
The Waterfall Model
When to use ? Advantages
Requirements are very well known, clear Simple to implement and manage
and fixed
Product definition is stable Drawbacks
Technology is understood Unable to accommodate changes at later
stages, that is required in most of the
There are no ambiguous (unclear)
cases.
requirements
Working version is not available during
Ample (sufficient) resources with
development. Which can lead the
required expertise are available freely
development with major mistakes.
The project is short
Deadlock can occur due to delay in any
step.
Not suitable for large projects.
Incremental Process Model
• There are many situations in which initial software requirements are
reasonably well defined, but the overall scope of the development effort
prevent a purely linear process.
• In addition, there may be a compelling need to provide a limited set of
software functionality to users quickly and then refine and expand on that
functionality in later software releases.
• In such cases, there is a need of a process model that is designed to produce
the software in increments.
Incremental Process Model
Software Functionality & Features
• The incremental model combines elements of linear and parallel process flows.
• This model applies linear sequence in a iterative manner.
• Initially core working product is delivered.
• Each linear sequence produces deliverable “increments” of the software.
Incremental Process Model
e.g. word-processing software developed using the incremental model
It might deliver basic file management, editing and
document production functions in the first
increment Advantages
more sophisticated editing in the second increment; Generates working software quickly
spelling and grammar checking in the third and early during the software life
increment; and cycle.
advanced page layout capability in the fourth It is easier to test and debug during
increment. a smaller iteration.
When to use ? Customer can respond to each built.
When the requirements of the complete Lowers initial delivery cost.
system are clearly defined and understood but Easier to manage risk because risky
staffing is unavailable for a complete pieces are identified and handled
implementation by the business deadline. during iteration.
V-Model
➢Also known as verification and validation model
➢Extension of waterfall model
➢Testing is associated with every phase of lifecycle.
➢Verification Phase(Requirement analysis ,
System design, Architectural design, module design).
➢Validation phase(Unit Testing, Integration testing,
system testing , Acceptance testing).
Advantages
• Time saving
• Good understanding of project in the beginning
• Every component must be testable.
• Progress can be tracked easily.
• Proactive defect tracking.
Disadvantages
• No feedback so less scope of changes
• Risk analysis not done.
• Not good for big or object oriented projects.
Evolutionary Process Models
• When a set of core product or system requirements is well understood but the
details of product or system extensions have yet to be defined.
• Also known as “successive model”.
• In this situation there is a need of process model which specially designed to
accommodate product that evolve with time.
• Evolutionary Process Models are specially meant for that which produce an
increasingly more complete version of the software with each iteration.
• Evolutionary Models are iterative.
• They are characterized in a manner that enables you to develop increasingly
more complete versions of the software.
• Evolutionary models are
• Prototyping Model
• Spiral Model
Prototyping model
When to use ?
• Customers have general objectives of software but do not have detailed
requirements for functions & features.
• Developers are not sure about efficiency of an algorithm & technical feasibilities.
Modeling Construction
Business Modeling: Information flow among the It highlighting the use of pre-
business. existing software component.
Ex. What kind of information drives (moves)?
Who is going to generate information? Deployment
From where information comes and goes?
Integration of modules
Data Modeling: Information refine into set of developed by parallel teams,
data objects that are needed to support delivery of integrated software
business. and feedback comes under
Process Modeling: Data object transforms to deployment phase.
information flow necessary to implement
business.
Rapid Application Development Model (RAD) Cont.
When to Use?
• There is a need to create a system that can be modularized in 2-3 months of time.
• High availability of designers and budget for modeling along with the cost of
automated code generating tools.
• Resources with high business knowledge are available.
Advantages Drawback
Reduced development time. For large but scalable projects, RAD requires
sufficient human resources.
Increases reusability of components.
Projects fail if developers and customers are
Quick initial reviews occur. not committed in a much shortened time-
Encourages customer feedback. frame.
Integration from very beginning Problematic if system can not be modularized.
solves a lot of integration issues. Not appropriate when technical risks are high
(heavy use of new technology).
Concurrent development model
• The concurrent development model is called as concurrent model.
• The communication activity has completed in the first iteration and
exits in the awaiting changes state.
• The modeling activity completed its initial communication and then
go to the underdevelopment state.
• If the customer specifies the change in the requirement, then the
modeling activity moves from the under development state into the
awaiting change state.
• The concurrent process model activities moving from one state to
another state
• SDLC activities: communication , planning ,
modeling , construction , deployment.
➢Inactive: no any activity /state performed.
➢Under Development: Any activity
performed.
➢Awaiting changes: If customer want any
changes.
➢Under revision: Do all required changes.
➢Under Review: Testing activity start.
➢Baselined: As per the SRS document.
➢Done: Project completed & Deployed.
Concurrent development model
Advantages
• This model is applicable to all types of software development processes.
• It is easy for understanding and use.
• It gives immediate feedback from testing.
• It provides an accurate picture of the current state of a project.
Disadvantages
• It needs better communication between the team members. This may not
be achieved all the time.
• It requires to remember the status of the different activities.
Component based Development
• Commercial off the shelf (COTS) software components are offered as product.
• COTS provides set of functionality with well defined interfaces that enables
component to be integrated into software.
• The component based development model incorporates many characteristics
of the spiral model.
• It is evolutionary in nature.
• Component based development model constructs applications from
prepackaged software components.
• Modeling and construction activities begin with the identification of
components.
Component based Development
Component based development incorporates the following steps
1. Available component-based products are researched & evaluated for software development.
2. Component integration issues are considered.
3. A software architecture is designed to accommodate the components.
4. Components are integrated into the architecture.
5. Testing is conducted to ensure proper functionality.
➢Component Based development model leads to software reuse, and reusability benefits reduction in
development cycle time and reduction in project cost.
Advantages
It leads to software reuse.
It reduces development cycle time.
Reduction in project cost.