Change Request Tool
The Change Request Tool was specifically designed as a money-saving device, giving non-engineering personnel the ability to submit change requests to the code configuration management repository without requiring assignment of a relatively expensive license. It also served to channel the thought processes of, and standardize the information given by, the submitter of the change request.
Change Submission Tool
I developed the Change Submission Tool to systematically capture data about all changes to the codebase. Not only did it direct the developer's thinking so as to provide standardized and controlled information helpful to both the building and testing processes but the tool also assigned the developer a unique submission identifier which, when attached to all changed elements, associated those elements with the generated submission report. This feature provided a clear and concise change audit trail.
Change Report Tool
The Change Report Tool generated an HTML report listing all the Code Submission Reports (see Submission Tool above) since the previous build/release. To see an example of such a report, click here.
Computervision's DesignPost applications are a series of design automation solutions. For example, the following is a view of the DesignPost Drafting product:
My DesignPost work largely consisted of extension language design, development, testing and training (see next section).
EXL / VB is a proprietary extension language to Visual Basic which allows a DesignPost end-user as well as an application developer to automate DesignPost functionality. For example, the following EXL/VB code fragment would create a line on the DesignPost interface:
'create a line from (0,0) to (20,20) cvStatus status = CV_SUCCESS; cvLine line1; line1.start.x = 0; line1.start.y = 0; line1.end.x = 20; line1.end.y = 20; status = cvInit(); 'Begin communication with DesignPost status = cvCreateLine(line1, CV_COMMIT); 'Draw the line and commit it to the database status = cvTerm(); 'Terminate communication with DesignPost return status;
My participation in the EXL/VB project consisted of:
I originally developed the EXL Wizard as a tool to automate regression testing of the numerous EXL/VB functions that were under construction. It was then recognized as a useful addition to the Help system, allowing an EXL/VB developer to view an API call in action and in context. The following sample view of the Wizard shows how the cvCreateArc example draws an arc on the DesignPost interface. In addition to executing the example, the developer could view both the example code ("View Example") and API specification ("View Spec").
EXL / VB Training
I developed a one-day EXL/VB training course with lecture and hands-on exercises that I taught in-house for several years. This eventually became the basis of the commercial course offered to DesignPost customers around the world.
A DesignPost Tool is a function that appears on and can be invoked from Computervision's DesignPost Interface by means of a menu item or icon. The following palette contains eight icons representing eight Tools for selecting and creating geometry. The code for these Tools could originally be created by using the Tool Wizard and later by using the Tool Definition Language.
Tool Writing Training
In 1993 I was asked to organize a course to teach both internal developers and customers how to write a Tool for DesignPost. This included developing a student guide, lecture material and numerous examples and exercises. I continued to teach and expand this two day course over the next three years.
The original Tool Wizard was an outgrowth of Tool Writing Training. Certain early aspects of Tool writing were so repetitive that it was obvious that this was a job for computers. The Tool Wizard was first written in Visual Basic on Windows and later rewritten in C++ on Unix. It consisted of a series of dialogs that prompted the developer for information about the Tool under development and then, from that information, generated the appropriate directory structures and files required to create the desired Tool. The following is an example of one of the dialogs that prompted for Tool characteristics:
The Tool Wizard was ultimately abandoned for the Tool Definition Language but during its heyday was well received by such customers as Ford, Cascade and Framatome who reported an increase of productivity for writing a Tool from one day to one hour.
Tool Definition Language (TDL)
The Tool Definition Language is a set of keywords with syntax and semantics which describes the basic properties and behaviors of a Tool and, when processed, generate C++ code that defines these fundamental attributes of the Tool and provides skeleton event-handling functions that the developer can then use to code the more complex reactions to user input.
TDL Test System
In 1996 I was assigned the task of automating the regression testing of hundreds of TDL statements for both compilation and runtime behavior. I achieved this by using shell scripts in conjunction with a directory structure based on TDL keywords. I also used a MicroSoft Access database for tracking the over-400 tests, their descriptions, expected output and results.
Object Modeling Technique
The Rumbaugh Object Modeling Technique (OMT) was the brain-child of James Rumbaugh. According to Dr. Rumbaugh's biography, "He has been working on object-oriented methodology and tools for many years. He developed the DSM object-oriented programming language, the state tree model of control, the OMT object modeling notation, and the Object Modeling Tool graphic editor. The foundations for the OMT notation were developed more than 10 years ago with Mary Loomis and Ashwin Shah of Calma Corporation."
When I began employment at General Electric's Calma Corporation in 1986 I worked under the auspices of Ashwin Shah and Mary Loomis. Thus I had the privilege of participating in the early experiments with the notation and technique and in providing input into its evolution.
The following sample OMT model shows the various relationships between hypothetical product and pricing objects: The Contract Product, Group Product and Quote Therapy Product are all a subclass of the more generic Product object and all products have a price associated with them.
Jim Rumbaugh was ultimately instramental in the development of the Unified Modeling Language (UML) in collaboration with Grady Booch and Ivar Jacobson at Rational Software Corporation.
Object Modeling Tool
Early work using the Object Modeling Technique consisted of models developed, at best, using Macintosh drawing programs and, at worst, using paper and pencil. Neither method was conducive to ease of maintenance and modification. It was soon realized that a more intelligent tool was required and thus the Object Modeling Tool was born. The earliest work on the OMTool was done at GE Calma Corporation. My participation in this work consisted of:writing the requirements specification, a 20-page document defining the application, user interface, metamodel and system requirements for the OMTool. I also participated in the early prototype development work.
As descibed by the CERN European Laboratory for Particle Physics which used the OMTool extensively in many of its projects:
"The object models are used to generate the data structures for an application and the outline of the code. OMTool automates the process of preparing models, updating them, adding implementation details, and generating data structure and program skeletons for object-oriented languages. OMTool can also generate C++ classes directly from the model and it can be used with OMT/SQL to generate relational database schemas. In addition to object-oriented applications, OMTool can generate object models that are useful for the design of non-object-oriented languages as well."
The Object Modeling Tool ultimately evolved into Rational Rose when Jim Rumbaugh moved from General Electric to Rational Software Corporation in 1994.
The DSM (Data Structure Manager) language was an additional brain child of James Rumbaugh. At the same time that we at Calma were working with the Object Modeling Technique, we also began experimenting with Rumbaugh's DSM language to determine its usefulness in large-scale production. Eventually we also participated in the expansion of the language.
My work on DSM consisted of:
DSM Test System
In 1987 I was asked to create a system for automating the regression testing of DSM and its associated object library. I achieved this by using the DSM interpreter to execute over 2800 scripts, compare the output to pre-defined benchmark files and generate a pass/fail report from the results.
In 1988 I began developing the curriculum and teaching the DSM language within Calma and I continued this work over the next several years. The course consisted of two days of lecture along with numerous hands-on exercises. After Computervision bought Calma from General Electric in 1989 my teaching experience extended to Computervision's R&D center in Bedford, MA in order to expand usage of DSM within the company.