SLR6 - Software Development Flashcards
Describe the waterfall model
A simplistic model where stages of development happen consecutively and are clearly defined.
- Clear end and start points. Each stage is started once the previous one is complete.
- Earlier stages may need to be reworked
Describe the Rapid Application Development model
A model which produces prototypes of a system until the user approves the final version.
- Prototypes are continually made and refined according to client feedback.
- When the client is happy with the functionality of the program it enters the maintenance stage.
Describe the Spiral Model
A model which prioritises risk and splits development into four quadrants.
- Objectives are determined.
- Risks are identified and alternatives considered
- Project is made and tested
- Output of stage 3 is evaluated and the next iteration of the spiral is decided.
Give some advantages and disadvantages of the waterfall model
Advantages:
1. Simple.
2. Easy to manage as everyone has a set role.
3. Stages and transitions and clearly defined.
4. Easy to keep to a set timescale.
Disadvantages:
1. Not flexible
2. High risk factor due to the client only seeing the project at the testing stage
3. User is not a part of the development
4. Requirements must be clear from the start
Give some advantages and disadvantages of the RAD model
Advantages:
1. More suited to projects where the requirements are initially unclear
2. Clients feels very involved
3. Continuous feedback from the client results in very good usability.
Disadvantages:
1. Frequent user contact needed
2. Doesn’t scale well to large teams
3. Code will become inefficient as usability is the main focus.
Give some advantages and disadvantages of the Spiral model
Advantages:
1. Deals with risk directly as one of the four quadrants
2. Works well with large, high risk projects
Disadvantages:
1. Risk management is a very specialised skill and therefore can be very expensive.
Define and describe the SDLC
Systems Development Lifecycle
The phases required to write a computer program including:
Feasibility, Requirements, Analysis, Design, Implementation, Testing and Installation planning, evaluation and maintenance.
Describe Extreme Programming
A type of agile methodology where software is produced in short iterations ad an embedded user provides instant feedback for the next iteration.
Describe Agile Methodologies
A group of methods where requirements can constantly change during development and the product is produced in iterations, checked by the client for functionality.
Name the 3 types of test data
Valid
Invalid
Borderline
Describe Valid test data
Data the user is expected to input
Describe Invalid test data
Data which should generate an error if input
Describe Borderline test data
Data close to boundaries
Define an algorithm
The logical steps needed to solve a given problem expressed in either pseudo code or a flow diagram.
Define White box testing
Carried out by developers to check functionality and efficiency of code as it is written.