jtrl - Object Specification with TROLL light

What is it?

jtrl is a system for executing object specifications.

Overview

The development of an information system requires the design of a conceptual model that represents aspects of the real world, called the Universe of Discourse. TROLL light is a specification language for the formal description of conceptual models. Validation of a model can be achieved by executing descriptions in a prototypical fashion.

We have developed a system called jtrl for the prototypical execution of TROLL light-object specifications. The process of executing specifications is also called animation. The observable properties of objects during an animation can be checked against the desired behavior specified in the model. A Web-based user interface facilitates interaction with the system.

TROLL light

To illustrate some features of TROLL light we provide an example specification. It was designed to specify a very simple model of a car rental company. The structural part of the specification corresponds to an object model with four classes (see OMT diagram). Dynamic behavior aspects can be described by using a statechart diagram.

System Architecture

The following picture sketches the system architecture of jtrl. Static aspects are shown on the right side of the pyramid, whereas dynamic aspects can be found on the front side.

  • The bottom layer is the core of the TROLL light implementation. A specification is similar to a database schema. On the other side, we have objects and values constituting a database extension.

  • For the purpose of animation, templates have to be instantiated to objects containing values as part of their state. A manipulation layer is responsible for modifying objects. Part of this task is the evaluation of query and event expressions.

  • The user interface visualizes objects and their states. For this we use a conventional web browser and a graph visualization tool. A web browser allows to display information about objects, supports navigating complex object structures by hypertext facilities, and provides manipulation by form field entries.

Functionality

The next figure gives an overview of jtrl's functionality. First, a textual TROLL light specification is compiled into an abstract syntax tree. This representation is further used for execution in an animation session. The manipulation of objects is controlled and observed by different user interfaces.

User Interface

jtrl provides several ways to control an animation. A text-oriented command interface gives full access to all features. Easier to use and more interesting is the web browser interface. In this mode the system acts as a very basic web server reading requests from any kind of browser. A request is analyzed and a new HTML document is dynamically generated and delivered to the client.

The following links show some of the documents generated by jtrl. NOTE: these pages contain links that are meaningful only in an animation session. So, following these links will very likely result in an error message.

  • A start document provides an entry point to a session. The page contains two links, the first one leading to a list of templates constituting a specification, the second one leading to a document describing the root object.
  • The state of objects is displayed by an object document. It contains information about attribute and subobject values, the current behavior state, a list of possible events, and a form field for complex queries and event expressions. Hypertext links are used for relationships between objects and simulation of simple actions like evaluation of derived attributes.

Some aspects of an animation can be appropriately visualized by graph structures. We use the graph visualization tool daVinci to display the aggregation structure of multiple objects and the behavior automaton of single objects. The following links include screen shots:

Here is another screen shot (gif, 57K) showing the combined use of a web browser and daVinci.

System

The current version of jtrl is implemented in Java. It includes a compiler for translating textual TROLL light specifications and an interactive execution environment for animating a specification. Basic HTTP functionality is built-in, so a web browser can communicate directly with jtrl eliminating the need for a web server.

Download

The current release can be downloaded from our ftp server:

Note that the system is still under development and there are more features to be added soon. If you find bugs or want to comment on jtrl, please send mail to mr@informatik.uni-bremen.de

References
M. Richters, M. Gogolla
A Web-based Animator for Validating Object Specifications. In Bipin C. Desai and Barry Eaglestone, editors, IDEAS97: International Database Engineering & Applications Symposium, Montreal, Canada, August 25-27, pages 211-219, 1997.
M. Richters, M. Gogolla
A Web-based Animator for Object Specifications in a Persistent Environment. In Michel Bidoit and Max Dauchet, editors, TAPSOFT'97: Theory and Practice of Software Development: 7th International Joint Conference CAAP/FASE, Lille, France, April 14-18, 1997, volume 1214 of Lecture Notes in Computer Science, pages 867-870, 1997.
R. Herzig
Zur Spezifikation von Objektgesellschaften mit TROLL light . VDI-Verlag, Düsseldorf, Reihe 10 der Fortschritt-Berichte, Nr. 336, 1995, (Dissertation, Naturwissenschaftliche Fakultät, Technische Universität Braunschweig, 1994)
R. Herzig, S. Conrad, and M. Gogolla
Compositional Description of Object Communities with TROLL light. In C. Chrisment, editor, Proc. Basque Int. Workshop on Information Technology (BIWIT'94). Cepadues Society Press, France, 1994.
M. Gogolla, S. Conrad, and R. Herzig
Sketching Concepts and Computational Model of TROLL light. In A. Miola, editor, Proc. 3rd Int. Conf. Design and Implementation of Symbolic Computation Systems (DISCO'93), pages 17-32. Springer, Berlin, LNCS 722, 1993.
S. Conrad, M. Gogolla, and R. Herzig
TROLL light: A Core Language for Specifying Objects. Informatik-Bericht 92-02, TU Braunschweig, 1992.

Home|People|Teaching|Publications
Last change: 11/14/97