2 Definition of software life cycle model: A software life cycle is a series of identifiable stages that a software product undergoes during its life time.A software life cycle model is a descriptive and diagrammatic representation of the software life cycle.A life cycle model maps the different activities performed on a software product from its inception to retirement.A Software life cycle model is often referred to as software process model.The life cycle model encourages development of software in a systematic and disciplined manner.
3 Different life cycle models: The different software life cycle models are as shown below:1. Classical waterfall model.2. Iterative model.3. Prototyping model.4. Evolutionary model.5. Spiral model.
4 1. Classical waterfall model: Classical waterfall model is a theoretical approach of developing software.This model divides the life time of a software project into different phases.The phases starting from feasibility study to integration are called as development phases.The last phase is the maintenance phase.The diagrammatical representation of the different phases resembles to a waterfall model henceforth it is names as water fall model.
6 Feasibility Study:The main aim of feasibility study activity is to determine whether it would be financially and technically feasible to develop the product.Feasibility study encompasses to the following conclusions.1. An Abstract problem definition.2. Formulation of different solution strategies.3. Analysis of alternative solution strategies
7 Requirement Analysis and Specification: The aim of the requirements analysis and specification phase is to understand requirements of the customer and to document them properly.This phase can be divided into two phasesA. Requirements gathering and Analysis.B. requirement Specification
8 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.There are two different design approaches are available that areA. Traditional design approach.B. Object-oriented design approach.
9 Traditional design approach: This approach consists of two different activities.Structured Analysis: The analysis of the requirement specification is carried out.Structured design: The results of the structured analysis are transformed into software design.Structured design consists of two phases that isArchitectural design: Also called as high level design which involves decomposing the system into modules, representing the interface and invocation relationship among the different modules.Detiled Design: Also called as low level design in which internals of the individual modules are designed in more details.
10 Object-oriented design approach: This approach identifies the various objects that occur in the problem domain and the solution domain and then identifies the different relationships among the different objects.
11 Coding and Unit testing: The purpose of the coding and unit testing 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 module is a set of program modules that have been individually tested.During this phase, each module is unit tested to determine the correctness of all the individual models.Testing each module is isolated from the other module.
12 Integration and system testing: Integration of different modules is undertaken once they have been coded and unit tested.Integration is normally carried out incrementally over a number of steps.During each integration steps, the partially integrated system is tested and a set of previously planned modules are added to it.
13 Integration and system testing continued.. Finally after all the modules are successfully integrated and tested the system testing phase is carried out.The goal of system testing is to ensure that the developed system confirms to its requirements laid out in the SRS document.System testing usually consists of three different kinds of testing activities.α- Testing: It is the system testing performed by the development team.β- Testing: It is the system testing performed by a friendly set of customers.Acceptance Testing: It is the system testing performed by the customer after the product is delivered to the market.
14 Maintenance:Correcting errors that were not discovered during the product development phase.Improving the implementation of the system.Porting the software to work in a new environment.
15 Iterative Waterfall Model: The main drawback of waterfall model is the assumption that every phase is going on smoothly.There is no feedback path on any of the phases for detection of the error.Iterative model is the approach to detect the error at the same phase and to provide a feedback for the same.
16 Iterative Waterfall Model continued.. Detecting errors as close to their points of introduction as possible is known as phase containment of errors.The waterfall model can not satisfactorily handle the different types of risks that a real life software project is subjected to.
18 Prototype Model:A prototype model suggests that before carrying out the development of the actual software, a working prototype of the system should be built.A prototype is a toy implementation of the system.A prototype usually exhibits limited functional capabilities, low reliability and inefficient performance compared to the actual software.The main purpose of the prototype model is to illustrate the input data formats, messages, reports and the iterative dialogues to the customers.
19 Prototype Model continued.. Use of prototype model is more important when the technical solutions are unclear to the development team.The prototype model can make a clear representation of1. How the screen may look like.2. How the user interface may use.3. How the system may produce the outputs.
21 Evolutionary model:This life cycle model is also referred as the successive versions model and sometimes the incremental model.In this model the software is first broken down into several models or functional units which can be incrementally constructed or delivered.In this approach first the core module of the system is developed.This initial product skeleton is refined into increasing levels of capability by adding new functionalities in successive versions.Each evolutionary version may be developed by using an iterative waterfall model.
23 Evolutionary model continued… Rough requirement specificationIdentify the core and the other parts to be developed incrementallyDevelop the core part using an iterative waterfall modelCollect customer feedback and modify requirementsDevelop the next identified feature using an iterative waterfall modelMaintenance
24 Evolutionary model continued… By this approach the user is getting a chance to experiment with a partially developed software much before the complete version of the system.This model helps to accurately elicit user requirements during the delivery of the different versions of the software.The main disadvantage of this model is that for most practical problem it is difficult to divide the problem into several functional units which can be incrementally implemented.
26 Spiral Model continued.. As the diagrammatical representation of this model resembles to a spiral with many loopThe exact number of the loops of the spiral is not fixed and every loop represents a phase of the software process.This model is much more flexible compared to other models, since the exact number of phases through which the product is developed is not fixed in this model.
27 Spiral Model continued.. Each phase in this model is split into four sectors or quadrants.The first quadrant identifies the objective of the phase and the alternative solution possible for the phase under consideration.During the second quadrant, the alternative solutions are evaluated to select the best solution possible.For the chosen solutions, the potential risks are identified and dealt with by developing an appropriate prototype.
28 Spiral Model continued.. The third quadrant consists of developing and verifying the next level of the product.The fourth quadrant concerns reviewing the results of the stages traversed so far with the customer and planning the next iteration around the spiral.
29 Review questions:Identify the definite stages through which a software undergoes during its lifetime.Explain the problems that might be faces by an organization if it does not follow any of the life cycle model.Identify six different phases of a classical waterfall model.Identify two basic rolls of system analyst.Differentiate between structured analysis and structured design.