F452 - 3.2.1 Designing Solutions to Problems

?

3.2.1 Designing Solutions to Problems

  • Programs aim to ensure that the...
    • User can input data easily
    • Output is clear and understandable

(http://s21.postimg.org/ghwh9wwev/image.png)

1 of 9

3.2.1 Designing Solutions to Problems (2)

  • Very often, the user interface requires data to be input using a keyboard and mouse. Usually takes the form of GUI (Graphical User Interface) or a form-based interface. A member of factors should be considered when designing an input screen...
    • The user - age, computer literacy, disabilities etc.
    • Layout - using headings, not cluttering but using all space etc. | Order - heading at the top, action buttons (in forms etc.) at bottom
    • Validation - interface should reject invalid data
    • GUI objects - objects should make data input efficient/avoid errors
    • Online help - interface should keep user informed (progress bars etc.)
  • Data capture forms are used to collect data to be input into a program.
    • Layout - data fields should match/correspond to paper version
    • Instructions - no validation checks on paper; clear instructions essential
    • Readability - if data cannot be read, it cannot be input (encourage CAPITALS)
  • Reports are presentations of data - must consider...
    • The user - age, computer literacy, disabilities etc.
    • Type of output - often a pie chart can be clearer than text, for example
    • Title - report may be stored and later read out of context; heading essential
    • Date - representative of data at a specific time; date should be included
2 of 9

3.2.1 Designing Solutions to Problems (3)

When designing other types of interface, such as touch screen interfaces, other factors must be considered. For example, the contact areas must be large enough on the otuch screen to be used effectively. People with disabilities should also be catered for, for example, by adding sound output in addition to the visual output.

  • Remember that programs do not necessarily run on a computer.
  • Embedded software (like in a vending machine) will need to be designed.
  • User interface will typically include custom input methods.
  • Software will need to be designed before the main program is written.
  • Output may involve custom screens, LEDs or sound.

Programs need to be presented so that they can be easily checked for completeness. This can be done using a data dictionary. This is a file containing descriptions of the data in a program - these details include:

  • Identifier (i.e. the name) for variables/fields
  • Data type/data structure
  • Size of the data
  • Any validation that needs to be carried out on the data
3 of 9

3.2.1 Designing Solutions to Problems (4)

  • As computer programs are so complex nowadays, it has become difficult for one person to devise a solution or to implement it on their own.
  • modular, top-down design can be used to tackle such problems.
  • Tasks are continually split down using stepwise refinement.
  • Subtasks are implemented independently as modules.
  • These modules are then put together to create a solution for the main problem(http://s17.postimg.org/9aacljryn/image.png)
4 of 9

3.2.1 Designing Solutions to Problems (5)

There are many advantages to modular design:

  • Program is easier to write and test
    • Each module is small and can be written independently.
  • Design clearly shows how different parts of a program relate.
    • Reduces errors caused by different parts of a large program.
  • Programmers working on separate modules can easily develop the program.
    • Modules can be allocated according to expertise of programmer.
  • Modules are written separately to perform a small, specific task.
    • Can be reused in other parts of the program.

An algorithm is a sequence of steps designed to perform a particular task.

Well-designed algorithms list every instruction the computer needs to execute.

This allows the computer to solve the problem.

Program flowcharts use a diagram to show the operation of the algorithm.

They use conventianal symbols and flow llines... (next card)

5 of 9

3.2.1 Designing Solutions to Problems (6)

(http://s17.postimg.org/gkjckc6dr/image.png)

6 of 9

3.2.1 Designing Solutions to Problems (7)

  • Pseudocode is an alternative method that uses text instead of a diagram.
  • It is effectively a simplified version of programming code.
  • Common programming language functions are mixed with English phrases
  • There are no real 'rules' for writing pseudocode, but guidelines do exist.
    • Describe each step as briefly as possible.
    • Use uppercase letters with keywords.
    • Use lowercase letters with code close to English.
    • Indent as appropriate.
  • Rapid Application Development is a method for designing and writing software.
  • It produces successive prototype versions of the software.
  • This continues to happen until the final version is produced.
  • RAD is similiar to the spiral method
    • Several increasingly refined prototypes are created.
7 of 9

3.2.1 Designing Solutions to Problems (8)

(http://s23.postimg.org/wfxzcf1bv/Screen_Shot_2015_04_16_at_08_11_37_1.png)

8 of 9

3.2.1 Designing Solutions to Problems (9)

  • To solve the problem, programmers produce a prototype with reduced functionality
  • This is then reviwed with the end user who can suggest changes
  • This cycle is repeated producing successive prototypes, each time improving
  • Referred to as iterative development, each cycle lasts typically one to three weeks.

Advantages of RAD include:

  • End user is involved in development process
    • Prevents problems caused by misunderstood requirements
  • Prototyping means a tangible product can be seen earlier in the project
    • Provies more ocnfidence for the end user about correct solution
  • Generally the length fo the development is shorter compared to waterfall model
    • Uses Computer Aided Software Engineering (CASE) tools

Disadvantages of RAD include:

  • Not efficient when dealing with large scale projects
    • Initial prototypes dynamically different fron final product
  • Focuses on end result rather than on the processing
    • Can produce solutions that are inefficient in their use of resources
9 of 9

Comments

No comments have yet been made

Similar Computing resources:

See all Computing resources »See all Designing Solutions to Problems resources »