DB-MAIN as a toolset to support Information System engineering
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 allowing cleaning, normalizing, converting and translating 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.
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.

