0% found this document useful (0 votes)
16 views5 pages

Software Development

The document discusses the program development lifecycle, which consists of 5 stages: 1) analysis to define requirements, 2) design to show how the program will be developed, 3) coding to write the program, 4) testing to check for errors, and 5) maintenance to ensure the program continues working properly over time. It explains that the lifecycle process ensures programs are well-ordered and documented for understanding and continued development. The coding, testing, and maintenance stages are covered in more depth with appropriate tools and techniques.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views5 pages

Software Development

The document discusses the program development lifecycle, which consists of 5 stages: 1) analysis to define requirements, 2) design to show how the program will be developed, 3) coding to write the program, 4) testing to check for errors, and 5) maintenance to ensure the program continues working properly over time. It explains that the lifecycle process ensures programs are well-ordered and documented for understanding and continued development. The coding, testing, and maintenance stages are covered in more depth with appropriate tools and techniques.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

12 Software development

12.1 Program development lifecycle


In this chapter, you will learn about
★ the purpose, types and stages of the program development lifecycle
★ how to document program design using structure charts and state-
transition diagrams
★ avoiding syntax, logic and run-time errors in programs
★ different methods of testing programs to identify and correct such
errors
★ the types of maintenance used as part of the program development
lifecycle.

12.1 Program development lifecycle


WHAT YOU SHOULD ALREADY KNOW
You may have studied or heard about the different development lifecycles used depending
systems (or program) development lifecycle. upon the system and the type of program being
developed. Identify at least four of these. Work in
Try this activity before you read the first part of
small groups to research one of these and share
this chapter. A program development lifecycle
your findings with the other groups.
goes through the same stages for a program.
Name and describe the stages of the program/
systems development lifecycle. There are

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

457591_12_CI_AS & A_Level_CS_283-303.indd 283 25/04/19 11:33 AM


12.1.1 The purpose of a program development lifecycle
12 In order to develop a successful program or suite of programs that is going
to be used by others to perform a specific task or solve a given problem, the
development needs to be well ordered and clearly documented, so that it can
be understood and used by other developers.
This chapter introduces the formal stages of software (program) development
that are set out in the program development lifecycle.
A program that has been developed may require alterations at any time in order to
12 Software development

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.

12.1.2 Stages in the program development lifecycle


The stages of development in the program development lifecycle are shown
in this chapter. The coding, testing and maintenance stages are looked at in
depth and include appropriate tools and techniques to be used at each stage.
Therefore, practical activities will be suggested for these stages to help
reinforce the skills being learnt.
Here is a brief overview of the program development lifecycle, divided into the
five stages, as shown in Figure 12.1.

1
Analysis

5 2
Maintenance Design
Program
development
lifecycle

4 3
Testing Coding

▲ Figure 12.1 The program development lifecyle

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

457591_12_CI_AS & A_Level_CS_283-303.indd 284 25/04/19 11:33 AM


Coding
The program or set of programs is written using a suitable programming
language. 12
Testing
The program is run many times with different sets of test data, to test that
it does everything it is supposed to do in the way set out in the program
design.

12.1 Program development lifecycle


Maintenance
The program is maintained throughout its life, to ensure it continues
to work effectively. This involves dealing with any problems that arise
during use, including correcting any errors that come to light, improving
the functionality of the program, or adapting the program to meet new
requirements.

12.1.3 Different development lifecycles


Each program development methodology has its own strength. Different models
have been developed based on the lifecycle for developers to use in practice.
The models we will consider will be divided into the five stages set out above:
analysis, design, coding, testing and maintenance.
In this section of the chapter, we will look at three models: The waterfall
model, the iterative model, and rapid application development (RAD).

Analysis The waterfall model


This linear sequential development cycle is one of the earliest models used,
Design where each stage is completed and signed off before the next stage is begun.
This model is suitable for smaller projects with a short timescale, for which the
Coding requirements are well known and unlikely to change.
Testing Principles linear, as each stage is completed before the next is begun
well documented as full documentation is completed at every stage
Maintenance
low customer involvement; only involved at the start and end of the
▲ Figure 12.2 The waterfall process
model
Benefits easy to manage, understand and use
stages do not overlap and are completed one at a time
each stage has specific deliverables
works well for smaller programs where requirements are known and
understood
Drawbacks difficult to change the requirements at a later stage
not suitable for programs where the requirements could be subject to
change
working program is produced late in the lifecycle
not suitable for long, complex projects
▲ Table 12.1 Principles, benefits and drawbacks to the waterfall model

285

457591_12_CI_AS & A_Level_CS_283-303.indd 285 25/04/19 11:33 AM


The iterative model

12 First waterfall

Extended waterfall
These stages are
repeated as necessary
Further
extended waterfall
12 Software development

Final waterfall

▲ Figure 12.3 The iterative model

This development cycle first develops a simple subset of the requirements,


then expands or enhances the model and runs the development cycle again.
These program development cycles are repeated until the full system has been
developed. This model is suitable for projects for which the major requirements
are known but some details are likely to change or evolve with time.

Principles incremental development as the program development lifecycle is


repeated
working programs are produced for part of the system at every iteration
high customer involvement, as part of the system can be shown to the
customer after every iteration
Benefits some working programs developed quickly at an early stage in the
lifecycle
easier to test and debug smaller programs
more flexible as easier to alter requirements
customers involved at each iteration therefore no surprises when final
system delivered
Drawbacks whole system needs to be defined at start, so it can be broken down into
pieces to be developed at each iteration
needs good planning overall and for every stage
not suitable for short simple projects
▲ Table 12.2 Principles, benefits and drawbacks to the iterative model

Rapid application development (RAD)


Team 1 Team 2 Team 3

Analysis Analysis Analysis

Design Design Design

Coding Coding Coding

Testing Testing Testing

Maintenance Maintenance Maintenance

▲ Figure 12.4 Rapid application development (RAD)

286

457591_12_CI_AS & A_Level_CS_283-303.indd 286 25/04/19 11:33 AM


This development cycle develops different parts of the requirements in

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.

Principles minimal planning

12.2 Program design


reuses previously written code where possible, makes use of
automated code generation where possible
high customer involvement, as customers can use the prototypes
during development
Benefits reduced overall development time
rapid frequent customer feedback informs the development
very flexible as requirements evolve from feedback during development
as parts of the system are developed side by side, modification is
easier because each part must work independently
Drawbacks system under development needs to be modular
needs strong teams of skilled developers
not suitable for short simple projects

▲ Table 12.3 Principles, benefits and drawbacks to rapid application development (RAD)

EXTENSION ACTIVITY 12A


Find out about four more program development methodologies.

12.2 Program design


WHAT YOU SHOULD ALREADY KNOW
In this chapter, you will need to be able to write more complicated
pseudocode, as described by a structure chart. It is essential that you
consolidate your knowledge before you attempt to do this.
Make sure that you have read and understood Chapter 11 and you are able
to write pseudocode that passes parameters to procedures and functions.

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

457591_12_CI_AS & A_Level_CS_283-303.indd 287 25/04/19 11:33 AM

You might also like