0% found this document useful (0 votes)
3 views

7. Algorithm Design and Problem-Solving

The document outlines the Program Development Life Cycle, detailing the phases of analysis, design, coding, and testing. It emphasizes the importance of abstraction and decomposition in understanding and solving problems, as well as the use of structure diagrams, flowcharts, and pseudocode in the design phase. Additionally, it discusses iterative testing during coding and the necessity of thorough testing with various data sets to ensure program functionality.

Uploaded by

Yuan Teng Ng
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

7. Algorithm Design and Problem-Solving

The document outlines the Program Development Life Cycle, detailing the phases of analysis, design, coding, and testing. It emphasizes the importance of abstraction and decomposition in understanding and solving problems, as well as the use of structure diagrams, flowcharts, and pseudocode in the design phase. Additionally, it discusses iterative testing during coding and the necessity of thorough testing with various data sets to ensure program functionality.

Uploaded by

Yuan Teng Ng
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Head to savemyexams.

com for more awesome resources

YOUR NOTES
IGCSE Computer Science CIE 

7.1 Development Life Cycle

CONTENTS
Program Development Life Cycle - Analysis
Program Development Life Cycle - Design
Program Development Life Cycle - Coding
Program Development Life Cycle - Testing

Page 1 of 11

© 2015-2023 Save My Exams, Ltd. · Revision Notes, Topic Questions, Past Papers
Head to savemyexams.com for more awesome resources

Program Development Life Cycle - Analysis YOUR NOTES



Abstraction
This is the act of removing unimportant details of the problem to focus on important elements.
An example of abstraction would be the London underground train route map; travellers do not
need to know the geographical layout of the routes, only that getting on at stop A will eventually
transport you to stop B

Figure 1: London Underground train route map

Page 2 of 11

© 2015-2023 Save My Exams, Ltd. · Revision Notes, Topic Questions, Past Papers
Head to savemyexams.com for more awesome resources

YOUR NOTES

Figure 2: The geographical London underground train map

Requirements
Identification of the problem: Before tackling a problem, it needs to be clearly understood
by everyone working on it. The overall goal of the solution needs to be agreed as well as any
constraints such as limited resources or requiring a platform specific solution
Requirements: To create a solution, a requirements document is created to define the
problem and break it down into clear, manageable, understandable parts by using
abstraction and decomposition. A requirements document labels each requirement, gives
it a description as well as success criteria which state how we know when the requirement
has been achieved

Page 3 of 11

© 2015-2023 Save My Exams, Ltd. · Revision Notes, Topic Questions, Past Papers
Head to savemyexams.com for more awesome resources

Program Development Life Cycle - Design YOUR NOTES



Decomposition
This is the act of breaking down a large problem into smaller, clear, manageable and
understandable sub-parts. Sub-parts can be divided until they are easily solvable and
cannot be broken down any further. An example of decomposition could be getting ready
in the morning to go to school
Step 1: Wake up
Step 2: Get breakfast
Step 3: Brush teeth
Step 4: Put clothes on
Step 5: Make sure the bag and school supplies are ready
Step 6: Find transport to school e.g. walk, bus, car, bike, etc

These steps could be further subdivided, for example, “Step 2: Get breakfast” would entail:
Step 2.1 Get a bowl
Step 2.2 Get cereal
Step 2.3 Get milk
Step 2.4 Get a spoon
Step 2.5 Put cereal in a bowl
And so on…

Once the requirements document has been created, developers need to design the
structure and algorithms to solve the problem:
Structure charts are created to show the breakdown of tasks in a hierarchy
Flowcharts may be created to visually show how tasks should be carried out
Pseudocode is created, sometimes from flowcharts, to allow programmers to easily
translate task instructions into programming code

The design of a solution identifies what tasks need completing, how to complete the tasks
and how each task works together with other tasks

A computer system includes several components that work together: software, hardware,
data, networking and people
Systems can be broken down into sub-systems that can be further broken down into more
sub-systems, until each sub-system has a single purpose. This decomposition is known as
top-down design

Decomposing a system
To create an overall system and solve a problem, it must first be broken down into
subsystems that are easier to solve and create. The act of breaking down the problem is
known as stepwise refinement
Decomposing the problem this way creates smaller, more manageable and more easily
understandable sub-parts

Page 4 of 11

© 2015-2023 Save My Exams, Ltd. · Revision Notes, Topic Questions, Past Papers
Head to savemyexams.com for more awesome resources

Each sub-system can be assigned to a developer or group of developers who create YOUR NOTES
subroutines from these sub-systems. Each sub-system can then be created at the same 
time, reducing development and testing time, especially on large projects
Decomposing the system using stepwise refinement requires developers to think about
four key areas:
Inputs: data entered into the system
Processes: subroutines and algorithms that turn inputs and stored data into outputs
Outputs: data that is produced by the system, such as information on a screen or
printed information
Storage: data that is stored on a physical device, such as on a hard drive
To solve a problem all aspects must be thoroughly understood by the developers
There are many methods used to design and construct solutions. Three such methods are
illustrated below:

