The Waterfall Development Methodology is a linear design approach that progresses through a defined set of stages (downwards, like a waterfall) with the final product coming out at the end.
Iterative - Steps in the cycle can be repeated if necessary.
The software specification establishes what the user needs the software to be able to do, as well as a legal contract between the client and developers.
A prototype is an early version of the software which allows users to test it and give feedback on how they think it could be improved.
Purpose - A description of what the software is intended to do, as well as decisions or validation that will be present in the program
Scope - The list of documents and/or programs that will be provided to the end user by the developer
User Interface - How the software looks and feels to the user
Boundaries - A description of what the program will and will not be able to do based on assumptions in the client’s requirements
Functional requirements - Functions that must be delivered by the software in terms of inputs, processes and outputs
Pseudocode - A simple description of each section of the program in English, with each stage and its refinements numbered.
Pseudocode can be used to communicate to the client what the program does even if they are not familiar with programming languages, as it is written in plain English.
During evaluation, developers assess the program to determine whether or not it fits the client’s requirements and is efficient.
Fitness for purpose - Whether or not the software is able to carry out the processes it is required to do, which were established during the analysis phase. (software specification)
Usability - How user-friendly the software is.
items your program should use to ensure efficient use of coding constructs:
Conditional/Fixed loops
Arrays
Appropriate data types and structures
Procedures/functions with parameter passing
Nested selections
Items which would enhance usability for the user:
Simple user interface
Sensible screen layouts
Understandable prompts
Help screens
Maintainability - How easily changes can be made to the program.
Factors which affect maintainability:
Use of modules
Readability
Robustness - How well the program handles unexpected input.
Programs can be made more robust by using input validation to ensure that any invalid inputs are corrected and the software can continue to run.