Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 18

SYSTEMS DEVELOPMENT

METHODOLOGIES
Systems Development Methodologies

• A methodology is a formalized approach to


implementing the SDLC
• Well-known methodologies include:
 Waterfall development
 Parallel development
 V-model
 Rapid application development
 Agile development
Categories of Methodologies
• Structured Design
 Waterfall Development
 Parallel Development
• Rapid Application Development
 Phased
 Prototyping
 Throwaway Prototyping
• Agile Development
 eXtreme Programming
Structured Design 1

Waterfall Development
Waterfall model phases
• Requirement analysis and definition
• System and software design
• Implementation and unit testing
• Integration and system testing
• Operation and maintenance
The drawback of the waterfall model is the difficulty
of accommodating change after the process is
underway
Waterfall model problems
• Inflexible partitioning of the project into distinct stages
• This makes it difficult to respond to changing customer
requirements
• Therefore, this model is only appropriate when the
requirements are well-understood

Waterfall model describes a process of


stepwise refinement
 Based on hardware engineering models
 Widely used in military and aerospace
industries
Why Not a Waterfall
But software is different :
• No fabrication step
 Program code is another design level
 Hence, no “commit” step – software can always be changed…!
• No body of experience for design analysis (yet)
 Most analysis (testing) is done on program code
 Hence, problems not detected until late in the process
• Waterfall model takes a static view of requirements
 Ignore changing needs
 Lack of user involvement once specification is written
• Unrealistic separation of specification from the design
• Doesn’t accommodate prototyping, reuse, etc
Structured Design 2

Parallel Development
Rapid Application Development 1

Phased Development
Rapid Application Development 2

System Prototyping
Rapid Application Development 3

Throwaway Prototyping
Agile Development

Extreme Programming
Evolutionary development

• Exploratory development
 Objective is to work with customers and to evolve a final system from
an initial outline specification.
 Should start with well-understood requirements.
 The system evolves by adding new features as they are proposed by
customer.
Evolutionary development

• Throw-away prototyping
 Objective is to understand the system requirements. Should start with
poorly understood requirements
• Develop “quick and dirty” system quickly;
• Expose to user comment;
• Refine;
Until adequate system developed.
 Particularly suitable where:
• detailed requirements not possible;
• powerful development tools (e.g. GUI) available
Evolutionary development
Concurr ent
activities

Initial
Specification
version

Outline Intermediate
Development
description versions

Final
Validation
version
Evolutionary Development

• Problems
 Lack of process visibility
 Systems are often poorly structured
 Special skills (e.g. in languages for rapid prototyping) may
be required
• Applicability
 For small or medium-size interactive systems
 For parts of large systems (e.g. the user interface)
 For short-lifetime systems
Selecting the Right Methodology

Usefulness Waterfall Parallel Phased Prototyping Throwaway Extreme


Prototyping Programming
for
Unclear user Poor Poor Good Excellent Excellent Excellent
requirements
Unfamiliar Poor Poor Good Poor Excellent Poor
technology
Complex Good Good Good Poor Excellent Poor
systems
Reliable Good Good Good Poor Excellent Good
systems
Short time Poor Good Excellent Excellent Good Excellent
schedule
Schedule Poor Poor Excellent Excellent Good Good
visibility
SYSTEMS DEVELOPMENT
METHODOLOGIES

You might also like