29
Software Life Cycle Model Mr. Manoj Kumar Kar

Software Life Cycle Model

  • Upload
    owen

  • View
    59

  • Download
    2

Embed Size (px)

DESCRIPTION

Software Life Cycle Model. Mr. Manoj Kumar Kar. 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. - PowerPoint PPT Presentation

Citation preview

Page 1: Software Life Cycle Model

Software Life Cycle Model

Mr. Manoj Kumar Kar

Page 2: Software Life Cycle Model

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.

Page 3: Software Life Cycle Model

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.

Page 4: Software Life Cycle Model

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.

Page 5: Software Life Cycle Model
Page 6: Software Life Cycle Model

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

Page 7: Software Life Cycle Model

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 phases A. Requirements gathering and Analysis. B. requirement Specification

Page 8: Software Life Cycle Model

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 are

A. Traditional design approach. B. Object-oriented design approach.

Page 9: Software Life Cycle Model

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 is • Architectural 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.

Page 10: Software Life Cycle Model

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.

Page 11: Software Life Cycle Model

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.

Page 12: Software Life Cycle Model

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.

Page 13: Software Life Cycle Model

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.

Page 14: Software Life Cycle Model

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.

Page 15: Software Life Cycle Model

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.

Page 16: Software Life Cycle Model

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.

Page 17: Software Life Cycle Model
Page 18: Software Life Cycle Model

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.

Page 19: Software Life Cycle Model

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 of

1. How the screen may look like. 2. How the user interface may use. 3. How the system may produce the outputs.

Page 20: Software Life Cycle Model

Prototype Model continued..

Page 21: Software Life Cycle Model

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.

Page 22: Software Life Cycle Model

Evolutionary model continued…

A BA

B

C

A

Page 23: Software Life Cycle Model

Evolutionary model continued…

Rough requirement specification

Identify the core and the other parts to be developed incrementally

Develop the core part using an iterative waterfall model

Collect customer feedback and modify requirements

Develop the next identified feature using an iterative waterfall model

Maintenance

Page 24: Software Life Cycle Model

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.

Page 25: Software Life Cycle Model

Spiral Model:

Page 26: Software Life Cycle Model

Spiral Model continued..

• As the diagrammatical representation of this model resembles to a spiral with many loop

• The 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.

Page 27: Software Life Cycle Model

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.

Page 28: Software Life Cycle Model

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.

Page 29: Software Life Cycle Model

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.