Waterfall Design Process
A method of developing a program using structured steps to avoid errors.
Analysis
The process of finding out what the program needs to do through interviews and DIY sessions. It involves creating a software specification document that describes what the software must do and how long the development process will take.
Scope
States what will and won't be involved in the project. It allows the developer to reject changes requested by the client if they are outside the scope.
Design
The process of deciding the layout, inputs, outputs, and processes of the program. It involves creating the HCI using wireframes and logic flow structures such as pseudocode, flow charts, and structure diagrams.
Implementation
Writing the code for the program. If errors are spotted in the design, the design stage may have to be redone.
Testing
The process of ensuring that the software works correctly. Test tables are produced for inputs, expected outputs, and actual outputs.
Documentation
Writing user and technical guides for the program. The user guide specifies how to use the program and its functions, while the technical guide specifies the minimum hardware requirements and installation instructions.
Evaluation
Reviewing the program's fitness for purpose and whether or not it meets the requirements of the original software specification. It checks for efficient use of coding constructs, usability, maintainability, and robustness.
Maintenance
Making any required changes or updates to the program. It can be corrective, adaptive, or perfective maintenance.
Agile Software Development Process
A method of developing software quicker and on a smaller scale. It breaks the development process into smaller steps and involves more interaction with the client for easier and more frequent changes.
Requirements Elicitation
The process of finding out what needs to be done to meet the program's requirements. It can be done through DIY, interviews, and observations.
Inputs Processes and Outputs
The three components of a program. Inputs are anything taken into the program to be processed, processes are what is carried out using the input to change it, and outputs are the final result of the program.
Types of User
Novice, Intermediate, Expert
Data Types
Integer, Real/Double, String, and Boolean
Types of Design Methods
Wireframe Diagrams, Low-Fidelity Prototypes, Flow Charts, Structure Diagrams, and Pseudocode
Types of Maintenance
Corrective, Adaptive, and Perfective
Types of Error
Syntax Error, Execution Error, and Logic Error
Golden Rules of Programming
Internal commentary, meaningful variable names, blank space, indentation
Test Data
Normal Data, Extreme Data, and Exceptional Data used to test the program's functionality and error handling.
Test Tables
Tables that help programmers test a full program by recording test data and expected/actual outputs.
Trace Tables
Tables that help programmers keep track of variable values in a program during execution.
Dry Runs
The process of working through a program on paper to follow its logic and detect errors before implementation.
Breakpoints
Points in the program code where it will stop running, allowing programmers to see variable values and identify logic errors.
Watchpoints
Breakpoints assigned to specific variables, causing the program to stop running when those variables reach a certain value.
Loops
For Loop, While Loop, and If Loop used for repetitive or conditional execution of code.
Parameter Passing and Modularity
Modularity involves breaking down the main program into smaller sub-programs, while parameter passing involves passing data between different modules.
ByRef and ByVal
ByRef passes the actual information and can change the original value, while ByVal passes a copy of the information meaning the original value will remain unchanged
Software Evaluation
The assessment of a program's fitness for purpose, efficient use of coding constructs, usability, maintainability, and robustness.
Translators
Convert code into a format that can be executed by the computer (machine code)
Compiler
Translates the code before the program is run.
The program will run fast as it's already translated.
Takes time to translate.
Not good for error detection.
Creates a separate .exe file
Interpreter
Very good at error detection (doesn’t solve the error, only detects it.)
Interprets one line at a time.
Takes a long time.
Once a line is compiled, it’s forgotten and the compiler moves on (meaning it must translate code within loops multiple times)
Translates the program while it runs
Arrays
Arrays are a data structure that can store multiple values of the same data type, such as integers, in a contiguous memory block.
Parallel Arrays
Parallel arrays are multiple arrays that hold related data, where each array corresponds to a specific attribute or property of the same entity.
Records
Records are a data structure used to store multiple data types, allowing for the storage of one instance of each data type, such as one forename and one age.
Array of Records
An array of records is a data structure that allows for the storage of multiple instances of different data types, such as multiple forenames and multiple ages, in a single array.