Page 5 of 11

© 2015-2023 Save My Exams, Ltd. · Revision Notes, Topic Questions, Past Papers
Head to savemyexams.com for more awesome resources

Structure Diagrams YOUR NOTES


Structure diagrams show hierarchical top-down design in a visual form. Each problem is 
divided into sub-problems and each sub-problem divided into further sub-problems. At
each level the problem is broken down into more detailed tasks that can be implemented
using a single subroutine

Figure 1: A structure diagram

Figure 2: A structure diagram for a mobile application

Page 6 of 11

© 2015-2023 Save My Exams, Ltd. · Revision Notes, Topic Questions, Past Papers
Head to savemyexams.com for more awesome resources

YOUR NOTES
 Worked Example

A satellite navigation system is an example of a computer system that is made up
of subsystems. Part of a satellite navigation system: allows the user to enter details
for a new destination or select a previously saved destination and displays
directions in the form of a visual map or as a list. Draw a structure diagram for this
part of the satellite navigation system.
[4]
[1] for a hierarchical structure
[1] for suitable names for the sub-systems
[1] for identifiable inputs
[1] for identifiable outputs

Page 7 of 11

© 2015-2023 Save My Exams, Ltd. · Revision Notes, Topic Questions, Past Papers
Head to savemyexams.com for more awesome resources

Flowcharts YOUR NOTES


Flowcharts show how algorithms can be represented visually in a diagrammatic format 
Each flowchart has a start and an end with arrows showing the order each task or
instruction needs to be carried out in
Flowcharts are made of several symbols:
Terminator symbols: Also known as Begin/End symbols. These indicate where a
flowchart starts and stops
Process symbols: These show simple actions being performed such as assigning
values or performing arithmetic operations on values
Processes can also represent other flowcharts or summarised actions. For
example, searching or sorting a list is a complex process which would require its
own flowchart. A process symbol could be used to represent sorting or searching
in a separate flowchart. This is represented by a process with an additional bar on
either side of the symbol
Input/Output symbols: These show the input of data and output of data
Decision symbols: These symbols are used to decide whether to take one of two
routes by answering a true/false or yes/no question. They can be used for selection
and iteration
Flow lines: Flow lines use arrows to show the direction of flow and what task to perform
next. Usually these are top to bottom and left to right

Figure 3: Flowchart symbols: terminator, input/output, process, decision (left to right)

Page 8 of 11

© 2015-2023 Save My Exams, Ltd. · Revision Notes, Topic Questions, Past Papers
Head to savemyexams.com for more awesome resources

YOUR NOTES

Figure 4: Flowchart for finding the largest of ten numbers

Pseudocode
Pseudocode is a programming-like language that does not have syntax. It can be
considered “fake” code.
It uses english words and phrases to represent instructions and is very similar to
programming code but does not and cannot run on any computer
The purpose of pseudocode is to allow developers to understand how to create a program
regardless of the programming language used to implement the solution
While pseudocode has no specific syntax, it is important to stick to a consistent style. This
will make it easier and quicker for programmers to read and create programs from the
pseudocode
Examples of a consistent style can include:
Keywords are written in capital letters e.g. INPUT, OUTPUT, IF, THEN, ELSE
Variable and subroutine names start with capital letters e.g. Age, Name, Date,
CalculateArea, Sortlist
Indentation can be used for iteration and selection

Page 9 of 11

© 2015-2023 Save My Exams, Ltd. · Revision Notes, Topic Questions, Past Papers
Head to savemyexams.com for more awesome resources

Program Development Life Cycle - Coding YOUR NOTES



Writing Code
Developers begin programming modules in a suitable programming language that works
together to provide an overall solution to the problem
As each developer programs, they perform iterative testing. Iterative testing is where each
module is tested and debugged thoroughly to make sure it interacts correctly with other
modules and accepts data without crashing or causing any errors. Developers may need to
retest modules as new modules are created and changed to make sure they continue to
interact correctly and do not cause errors

Page 10 of 11

© 2015-2023 Save My Exams, Ltd. · Revision Notes, Topic Questions, Past Papers
Head to savemyexams.com for more awesome resources

Program Development Life Cycle - Testing YOUR NOTES



Testing
Once the overall program or set of programs is created, they are run many times using
varying sets of test data. This ensures the program or programs work as intended as
outlined in the initial requirements specification and design and rejects any invalid data that
is input
Examples of test data include alphanumeric sequences to test password validation
routines. Such validation routines could be:
A password must be between 8-20 characters
Test data would be passwords of less than 8 characters or greater than 20
characters
A password must include only alphanumeric characters
Test data would be passwords including non-alphanumeric symbols such as @, ?,
#, !, $ or %, etc

Page 11 of 11

© 2015-2023 Save My Exams, Ltd. · Revision Notes, Topic Questions, Past Papers

You might also like