| Charles B. Kreitzberg, Ph.D.
President
Cognetics Corporation
This article was originally published in Dr. K's Cafe, an online newsletter.
A source of much confusion in software design is the
failure to realize that there are two different kinds of design which go into the creation
of a software program. These are: (1) interaction design and (2) technical design.
Traditionally these two design domains have been intermixed in an ad hoc fashion, to the
detriment of usability.
Technical design relates to the architecture of the
program itself; the code which executes business functions as well as the code which
manages data access and interacts with the operating environment.
Interaction design relates to the architecture which the
user sees. It is concerned with screen objects, data representation and navigation.
In a two-stage approach, such as LUCID, the assumption is that the interaction design
will largely precede the technical design. It is an extension of the requirements analysis
process. Whereas simple requirements analysis specifies *what* the software must do, the
interaction analysis adds *how* the software should do it.
The sequence of activities is:
| Stage 1 |
interaction analysis -> prototype ->
design QA/iterative refinement |
| Stage 2 |
technical analysis ->
technical design -> implementation -> QA |
This is, by the way, oversimplified. Since
the performance of the UI depends upon the underlying technical architecture, there must
be some overlap between stages one and two. Note that there are two QA steps, one
associated with each stage.
Another way of looking at the two-stage methodology comes
from object oriented analysis and design (OOA/D), in which a three tiered architecture is
sometimes used. The three tiers are:
| Presentation Layer |
| Business Objects Layer |
| Data Management Layer |
The interaction analysis applies to the
presentation layer, while the technical design applies to the business objects and data
management layers. Each layer communicates with the adjacent layers through messaging.
The interaction analysis and technical analysis can use
similar methodology (such as use-case and scenario) but the interaction analysis is
usually conducted at a fine level of granularity which would be confusing and
inappropriate for the entire system. |