Merisedot is a script to generate mcd Entity/Relation graphic used in Merise.
Non-french speakers can go away: Merise is just ancient design method that was only used in France. It is still used at college because Merise users that are still alive are all teachers with no contact with reality. That's why the rest of this document is in french only. If you want me to translate this page, ask me ( khatar [at] phear [dot -- ] org)
téléchargez le le script et regarder un exemple.
Si vous utilisez déjà Merise, vous savez dejà que la seule partie utile est le MCD. Il n'existe malheureusement pas d'outils libres qui permette de les créer (on comprend le manque d'intéret des éditeurs pour la chose).
merisedot vient combler ce trou. C'est un ensemble de fonctions zsh qui permettent de générer simplement un programme dot. Ce programme pourra ensuite être compilé avec les outils fournis dans Graphviz.
sudo aptitude install zsh graphviz
.$PATH
. Exemple:
dest="$HOME/bin" echo 'PATH="$PATH:'$dest'" >> ~/.profile' if test -d "$dest" || mkdir "$dest"; then cd "$dest" wget -0merisedot http://oss.phear.org/merisedot/lastest chmod +x merisedot fi
Créez un fichier texte dont le nom n'a aucune espèce d'importance (je
l'appellerais mcd.zsh
pour l'exemple), tappez le texte
suivant
with=( code_composante '' libelle_composante '' ) entity composante
Ce source crée une entitée (entity) nommée composante. Cette entité contient les attributs code_composante et libelle_composante dont les types n'ont pas été définis ('' correspond à une chaine vide).
La syntaxe de zsh est assez souple, le seul point important est qu'il ne doit pas y avoir d'espace dans la chaine with=(
. J'aurais aussi bien pu écrire:
Enregistrez mcd.zsh et tappez merisedot mcd.zsh
. Vous obtiendrez le code suivant:
graph mcd { edge [ len=2 labeldistance=2 ]; "composante" [ shape=record label="{\N|code_composante \llibelle_composante \l}" ]; }que dot peut utiliser pour générer une image. Relancez la commande, mais cette fois en la pipant a dot: Enregistrez mcd.zsh et tappez
merisedot mcd.zsh | dot -Tpng -om1.png
. Un fichier m1.png vient d'etre créé
Modifions maintenant notre fichier pour créer une deuxième entrée et une relation.
with=( code_composante '' libelle_composante '' ) entity composante with=( code_annee '' libelle_annee '' compteur_facture '' annee_en_cours '' ) entity annee with=( credit_ouvert '' credit_consomme '' credit_bloque '' ) between=( 1,1 composante 1,n annee ) relation "est creditee pour"
compilons ...
la nouveauté est la commande relation qui prend un tableau appellé between et contenant les cardinalités sous la même forme clef/valeur. Notez que la parenthèse fermante du with est sur la même ligne que le between. C'est important!