Software Engineering - Software Models

24
-Ankita Basu -Pritha Guha Software Models
  • date post

    20-Oct-2014
  • Category

    Education

  • view

    2.940
  • download

    3

description

Software Development Models

Transcript of Software Engineering - Software Models

Page 1: Software Engineering - Software Models

-Ankita Basu-Pritha Guha

Software Models

Page 2: Software Engineering - Software Models

A software life-cycle model is a descriptive and diagrammatic representation of the software life-cycle. This includes a series of identifiable stages that a software product undergoes during its lifetime.The software life-cycle is also referred to as the System Development life-cycle (SDLC).

Introduction

Page 3: Software Engineering - Software Models

Software development organizations have

realised that adherence to a suitable well-defined lifecycle model helps to produce good quality products and that without time and cost overruns.

The primary advantage of adhering to a life-cycle model is that it encourages development of software in a systematic and disciplined manner.

Why use a life-cycle model?

Page 4: Software Engineering - Software Models

There are five types of life-cycle models. Namely,

Classical Waterfall Model. Iterative Waterfall Model. Evolutionary Model. Prototyping Model. Spiral Model.

Types of life-cycle models

Page 5: Software Engineering - Software Models

The classical waterfall model is considered to

be a theoretical way of developing software and is used to appreciate and develop proper understanding of the other software models.

The diagrammatic representation of this model resembles a cascade of waterfalls and hence the name.

Classical Waterfall Model

Page 6: Software Engineering - Software Models

Phases of Classical waterfall model

Page 7: Software Engineering - Software Models

The classical waterfall model, being an ideal

model, assumes the phases to be flawlessly done and there’s no scope for rework at a later time.

This model assumes the phases to be sequential but in practical case it may over lap.

It is difficult to accommodate requirement changes after the development process starts.

Disadvantage of this Model :

Page 8: Software Engineering - Software Models

The Iterative waterfall model is the Classical

Waterfall Model with some necessary changes so that it becomes applicable to practical software development projects.

The main change made being the feedback paths from every phase to its proceeding phases to allow correction of the errors committed during a phase, as an when detected in a later phase.

Iterative Waterfall Model

Page 9: Software Engineering - Software Models

Phases of Iterative waterfall model

Page 10: Software Engineering - Software Models

This model cannot be used in projects where

only rough requirements are provided.

The rigid phase sequence prescribed by the waterfall model can result in wastage of resources and man-power .

Disadvantage of this model

Page 11: Software Engineering - Software Models

This life-cycle model (also referred to as the

successive versions model or the incremental model) first builds a simple working system, then functional improvements and additions are made until the desired system is realized.

Evolutionary Model

Page 12: Software Engineering - Software Models

Phases of Evolutionary Model

Page 13: Software Engineering - Software Models

PROS: The user gets a chance to experiment with a partially

developed software. Thereby helping to gain better user satisfaction.

The core modules get tested thoroughly hence reducing errors.

This module obviates the need to commit large resources in one go for development of the system.

CONS: For practical problems it is difficult to divide the problem

into several versions that would be acceptable to the customer which can be incrementally implemented and delivered.

Pros And Cons Of This Model :

Page 14: Software Engineering - Software Models

This type of model requires that before

carrying out the development of the actual software, a working prototype of the system should be built which is a very crude version of the actual system, using inefficient, inaccurate or dummy functions or in short using short cuts.

Prototyping model

Page 15: Software Engineering - Software Models

Phases Of The Prototyping Model

Page 16: Software Engineering - Software Models

PROS: The prototype helps to gain better understanding of the

customers’ needs. For the user it becomes much easier to form opinion by

experimenting with the prototype rather than trying to imagine the working of the system.

Helps to critically examine the technical issues. Overall development cost might be lower than other models. Minimizes the change requests from the customer.CONS: It is a slow process. The cost of developing the prototype is a complete waste as

the prototype is ultimately thrown away.

Pros And Cons Of The Prototyping Model

Page 17: Software Engineering - Software Models

The spiral model of a software appears like a

spiral with many loops. Over each loop, one or more features of the

product are elaborated and analyzed and the risks at that point of time are identified and are resolved through prototyping. Based on this, the identified features are implemented.

Spiral Model

Page 18: Software Engineering - Software Models

Phases of Spiral Model

Page 19: Software Engineering - Software Models

CONS: Complex model. Requires knowledgeable staff. Not very suitable for development of a product as

outsourced projects.PROS: For projects having many unknown risks that might

show up as the development proceeds, this would be the most appropriate model.

It is more powerful than all other software models as it subsumes all the discussed models.

Pros And Cons Of This Model :

Page 20: Software Engineering - Software Models

The classical model cannot be used in

practical development projects because of its lack of error correction mechanism.

The iterative waterfall model, probably the most widely used software model, is suitable only for well-understood problems and not for very large projects or projects with many types of risks.Example: a simple data processing software, or

an embedded software if the development team is experienced

Study Of The Different Models From Their Usage

Page 21: Software Engineering - Software Models

The prototyping model is suitable for projects for

which the requirements are not well understood but all the risks can be identified.Example: especially popular for the development of user interface part of the project.

The evolutionary model is suitable for object-oriented development projects.

The spiral model, being the best of these models, is suitable for development of technically challenging and large projects prone to several kinds of risks. But this model is generally not used due to its complexity

Study Of The Different Models From Their

Usage(Contd.)

Page 22: Software Engineering - Software Models

During the development of any type of software

product ,adherence to a suitable process model has become universal. We have discussed five important life-cycle models. Different life-cycle models have their own advantages and disadvantages. Therefore, an appropriate life-cycle model should be chosen for the problem at hand. Even though organizations may follow whichever life cycle model is appropriate to a project, the final document should reflect as if the product was developed using classical waterfall model. This makes it easier for the maintainers to understand the product document.

Conclusion

Page 23: Software Engineering - Software Models

SA sir’s notes. Fundamentals Of Software

Engineering by Rajib Mall. Wikipedia

References:

Page 24: Software Engineering - Software Models

Thank You…..!!