DB-MAIN : une boîte à outils pour l'ingénierie de systèmes d'informations
DB-MAIN offre un solide support à la plupart des activités d'ingénierie et de rétro-ingénierie. En particulier, il comprend les fonctions et composants suivants :
- Gestion de spécifications : accès, consultation, création, mise à jour, copie, analyse, mémorisation.
- Représentation de l'historique du projet comprenant les produits (schémas, textes sources, programmes générés), les processus qui utilisent ou génèrent les produits, et les décisions prises.
- Un modèle générique, à large spectre, de représentation des objets conceptuels, logiques et physiques.
- Un modèle générique de description des composants procéduraux des systèmes, à différents niveaux d'abstraction, avec leurs trois relations.
- Des annotations sémantiques et techniques semi-formelles, attachées à chaque objet de spécification.
- De multiples affichages des spécifications (4 affichages hypertextes et 3 affichages graphiques), certaines étant particulièrement bien adaptées à de très grands schémas.
- Une collection de plus de 25 opérateurs de transformation à sémantique constante destinées à réaliser de manière systématique des activités telles que de la normalisation conceptuelle ou du développement de schémas logiques et physiques optimisés à partir de schémas conceptuels, et inversement (rétro-ingénierie).
- Des générateurs de codes (dont un générateur SQL avancé), des générateurs de rapports.
- Des extracteurs de code permettant d'extraire un schéma physique à partir de code source SQL, COBOL, CODASYL, IMS ou RPG, et à partir de documents XML;
- Des analyseurs de code source programmables qui peuvent être utilisés, entre autre, pour détecter des constructions typiques assez complexes dans des textes sources pour construire un diagramme du flux des données à travers les variables des programmes.
- Un processeur de noms sophistiqué qui permet de nettoyer, normaliser, convertir et traduire les noms des objets sélectionnés dans un schéma.
- Un moteur méthodologique qui aide les utilisateurs de l'atelier à suivre une méthode d'ingénierie et qui tient à jour un historique des activités d'ingénierie, ce qui permet de les rejouer, de manière automatique ou assistée.
- Importation/exportation de spécifications aux format XML.
- Une série d'assistants : un assistant est une sorte d'expert dans lé réalisation de tâches d'un certain type, ou dans la résolution de certaines classes de problèmes, destinés à aider l'analyste dans des tâches fréquentes, fatigantes ou complexes. Il fournit également un environnement de développement de scripts pour automatiser des fragments de processus. Une librairie de scripts prédéfinis est fournie pour aider lors des activités les plus fréquentes.
Six assistants sont disponibles actuellement :- un assistant de transformation globales de base propose des solutions standards aux problèmes structurels les plus fréquents;
- un assistant de transformations globales avancé permet d'automatiser l'application de transformations complexes et de développer des scripts sophistiqués;
- un assistant d'analyse de schémas permet d'évaluer la conformité d'un schéma à des modèles de données utilisateurs ou prédéfinis, et de rechercher des éléments structurels dans de grands schémas;
- un assistant d'intégration qui offre une palette d'outils pour intégrer des schémas, des types d'entités, des types d'associations et des attributs composés avec différents niveaux d'automatisation;
- un assistant d'analyse de texte qui offre une palette d'outils d'analyse de textes;
- un assistant de recherche de clés étrangèresqui propose diverses heuristiques pour retrouver des clés étrangères dans des bases de données héritées
DB-MAIN a été développé en C++. Il est largement utilisé dans des industries pour du développement de systèmes, mais aussi pour de la rétro-ingénierie, de la redocumentation, de la ré-ingénierie et de la migration de projets.

