LEARNING OBJECTIVES:
The specification states - you should be able to:
Describe the main features of different approaches to systems development: the waterfall model, Rapid Application Development (RAD) and Agile.
Evaluate different approaches to systems development: the waterfall model, RAD and Agile;
Consists of a sequence of discrete stages e.g. Analysis, Design, Implementation, Testing, Installation, Maintenance.
Each stage MUST BE FULLY completed before the next one can begin
...which increases development time.
At the end of each stage the project is reviewed and a deliverable is produced e.g. systems specification at the end of the analysis stage.
A previous stage may have to be re-visited if an error is found during a later stage.
Difficult to amend user requirements without repeating earlier stages which increases development time.
Most suited to large scale projects with long delivery times where a clear goal is known prior to development, as the user requirements are established at the start and set during the Analysis stage.
Role of the end user is limited - the end user is involved initially at the Analysis stage and not involved again until implementation/testing stage. Also, involved in the evaluation stage at the end.
Cannot see a working version of the system until late in the process.
Is an incremental model - the whole project is subdivided into a series of builds.
Each build undergoes its own separate lifecycle.
Each of the builds are developed separately in parallel, within a given time frame.
All the builds are assembled to produce a working prototype which is delivered to the user for feedback.
Additional functionality is added and tested in stages until the software is complete.
Makes use to automated code generation/modelling tools/code re-use.
Build: [CCEA PAPER 2022 Q2b]
The project is subdivided into subtasks
… with its own development team
… each of which undergoes its own separate lifecycle.
These are developed in parallel.
Time Frame: [CCEA PAPER 2022 Q2b]
Each build/subtask is given its own timescale
… during which it must be developed if the project is to meet its schedule.
Data Modelling: [CCEA PAPER 2022 Q2a]
Data objects are identified and defined
… and the relations between the data objects are established.
The stages of RAD are:
Business Modelling: [Has not been asked before]
A complete analysis of the business is carried out
... to determine the flow of information.
3. Application Generation: [Has not been asked before]
The actual system is developed using automated tools
...to generate code for the final application.
2. Process Modelling: [CCEA PAPER 2022 Q2a]
Process descriptions are identified
… for any additions/modifications/retrieval to/from data objects.
4. Testing and Turnover: [Has not been asked before]
Prototypes are tested at each iteration so the overall testing time is reduced in RAD.
However, the application interface and the data flow between the components must be tested thoroughly.
Agile is an iterative/incremental approach/model.
Aim is for rapid delivery of a system which meets the user needs/requirements.
A combination of iterative and incremental models is used.
The project is split into a number of small independent modules/iterations/tasks.
Each model/module/iteration is developed by a separate team of collaborators scrums.
A series of teams work simultaneously/concurrently which speeds up development time
Teams work on planning, requirement analysis, coding and testing.
A project leader coordinates the teams.
Close collaboration with customers leading to a more successful system.
More suited to projects where user requirements change due to the end user involvement at each iteration.
Waterfall:
A rigid model in which one stage must be fully completed before the next one commences which increases development time.
Changes in user requirements difficult/require previous stages to be repeated.
Not suitable for a system that must be completed within a short space of time as the stages must be completed and reviewed one after the other.
More suited to large scale projects where the user requirements are established and set during the Analysis stage.
It is very difficult to make amendments without repeating earlier stages which leads to delays in development time.
System is only produced late in the development process so high level of risk.
RAD:
Suitable for a system that must be completed within a short space of time - leads to a reduction in development time.
Makes use of automated code generation/modeling tools/code re-use. In other words, components can be reused.
Additional functionality can be added.
User feedback throughout - All the builds are assembled to produce a working prototype which is delivered to the user for feedback.
Agile:
Aims for the rapid delivery of a working product.
Modules can be developed concurrently by multiple independent teams which can speed up development time.
Can adapt quickly to changes in user requirements.
All parties work closely on development.
End-user is involved through the development as they care consulted by each group of collaborators via workshops.
More suited to changing user requirements due to the end users involvement at each iteration.
Suitable for smaller scale projects which are required relatively quickly.
Limited documentation which could lead to future maintenace being difficult.
Only experienced programmers suited to this type of development.
Project can easily lose focus if customer unclear of own requirements.
Previous past paper questions have only asked to compare: Agile versus Waterfall, RAD versus Waterfall. You could be asked to evaluate with respect to End User Involvement or Quick Development Time - so read the question carefully! Unlikely to ask RAD versus Agile as they are similar.
Remember to use the correct terms for each approach:
Waterfall - stages
Agile - modules
RAD - builds