A Pattern Language for software systems.
A Partial Hierarchy of Parts for Software:
Graphic Design for Electronic Documents and User Interfaces
by Aaron Macus, ACM Press, 1992, Figure A.1 Windowing System
Component Terminology, page 188.)
Graphical User Interface
Window with Kbd Focus
Modeless Dialog Box
Modal Dialog Box
Window Menu Bar
Implicit Pop-Up Menu
Explicit Pop-Up Menu
Other GUI elements ...
Hierarchy of Parts
As described in
Anatomy of a Pattern Language
a pattern language consists of a hierarchy of parts linked
together by patterns which solve generic problems.
Such a hierarchy is very similar to the widget hierarchy
defined in the GUI code for a software application.
An example of a part in a software product is the part window system.
The part window system
combined with other parts make up the part
GUI (Graphical User Interface).
On the other hand, the part window system can be decomposed into
parts (interface components or widgets), such as
dialog box, query box, message box, close control, size control,
scrollbar, menu, and so forth.
Some Example Cyberpatterns
Patterns for software systems might be generated by
diving deep into what makes a certain part work in certain contexts.
Or they may be generated by pursuing
a particular subject like navigation, error messages, performance,
or integration and release engineering issues.
To illustrate we present some generic patterns dealing with the subject of
Each of these patterns apply to the part
whether on paper or electronic.
Other patterns may apply to more specific parts or contexts.
For an example of a pattern specific to hypertext, including Web pages, see:
is developing a growing body of Cyberpatterns
Software Design & Engineering