2.3 Software Development Flashcards
What are the typical stages in a software development life cycle?
Analysis of requirements
Design
Development
Testing
Implementation
Evaluation & Maintenance
What is the difference between alpha and beta testing?
Alpha testing is carried out by the software developers to identify and fix bugs.
Beta testing is carried out by end users and their feedback is used to inform the next stage of development.
What is white box testing?
Tracing through and testing all possible routes of the program based on its internal structure.
What is black box testing?
Tracing through possible inputs and outputs of the software to identify bugs.
What are some software development methodologies?
waterfall lifecycle
agile methodologies
e.g. extreme programming
spiral model
rapid application development
What is the waterfall model?
A software development methodology where a series of stages are completed in sequence meaning one stage can’t begin before the previous stage is completed. End users are involved in defining the initial requirements during the analysis stage but have little input afterwards until evaluation.
Analysis
Design
Implementation
Evaluation
Maintenance
What software suits the waterfall model?
Low-risk projects that require little user input such as general purpose software with static requirements.
What are the advantages of the waterfall model?
- straight forward to manage
- requirements are clearly defined
- clearly documented
What are the disadvantages of the waterfall model?
- limits changing requirements throughout development
- lack of flexibility
- requirements defined at the start must be clear and correct
- limited user involvement
- no risk analysis
What are agile methodologies?
A collection of methodologies which aim to improve the flexibility of software development and adapt to changes in user requirements quickly.
How do agile methodologies work?
problem is broken down into sections that are developed in parallel
prototypes are developed and improved in an iterative manner
less focus on documentation and more focus on user satisfaction
What is extreme programming?
A software development methodology that focuses on good quality code by having a pair of programmers develop each section of the program. It is an agile paradigm where development responds to changes in user requirements and prototypes are constantly created and reviewed to inform another iteration.
What are the advantages of XP?
high quality code
end user heavily involved
adapts to new requirements
What are the disadvantages of XP?
difficult to produce high quality documentation
pair of programmers must work well together and communicate effectively to avoid bugs
changes in requirements may slow down the development process
What is the spiral model?
A software development methodology built on 4 key stages with the focus of effectively managing high risk projects.
- determine objectives
- pinpointing/mitigating risks
- development/testing/implement
- evaluation/plan for next iteration
if the project is found to be too risky at any point, the process is terminated