Misunderstanding requirements cause problems not easy to fix,
Requirements need to be understood - model not good for complex projects.
Rapid Applications Development benefits
Requirements don't need to be clear,
Allows continuous feedback from client - giving solution excellent usability,
Focus groups involving user used to gather requirements without full documents upfront.
Rapid Applications Development drawbacks
Focuses on usability not efficiency,
Regular contact with client needed,
Scales poorly for large projects with big teams.
Spiral advantages
Risk management is at the heart of this model,
Excellent for project that contain high level of risk.
Spiral drawbacks
High cost because of its complex nature,
risk management is a highly specialized skill,
If risk analysis done badly project suffers.
Agile and Extreme benefits
Quality of end code is high,
Core principles & processes promote respect + collaboration - very productive development team.
Agile and Extreme drawbacks
Requires team working in close collaboration - unlikely if in different locations,
Client needs full time representative working with dev team.
Processes involved in extreme programming can be costly such as paired programming.
When to use Agile and Extreme
When project needs to have high quality code.
When to use spiral
Large scale problems and those involve high risk - when user doesn't fully understand their requirements
When to use rapid application dev
When initial requirements not fully understood as iterative nature prevents development from being sidetracked.
When to use waterfall?
Large scale development projects - assuming requirements well understood carry little risk
What is an algorithm?
A sequence of stops designed to perform a task.
What is an examples of an algorithm?
Cross a raod - Stop before crossing -> look left + right -> is road clear? -> no -> press crossing button -> wait until cross light go goes then cross -> yes -> cross raod
What is pseudocode?
Alterative, text method of representing the sequence of steps in an algorithm, (simplified programming code).
What does pseudocode allow?
Lay down logic of problem without worrying about rules + syntax of particular language.
Checks whether an input produces expected output, code efficiency is not important. When doing testing you chose appropriate test data to cover range of situations.
What is white box testing?
Testing algorithm in code making sure all function as intended. Focuses on identifying and testing all possible paths of execution. Each path is noted and compared with other runs. Checks over all efficiency of code.
What is Alpha & Beta testing?
Carried out when software nearly ready for release - tested as complete solution. Apply especially to commercial software (e.g. computer games).
What is the difference between Alpha and Beta testing?
Alpha testing occurs first and limited to internal employees. Often early version, contain number of bugs. Beta opened to wider community through public beta program. Testing load balancing & multiple hardware compatibility.
Spiral method
An iterative approach to problem-solving that involves breaking a large problem down into smaller parts, and repeatedly reviewing and refining the solution.