Develop-re overview

The CASE tool developed in this work is called Develop-re. The design of Develop-re is made up of three parts:

Parser
This is a partial parser of C++ that allows existing C++ code to be read into Develop-re and also deals with code the user types into Develop-re.

Communicator
This allows Develop-re to browse and modify code using the Emacs text editor. It gives Emacs instructions (using elisp) on what to do and receives the results of the operation using Gnuserv.

Diagram Interface
This draws the diagrams and handles all user input and is implemented using Tcl/Tk.
Develop-re provides five kinds of diagrams. In all diagrams, layout is used to convey information. As a consequence, the users does not have to concern themselves with layout.

Composition Diagram
This diagram shows the member functions and data members of the classes in a program. There is only one Composition Diagram for the entire program.

The composition diagram consists of nodes and relationships between them. The nodes can be "expanded" to show more compositional relationships. In this figure, the Library class has been expanded to show its components. Each node in the digram can also be "opened" to show all the data members and member functions associated with that class.

This figure shows more expansions. The horizontal red line to Client indicates that Client is a component of DBNode by virtue of how the DBNode template was instantiated with Client. Note the layout used to show the composition relationships.

This shows the Client class expanded. It also shows inheritance relationships (the red vertical line).

Compositional Reuse Diagram
These diagrams show which classes use which classes as components, and which classes are template parameters to which classes. There is a compositional reuse diagram for each class.

This shows the compositional reuse diagram for the class Client. Database is a template class, and Client is a parameter to at least one instance of Database. Client is also a component of Book, and itself has components int, String, and Database.

Parameter Dependency Diagrams
These diagrams show the relationship where class A has a member function that takes class B as a parameter. There is a Parameter Dependency Diagram for each class.

This shows the parameter dependency diagram for Client. Client is used as a parameter in a method in Library, and itself uses Book, String, and Database as parameters in its methods.

Inheritance Diagram
This diagram shows the inheritance hierarchy of the entire program, and also "guesses" at what type of reuse is involved.

This shows the inheritance diagram for Client

Friend Diagram
This diagram shows the friend relationship between classes, and between classes and functions, for the entire program.

This shows the friend diagram. The DBNode class is a friend of the Database class, which in turn is a friend of the << function