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
Iterative Linear Sequential Model
2. 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
• This strategy is referred to as a process model or a software
engineering paradigm
• The process model for software engineering is chosen based
on the nature of the project and application, the methods and
tools to be used and the controls and the deliverables that are
required
6. • Status quo represents the current state of affairs.
• Problem definition identifies the specific problem to be solved
• Technical development solves the problem through the application
of technology
• Solution integration delivers the results(e.g.
documents,programs,data,new business function, new product)to
those who requested the solution
• The generic phases and steps are mapped into these stages.
7. 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
8. Why software life cycle model?
• A life cycle model also defines the entry and exit criteria for every
phase
• A phase can begin only when the corresponding phase-entry criteria
are satisfied
• Also, a phase is considered to be complete only when the
corresponding exit criteria are satisfied
• But when a software is developed by a team it is necessary to have a
precise understanding among the team members as to when to do what.
• Otherwise it will lead to chaos and project failure
• A documented life cycle model prevents misinterpretations and also
helps in identifying inconsistencies ,redundancies and omissions in the
development process
9. Software life cycle model
• Software life cycle models:
• Linear Sequential
Model(Waterfall model)
• Prototyping Model
• Incremental model
• Spiral model
10. Linear Sequential Model
• Sometimes called classic life cycle or waterfall model
• Suggests a systematic ,sequential approach to software
development that begins at system level and progresses
through analysis, design, coding ,testing and support.
• The water fall model is illustrated as below.
12. • The classic life cycle - oldest and most widely used
paradigm
• Activities ‘flow’ from one phase to another
• In iterative waterfall model, if there are corrections,
return to a previous phase and ‘flow’ from there again
• Good for planning and well-defined/repeated projects
14. Linear Sequential Model
• Linear Sequential model encompasses the following
activities:
• System /information engineering and modeling
– Software is always a part of a larger system(or business)
– Work begins by establishing the requirements for all system
elements and allocating some subset of these requirements to
software
– System view is essential when software must interacts with
other elements such as hardware, people and databases.
– System engineering and analysis encompass requirements
gathering at the system level with a small amount of top design
and analysis
15. Linear Sequential Model
• Software requirements analysis
– This process is intensified and focused specifically on software
– To understand the nature of the programs to be built, the
software engineer(analyst) must understand the information
domain for the software as well as the required function,
behaviour, performance and interface
– Requirements for both the system and the software are
documented and reviewed with the customers
16. Linear Sequential Model
• 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.
17. 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
18. 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
19. Prototyping model
• A customer defines a set of general objectives for software.
• But does not identify detailed input processing or output requirements.
• The developer may be unsure of the efficiency of an algorithm, the
adaptability of an OS or the form that a human/machine interaction should
take.
• In such cases a prototyping paradigm can be used.
• The prototyping model suggests that before development of the actual
software ,a working prototype of the system should be built first.
• A prototype is a toy implementation of a system, usually exhibiting limited
functional capabilities, low reliability and inefficient performance.
20. Prototyping model
• Several reasons for developing a prototype:
– To illustrate the input data formats ,messages and the interactive dialogues to
the customer
– It is a valuable mechanism for gaining better understandability of the customer
needs
– For many functionalities such as Graphical User Interface(GUI) part of a
system ,it is much easier for the user to form his opinion by experimenting with
a working model rather than just trying to imagine the working of a
hypothetical system
– It helps to critically examine the technical issues associated with the product
development
• E.g. the design decisions depends on issues like the response time of hardware controller or
efficiency of the sorting algorithm which can be resolved using prototype
– It is impossible to “get it right” the first time and we must plan to throw away
the first product in-order to develop a good product.
22. 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.
• The shortcuts might involve using inefficient, inaccurate or dummy functions
– E.g. a function may produce the desired by using a table look-up rather
than performing actual computations
• The prototype product usually turns out to be a very crude version of the
actual system
• The developed prototype is submitted to the customer for his evaluation
• Based on the user feedback ,the requirements are refined.
• This cycle continues until the user approves the prototype
• The actual system is then developed using the iterative or classical waterfall
23. Prototyping model
• Disadvantage
– In prototyping model of software development ,the requirement analysis and
specification phase become redundant
• 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
– Therefore ,even though the construction of a working prototype model might
involve additional costs, for systems with ambiguous user requirements and
unresolved technical issues ,the overall development cost will be lower than
that of an equivalent system developed using the waterfall model .
– 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 the
system is delivered to the customer
24. 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.
• This model is iterative.
• Used to develop increasingly more complete versions of the software.
– E.g. suppose A,B,C are modules of a software product that are
incrementally developed a delivered
25. Evolutionary Model
•The developers first develop the core module of the system.
•The initial product skeleton is then refined into increasing levels of
capability by adding new functionalities in successive versions.
•Each version of the product is a functioning system capable of
performing some useful work.
26. Evolutionary Model
• Advantages
– The user of an evolutionary model gets a chance to experiment
with a partially developed system much before the actual fully
developed version is released .
– Thus this model facilitates to elicit the exact requirements of the
user for incorporating into the fully developed system.
– Also the core modules get tested thoroughly ,thereby reducing
chances of errors in the final product
• Disadvantages
– In most practical problems ,it is difficult to subdivide the problem into
several functional units that can be incrementally implemented and
delivered.
– Therefore ,this model is useful only for large problems, where it is
easier to identify modules for incremental implementation.
28. Incremental model
• The incremental model combines elements of the linear sequential
model applied with the iterative philosophy of prototyping.
• It uses the linear sequences in a staggered fashion as calendar time
progresses.
• Each line sequence produces a deliverable “increment “ of the
software.
• Incremental model is illustrated below.
30. Incremental model
• When an incremental model is used, the first increment is often a core product.
• i.e. basic requirements are addressed, but many supplementary features remain
undelivered.
• The core product is used by the customer or undergoes detailed review.
• As a result of use or evaluation ,a plan is developed for the next increment.
• 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.
• This process is repeated following the delivery of each increment, until the
complete product is produced.
31. Incremental model
• For e.g. ,suppose a word processing software is developed using
incremental model.
• It might deliver the basic file management, editing and document
production functions in the first increment.
• More sophisticated editing and document production capabilities in the
second increment
• Spelling and grammar checking in the third increment.
• Advanced page layout capability in the fourth increment.
32. Incremental model
• Advantages
– Incremental model is useful when staffing is unavailable for a
complete implementation by the business deadline that has been
established for the project.
– Early increments can be implemented with fewer people
– If the core product is well received then additional staff (if
required )can be added to implement the next increment.
– Also can be planned to manage technical risks.
33. Spiral model
• Is an evolutionary process model that couples the iterative nature of
prototyping with the controlled and systematic aspects of the linear
sequential model.
• It provides the potential for rapid development of incremental
versions of the software.
• Using spiral model ,the software is developed in a series of
incremental releases.
• During the early iterations ,the increment release might be a paper
model or prototype.
• Later it will be developed to a complete versions of the engineered
system.
• Mainly there are six regions:
35. Spiral model
• Customer communication
• Tasks required to establish effective communication between
developer and customer
• Planning
• Tasks required to define resources ,timelines and other project
related information
• Risk analysis
• Tasks required to assess both technical and management risks
• Engineering
• Tasks required to build one or more representation of the
application
• Construction and Release
• Tasks required to construct ,test ,install and provide user support.
• Customer evaluation
• Tasks required to obtain customer feedback based on evaluation of
software representations created during the engineering stage and
implemented during the installation stage
36. Spiral model
• Each of the regions is populated by a set of work tasks ,called task set.
• Task sets are adapted to the characteristic of the project to be undertaken.
• 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
• As this evolutionary process begins ,the software engineering team moves
around the spiral in a clockwise direction ,beginning at center.
• The first circuit around the spiral might result in the development of a
product specification.
37. Spiral model
• Subsequent passes around the spiral might be used to develop a prototype and
then progressively more sophisticated versions of the software.
• Each pass through the planning region results in adjustments to the project
plan.
• Cost and schedule are adjusted based on feedback derived from customer
evaluation.
• In addition, the project manager adjusts the planned no. of iterations required
to complete 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
• The circuits around the spiral might represent
• Concept development project
• New Product development project
• Product enhancement project
• The spiral model demands a direct consideration of technical risks at all
stages of the project
38. Spiral model
• Advantages
• Unlike classical process models that end when software is delivered
, the spiral model can be adapted to apply throughout the life of the
computer software.
• The project entry axis is the basis for this.
• Each cube placed along the axis can be used to represent the
starting point for different types of projects.
• A ‘concept development project’ starts at the core of the spiral and
will continue until concept development is complete.
• If a concept is developed to an actual product, the process proceeds
through the next cube(new product development project entry
point)and a new development project is initiated .
• The new product will evolve through a number of iterations around
the spiral.
• i.e. the spiral remains operative until the software is retired
39. Spiral model
• Whenever a change is initiated ,the process starts at the appropriate
entry point(e.g. product enhancement)
• The spiral model is a realistic approach to the development of large
–scale systems and software.
• Because software evolves as the process progresses, the developer
and customer better understand and react to risks at each
evolutionary level.
• It uses prototyping as risk reduction mechanism(mainly consider
technical risks)
• Disadvantages
– It demands considerable risk assessment expertise and relies on this
expertise for success.
– If a major risk is not uncovered and managed ,problems will
undoubtedly occur.
– It may be difficult to convince customer that the evolutionary approach
is controllable.