slr6 - software development Flashcards
Describe the general software development lifecycle
1 Feasibility
2 Requirements
3 Analysis and design
4 implementation
5 testing
6 Deployment
7 evaluation
What are the 5 development methodologies
Waterfall
RAD - Rapid application development
Spiral
Agile
Extreme programming
Describe the waterfall model
Each phase has a well-defined start and end point with clear goals for each stage
The waterfall model allows you to move back on a previous stage as well as forwards
Describe Rapid application development
Following the initial approval of a feasible program, increasingly refined prototypes are made
What is agile
A group of methodologies that focus on the idea that requirements will shift throughout development
What is an algorithm
a sequence of steps designed to perform a task
Describe black box testing
Simply checks if an input produces the expected output
Describe white box testing
Testing that all the algorithms are functioning as intended
Why is being able to move backwards on previous stages an important feature of the development cycle
Developers often have to rework earlier stages when new features are needed
Which stages of the development cycle are repeated with RAD
Analysis
Design/ implementation
Testing/ evaluation
What are the 4 stages of the spiral model
Determine objectives
Identify and resolve risks
Development and test
Plan the next iteration
What are the advantages of the waterfall methodology
Simplicity makes it easy to manage
Everyone on the project is clear about their responsibilities at each stage
Clear objectives
Easy to see if the project is on schedule
What are the disadvantages of the waterfall methodology
carries a lot of risk
The user doesn’t get to see the product until the project is nearly finished
If requirements are misunderstood, then the project wont be easy to fix - it is not suitable for high risk projects
What are the advantages of RAD
Requirements don’t need to be completely clear from the start
Focus groups can be used to gather requirements
Continuous feedback means that the software is likely to have excellent usability
What are the disadvantages of RAD
The focus is on usability not efficiency
Regular contact with the client must be maintained
Scales poorly for larger teams
What are the advantages of the spiral methodology
Subtitle for projects that have a high risk since risk management is as the heart of this model
What are the disadvantages of the spiral methodology
Complex nature of risk analysis means that costs are high
The project suffers if risk analysis is done poorly
What are the advantages of agile and extreme programming
The quality of end code is likely to be high
Very productive development team due to the core principles of respect and collaboration
What are the disadvantages of agile and extreme programming
Requires close collaboration - unlikely to work remotely
Client must have a full time representative working with the dev team
Some of the processes involved can be expensive
When would agile and extreme programming be appropriate for a project
When the emphasis of the project is on the quality of final code
When would the spiral model be appropriate for a project
Large scale projects with a lot of risk – especially when the user doesnt fully understand initial requirements
When would RAD be appropriate for a programming project
When the initial requirements are not fully understood
When would the waterfall methodology be appropriate for a project
Ease of management makes it appropriate for large scale development projects
Describe the analysis stage of software development
The process of defining a problem and its solution
Describe the design stage of software development
The stage in which the technical details of the project are decided
What is done in the programming stage that simplifies the larger problem
the program is broken down into different modules and algorithms
Why is white box testing limited
You are unable to check for missing features in the project
How is black box testing limited
It doesn’t focus on the internals of the program and only checks to see if the expected output is generated
Describe alpha testing
Testing carried out internally by the development team
Describe beta testing
Testing carried out by a small number of users
In what ways is alpha testing limited
It is only carried out by a small number of people so some bugs may be missed
Why is alpha testing important
It often reveals errors and omissions that the developers havent noticed
Why is beta testing used by developers
It is an accurate simulation of how end users will use the product
Describe the evaluation stage of software development
A post implementation review where the system is critically analysed 3–6 months after the feature is implemented
What are the main basis for evaluating a project
Effectiveness, Usability and maintainability