Software Process Models
Software Process Models
MODELS
SOFTWARE PROCESS MODEL
• To solve actual problems in industry ,the software team has to
incorporate a development strategy that encompasses the
process ,methods and tools and the generic phases
• The generic phases and steps are mapped into these stages.
Why software life cycle model?
• Software life cycle model: The descriptive and
diagrammatic representation of the software life cycle
• It represent all the activities performed on software product from
the inception to retirement
• It also depicts the order in which these activities are to
be undertaken
• More than one activity can be carried out in a single
phase
• The primary advantage of adhering to a life cycle model is that
it encourages development of software in a systematic and
disciplined manner
• When a program is developed by a single programmer ,he has
the freedom to decide the exact steps through which he will
develop the program
Why software life cycle model?
• A life cycle model also defines the entry and exit criteria for
every phase
• Design
– Software design is a multistep process that focuses on four
distinct attributes of a program:
– Data structure
– Software architecture
– Interface representation
– Procedural(algorithmic) detail
– The design process translates requirements into a representation of
the software that can be assessed for quality before coding begins
– Deign is also documented and becomes part of software
configuration.
Linear Sequential Model
• Code Generation
– The design must be translated into a machine –readable form.
– The code generation step performs this task
• Testing
– The testing process focuses on the logical internals of the software, ensuring that all
statements have been tested
– Also focuses on the functional externals i.e conducting tests to uncover errors and
ensure that defined input will produce actual results that agree with required results
• Maintenance/Support
– Software will undergo change after it is delivered to the
customer (except embedded software)
– Change will occur because of correction, adaptation or
enhancement.
– Software support/maintenance reapplies each of the preceding
phases to an existing program rather than a new one
Linear Sequential Model
• Advantage
– Simple model
– Works best when requirements of a problem are reasonably well understood
• Disadvantages
– Real projects rarely follow the sequential flow that the model proposes
– Changes can cause confusion as the project team proceeds
– It is often difficult for the customer to state all requirements explicitly
– The linear sequential model requires this and has difficulty accommodating the
natural uncertainty that exists at the beginning of many projects
– The customer must have patience.
– A working version of the programs will not be available until late in the
project time-span
– A major blunder ,if undetected until the working program is reviewed can
be disastrous
– Leads to “blocking states”
– Some project team members must wait for other members of the team to
complete dependent tasks
– It can cause delay
Prototyping model
• A customer defines a set of general objectives for software.
– It is impossible to “get it right” the first time and we must plan to throw
away
Prototyping model
Prototyping model
• The model starts with an initial requirements gathering phase.
• A quick design is carried out and the prototype model is built using several
shortcuts.
• Advantages
– The code for the prototype is usually thrown away ,however the
experience gathered from developing the prototype helps a great deal in
developing the actual system
– Since the user requirements are properly defined and technical issues are
properly and satisfactorily resolved as a result of experimenting with the
prototype model, it minimizes change requests and redesign cost after
Evolutionary Model
• Also known as successive version model.
• In this model, the system is first broken down into several modules
or
functional units that can be incrementally implemented and delivered.
Incremental model
Spiral model
Incremental model
• i.e. basic requirements are addressed, but many supplementary features remain
undelivered.
• The plan addresses the modification of the core product to better meet the
needs of the customer and the delivery of additional features and functionality.
• For small projects these no. of work tasks will be low, but for large
project
it will be high to achieve higher level of formality.
• In all these cases, the umbrella activities (e.g. SCM, SQA etc )are applied
• The first circuit around the spiral might result in the development of a
product specification.
Spiral model
• Subsequent passes around the spiral might be used to develop a prototype
and
then progressively more sophisticated versions of the software.
• Unlike other process models that end when software is delivered, the spiral
model can be adapted to apply throughout the life of the computer s/w