Detailed Design using an Algorithm Description Language

Two categories of algorithm description languages

Benefits

1. Abstraction -- So we don't have to think at two levels of abstraction at the same time.

Levels of abstraction:
  • Class diagram
  • Class skeleton
  • Method logic
  • Statement syntax

It allows the designer to focus on the logic of the algorithm that solves the problem without being distracted by details of language syntax. Example.


2. As a low level design notation, it allows expression of an algorithm in a language INDEPENDENT manner.

a) Communicates quickly and effectively to other designers
b) Can be interpreted by implementors in any language.
3. Allows for verification before the implementation effort begins. For example, identify how each of these examples of poor design could be improved.

4. Can serve as documentation in the implementation. (Example)

5. Designers are expensive, coders are cheap. Don't pay expensive designers to do the laborious (yet straightforward) coding work. Salary Chart(png)
Job Descriptions: Designer   Programmer

6. Can be used in test plan creation (white box tests). Testers don't need to wait for a finished implementation before they can begin writing tests. View graph.