7. design rules


Find a book on guidelines. List the guidelines that are provided and classify them in terms of the activity in the software life cycle to which they would most likely apply.


We use as a source of guidelines Mayhew's book Principles and Guidelines in Software and User Interface Design [230]. In general, all guidelines offer constraints on the design activity and so should be known during the requirements phase. In the following list, we will concentrate on what other stages (architectural design, detailed design, coding and unit testing, integration and testing) will be most affected by the guidelines. The numbers in parentheses indicate the page reference for the given guideline.

Architectural design

  • Present functionality through a familiar metaphor. (97)
  • Provide similar execution style of analogous operations in different applications. (97)
  • Organize the functionality of a system to support common user tasks. (442)
  • Make invisible parts and processes visible to the user. (95)

Detailed design

  • Consistent dialog style for different functions. (97)
  • Match menu structure to task structure. (144)
  • Create logical, distinctive and mutually exclusive semantic categories with clear meanings. (150)
  • Design and organize a fill-in form to support the task. (184)
  • Consider voice synthesis as an output device when the user's eyes are busy, when mobility is required, or when the user has no access to a workstation or screen. (427)

Coding and unit testing

  • On full-screen text menus, present menu choice lists vertically. (148)
  • In a fill-in form, use white space to create a balance and symmetry and lead the eye in the appropriate direction. (186)
  • Avoid frequent use of shift or control keys. (256)
  • Place high-use function keys within easy reach of the home row on the keyboard. (281)

Integration and testing

  • Allow full command names and emphasize them in training, even if abbreviations are allowed. (261)

Other exercises in this chapter

ex.7.1 (ans), ex.7.2 (ans), ex.7.3 (open), ex.7.4 (ans), ex.7.5 (ans), ex.7.6 (ans), ex.7.7 (tut), ex.7.8 (tut), ex.7.9 (open)

all exercises for this chapter