IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Mocodo 4 : tracez vos MCD avec 1 vieux truc bizarre


Sujet :

Schéma

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2023
    Messages : 24
    Points : 27
    Points
    27
    Par défaut Mocodo 4 : tracez vos MCD avec 1 vieux truc bizarre
    J'ai le plaisir de vous annoncer la sortie de la version 4 de Mocodo.

    Nom : sandbox.png
Affichages : 432
Taille : 17,6 Ko

    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 :

    Nom : ccp.png
Affichages : 427
Taille : 64,8 Ko

    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 :

    Nom : arrange.png
Affichages : 510
Taille : 135,7 Ko

    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.

  2. #2
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Professeur des Universités
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2019
    Messages : 710
    Points : 2 867
    Points
    2 867
    Par défaut
    Bonjour,

    Je connais Modoco depuis quelques années et j'ai déjà vanté la qualité des modèles de données produits après leur définition textuelle.
    Certes, l'approche peut décourager bon nombre de concepteurs préférant la construction graphique proposées par les autres outils du marché (dont Looping gentiment qualifié de "fameux" par laowantong).
    Mais d'un point de vue pédagogique, l'approche Modoco ne manque pas d'intérêt.
    Nous avons déjà échangé avec l'auteur sur certaines problématiques de modélisation, et nous avons, je pense, enrichi mutuellement nos approches respectives.
    Je travaille actuellement sur la rétroconception (génération du MCD à partir du LDD) pour la version 4.1 de Looping, et je dois reconnaître que l'algorithme de plongement automatique de Modoco est particulièrement efficace. Looping devra en prendre de la graine !

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2023
    Messages : 24
    Points : 27
    Points
    27
    Par défaut
    Merci Patrick.

    Juste une remarque. Comme je l'ai déjà dit sur un autre fil, je suis le premier à reconnaître que l'approche Diagram as Code vise un public de niche : en gros, elle va intéresser les programmeurs. Ceux-ci, non seulement sont habitués à commander un système informatique par l'intermédiaire d'un clavier, mais souvent également capables de « scripter » un programme pour automatiser ses fonctionnalités. C'est ainsi que, avant que Mocodo 4 n'introduise officiellement la génération de MCD aléatoires, certains collègues l'utilisaient déjà pour ça.
    Par contre, l'approche Diagram as Code n'a pas grand rapport avec les éventuels objectifs pédagogiques d'un outil. Par exemple, Graphviz, Mermaid, PlantUML, BDML, etc. suivent l'approche Diagram as Code, et ne sont absolument pas destinés à l'apprentissage ou à l'enseignement. Je tenais à dissiper ce qui me semble une confusion. Les ambitions pédagogiques de Mocodo se traduisent plutôt par les explications automatiques du passage au relationnel, le dévoilement progressif du schéma, les informations au survol des cardinalités, etc. Voir la section Mocodo pour la pédagogie si vous êtes enseignant.

    Quelques précisions maintenant concernant l'algorithme de plongement. J'en ai écrit en fait plusieurs. Deux sont actuellement maintenus : un algorithme exact basé sur un branch & bound (BB) et une heuristique basée sur un algorithme génétique (GA). Les deux ont comme point commun de disposer les centres des boîtes aux intersections d'une grille. Il ne faut pas voir cette grille comme celle d'un papier quadrillé, mais comme plutôt une matrice dont chaque case contient nécessairement une boîte (éventuellement invisible). Par exemple, si on a 15 boîtes visibles, on peut les disposer dans une grille carrée 4 x 4 en complétant avec une boîte invisible. Le problème de plongement se ramène donc à un problème d'affectation. Certaines affectations enfreignent des règles esthétiques de croisement ou de longueur des liens et conduisent, soit à un élagage (BB), soit à une pénalité (GA).

    BB est livré en deux variantes principales : un plongement organique, sur une grille non bornée ; un plongement sur une grille prédéfinie (soit équilibrée, soit spécifiée par sa largeur, soit reprenant le plongement actuel). Étant exact, il peut échouer, soit que le graphe n'est pas planaire, soit qu'il n'admet pas de plongement sur la grille donnée, soit à cause des contraintes sur la rectitude ou la longueur des arêtes. En cas de succès, le plongement est nécessairement esthétique.

    GA produit toujours un résultat, possiblement sub-optimal (croisements), notamment sur les graphes non planaires. En cas d'échec de BB, son résultat peut souvent servir de point de départ à un réarrangement manuel simplifié. Je l'illustre sur K33 ici.

    Limitations :
    - Mocodo online ne donne actuellement pas accès à GA, et pour BB n'offre que deux grilles équilibrées et une seule grille de largeur fixe (en l'occurrence 8).
    - BB est classiquement en complexité exponentielle. La complexité de GA est plus difficile à évaluer, mais l'un comme l'autre algorithme trouvent assez rapidement leurs limites. Je dirais qu'à partir d'une quarantaine de boîtes le temps de calcul peut devenir rédhibitoire, surtout si le MCD n'admet pas de plongement parfaitement esthétique (i.e., ni croisement ni arête longue). C'est en fait l'une des principales raisons pour lesquelles Mocodo ne s'adresse pas du tout aux professionnels, qui ont à gérer des données autrement complexes.

Discussions similaires

  1. Mcd Avec 2 Tables Pays
    Par dacho130475 dans le forum Schéma
    Réponses: 1
    Dernier message: 06/06/2007, 16h51
  2. MCD avec Delphi 7
    Par Coucou17 dans le forum Bases de données
    Réponses: 5
    Dernier message: 23/12/2006, 04h57
  3. [MCD] création d'un MCD avec AnalyseSI ou autre
    Par Frenchguy dans le forum Access
    Réponses: 10
    Dernier message: 04/12/2006, 17h12
  4. generer un mcd avec sql serveur
    Par sam123_sam dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/09/2006, 16h56
  5. Aide pour MCD avec clés étrangères
    Par tiger33 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 19/07/2006, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo