Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development

Preview:

Citation preview

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

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! (--------)

Waterfall Model - Enhanced

Feasi-bilityStudy Req.

AnalysisDesign

TestingMainte-nance

Implemen-tation

Feasi-bilityStudy Req.

AnalysisDesign

TestingMainte-nance

Implemen-tation

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!

Prototyping Process

Establish

prototype

objectives

Define

prototype

functionality

Develop

prototype

Evaluate

prototype

Prototyping

plan

Outline

definition

Executable

prototype

Evaluation

report

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

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

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

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

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! (-)

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.

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

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 (-)

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