J'ai le plaisir de vous annoncer la sortie de la version 4 de Mocodo.
Pour le dire rapidement, Mocodo est un logiciel de modélisation qui couvre une partie des fonctionnalités du fameux Looping, et en ajoute quelques autres, essentiellement orientées pédagogie.
Mocodo n'est pas exactement né de la dernière pluie. Sa première version publique date de 2012. Et quoique rarement mentionné sur ce forum, il n'est pas non plus totalement délaissé : chaque jour, au moins 200 utilisateurs travaillent sur sa version web, et une cinquantaine installent sa version en ligne de commande. Les pics de fréquentation semblent le fait de groupes d'étudiants en salle-machines.
Mocodo peut paraître un peu bizarre, en ce qu'il n'adopte pas l'approche WYSIWYG dominante. S'inscrivant dans la mouvance Diagram as Code représentée par PlantUML, Mermaid, Graphviz, etc., il repose sur un langage dédié, également appelé Mocodo. On y décrit la logique du MCD sans se préoccuper de son plongement (i.e., comment disposer les éléments). La courbe d'apprentissage commence donc indéniablement par un seuil, mais qui ne devrait pas être insurmontable non plus :
Même si la plupart des membres de ce forum ont manifestement déjà trouvé leur bonheur ailleurs, je me permets d'y faire un peu de pub pour mon logiciel.
Je dirais que Mocodo a un avantage incontestable : son algorithme de plongement automatique. Passer du MCD de gauche au MCD de droite demande un clic et une fraction de seconde :
Les autres caractéristiques de Mocodo pourront être regardées par certains comme des avantages, par certains comme des inconvénients, et par certains comme en dehors de leurs préoccupations. Je les liste tout de même en vrac :
- Libre (MIT) et gratuit.
- Open source (Python / PHP / Javascript).
- Multiplateforme.
- Trois interfaces : web, ligne de commande, Jupyter Notebook.
- Tutoriel en ligne.
- Documentation exhaustive avec plus de 100 figures.
- Interface web adaptable au niveau de connaissances ou aux besoins de l'utilisateur.
- Support de l'internationalisation. Localisation en anglais et en français.
- MCD partageables via une URL ou un QR code.
- En entrée, possibilités inhérentes au format texte : contrôle de versions, génération automatique, traitement par lots, etc.
- En sortie, formats ouverts : HTML, Markdown, LaTeX, texte brut, SVG, PNG, PDF, Mermaid, PlantUML, Graphviz, etc.
- Tracé en vectoriel dans de nombreux styles.
- Rendus interactifs (explications au survol, dévoilement progressif).
- Support complet (du moins j'espère !) des entités faibles, des rôles, des agrégats, de l'héritage, des contraintes d'unicité et d'optionalité.
- Support partiel des CIF et des contraintes sur associations.
- Diagramme relationnel.
- Graphe des dépendances.
- Dictionnaire des données paramétrable.
- Génération d'explications du passage au relationnel.
- Conversion en SQL ANSI et dans ses principaux dialectes. Protection automatique des mots réservés dans chaque dialecte. Mise en forme automatique des libellés.
- Conversion dans d'autres notations : UML, Chen, crow's foot, DBML.
- Possibilité d'écrire ses propres gabarits de conversion en relationnel.
- Nombreuses possibilités de réécriture : inférence de types, homogénéisation des libellés, correction des fautes courantes, ajout des entités manquantes, etc.
- Génération de MCD aléatoires.
- Masquage de MCD par obfuscation aléatoire ou application de libellés génériques.
- Génération d'exercices.
- Décomposition des associations.
Je ferai de mon mieux pour répondre ici à vos questions éventuelles. Vous pouvez également me signaler tout problème, mais si vous avez un compte GitHub la meilleure manière de procéder est d'ouvrir une issue.
Pour finir, je tiens à remercier les membres de ce forum qui ont répondu, soit directement, soit indirectement, aux questions que j'ai pu me poser lors de l'élaboration de la dernière version de mon logiciel. Je remercie en particulier l'auteur de Looping, dont l'excellent ouvrage m'a également été fort utile.
Partager