Objectives: Students should be able to —
- 1 Explain the five stages in the program development cycle: Analysis, Design, Coding, Testing, Maintenance.
- 2 Define the terms system, computer system and sub-system.
- 3 Describe the System Development Life Cycle (SDLC) and why new systems are developed.
- 4 Identify and describe four stages of the program development lifecycle: Analysis, Design, Coding, Testing.
- 5 Describe Abstraction and Decomposition as tasks performed at the analysis stage.
- 6 Describe three methods of designing an algorithm: Structure Diagram, Flowchart, Pseudocode.
The Program Development Life Cycle — Overview
(a) System:
A system is a collection of components that work together as parts of a mechanism or an interconnecting network with a set of rules or procedures to solve a problem.
(b) Computer System:
- A computer system is made up of software, data, hardware, communications and people.
- It is a set of integrated devices that input, process, output, communicate and store data and information.
- A computer system can be divided into a set of sub-systems.
- Each sub-system can be further divided into sub-systems and so on until each sub-system just performs a single action.
(a) System Development Life Cycle (SDLC):
System Development Life Cycle is an organisational process of developing and maintaining a system.
It helps in establishing a system project plan by giving an overall list of processes and sub-processes required in developing a system.
(b) Reasons why we need to develop a new system:
- The current system may no longer be suitable for its purpose.
- Technological developments may have made the current system redundant or outdated.
- The current system may be too inflexible or expensive to maintain.
Stages of the Program Development Lifecycle
1) Analysis
The analysis stage involves the process of investigation — a detailed study of the current system to identify the problems and collect the key elements required to develop a new, more efficient system.
It is done by abstraction and decomposition tools.
- Abstraction collects the essential elements required for the solution while eliminating any unnecessary details and information.
- Decomposition involves breaking down a complex problem into smaller, more manageable parts that can be solved individually.
2) Design
The design stage is the process of planning a new system to solve the problems identified and to meet the requirements collected at the analysis stage.
It is formally documented using structure diagrams, flowcharts and pseudocode, to show what is to be done, how each task is to be performed and how the tasks work together.
When the design stage is complete, the programmer should know what is to be done.
3) Coding
The coding stage is the process of writing the program using a suitable programming language.
Each module of the program is tested repeatedly to debug errors if any, amend codes if needed, and check if it meets all the requirements of the system.
4) Testing
The testing stage is the process of repeatedly running and testing the completed program using different sets of test data.
This ensures that all the tasks completed work together as specified in the program design and its output matches the expected results.
Tasks at the Analysis Stage
Analysis of a system involves the process of investigation, done by abstraction and decomposition tools.
1. Abstraction
Abstraction collects the key elements required and discards any unnecessary details for the solution of the problem.
2. Decomposition
Decomposition breaks down a complex problem into smaller parts, which can then be subdivided into even smaller parts that can be solved easily.
Methods of Designing an Algorithm
1. Structure Diagram
A pictorial representation of top-down design in a hierarchical form.
It is an ordered way of designing a system, by breaking down a system into its sub-systems down to its lowest manageable levels in a tree-like structure.
It is constructed using squares to represent systems, and lines that connect them. The lines represent the connection between activities and sub-activities, as they are used in organisation charts.
2. Flowchart
A diagram that represents an algorithm, the work-flow or process.
It shows the steps to be carried out to solve a problem. It uses a variety of boxes and arrows to show the process to be done and the direction of flow of data.
3. Pseudocode
A method that describes the steps of an algorithm using English-like words and mathematical operators.
It is set out to look like a computer program without following the strict syntax or rules of any specific programming language.
| Method | Visual Form | Best Used For |
|---|---|---|
| Structure Diagram | Hierarchical tree of squares & lines | Showing top-down decomposition of a system |
| Flowchart | Boxes & arrows | Showing the order / flow of steps in a process |
| Pseudocode | English-like text | Describing logic without any language's syntax |
Revision: Statements and Key Computing Terms
| Statement | Key Term |
|---|---|
| A collection of components that work together to solve a problem. | System |
| A set of integrated devices that input, process, output, communicate and store data and information. | Computer System |
| A part of a larger system that performs a single action. | Sub-system |
| The organisational process of developing and maintaining a system. | System Development Life Cycle (SDLC) |
| Stage of PDLC involving investigation of the current system. | Analysis |
| Stage of PDLC where a new system is planned using structure diagrams, flowcharts and pseudocode. | Design |
| Stage of PDLC where the program is written in a programming language. | Coding |
| Stage of PDLC where the completed program is run repeatedly with test data. | Testing |
| Stage of PDLC that fixes, updates and improves the program after deployment. | Maintenance |
| Tool that collects essential elements and discards unnecessary details. | Abstraction |
| Tool that breaks a complex problem into smaller, manageable parts. | Decomposition |
| A pictorial top-down hierarchical design using squares and lines. | Structure Diagram |
| A diagram using boxes and arrows to show the flow of an algorithm. | Flowchart |
| English-like description of an algorithm without strict syntax of any programming language. | Pseudocode |