Chapter 7.1
System Development Lifecycle
What is the System Development Life Cycle?
- An organised plan of how to create a program — consists of several stages
- Analysis: identify the problem
- Design: details of the solution are set out
- Coding: the program is developed
- Testing: program is tested for errors
Analysis Phase
Why is it a good idea to perform decomposition?
- The phase that involves identifying the problem and the requirements
- Decomposition: break-down of a problem into small manageable parts
- Abstraction: remove unnecessary parts, simplify, filter irrelevant characteristics
- Makes the problem simpler to solve
- Can allow developers to distribute work to different teams
Components after Decomposition
- INPUTS — what is put into the system
- OUTPUTS — what is taken out of the system
- PROCESS — actions taken to achieve the result
- STORAGE — what needs to be kept for future use
Tasks in the Analysis Phase
- Decomposition
- Abstraction
- Identification of a problem
- Identification of requirements
Design Phase
- Construction of a solution using standard methods (e.g. flowcharts)
- Pseudocode — shows what a program does in plain language
- Flowchart — a diagram showing the ordered steps to complete a program
- Structure diagram — hierarchical diagram showing breakdown into sub-programs
Pseudocode — Variables and Constants
- Variables/constants are used to store items of data
- Data is accessed using an identifier
- Value of a variable may change during execution
- Value of a constant remains the same during execution
Calling vs Defining a Function
- A function is defined once and called many times
- Define = setting up a function; Call = using a function
Processes in an Algorithm
- Initialisation of a variable
- INPUT of data
- Storing values in a variable/array
- Sorting values in an array (Bubble sort)
- Displaying (output) values
- Iteration (use of loops)
- Selection (use of IF/CASE OF)
Types of Iteration
- Count Controlled — number of iterations is pre-determined
- Pre-Condition — checks condition at start; loop won't iterate if false
- Post-Condition — checks condition at end; always iterates at least once
Storing Data in a File
- Data is stored permanently
- Data can be moved to another computer
- Another copy can be made and stored/accessed elsewhere
Global vs Local Variables
- Local variables — scope is a defined block of code (procedure/function)
- Global variables — scope is the whole program
- Local — value cannot be changed elsewhere in the program
- Global — value can be changed anywhere in the program
Procedures and Parameters
- Procedures: write a collection of statements under a single identifier
- Procedures: allow modular programs; can be re-used
- Procedures: make programs shorter and easier to maintain
- Parameters: pass values from the main program to a procedure/function
- Parameters: allow the procedure/function to be re-used with different data
Maintainable Programs
- Meaningful identifiers — easily recognise the purpose of variables
- Comments — annotations explaining each section of code
- Procedures & Functions — make programs modular and easier to update
- Indentation — makes the program more readable
Coding Phase
- Program is written
- Iterative testing takes place
Testing Phase
- Program is tested for errors
- Program is tested that it meets requirements
Test Data
- Check that the program works as expected
- Check for logic/runtime errors
- Normal — data the program should accept
- Abnormal/Erroneous — data the program should reject
- Extreme — largest/smallest data that should be accepted
- Boundary — data on the edge of accepted/rejected
Data Validation
- Automated check to make sure data entered is reasonable
- Presence Check — checks field is not blank
- Type Check — checks data type is correct
- Range Check — checks data is within set range
- Length Check — checks data is within character limit
- Format Check — checks data matches required format
Data Verification
- Ensures data has been accurately copied from one source to another
- Double Entry — data entered twice; accepted if both inputs are identical
- Visual Check — data compared against original copy