Sigla LCI
OCL Evaluator
Our Laboratory
Our team

A Computer Aided Software Engineering Tool

This software is
The Best Romanian Software
according to BYTE Romania Magazine (CERF 1998).

Download Rocase 1.0 (5,4 Mb)

The product is a CASE (Computer Added Software Engineering) tool for the analysis, design and implementation of software systems belonging to some of the most varied fields (including in activities of business re-engineering) using Object-Oriented Technology (OOT).  It represents a tool indispensable to the new technology of building computing systems, a technology referred to more and more often as visual programming.  From the structural point of view, the tool is composed of: a repository, diagram editors, a browser, a semantic-checker, a code generator, a reverse-engineering tool, a component for the automatic formatting of class diagrams.

The graphic editors represent the first component (otherwise compulsory) with which the user comes into contact.  The sequence of performing the operations compels the user to structure his application.  A project is made up of one or several modules among which there are use relationships.  The architecture of the module is detailed by means of class diagrams.  The behaviour of the classes may be described by means of state-transition diagrams.  Object diagrams may be built to present the dynamic behaviour of the whole application or of one or several modules.  Textual information must be related to graphically represented entities or to their components and is introduced by means of dialogue boxes.  All entities can also be accessed by means of the browser, where they are structurally presented.  The browser permits the search of any entity of the project and allows drag & drop operations between definite classes in different modules. ROCASE Graphical User Interface offers the whole range of graphical facilities typical of these types of applications: menu bars, toolbars, shortkeys, pop-up menus and so on.

ROCASE supports Unified Modelling Language (UML), giving special consideration to the logical view.  Thus, one can build module diagrams, class diagrams, state transition diagrams, object diagrams (collaboration diagrams and message-chaining diagrams).  These diagrams offer different (orthogonal) views of applications, thus allowing an easier understanding of the problem and a more in-depth description of the suggested solution. The tool also allows diferent levels of presentation for the same view. (At the macro level, the architecture is viewed by means of module diagrams, more detail being achieved at the level of class diagrams. The dynamic behaviour is described by means of  object diagrams - at the level of the system or of the module or by means of state transition diagrams at the class level).

Faithful to the principles according to which application are not born in an empty world, that modularity is one of the most important ways to manage applications of large and average sizes, ROCASE gives material help so that users may put into practice these principles for the construction of applications (systems).  The tool offers users two categories of reusable components.  The first one comprises the system of basic (pre-defined) types and the Collection of generic classes used by Object Constraint Language (OCL) for the implementation of multiple associations. The second one comprises the classes of a library (for instance, Microsoft Foundation Classes), design patterns, previous designs.

Since the same information may be presented in different diagrams - one of the basic functions of ROCASE is the preservation of information consistency.  This is done by means of a checking component, active throughout the construction of the application.

The purpose of ROCASE is:

  • To offer a powerful, easy-to-use, safe and flexible tool meant to support applications developers in the use of UML for the analysis, design and implementation of new computing applications, for the analysis and restructuring of old systems made by means of OO Technology (using the reverse-engineering tool).  The use of the tool spares the user the activities which can be automated, allowing him to concentrate on the core of the problem.
  • To be an active tool necessary for the take-in of the new technology.  This task is not imposed solely by the novelty feature.  Reuse at all levels, one of the main features of object-oriented programming cannot be achieved without studying previous experiences, (which have proved to be) positive.  For this purpose, the task of ROCASE is to permit the suggestive presentation of important problems and solutions, to help the developer to use the old solutions in solving new problems.
  • To permit the experimentation of solutions or variants to the yet-unsolved problems in the UML proposal, selected on 17 November 1997 as a future standard for Object-Oriented Analysis and Design Methods  by the Object Management Group.  Taking into account the complexity of the problem, (UML has been working on it since October 1994) looking for a new solution is compulsory.

The connection of our product with the Information Technology is exhaustive. It is aimed at the implementation of a new technology of building computing systems, a more intuitive, more rigorous, more efficient technology. To build it, we used tools, products and techniques having to do solely with the Information Technology. The techniques, tools and products used to make ROCASE belong exclusively to the Information Technology. In addition, the design and implementation of the OCL component (including the generation of the code) were accomplished with the help of the ROCASE version in operation at that time.

The following are features of ROCASE which have not been implemented in other similar tools:

  • The implementation of Collection generic classes described in OCL language and the inclusion of information expressed in OCL in the generated code.
  • The semantic checking, done by the tool all through the construction of the application, in the case of: instantiating generic classes, redefining the methods, the presence of links between two objects, choosing the valid messages, building state diagrams.
  • The possibility of use within the framework of a new project of Collection generic classes implemented for OCL, of the classes of a library which has previously been analyzed with the reverse-engineering tool, of design patterns or previous projects.

In 1995, at the laboratory, we designed and implemented a compiler which translates into a C++ or Eiffel source code the algebraic specifications written in mFOOPS, (a subset of the FOOPS language).  For the non-reactive objects, whose behaviour cannot be specified by means of state-transition diagrams, the use of algebraic specifications represents an attractive alternative, especially if we consider the fact that part of these specifications can be automatically generated based on the information contained within class diagrams.

Without a doubt, the product is a tool which supports the use of a new technology which, although it has succeeded in proving its advantages, still has a long way to go before reaching full maturity.  We are specifically referring to the possibility of complete generation of the code for the designed applications, to the integration within this new technology of an effective trial technique, to the large-scale promotion of reusability, starting exactly with the specification of the system.

ROCASE represents the first generation of a new product.  As it follows from the history of the product, it was preceded by three prototypes.  The first one was built in 1995 for OMT, the second in 1996 for Syntropy, the third one in 1997 for UML.  The conclusions resulting from the trial of the prototypes in the laboratory were used as specifications for the presented product.

We consider that ROCASE deserves an award for its intrinsic qualities: easy-to-use, safe, fast even for average-size applications, (200 to 300 classes) for which it was tested.  The quality of the diagram editors is by far higher than that of all the editors implemented for similar products.  The proportion of the code generated with ROCASE is higher compared to the code generated by similar instruments and is more legible.  The reverse-engineering tool analyzes any C++ code and also Visual C++ and Borland C++ extensions, interpreting correctly and completely the information available within the macros and template classes.  The component of automatic diagram-formatting is fast and extremely competitive.

We consider that ROCASE is part of a restricted number of products which lead the way towards the introduction of a new technology.  The way in which it was conceived permits its upgrading with numerous facilities.  The CASE Tools domain importance, the functionalities implemented for the first time (mentioned under the innovative aspect), the circumstances under which the product was made (human, financial and time resources) and the prospects offered by such an award may be taken into consideration in the case of other products of the same quality.

If you have any comments or suggestions, please send your e-mail at
You can also visit our main page.