[Unit 1.2.3] Software Development Flashcards
Software Development
what are the 5 key elements of software development
feasibility study
requirements specification
testing
documentation
software development methodologies
what is feasibility study
investigation to see if project is viable
what are the reasons a project might fail a feasibility study
not economically feasible
not legally feasible
not technically feasible
not enough time to complete project
what is the requirement specification
document listing all functionality system should have.
agreement between client and developer
through what process are requirements acquired
requirements elicitaion
why can requirement elicitation be a difficult process
users have difficulty expressing what they want
users have unrealistic expectations
what is testing in terms of software development
ensures program works as it should.
what are the four different types of testing in software development
destructive
alpha
beta
acceptance
what is destructive testing
trying to crash the program or behave unexpectedly.
what is alpha testing
product used by people who have worked on the project
what is beta testing
product used by people outside of software development company
what is acceptance testing
testing the program against the requirement specification
what 4 documents are made during software development
requirements specification
design (algorithms/UI)
technical (how works/maintained)
user (how to operate)
what is software development life cycle
process of planning, creating, testing & deploying software
what is the waterfall lifecycle model
sequence of stages that only start after prior is finished.
linear model but can OCCASSIONALLY go back a stage
what are the 6 stages of the waterfall lifecycle model
requirement elicitation
analysis - what solutions available
design - produce solution
implementation - developers write code
testing
maintenance - fix bugs
what are the advantages of the waterfall lifecycle
- easy to manage as team focused on one stage at a time
- everyone has clear responsibilities
- suitable for large scale projects
- can work on multiple projects at once
what are the disadvantages of the waterfall lifecycle
- dependant on quality of requirement elicitation.
- if requirements change model is inflexible.
- working software produced late in lifecycle
- feedback at end of product
- not suitable for high risk projects
what is the spiral lifecycle model
same as waterfall but develops software in 4 iterative cycles.
each cycle adds a new element to solution
each cycle ends with a prototype
prioritises riskiest elements first.
what are the four phases in the spiral model
determine objectives
identify & resolve risks
development & testing
plan next iteration
what are the advantages of the spiral model
- manages risk well
- flexible (changes incorporated in later iterations)
- good client involvement
- good for large & risky projects
- good for long term projects
what are the disadvantages of the spiral model
- many phases, increasing efforts
- high level of risk analysis required
- risk analysts are expensive
- client invests a lot of time into project
what is agile software development
ways of developing software that is iterative and focuses on prototypes and feedback
what are the two types of agile programming
rapid application development (RAD)
extreme programming (XP)