Transcript
Page 1: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Methodologies

Page 2: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Contents

• Waterfall Model• Evolutionary Models• Incremental Development

Page 3: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Waterfall Model - Basic

Feasi-bilityStudy Req.

AnalysisDesign

TestingMainte-nance

Implemen-tation

Feasi-bilityStudy Req.

AnalysisDesign

TestingMainte-nance

Implemen-tation

Page 4: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Waterfall Model Advantages & Disadvantages

• Easy to explain to the user (+)• Stages and activities are well defined and thus to

identify milestones (+)• Helps to plan and schedule the project• Verification at each stage ensures early detection of

errors / misunderstanding• It is easy to separate one stage from another (+)• Documentation can easily be produced(+)

• It is totally unrealistic! (--------)

Page 5: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Waterfall Model - Enhanced

Feasi-bilityStudy Req.

AnalysisDesign

TestingMainte-nance

Implemen-tation

Feasi-bilityStudy Req.

AnalysisDesign

TestingMainte-nance

Implemen-tation

Page 6: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Waterfall – Enhanced Advantages & Disadvantages

• It is easy to identify milestones (+)• It is easy to separate one stage from another (+)• Software is properly documented (+)• Premature requirements, design, etc. (-)• It assumes that requirements can be precisely

specified (-)• It requires the customer to be patient (-)• It is still unrealistic!

Page 7: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Prototyping Process

Establish

prototype

objectives

Define

prototype

functionality

Develop

prototype

Evaluate

prototype

Prototyping

plan

Outline

definition

Executable

prototype

Evaluation

report

Page 8: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Prototype (as a tool for requirements analysis) - Benefits

• Misunderstandings between software developers and users identified as the system functions are demonstrated

• Missing user services may be detected• Difficult-to-use or confusing user services may be

identified and refined• Incomplete/inconsistent requirements found as the

prototype is developed• A working, albeit limited, system is available quickly

for demonstration to management

Page 9: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Throw-Away Prototyping

* At this point the prototype is thrown away!

** Development phase of the actual system

Establish outline spec.

Design & implement

system

Develop prototype

Evaluate prototype

Specify system

**

*

Validate system

Page 10: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Throw-Away Prototype - Problems

• Sometimes the cost of prototype development represents an unacceptably large fraction of the total cost

• Customers are likely to force the developer to convert the prototype to the working system using a few fixes

• The developer may become familiar with the prototype and reluctant to discard it

Page 11: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Evolutionary Prototyping

Develop abstract

specification

system

Deliver system

System adequate?

NO

YES

Develop abstract

specification

Develop abstract

specificationBuild prototype Use prototype

system

Deliver system

System adequate?

NO

YES

Page 12: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Evolutionary Prototyping Advantages & Disadvantages

• Systems are developed and delivered rapidly (+)• Costs are reduced (+)• User involvement! (+)• The development process is ‘invisible’ to

managers (+)• Systems are usually poorly structured! (-)

Page 13: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Prototyping

• Advantages of Prototyping– Users are actively involved in the development– It provides a better system to users, as users have natural tendency to change

their mind in specifying requirements and this method of developing systems supports this user tendency.

– Since in this methodology a working model of the system is provided, the users get a better understanding of the system being developed.

– Errors can be detected much earlier as the system is mode side by side.– Quicker user feedback is available leading to better solutions.

• Disadvantages– Leads to implementing and then repairing way of building systems.– Practically, this methodology may increase the complexity of the system as

scope of the system may expand beyond original plans.

Page 14: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Incremental Development

Integrate incrementIntegrate increment

System complete?

Designsystem

architecture

Specifysystem

increment

Buildsystem

increment

Validate increment

Definesystem

deliverables

Validatesystem

Deliver finalsystem

YES

NO

Reproduced from: Sommerville

System complete?

Designsystem

architecture

Specifysystem

increment

Specifysystem

increment

Buildsystem

increment

Buildsystem

increment

Validate increment

Definesystem

deliverables

Validatesystem

Deliver finalsystem

YES

NO

Reproduced from: Sommerville

Page 15: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Incremental Development Advantages & Disadvantages

• No ‘big bang’ effect (+)• Attention on the essential features (+)• Customers can use the ‘partial’ software as soon as it is

available (+)• Early increments can provide a useful feedback (+)• The requirements tend to constrained by the architecture

(-)• Problems with contracts (-)• Difficult to map the customer’s requirements onto

increments (-)• Problems with basic facilities (-)

Page 16: Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Summary• Software life cycle models

– all of them include the main generic stages– logic of the software process is different in each

• The spiral model, which subsumes the other models, should be investigated by students.

• Object orientation – emphasis on reusability– software development process will become one of

assembly rather than one of creation


Recommended