GoConqr has a new look! Let us know what you think.

Mind map

Defensive Design

Lewis Evans English

Map content

Defensive Design

  1. Defensive Design

    • When codes are functioning correctly, they should never break and never produce errors. Programmers try to protect their programs through defensive design. They will try to anticipate how users might misuse their program, then attempt it from happening. Ensure their code is well maintaned and reduce the number of errors in the code through testing
    • Programmers can use a mixture of input sanitisation and validation to verify that the inputted data has an acceptable format before passing it into the program
    • Help to ensure programs function properly
    • The easiest way for a user to accidentally or intentionally misuse a program is when entering data. 2 ways to prevent users from entering something you don't want them to.
      • Input Sanitisation- removing any unwanted characters before passing data through the program
        • Input Validation- Checking if data meets certain criteria before passing it into the program
    • Sanitisation and validation are often done using whitelists and blacklists. Whitelists tend to be more secure, however they can take a long time to set up and they can be too restrictive
      • A whitelist is a list of all data that a program should accept- any data that isn't on the whitelist will be rejected
        • A blacklist is a list of all the data that a program should reject- any data that isn't on the blacklist will be accepted
    • Authentication can confirm the identity of a user before they are allowed to access certain pieces of data or features of the program A common way that programs do this is using passwords
      • Passwords are usually associated with a surname. When someone tries to access a protected part of the program, it should ask them for a password to check that they are who they claim to be
      • Forces users to use strong passwords and get them to change their passwords regularly
        • Limit the number of failed authentication attempts before access to an account is lost
          • Ask for a random selection of characters from the password on each authentication
  2. Intergrated Developement Enviroment

    • Provides programmers with lots of handy tools when they are coding.
    • A piece of softwaret hat provides features to help a programmer to develop their programmer
    • The code editor is the main part of the IDE, it is where the code is written. Most code editors will have line numbering and auto-colouring for things like strings, functions, loops, variables and comments
    • A run-time environment allows the code to be run quickly within the IDE- this is done using a start or run button. The run-time environment can also help to identify logic errors in the program as the programmer can see which part of the code is running
    • An explorer window will help navigate through programs
    • Breakpoints are a common debugging tool, they stop the program on certain lines so you can gather information like the value of variables as the program is running
    • Error diagnostics and debugging tools help to find and fix errors in a program- they'll tell you the location of the error and often suggest ways to fix it
    • A translator (compiler, interpreter or both) which will translate the source code into machine code. If the IDE has both then you can take advantage of each translator's best features
    • Auto-documentation helps with the maintenance of programs. It can extract certain features of a program, like the names of variables, names of sub programs and comments. This information is stored in a separate document to give a summary of what the code does
    • A graphical user interface (GUI) builder helps the program design a user interface by building it up graphically rather than having to design it using source code. It allows you to drag and drop different objects and customise them, so you can make the interface look exactly how you want it to

Information

Description
Mind Map on Defensive Design, created by Lewis Evans on 27/06/2019.
Created by
Lewis Evans
Views
1
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?