Upload
bertram-mosley
View
212
Download
0
Embed Size (px)
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