Defensive Design Considerations:
- Input Sanitation: Removing any wanted characters before passing data through the program
- Input Validation: Checking if data meets certain criteria before passing it into the program. For example, checking that an email address contains ‘@’
- Authentication: can confirm the identity of a user. For example, passwords.
Maintainability:
- Comments: Useful for explaining what key features of a program do
- Indentation: Used to separate different statements in your program. Makes the code more understandable and easily readable.
Testing:
- Syntax Errors: when the compiler or interpreter doesn’t understand something you’ve typed because it doesn’t follow the rules or grammar of the programming language
- Logic Errors: When the compiler or interpreter is able to run the program, but the program does something unexpected
- Iterative testing: The program will go through the development cycle a few times. The idea is to try and get the program to match what the customers really want
- Final testing: The program only goes through the development cycle once. This meets the initial requirements of the customer. The customer will get what they asked for but not up to a high standard.
Types of data:
Normal data – data that a user is likely to input into the program
Extreme (Boundary) data – values at the limit of what the program should be able to handle
Erroneous data – Inputs that programs should not accept