Save
computer science
1.2.3: software development
software development
Save
Share
Learn
Content
Leaderboard
Learn
Created by
Fiona Bull
Visit profile
Cards (16)
What are the different approaches to software development
waterfall life
cycle
spiral model
agile methodologies
rapid application
development
extreme
programming
Describe Waterfall lifecycle
each
stage
is completed one
after
the other
one must be completed
before
the next one begins
stages:
analysis
design
testing
evaluation
Benefits of waterfall model for software development
suitable when user
requirements
are well-
understood
and clearly
specified
well-structured
and understood, making it easier to plan with clear lines of
responsibility
large
projects can be divided into
smaller
sub projects, each following their own
waterfall
Criticisms of the waterfall method for software development
very rigid
extensive
documentation
required
lack of
user involvement
heavy dependence on accurate
requirement specifications
challenging when users can't fully articulate needs
testing
schedules late in the cycle, making it challenging to
address defects
limited
feedback review
during development
Describe the spiral model for software development
iterative
waterfall method
involves creating a
prototype
following
waterfall method
and then acting on
feedback
in
evaluation
stage and
fixing
until the user is happy
describe the benefits of the spiral model for software development
suitable for
large scale
/
high risk
projects
emphasis on
risk management
allows for
flexible
/
adaptive
approach to development
criticisms of the spiral model for software development
requires a
risk management
expert
increasing
costs
Describe agile methodologies for software development
advocates building
prototypes
,
testing
and
incorporating feedback
quickly
emphasises
iterative
changes
emphasises
frequent contact
with users
benefits of agile methodologies
suitable for
small
->
medium
projects
increased customer
satisfaction
due to
frequent contact
criticism of agile methodologies
may lead to
scope creep
describe rapid application development for software development
based on
prototyping
emphasises
adaptability
over planning
benefits to rapid application development
suited for projects with
unclear
requirements
suitable for smaller projects with
smaller development teams
which include
users
continuous feedback
criticisms of rapid application development
sloppiness due to
'try-it-and-see'
approach
ignores importance of ensuring
overall system architecture
is correct
project can be
extended
due to
user input
describe extreme programming for software development
agile
method
focuses on
code refinement
(compared to
RAD
)
frequent
releases in
short development cycles
(shorter than RAD)
continuous
communication
with customer
programming done in
pairs
benefits of extreme programming
high quality code
leads to
fewer bugs
and
less time
spent fixing them
strong focus on
user involvement
to meat
requirements
criticisms of extreme programming
scope creep
high
communication
/
collaboration
challenging if team not in
same location
client must commit to
active user involvement
throughout project