Designing solutions to problems
Good interface design will require -
- Consistency - Each screen has a similar and familiar layout.
- Usability - How easy is it for the user to interact with the system. Requires understanding of the users skill level
- Reuse - Able to reuse a interface or parts of an interface. For example apple uses touch screen gestures in many different devices.
- Simplicity - A interface will have the most commonly used elements as the most accessible. The interface will attempt to cut out any unnecessary steps in order to make the whole experience easier and more more efficient for the user.
- Feedback - A interface will provide visual or tactile feedback to the user to let them know their input has been accepted.
General notes on interface design
- Interface design is broken down into two sections. Input and output design
- Good design requires the use of interface controls. Also known as components. These include list boxes, text boxes, radio buttons and tick boxes.
- Interface design must take into consideration the user and the purpose. Not all designs will be form or GUI based.
- Output design can take the form of reports. A report will normally be the result of a database search which will always have a date, title and ordered list of results.
- Output design may be grouped. For example a list of books owed by students in a library. It would first list the students alphabetically and then, under each student, list all of the books they owe.
- When creating a form you must always include a title and instructions to the user.
Always consider -
- What information is required to be inputted
- What is the best user interface control for that input
- Are there any further elements required
Algorithms
- A algorithm is a structured sequence of instructions which perform a specific task.
- A algorithm is measured by the amount of time it takes to run given a input. Some algorithms will run faster than others with the same input.
- Algorithm efficiency is the amount of time it takes for it to complete compared to other algorithms which perform the same function. For example bubble sort and quick sort both sort lists of numbers but quick sort is much faster than bubble sort with large amounts of numbers.
- Algorithms are always written in psuedocode
- You can represent a algorithm using a flow chart
Top down design
- Problems should be split into smaller sections. These sections are known as modules.
- When a problem is split into modules these then can be split further. Modules should be split until it is not feasible to split them any further.
- A module must have a specific purpose. It will also have it's own input, output and storage. A module will be made up of one or more procedures.
- Modules, if well defined, can be developed by different developers to help speed up implementation.
- A prototype is version of the final system which has limited functionality. A prototype will be made up of a number of modules.
- Iterative development is where modules are added to a prototype to produce a more enhanced prototype. This process is then repeated until the final system is complete.
Rapid application development (RAD)
- A system is broken down into modules. Each module is analyzed and designed separately
- By building a module a prototype is created which can be used. This means a workable system can be built very quick.
- RAD allows each module to be handled separately so many developers can work on the same system.
- Allows changes to the requirements as each part is designed separately. Much more flexible than other models.
- Only viable on larger systems. Small systems will gain no benefit from RAD.