Reusable Object-Oriented Architecture for Graphical Editors
The figure below is an example of a portion of a reference software
architecture captured in an object-oriented
architecture style. This architecture, which is the architecture used in
the Domain Modeling Environment (DoME), has been used to develop several
graphical (boxes and arrows) editors for a variety of graphical modeling notations
(e.g. IDEF, ExpressG, Petri nets, and the graphical editing tools for the ControlH and MetaH architecture specification
languages). This particular style makes use of a class hierarchy and
inheritance, and the figure shows the class hierarchy. Knowledge of this
architecture is embodied in a tool called MetaDoME,
which accepts a description of a graphical language and automatically
generates an editor for that language. To use a metaphor, MetaDoME is a yacc
that accepts graphical syntax specifications. An important characteristic of
this architecture is that it provides a careful separation of the
automatically generated portions of an editor from the inevitable hand-coded
portions, making use of a methodology of defining subclasses and inheriting
methods for this purpose.