Description of the Wheel Loader Information Systems

Caterpillar Inc. embarked on a project called the Wheel
Loader Information System (WLIS). The development environment uses C
programming, Motif, X-windows, Oracle, and an interface builder called UIM/X.
We have developed a large scale X-window program which accesses a relational
database system for keeping track of the specifications of equipment for
Caterpillar. A pilot project was undertaken beginning in the summer of
1993 and continued through the spring of 1994 to determine the feasibility
of this concept. The pilot project was successful at both defining the
scope and content of such a model in addition to beginning the actual
development of the tool. The success of the pilot project has led to
further funding and work is in progress to further develop the model
defined by the pilot project. There was some Smalltalk Research done
for dynamically creating the GUIs which was done as a class project.
This work continue through the winter of 1996. Aurora took the project
on during the summer of 1996 and had some success at the data modeling
and the creation of an inhouse prototype.
An environment was created for generating the
UIMX, Oracle, and C code that was then compiled based upon
the descriptive meta-data. This allowed for major changes
to the code. A new table could be added to the
specification database without writing and debugging tons of
code since all you had to do was update the meta-data
describing the mapping into the real database and
re-generate the application. The primary limitation was
that it could not be done at run-time and compile time was
starting to become very lengthy.
The development environment included a very elaborate versioning
system that incorporated RCS with Makefiles and automatic
generation of code. Our code generation assisted us in doing
tricks in C that you normally could do with inheritance and
polymorphism in Smalltalk. Since the original project didn't
allow for an object-oriented language, we designed it with
object-oriented principles in mind and generated code before
compile time to assist in code-reuse.
Restricted access pages can be found
here.
|