A modeling framework
What makes Rever DB-Main different from other tools ?
Rever DB-Main offers all the functionalities and features of most other standard data-modeling tools, boosted with many powerful components that these tools rarely or never offer.
The data model encompasses major conceptual models (ER, UML class diagram, UML activity diagram, UML use case diagram and others), modern logical models (relational, object-relational, object-oriented, XML, ...), legacy logical models (CODASYL, IMS, COBOL files, RPG files, ...) and physical models (C, C++, Java, Pascal, COBOL data structures, etc). In addition, the method modeling component allows you to define any of these sub-models.
Several assistants included
These assistants help developers reliably perform complex and tedious tasks: schema transformation, schema analysis, schema integration, physical design, code analysis (including programming cliché/pattern search engine, dependency graph analysis and program slicer). Most of them include a scripting facility to record and reuse frequent procedures.
Not just a draw-and-generate tool
Systematically and reliably build and fine-tune complex databases. Powerful analysis, transformation and generation toolboxes are included. The tool preserves all specifications (information structures and integrity constraints) from the conceptual level down to the code, a warranty that most current CASE tools simply cannot give you.
For reverse engineering
Really reverse engineer most existing legacy databases (i.e. ill designed and undocumented), ranging from COBOL and RPG files to relational and XML databases, thanks to the specific models and processors included.
Work the way that suits you best without constraints on processes or on products. The method modeling component allows you to define specific methods.
4 levels of programmability allow you to build reusable process fragments or complete processors that are integrated seamlessly into Rever DB-Main.
Various plugins have been developed (by the Rever DB-Main team or by the users themselves) to cope with advanced engineering processes: interoperability, wrapper design and generation, XML engineering, Java generators, parametric SQL generators, report generators, special graphic tools, temporal database design and generation, trigger analysis, etc.
Short error detection / fixing cycle
Rever DB-Main is distributed through this website, making the error detection/fixing cycle very short (a new release is available in less than 2 weeks). The tool is distributed with a rich collection of tutorials, manuals, sample code and case studies to help you understand the database engineering realm and master the various components of the tool.
A modeling tool development environment
Rever DB-Main allows the development of specialized modeling tools, either according to specific methodologies, or by adding new concepts and new functions to the basic toolset.
There are three ways to derive customized modeling tools :
- Functional extension :
The JIDBM library is proposed to the engineer (analyst or method engineer) to develop new functions which will be seamlessly incorporated in the tool. For instance, they allow the building of specific report and code generators, text analyzers (e.g. importers), complex transformations or specifications checkers for specific problems and usage contexts.
The JIDBM library is a Java Interface for Rever DB-Main. It can be used to develop Java plug-ins accessing the Rever DB-Main repository in read and write mode. This library can access to all menu items of Rever DB-Main.
There are two samples of Java programs :
- a small program that displays some statistics about an ER-schema
- a SQL generator for relational compliant ER-schemas
Note : Voyager 2 was the first programming language in Rever DB-Main before the success of Java. For backward compatibility, the execution of Voyager 2 plug-ins is always available but, currently, Java is the only programming language for Rever DB-Main plug-ins.
- Extension of the repository :
The repository is implemented as an object-base in which the tool records the current methodology, the project history, and the product specifications (mainly schemas and texts). New properties can be dynamically added and managed through Java functions.
- Methodological customization :
Due to its basic architectural assumptions (e.g. generic specification model, transformation operators, toolkit architecture), the tool is methodologically neutral, and can assist the analyst in practicing a large spectrum of methodologies. The methodological customization is carried out in two steps, namely the description of the selected methodology with the Method Description Language (MDL), and the enacting of this methodology through the method engine of the Rever DB-Main tool.
The language allows the description of the processes, the strategies and the products of the methodology, as well as the specific aspects of the user interface (e.g. menu contents, graphical conventions, concept names).
This customization is useful for user guidance, but above all it provides a precise and structured way to record engineering histories necessary for the control of system maintenance and evolution.
A toolset to support information system engineering
Rever DB-Main offers a strong support for most forward and reverse engineering activities. More specifically, it includes the following functions and components:
- specifications management : access, browsing, creation, update, copy, analysis, memorizing
- representation of the project history comprising the products (schemas, source texts, generated programs), the processes that use or generate the products and the decisions
- a generic, wide-spectrum, representation model for conceptual, logical and physical objects
- a generic model that describes procedural components of information systems at different abstraction levels as well as there relations
- semantic and technical semi-formal annotations attached to each specification object
- multiple views of the specifications (4 hypertexts and 3 graphical views); some views are particularly intended for very large schemas
- a tool box of more than 25 semantics-preserving transformational operators intended to carry out in a systematic way such activities as conceptual normalization, or the development of optimized logical and physical schemas from conceptual schemas, and conversely (i.e., reverse engineering)
- code generators (including a sophisticated SQL generator); report generators
- code parsers extracting physical schemas from SQL, COBOL, CODASYL, IMS, RPG source programs and XML documents
- interactive and programmable source text analysers which can be used, a.o., to detect complex programming patterns or clichés in source texts, and to build data flow diagrams through program variables
- a sophisticated name processor in order to clean, normalize, convert and translate the names of selected objects in a schema
- a method engine that help users follow engineering methods, that maintains the history of the engineering activities, and that makes their further automatic or assisted replay possible
- import and export of specifications in XML format
a series of assistants : an assistant is a sort of expert in a specific kind of tasks, or in a class of problems, intended to help the analyst in frequent, tedious or complex tasks. It also provides the environment to develop scripts which automate process fragments. A library of predefined scripts is provided for the most frequent activities. Six assistants are currently available:
- a basic global transformation assistant proposes some standard solutions to most frequent structural problems
- an advanced global transformation assistant automates the application of complex transformations and makes it possible to develop sophisticated scripts
- a schema analysis assistant allows the evaluation of schemas against user defined or predefined data submodels and searching large schemas for complex structural patterns
- an integration assistant offers a set of tools for integrating schemas, entity types, rel-types and compound attributes at different levels of automation
- a text analysis assistant offers a set of tools for text analysis
- a referential key assistant which proposes some popular heuristics to find foreign keys in legacy databases.
Rever DB-Main has been developed in C++. It is widely used by industrial partners, in system development, but also in reverse engineering, redocumentation, reengineering and migration projects.