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