Table of Contents
An Object Base Design Mechanism for Interactions Between an Ada 83 applications and X Windows
Abstract: An Object Based Design (OBD) mechanism has
been created as a variation of the Model-View-Controller (MVC)
paradigm used by the Smalltalk programming language. The OBD mechanism
encompasses the developmental application and three Commercial
Off-the-Shelf (COTS) software packages: the UNIX operating system,
the X Window System, and an Ada Run Time Environment (RTE). Although
examples are provided that deal specifically with the Joint Service
application, the Joint Tactical Information Distribution System
(JTIDS) Network Design Aid (NDA), the mechanism can be abstracted
to a general framework.
- Due to a GUI based selection by the network designer for a
display of a design abstraction, the GUI invokes the CREATE routine
within the appropriate view package (i.e. the view package associated
with the indicated design abstraction).
- The CREATE routine generates the view object, registers the
view object within the model's view manager, and interacts with
X Windows in order to define required widgets.
- As the content of the view object to be created is dependent
upon true objects, the view package is given all the true objects
necessary to generate the view as a parameter of the CREATE subprogram.
- In order to create the necessary view object, these true objects
must be queried as to the number of components contained within
them. Using this information, the CREATE routine may then, in
an iterative fashion, acquire each component object of each true
object via exported operations applicable to each true object.
- The CREATE routine may then decompose these component objects
into primitives utilizing the exported operations applicable to
objects of the class of which each component is an instance.
If a component object is itself a container class, then this process
- The CREATE routine then interacts with X Windows in order
to define widget values and to generate the physical display.
- When a view object is created, that view object is registered
with the view manager for the model which contains the true object
with which the view object is associated.
- When views need to be refreshed as a result of an update
to a true object, the view manager is passed an updated true object.
The view manager uses this true object as a "key"
and is able to determine what views have been created for that
true object. Each of these views is subsequently refreshed as
follows: the view is passed the true object and views refresh
themselves by invoking the REFRESH operation.
- When a view object is deleted, the view manager unregisters
the view object. For the NDA application, the view manager checks
for other instances of the view object or whether the current
true object has been saved. This determination allows the application
to prompt the user in regards to saving modifications to the true
 McGregor, J.D. and Korson, T.D., "Integrated Object-Oriented
Testing and Development Processes", Communications of the
ACM 37, No. 9, pp. 59-77, September 1994.
. LaLonde, W.R. and Pugh, J.R., "Inside Smalltalk Volume
2", Prentice-Hall, Inc., Englewood Cliffs, NJ 1991.
 Sasine, J.M. and Toal, R.J., "Implementing the Model-View-Controller
Paradigm in Ada 95", TRI-Ada '95 Proceedings, The Association
of Computing Machinery, Inc., pp. 202-211, 1995.