Please enable JavaScript.
Coggle requires JavaScript to display documents.
software development (stages of the lifecycle (analysis and design (how…
software development
stages of the lifecycle
feasibility/solvable
determines whether the project should proceed
requirements
determines what the user wants
refines the projects goals
outcome is a requirements specification
analysis and design
how the project will do the requirements
describes the desired features in detail
screen layouts
psuedocode
implementation
this is when the code is made
testing
the coded solution is then tested for bugs
checks to see if the program works as intended
evaluation
comparing coded solution with the criteria
maintance
happens for the rest of the software's life after it being released
corrections upgrades, moving to new platforms
models
RAD
rapid application development
writing software with successive prototyping
prototypes are build until finished product is made
each prototype goes through all the stages of the life cycle except feasibility and maintenance.
when evaluated ether goes to maintenance or feasibility
each prototype has more functionality
iterative development
spiral
the spiral uses aspects of waterfall and RAD
it is a risk driven approach to development
water fall
one phase after another
each phase has a defined start and finish point
some waterfall models have up arrows which represents developers redeveloping earlier work
agile
group of development methodologies
requirements will constantly change
developed in an iterative manor
each iterative development having new requirements
very short iterations often only a week long
extreme programming
type of agile programming
paired programming
two programmers one drives which does the coding
the other give advice and help
switching is common
model advantages/disadvantages
waterfall
merits
simplicity
easy model to manage
each stage has well defined boundaries
easy to spot timescale slips
drawbacks
lack of flexibility
high risk factor
end user very removed from developent
poor choice for systems with unsure requirements
RAD
merits
user feels involves
end product more likely to match users requirements
drawbacks
regular contact needed with clients
does not scale well to large projects
not suitable if efficiency of code is a priority
Spiral
merits
focuses on risks
works well for large projects
drawbacks
risk management is very specialised and costly skill
extreme programming
merits
quality of end code very high
efficient code/few bugs
drawbacks
increase development cost
heavy collaboration required
embedded end user required
testing strategies
black box
only concerned with the inputs and the outpus
not how the program works
white box
test the actual algorithm of the code
identifying and testing every route or path of execution
cares about the efficiency
alpha
tests the whole program
alpha happens sooner than beta
tested by internal employees
lots of bugs in the program
beta
open to the whole community to test
after alpha testing
tests the whole program
almost finished
test data
valid data (normal)
data which is expected to be inputted
invalid (abnormal data)
data which should result in an error message
borderline
data which is on the boundary between an upper or lower conditions