0% found this document useful (0 votes)
22 views

CH-2 Software Development Methodoogies

Software development

Uploaded by

sewbesewyimer9
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

CH-2 Software Development Methodoogies

Software development

Uploaded by

sewbesewyimer9
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

Software Development Methodologies

(Software Development Process


Models)
Introduction…
• A so f t w a re d e v e lo p m e nt m e t ho d o lo g y o r sy st e m
development methodology in software engineering is a
framework that is used to structure, plan, and control the
process of developing an information system.
• Some of the methodologies are:
• Waterfall (Traditional)
• Spiral
• Rapid Prototyping
•Agile Software Development
• Joint Application Development (JAD) Methodology

2
The Waterfall Model
• The waterfall model is the classic lifecycle

model – it is widely known, understood


and (commonly?) used.
• In some respect, waterfall is the ”common

sense” approach.
• Introduced by Royce 1970.

3
phase
User Requirements output User Requirements Document

Software Requirements Software Requirements


Document

Architecture Design Architectural Design


Document

”Swimming Detailed design & Coding Detailed


upstream” Design
& Code
The Waterfall Testing
Lifecycle Workflow
Delivery
Time
4
Advantages
• Easy to understand , use and implement.
• Widely used and known (in theory!)
• Reinforces good habits: define-before- design,
design-before-code
• Identifies deliverables and milestones/ each phase
has specific deliverables and a review process.
• In this model, phases are processed and
completed one at a time. Phases do not overlap.
• Document driven, URD (user requirements
document), SRD (system requirements document)
• Works well on mature products and weak teams.
• Works well for smaller projects.

5
Cont…………

• Provides structure to inexperienced staff

• Milestones are well understood

• Sets requirements stability

• Good for management control (plan, staff, track)

• Works well when quality is more important than cost


or schedule

6
Disadvantages
• Idealised, doesn’t match reality well.

• Doesn’t reflect iterative nature of exploratory


development.

• Unrealistic to expect accurate requirements so early


in a project

• Software is delivered late in project, delays


discovery of serious errors.

7
Cont...........
•Difficult to integrate risk management

•Difficult and expensive to make changes to


documents, ”swimming upstream”.

•Significant administrative overhead.

8
Cont……
• All requirements must be known upfront

• Deliverables created for each phase are considered


frozen – inhibits flexibility

• Can give a false impression of progress

• Does not reflect problem-solving nature of software


development – iterations of phases

• Little opportunity for customer to preview the system


(until it may be too late)

9
When to use the Waterfall Model
Requirements are very well known

Product definition is stable

Technology is understood

New version of an existing product

Porting an existing product to a new platform.


High risk for new systems because of specification
and 
design problems.
Low risk for well-understood developments using
familiar technology. 10
Spiral Model
Since end-user requirements are hard to obtain/define, it
is natural to develop software in an experimental way:
e.g.
• Build some software

• See if it meets customer requirements

• If no go to 1

• else stop.

11
This loop approach gives rise to structured iterative lifecycle
models.
In 1988 Boehm developed the spiral model as an iterative
model which includes risk analysis and risk management.

Key idea: on each iteration, identify and solve the sub-problems


with the highest risk.

12
Cumulative cost Evaluate alternatives,
Determine objectives, Identify & resolve risks
alternatives & constraints

Prototypes Operational
Review & Start P1 P2 P3 Prototype
commitment RequirementsConcept Design, Detailed design
plan Of Operation Validation
Development & Verification
plan Requirements
validation Coding
Integration &
Test plan Unit & Integration
Testing
End Acceptance Develop & verify
Plan next phase Testing
next-level product
13
Each cycle follows a waterfall model by:

• Determining objectives

• Specifying constraints

• Generating alternatives

• Identifying risks

• Resolving risks

• Developing next-level product

• Planning next cycle

14
Advantages
• Realism: the model accurately reflects the iterative nature
of software development on projects with unclear
requirements

• Flexible: incoporates the advantages of the waterfal and


rapid prototyping methods

• Comprehensive model decreases risk

• Good project visibility.

15
Cont……….
• Provides early indication of insurmountable risks, without
much cost

• Users see the system early because of rapid prototyping tools

• Critical high-risk functions are developed first

• The design does not have to be perfect

• Users can be closely tied to all lifecycle steps

• Early and frequent feedback from users

• Cumulative costs are assessed frequently


16
Disadvantages
• Needs technical expertise in risk analysis to really work

• M o d e l is p o o rly und e rsto o d b y no n-t e c hnic a l


management, hence not so widely used

• Complicated model needs competent professional


management.

• High administrative overhead.

17
Cont….
• Time spent for evaluating risks is too large for small or low-
risk projects
• Time spent for planning, resetting objectives, doing risk
analysis and prototyping may be excessive
• The model is complex
• Risk assessment expertise is required
• Spiral may continue indefinitely
• Developers must be reassigned during non-development
phase activities
• May be hard to define objective, verifiable milestones that
indicate readiness to proceed through the next iteration

