Professional Documents
Culture Documents
SPM Unit2 2024 240328 172315
SPM Unit2 2024 240328 172315
Topics :
2
Type of Software Process Model
` There are many kinds of Process Models for different requirements. We
refer to these as SDLC models (Software Development Life Cycle models).
The most popular and important SDLC/Process Models are as follows:
◼ Waterfall model
◼ V model
◼ Incremental model
◼ Spiral model
◼ Rapid Application Development (RAD) model
◼ Agile model
◼ Iterative model
◼ Prototype model
3
Factors in choosing a software process
Choosing the right software process model for the project can be difficult. If
you know your requirements well, it will be easier to select a model that
best matches your needs. You need to keep the following factors in mind
when selecting your software process model:
◼ Project requirements
Before you choose a model, take some time to go through the project
requirements and clarify them along with your organization’s or team’s
expectations.
◼ Project size
Consider the size of the project you will be working on Larger projects mean
bigger teams, so you’ll need more broad and project management plans.
4
Factors in choosing a software process
◼ Project Complexity
Complex projects may not have clear requirements. The requirements
may change often, and the cost of delay is high.
◼ Cost of Delay
Is the project highly time-bound with a huge cost of delay, or are the
timelines flexible?
◼ Customer Involvement
Do you need to consult the customers during the process? Does the
user need to participate in all phases?
5
Factors in choosing a software process
◼ Project resources
This involves the amount and availability of funds, staff, and other
resources.
6
Software Development Life Cycle (SDLC)
◼ Feasibility study: - The main aim of feasibility study is to determine whether it
would be financially and technically feasible to develop the product.
◼ Requirements analysis and specification: - The aim of the requirements
analysis and specification phase is to understand the exact requirements of the
customer and to document them properly. This phase consists of two distinct
activities, namely Requirements gathering and analysis, this phase ends with the
preparation of Software requirement Specification (SRS)
◼ Design: - The goal of the design phase is to transform the requirements
specified in the SRS document into a structure that is suitable for
implementation in some programming language . Design specification
Document is outcome of this phase.
◼ Coding and Unit Testing:-The purpose of the coding and unit testing phase
(sometimes called the implementation phase) of software development is to
translate the software design into source code. Each component of the design
is implemented as a program module. The end-product of this phase is a set of
program modules that have been individually tested. Code Listings are generated
after this phase. 7
Software Development Life Cycle (SDLC)
9
Waterfall Model
Waterfall Model – Application
Some situations where the use of Waterfall model is most appropriate are :
This process is then repeated, producing a new version of the software at the
end of each iteration of the model.
Iterative Model
Iterative Model – Application
• Resources with needed skill sets are not available and are planned to be
used on contract basis for specific iterations.
• There are some high-risk features and goals which may change in the
future.
Spiral Model
The Spiral model is a combination of iterative process model and waterfall
model with a high importance on risk analysis. It allows incremental releases of
the product or incremental refinement through each iteration around the spiral.
The Spiral Model is widely used in the software industry as it is parallel with
the natural development process of any product, i.e. learning with maturity
which involves minimum risk for the customer as well as the
development firms. The following pointers explain the typical uses of a Spiral
Model :
The Rapid Application Development Model (RAD) was first proposed by IBM in 1980’s.
The critical feature of this model is the use of powerful development tools and techniques.
A software project can be implemented using this model if the project can be broken down
into small modules where each module can be assigned independently to separate teams
These modules can finally be combined to form the final product.
Rapid Application Development Model (RAD)
RAD- Applications :
•RAD Model is suitable for system requirements are known and short
development time.
•It is also suitable for projects requirements can be reusable for development.
•The model also used when already existing system components can be used
in developing a new system with minimum changes.
•This model can only be used if the teams consist of domain experts.
•The model should be chosen when the budget permits the use of automated
tools and techniques required.
Agile Model
Scrum: One of the most popular agile models, Scrum consists of iterations
called sprints. Each sprint is between 2 to 4 weeks long and is preceded by
planning. You cannot make changes after the sprint activities have been
defined.
Kanban: Kanban focuses on visualizations, and if any iterations are used they
are kept very short. You use the Kanban Board that has a clear representation
of all project activities and their numbers, responsible people, and progress.
Dynamic Systems Development Method (DSDM)
•The DSDM Agile Project Framework covers a wide range of activities across
the whole project lifecycle and includes strong foundations and control, which
set it apart from some other Agile methods.
DSDM fixes cost, quality and time at the outset and uses the MoSCoW prioritisation of
scope into musts, shoulds, coulds and will not haves to adjust the project deliverable to
meet the stated time constraint.
DSDM is one of a number of agile methods for developing software and non-IT
solutions, and it forms a part of the Agile Alliance.
In 2014, DSDM released the latest version of the method in the 'DSDM Agile Project
Framework'. At the same time the new DSDM manual recognised the need to operate
alongside other frameworks for service delivery (esp. ITIL) PRINCE2, Managing
Successful Programmes, and PMI.[6] The previous version (DSDM 4.2) had only
contained guidance on how to use DSDM with extreme programming.
Prototype Model
Prototype Model
Prototyping is used to allow the users evaluate developer proposals and try them out before
implementation. It also helps understand the requirements which are user specific and may not
have been considered by the developer during product design. Following is a stepwise approach
explained to design a software prototype.
Feedback is provided by the users on the product for the planning stage of the next cycle and the
development team responds, often by changing the product, plan or process. Therefore, the
software product evolves with time.
Comparison of Various SDLC Models
Properties of Model Water-Fall Model Iterative model, Spiral Model RAD Model
Planning in early stage Yes Yes Yes No
Handle Large-Project Not Appropriate Not Appropriate Appropriate Not Appropriate
Requirement Specifications Beginning Beginning At the end of every iteration Time boxed release
Working software availability At the end of the life-cycle At the end of every iteration At the end of every iteration At the end of the life cycle
Managing Project
•Defining and setting up project scope
•Managing project management activities
•Monitoring progress and performance
•Risk analysis at every phase
•Take necessary step to avoid of problems
•Act as project spokesperson
Software Project Estimation
For an effective management accurate estimation of various measures is a must.
With correct estimation managers can manage and control the project more
efficiently and effectively. Software Project estimation may involve the following:
◼ Effort Estimation
The managers estimate efforts in terms of personnel requirement and man-
hour required to produce the software. For effort estimation software size
should be known. This can either be derived by managers’ experience,
organization’s historical data or software size can be converted into efforts by
using some standard formulae.
Software Project Estimation
◼ Time Estimation
Once size and efforts are estimated, the time required to produce the
software can be estimated. Efforts required is segregated into sub categories
as per the requirement specifications and interdependency of various
components of software. Software tasks are divided into smaller tasks,
activities or events by Work Breakthrough Structure (WBS). The tasks are
scheduled on day-to-day basis or in calendar months.
◼ Cost Estimation
This might be considered as the most difficult of all because it depends on
more elements than any of the previous ones. For estimating project cost, it is
required to consider :
◼ Size of software , Software quality, Hardware
◼ Additional software or tools, licenses etc.
◼ Skilled personnel with task-specific skills
◼ Travel ,Communication ,Training and support
Software Project Estimation Techniques
Various parameters involving project estimation such as size, effort, time and
cost. Broadly two techniques are using for software project estimation:
1. Decomposition Technique : Before an estimate can be made and
decomposition techniques applied, the planner must Understand the scope of
the software to be built Generate an estimate of the software’s size . There
are two main models :
◼ Line of Code : Estimation is done on behalf of number of line of codes in
the software product.
◼ Function Points : Estimation is done on behalf of number of function points
in the software product.
Software Project Estimation Techniques
where
E is effort applied in Person-Months
D is the development time in months and the coefficients ab, bb, cb, db are
given in table.
Basic Model
Example
Solution
Example
Solution
Intermediate Model
◼ The basic model allowed for a quick and rough
estimate, but it resulted in a lack of accuracy.
The multiplying factors for all 15 cost drivers are multiplied to get the effort adjustment factor(EAF).
Detailed COCOMO Model
◼ It offers a means for processing all the project characteristics to construct a s/w
estimate. The detailed model introduces two more capabilities:
◼ Phase sensitive effort multiplier: Some phases are more affected than others by
factors defined by the cost drivers. The detailed model provides a set of phase
sensitive effort multipliers for each cost driver. This helps in determining the
manpower allocation for each phase of the project.
◼ Three-level product hierarchy: Three product levels are defined. These are
module, subsystem and system levels. The ratings of the cost drivers are done
at appropriate level, i.e the level at which it is most susceptible to variation.
Detailed COCOMO Model
COCOMO-II is the revised version of the original Cocomo (Constructive Cost
Model) and is developed at University of Southern California. It is the model that
allows one to estimate the cost, effort and schedule when planning a new software
development activity. It consists of three sub-models:
1. End User Programming:
Application generators are used in this sub-model. End user write the code by using
these application generators. Example – Spreadsheets, report generator, etc.
2. Intermediate Sector:
◼ (a) Application Generators and Composition Aids –
This category will create largely prepackaged capabilities for user programming. Their
product will have many reusable components. Typical firms operating in this sector
are Microsoft, Lotus,
Oracle, IBM, Borland, Novell.
◼ (b) Application Composition Sector –
This category is too diversified and to be handled by prepackaged solutions. It
includes GUI, Databases, domain specific components such as financial, medical or
industrial process control packages.
◼ (c). System Integration –
This category deals with large scale and highly embedded systems.
Detailed COCOMO Model
3. Infrastructure Sector:
This category provides infrastructure for the software development like
Operating System, Database Management System, User Interface
Management System, Networking System, etc.
◼ Stages of COCOMO II:
◼ Stage-I:
It supports estimation of prototyping. For this it uses Application Composition
Estimation Model. This model is used for the prototyping stage of application
generator and system integration.
◼ Stage-II:
It supports estimation in the early design stage of the project, when we less
know about it. For this it uses Early Design Estimation Model. This model is
used in early design stage of application generators, infrastructure, system
integration.
◼ Stage-III:
It supports estimation in the post architecture stage of a project. For this it
uses Post Architecture Estimation Model. This model is used after the
Detailed COCOMO Model
◼ It offers a means for processing all the project characteristics to construct a s/w
estimate. The detailed model introduces two more capabilities:
◼ Phase sensitive effort multiplier: Some phases are more affected than others by
factors defined by the cost drivers. The detailed model provides a set of phase
sensitive effort multipliers for each cost driver. This helps in determining the
manpower allocation for each phase of the project.
◼ Three-level product hierarchy: Three product levels are defined. These are
module, subsystem and system levels. The ratings of the cost drivers are done
at appropriate level, i.e the level at which it is most susceptible to variation.