Tool Support for Domain Modeling

The domain modeling activity starts with the creation of the multiple graphical views. The prototype environment uses a customized version of IDE's Software through Pictures (StP) as the front end to capture the multiple views. The StP environment was customized in two ways. First, the menu structure was changed to make it more consistent with the domain modeling method. The prototype menu consists of a set of icons, each corresponding to one of the views. Selecting each icon results in the invocation of the appropriate graphical editor for creating that view. Secondly, the schema in the underlying TROLL database was evolved by adding a new set of relations that capture the semantics of the domain model as represented in the graphical views. The relations serve as the interface between the front end graphical environment and the object repository, and they are independent of the StP environment.

We also extended the StP environment by integrating our own tools with it, in such a way that they could access the information in the underlying database as well as adding information to it. The Domain Model Relations Extractor (DMRE) extracts the information contained in the multiple views of the domain model from StP's TROLL relational database, interprets the information semantically according to the domain modeling method, and stores it in a common underlying relational representation. The Domain Model Relations Browser (DMRB) extracts, formats, and displays the domain model information in a relational format. The Domain Model Consistency Checker (DMCC) checks for consistency among the multiple views. Inconsistencies, if any, are displayed and must be corrected by the domain modeler. The entire process of creating the domain model relations and checking their consistency is repeated until a consistent set of relations is generated.

Once the relational representation has been determined to be consistent, the domain analyst uses the Domain Object Repository Generator tool to create a key component underlying the tools in our software engineering environment: the object repository. This repository is a single composite object that is composed of other objects representing domain object types, features, and the relationships among them which serve to define a domain model. The Domain Object Repository Generator tool takes the information captured in the relational representation and creates corresponding objects according to the object repository's schema. For example, if the domain analyst had created eight object communication diagrams using StP, the Domain Object Repository Generator tool would create eight instances of class OCD, the class defining object communication diagrams. Similarly, this tool will create objects representing the aggregation hierarchy, generalization/specialization hierarchies, and state transition diagrams, as well as the domain object types, external object types, and messages which are represented in these diagrams.

Another tool in our prototype software engineering environment supporting domain modeling is the Feature/Object Editor tool. Once the object repository representing a domain model has been created, the domain analyst can use this tool to define new features by: 1) giving each new feature a unique name, 2) entering an informal annotation for each new feature, 3) specifying object types supporting the feature being defined, and 4) specifying other features required by the feature being defined. The Feature/Object Editor can also be used to browse features previously defined for a given domain model, delete features from the domain model, or modify the definition of features in a domain model.

The last tool supporting domain modeling in our prototype software engineering environment is the Domain Object Repository Report Generator tool. At any time after creating the object repository the domain analyst can generate a report on the contents of a given domain model by using this tool which extracts select information from the object repository as specified by the domain analyst, formats that information using the LaTeX typesetting program, and displays the resulting document in an X-Windows document previewer.