Unit 2 SPM
Unit 2 SPM
Unit 2 SPM
SOFTWARE PROCESS
Agile model
Iterative model
Prototype model
Spiral model
Project requirements
Before you choose a model, take some time to go through the
project requirements and clarify them alongside your
organization’s or team’s expectations. Will the user need to
specify requirements in detail after each iterative session? Will
the requirements change during the development process?
Project size
Consider the size of the project you will be working on. Larger
projects mean bigger teams, so you’ll need more extensive and
elaborate project management plans.
Project complexity
Complex projects may not have clear requirements. The
requirements may change often, and the cost of delay is high.
Ask yourself if the project requires constant monitoring or
feedback from the client.
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?
Project resources
This involves the amount and availability of funds, staff, and
other resources.
Waterfall Model
The waterfall model is a sequential, plan driven-process where
you must plan and schedule all your activities before starting the
project. Each activity in the waterfall model is represented as a
separate phase arranged in linear order.
It has the following phases:
Requirements
Design
Implementation
Testing
Deployment
Maintenance
Incremental Model
The incremental model divides the system’s functionality
into small increments that are delivered one after the other in
quick succession. The most important functionality is
implemented in the initial increments.
The subsequent increments expand on the previous ones until
everything has been updated and implemented.
Incremental development is based on developing an initial
implementation, exposing it to user feedback, and evolving it
through new versions. The process’ activities are interwoven by
feedback.
Iterative Model
The iterative development model develops a system by building
small portions of all the features. This helps to meet the initial
scope quickly and release it for feedback.
In the iterative model, you start off by implementing a small set
of software requirements. These are then enhanced
iteratively in the evolving versions until the system is
completed. This process model starts with part of the software,
which is then implemented and reviewed to identify further
requirements.
Like the incremental model, the iterative model allows you to
see the results at the early stages of development. This makes it
easy to identify and fix any functional or design flaws. It also
makes it easier to manage risk and change requirements.
The deadline and budget may change throughout the
development process, especially for large complex projects. The
iterative model is a good choice for large software that can
be easily broken down into modules.
RAD Model
The Rapid Application Development (RAD model) is based on
iterative development and prototyping with little planning
involved. You develop functional modules in parallel for faster
product delivery. It involves the following phases:
1. Business modeling
2. Data modeling
3. Process modeling
4. Application generation
5. Testing and turnover
Disadvantages:
Applications:
The development p
Development process is iterative, and the
and the phase is
project is executed in short (2-4) weeks
iteration. Every pha
iterations. Planning is very less.
detailed description o
Documentation is a t
Documentation attends less priority than
even use for training
software development
the software with ano
Every iteration has its own testing phase. It Only after the deve
allows implementing regression testing every testing phase is
time new functions or logic are released. separate parts are no
Testers work
Testers and developers work together
developers
Developer does
It requires close communication with
requirement and
developers and together analyze requirements
Usually, time delays
and planning
coding
Observations on Estimation
Acquiring a Project.
Planning the Project.
Execution of the Project as the need arises.
Estimation Accuracy
Estimation Issues
Estimation Guidelines
One should keep the following guidelines in mind while
estimating a project −
During estimation, ask other people's experiences. Also,
put your own experiences at task.
Assume resources will be productive for only 80 percent of
their time. Hence, during estimation take the resource
utilization as less than 80%.
Resources working on multiple projects take longer to
complete tasks because of the time lost switching between
them.
Include management time in any estimate.
Always build in contingency for problem solving, meetings
and other unexpected events.
Allow enough time to do a proper project estimate. Rushed
estimates are inaccurate, high-risk estimates. For large
development projects, the estimation step should really be
regarded as a mini project.
Where possible, use documented data from your
organization’s similar past projects. It will result in the
most accurate estimate. If your organization has not kept
historical data, now is a good time to start collecting it.
Use developer-based estimates, as the estimates prepared
by people other than those who will do the work will be
less accurate.
Use several different people to estimate and use several
different estimation techniques.
Reconcile the estimates. Observe the convergence or
spread among the estimates. Convergence means that you
have got a good estimate. Wideband-Delphi technique can
be used to gather and discuss estimates using a group of
people, the intention being to produce an accurate,
unbiased estimate.
Re-estimate the project several times throughout its life
cycle.
COC
COST ESTIMATION
COCOMO II 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:
. Intermediate Sector:
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:
1. 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.
2. 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.
3. 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 completion of the detailed
architecture of application generator, infrastructure, system
integration.