18
When to use Spiral Model
• When creation of a prototype is appropriate
• When costs and risk evaluation is important
• For medium to high-risk projects
• Long-term project commitment is unwise because of
potential changes to economic priorities
• Users are unsure of their needs
• Requirements are complex
• New product line
• Significant changes are expected (research and exploration)
19
Rapid Prototyping
Key idea: Customers are non-technical and usually don’t
know what they want/can have.

Rapid prototyping emphasises on requirements analysis and


validation, also called:

• customer oriented development,

• evolutionary prototyping

20
Requirements Capture

Iterate
Quick Design

Build Prototype

Customer Evaluation of
Prototype

The Rapid Engineer Final


Product
Prototype Workflow

21
Advantages
• Reduces risk of incorrect user requirements

• Good where requirements are


changing/uncommitted

• Regular visible progress aids management

• Supports early product marketing

22
Disadvantages
• An unstable/badly implemented prototype often
becomes the final product.

• Requires extensive customer collaboration


Costs customer’s money
Needs committed customers
Difficult to finish if customer withdraws
May be too customer specific, no broad market

23
Cont.......
• Difficult to scale up to large projects where documentation
is essential

• Needs experience and skill if not to degenerate into code-


and-fix

• Programming pairs is costly

• Test case construction is a difficult and specialised skill.

• Difficult to know how long project will last

• Easy to fall back into code-and-fix without proper


requirements analysis, design, customer evaluation and
24
feedback.
Differences B/n Spiral and RP Models

25
An Iterative Development Process...
• Recognizes the reality of changing requirements
•Caspers Jones’s research on 8000 projects
• 40% of final requirements arrived after the analysis
phase, after development had already begun
• Promotes early risk mitigation, by breaking down the system
into mini-projects and focusing on the riskier elements first
• Allows you to “plan a little, design a little, and code a little”
• Encourages all participants, including testers, integrators, and
technical writers to be involved earlier
• Allows the process itself to modulate with each iteration,
allowing you to correct errors sooner and put into practice
lessons learned in the prior iteration
• Focuses on component architectures, not final big bang
deployments
An Incremental Development Process...
• Allows for software to evolve, not be produced in one huge
effort
• Allows software to improve, by giving enough time to the
evolutionary process itself
• Forces attention on stability, for only a stable foundation can
support multiple additions
• Allows the system (a small subset of it) to actually run much
sooner than with other processes
• Allows interim progress to continue through the stubbing of
functionality
• Allows for the management of risk, by exposing problems
earlier in the development process
Risk Management
• Identification of the risks

• Iterative/Incremental Development

• The prototype or pilot project

• Early testing and deployment as opposed to late


testing in traditional methods
Agile Software Development
• Agile software development is a conceptual framework
for software engineering that promotes development
iterations throughout the life-cycle of the project.

• Software developed during one unit of time is referred to


as an iteration, which may last from one to four weeks.

• Agile methods also emphasize working software as the


primary measure of progress
Agile Software Development…..
• Characteristics of Agile Software Development

Light Weighted methodology

Small to medium sized teams

vague and/or changing requirements

vague and/or changing techniques

Simple design

Minimal system into production


Cont……
To generalize, the characteristics of ASD
• Modularity

• Iterative

• Time-bound

• Incremental

• Convergent

• People-oriented

• Collaborative

Joint Application Development (JAD) Methodology
• JAD is a requirements-def inition and user-interface design
methodology in which end-users, executives, and developers
attend intense off-site meetings to work out a system's
details.

• So the Joint Application Development (JAD) methodology


aims to involve the client in the design and development of
an application.

• This is accomplished through a series of collaborative


workshops called JAD sessions.

• Two employees of IBM, Chuck Morris and Tony Crawford,


developed the JAD methodology in the late 1970s and began
teaching the approach in to the 1980s.
32

Joint Application Development (JAD) Methodology
• JAD focuses on the business problem rather than
technical details. It is most applicable to the
development of business systems, but it can be
used successfully for systems software.

• It produces its savings by shortening the elapsed


time required to gather a system's requirements and
by gathering requirements better, thus reducing the
n u mber of costly, down stream requ iremen ts
changes.

• Its success depends on effective leadership of the


JAD sessions; on participation by key end-users,
executives, and developers; and on achieving group
synergy during JAD sessions. 33
Joint Application Development (JAD)
Methodology
• In contrast to the Waterfall approach, JAD is
thought to lead to shorter development times and
greater client satisfaction, both of which stem
from the constant involvement of the client
throughout the development process. On the
other hand, with the traditional approach to
systems development, the developer investigates
th e sy stem requ iremen ts an d d evelop s an
application, with client input consisting of a series
of interviews.

34

You might also like