Software Development
Software Development
Key terms
Program development lifecycle – the process of Maintenance – part of the program development
developing a program set out in five stages: analysis, lifecycle; the process of making sure that the program
design, coding, testing and maintenance. continues to work during use.
Analysis – part of the program development lifecycle; a Waterfall model – a linear sequential program
process of investigation, leading to the specification of development cycle, in which each stage is completed
what a program is required to do. before the next is begun.
Design – part of the program development lifecycle; it Iterative model – a type of program development
uses the program specification from the analysis stage cycle in which a simple subset of the requirements
to show how the program should be developed. is developed, then expanded or enhanced, with the
Coding – part of the program development lifecycle; the development cycle being repeated until the full system
writing of the program or suite of programs. has been developed.
Testing – part of the program development lifecycle; Rapid application development (RAD) – a type of
the testing of the program to make sure that it works program development cycle in which different parts
under all conditions. of the requirements are developed in parallel, using
prototyping to provide early user involvement in testing.
283
deal with new circumstances or new errors that have been found, so the stages are
referred to as a lifecycle as this continues until the program is no longer used.
1
Analysis
5 2
Maintenance Design
Program
development
lifecycle
4 3
Testing Coding
Analysis
Before any problem can be solved, it needs to be clearly defined and set out
so everyone working on the solution understands what is needed. This is
called the requirements specification. The analysis stage often starts with a
feasibility study, followed by investigation and fact finding to identify exactly
what is required from the program.
Design
The program specification from the analysis stage is used to show how
the program should be developed. When the design stage is complete, the
programmer should know what is to be done, all the tasks that need to be
completed, how each task is to be performed and how the tasks work together.
This can be formally documented using structure charts, state-transition
diagrams and pseudocode.
284
285
12 First waterfall
Extended waterfall
These stages are
repeated as necessary
Further
extended waterfall
12 Software development
Final waterfall
286
12
parallel, using prototyping to provide early user involvement in testing.
Program development cycles are run in parallel for each part of the
requirement, using a number of different teams. Prototyping is often
used to show initial versions to customers to obtain early feedback. This
model is suitable for complicated projects that need developing in a
short timeframe to meet the evolving needs of a business.
▲ Table 12.3 Principles, benefits and drawbacks to rapid application development (RAD)
Key terms
Structure chart – a modelling tool used to decompose a State-transition diagram – a diagram showing the
problem into a set of sub-tasks. It shows the hierarchy behaviour of a finite state machine (FSM).
or structure of the different modules and how they State-transition table – a table showing every state of a
connect and interact with each other. finite state machine (FSM), each possible input and the
Finite state machine (FSM) – a mathematical model state after the input.
of a machine that can be in one state of a fixed set of
possible states; one state is changed to another by an
external input; this is known as a transition.
287