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

  1. #1
    Membre éprouvé
    Suivi des versions de Looping pour la modélisation : version 3.0
    Bonjour à tous,

    Comme promis, la version 3.0 de Looping est maintenant disponible sur https://www.looping-mcd.fr

    Voici les fonctionnalités supplémentaires apportées par cette nouvelle version :

    - MLD graphique en temps-réel
    - Possibilité de nommer librement les clés étrangères
    - Options SQL : Update/Delete ON CASCADE et COMMENT pour tables et rubriques
    - Nouveaux SGBD cibles : MariaDB et SQLite
    - Nouvel outil d'illustration "Crayon"
    - Pointeur "Prof"
    + plein d'autres optimisations et petits ajustements !

    Je tiens à remercier les contributeurs de ce forum (François, Capitaine, Philippe, ...) qui, par leurs idées et leur expertise, ont permis cette évolution majeure de Looping.




    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  2. #2
    Expert éminent sénior
    Waouh ! Merci Patrick !

    Nonobstant le confinement, compte sur les mousquetaires pour faire fumer tout ça !

    A mon tour,
    Faites simple, mais pas plus simple ! (A. Einstein)
    E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.
    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench

  3. #3
    Expert éminent sénior
    Mais jusqu'où s'arrêtera-t-il ?

    Merci encore Paprick !

  4. #4
    Modérateur

    Merci Paprick.

    Quand j'aurai le temps :
    - Je testerai
    - Je publierai une annonce dans la partie ALM de DVP.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Expert éminent sénior
    Après quelques tests voici mes observations (Windows 7 édition familiale premium 64 bits 6.1 version 7601)

    • le MLD graphique est bien opérationnel ;
    • les icônes "passer les illustrations au 1er/dernier plan" sont bien pratiques ;
    • je n'ai pas su retrouver mes commentaires de niveau entité-type ni de niveau attribut dans le script ;
    • je n'ai pas compris à quoi servent les icones "grille" et "grille fine", que ce soit sur le modèle E/A, UML ou MLD, je ne vois pas de différence ;
    • j'ai découvert par hasard, peut-etre était-ce déjà le cas dans les précédentes versions, qu'on pouvait modifier les couleurs d'une entité ou asso particulière, sympa aussi ;
    • outils "crayon" et "prof" amusants, même si le premier est délicat d'utilisation (comme tout dessin fait avec un pointeur de souris ) ;
    • je n'ai pas trouvé comment mettre en oeuvre les options ON DELETE/ ON UPDATE.

    Et je confirme que les cases à cocher (déjà présentes dans les précédentes version) "entité fictive" et "entité ciblée par CIF" sont vraiment pratiques

    Merci encore pour toutes ces améliorations

    Et, si je peux me permettre, une suggestion pour la prochaine version : ce serait pratique de pouvoir faire une recherche de chaîne de caractères dans le script (pour retrouver un attribut par exemple) .

  6. #6
    Membre éprouvé
    Bonjour Capitaine, et merci pour ce retour !

    En réponse à tes questions :

    Citation Envoyé par escartefigue Voir le message

    • je n'ai pas su retrouver mes commentaires de niveau entité-type ni de niveau attribut dans le script ;
    • je n'ai pas compris à quoi servent les icones "grille" et "grille fine", que ce soit sur le modèle E/A, UML ou MLD, je ne vois pas de différence ;
    • je n'ai pas trouvé comment mettre en œuvre les options ON DELETE/ ON UPDATE.

    Pour insérer les commentaires dans le script (sous différentes formes), il faut en faire la demande dans "Propriétés/MLD-SQL/Commentaires dans script" qui est à "Non" par défaut.
    La grille dont tu peux définir l'espacement et l'affichage dans "Propriétés/Options générales" contraint le placement des objets en fonction de l'espacement choisi : la grille fine divise par 2 cet espacement (mais l'affichage reste celui de la grille de base) : tu peux le mettre en évidence en choisissant un espacement grille important (50 par exemple).
    Pour les cascades, tu dois activer l'option dans "Propriétés/MLD-SQL/Proposer cascade" : tu peux alors choisir de cascader dans la fenêtre de définition des associations.

    Et, si je peux me permettre, une suggestion pour la prochaine version : ce serait pratique de pouvoir faire une recherche de chaîne de caractères dans le script (pour retrouver un attribut par exemple) .
    Tes désirs sont des ordres, capitaine : je le rajoute à ma liste de courses pour la version 3.1 !
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  7. #7
    Expert éminent sénior
    Bonsoir Paprick et merci pour ces réponses


    Citation Envoyé par Paprick Voir le message
    Pour insérer les commentaires dans le script (sous différentes formes), il faut en faire la demande dans "Propriétés/MLD-SQL/Commentaires dans script" qui est à "Non" par défaut.
    YES ! Je valide


    Citation Envoyé par Paprick Voir le message

    La grille dont tu peux définir l'espacement et l'affichage dans "Propriétés/Options générales" contraint le placement des objets en fonction de l'espacement choisi : la grille fine divise par 2 cet espacement (mais l'affichage reste celui de la grille de base) : tu peux le mettre en évidence en choisissant un espacement grille important (50 par exemple).
    Vu aussi


    Citation Envoyé par Paprick Voir le message
    Pour les cascades, tu dois activer l'option dans "Propriétés/MLD-SQL/Proposer cascade" : tu peux alors choisir de cascader dans la fenêtre de définition des associations.
    Avec les cases à cocher ça fonctionne parfaitement
    La zone de saisie accessible en cochant "autre" fonctionne également parfaitement , elle est toutefois un peu trop courte en affichage (elle accepte tous les caractères mais c'est peu lisible) pardon d'être un peu pénible


    Citation Envoyé par Paprick Voir le message
    Tes désirs sont des ordres, capitaine : je le rajoute à ma liste de courses pour la version 3.1 !
    Ta sollicitude t'honore

  8. #8
    Modérateur

    Premiers tests grandeur nature avec un MCD portant sur deux schémas (en fait 2 BDD MariaDB liées par plusieurs associations)...

    Un point positif : La distinction entre le nom de l'entité-type et son nom logique, qui permet d'avoir un MCD lisible par le quidam du métier et la génération du bon nom de table.

    Un point négatif : Je trouve dommage que dans le MLD on ne puisse pas renommer les colonnes clés étrangères.
    En mode MCD, j'ai dessiné ça :


    En ayant mis le paramètre "Prefixe clés étrangères" à fk_, je me retrouve en MLD avec ça :


    Ce n'est pas anormal en soi puisque dans le MCD on ne mentionne pas les colonnes clé étrangère mais j'ai pour standard de nommer ma colonne pph_id_personne (trigramme de la table th_personne_physique_pph + nom signifiant d'où vient la colonne clé étrangère).
    J'aurais aimé pouvoir modifier ce nom directement en mode MLD mais ce n'est pas possible. Quand on double-clique sur la table, on retrouve la fenêtre "Entité" du MCD avec seulement les colonnes présentes dans le MCD.

    Au passage, je trouve dommage que les deux modes soient liés graphiquement : si j'ajuste une taille de table dans le MLD ou si je la déplace pour rendre pus clair le schéma, la modif s'opère aussi dans le MCD alors que j'avais mis tout en place lisiblement.

    De plus, le préfixe "fk_" que j'ai mentionné en paramètre, je le voyais plutôt en préfixe du nom de la clé étrangère mais pas de la colonne. Ainsi, l'autre colonne clé étrangère fk_civ_id devrait s'appeler pph_id_civilite et la clé étrangère fk_pph_id_civilite.

    Bref, j'aurais aimé avoir une interface en mode MLD comprenant toutes les colonnes, indexes et clés étrangères de manière à les nommer comme je veux.

    Autre point d'amélioration, même si dans le cas présent je ne vais pas me servir du script SQL généré : Puisqu'on peut dire qu'il s'agit d'une "Classe d'entités appartenant à un modèle externe", ce qui permet de ne pas générer le SQL de la table issue de l'entité type, ce serait bien, dans ce cas, de pouvoir spécifier de quel modèle (BDD ou schéma) elle vient. Ça permettrait du coup aussi de générer le préfixe de la BDD ou du schéma dans la clé étrangère au niveau script SQL.
    Pour le moment, j'ai par exemple ceci :
    Code SQL :Sélectionner tout -Visualiser dans une fenêtre à part
    CONSTRAINT FK_th_personne_physique_pph_tr_civilite_civ FOREIGN KEY(fk_civ_id) REFERENCES tr_civilite_civ(civ_id)


    En indiquant que l'entité-type tr_civilite_civ fait partie du modèle referentiel, je pourrais avoir cela :
    Code SQL :Sélectionner tout -Visualiser dans une fenêtre à part
    CONSTRAINT FK_th_personne_physique_pph_tr_civilite_civ FOREIGN KEY(fk_civ_id) REFERENCES referentiel.tr_civilite_civ(civ_id)


    Enfin, pour ce premier test, la propriété "Proposer cascade" n'a d'effet que lorsqu'on revient en mode MCD en cliquant sur une association mais pas quand on clique sur le lien entre deux tables en mode MLD. Et je suppose que quand on choisit "Autre", il faut écrire le reste de la contrainte à la main ? => ON DELETE RESTRICT par exemple ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  9. #9
    Expert éminent sénior
    Bonsoir CinePhil

    Sur ce point particulier, oui
    Citation Envoyé par CinePhil Voir le message
    Et je suppose que quand on choisit "Autre", il faut écrire le reste de la contrainte à la main ? => ON DELETE RESTRICT par exemple ?

    C'est la raison pour laquelle j'avais écrit :
    Citation Envoyé par escartefigue Voir le message

    La zone de saisie accessible en cochant "autre" fonctionne également parfaitement , elle est toutefois un peu trop courte en affichage (elle accepte tous les caractères mais c'est peu lisible) pardon d'être un peu pénible

  10. #10
    Membre éprouvé
    Bonsoir Philippe,

    Merci pour ce premier retour d'expérience.
    Voici quelques précisions qui apportent des réponses à certaines de tes préoccupations :

    Citation Envoyé par CinePhil Voir le message
    Un point négatif : Je trouve dommage que dans le MLD on ne puisse pas renommer les colonnes clés étrangères.
    Depuis la version 3.0, Looping sait le faire.
    Tout d'abord, il faut comprendre que la logique de Looping est de proposer une modélisation conceptuelle, et que le MLD et le code SQL ne font que découler du MCD : par conséquent, aucune information supplémentaire ne vient compléter le MCD au niveau logique ou physique.
    Mais, pour répondre à des problématique telles que celle que tu poses avec la libre appellation des clés étrangères, Looping fait un grand usage des rôles situés sur les liens : jusqu'à présent, on pouvait suffixer le nom des clés étrangères avec le libellé du rôle (très pratique pour les associations réflexives) ; avec la version 3.0, tu peux aussi renommer la clé étrangère avec le libellé du rôle (sans obligation de l'afficher dans le MCD).
    Va sur un lien, tape un nom de rôle, et tu verras apparaître les options (il y a un petit bug qui traine avec le nom du rôle qui disparaît dans certains cas dans le MLD, mais ce sera vite réglé ).

    Au passage, je trouve dommage que les deux modes soient liés graphiquement : si j'ajuste une taille de table dans le MLD ou si je la déplace pour rendre pus clair le schéma, la modif s'opère aussi dans le MCD alors que j'avais mis tout en place lisiblement.
    Là encore, on est sur l'ADN de Looping : un seul source qui est le MCD, et tous les autres modèles qui s'aligne dessus : il est difficilement envisageable de bouger une table dans le MLD sans faire suivre le MCD : en effet, que se passerait-il ensuite, si la classes d'entités côté MCD était à son tour bougée.
    Mais il reste tout de même la solution qu'utilise d'autres logiciels de modélisation (WinDesign par exemple) : tu génères le MLD, et tu le sauvegardes dans un autre fichier dont tu fais ce que tu veux en termes de présentation... se pose alors la question de la synchronisation des modèles... J'ai déjà fait ça dans mon bouquin pour présenter de manière spécifique un diagramme de classes UML.
    Mais, d'une façon générale, je trouve toujours une solution pour rendre compatibles l'ensemble des affichages.

    Autre point d'amélioration, même si dans le cas présent je ne vais pas me servir du script SQL généré : Puisqu'on peut dire qu'il s'agit d'une "Classe d'entités appartenant à un modèle externe", ce qui permet de ne pas générer le SQL de la table issue de l'entité type, ce serait bien, dans ce cas, de pouvoir spécifier de quel modèle (BDD ou schéma) elle vient. Ça permettrait du coup aussi de générer le préfixe de la BDD ou du schéma dans la clé étrangère au niveau script SQL.
    Tu peux également le faire : lorsque tu déclares une classe d'entités comme externe au modèle, le nom logique n'est plus du tout contrôlé ; tu peux alors appeler ta table "referentiel.tr_civilite_civ"

    Enfin, pour ce premier test, la propriété "Proposer cascade" n'a d'effet que lorsqu'on revient en mode MCD en cliquant sur une association mais pas quand on clique sur le lien entre deux tables en mode MLD. Et je suppose que quand on choisit "Autre", il faut écrire le reste de la contrainte à la main ? => ON DELETE RESTRICT par exemple ?
    En effet, le mode cascade concerne forcément les clés étrangères définies par les associations ; mais si tu ouvres la table d'association du MLD, tu retrouves l'option.
    Et pour le "Autre", j'ai effectivement fait le choix de prédéfinir les cascades les plus fréquentes, et de laisser une zone libre pour les autres.
    Voilà, j'espère que cela satisfera certaines de tes demandes !
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  11. #11
    Modérateur

    Un autre détail qui m'embête, vu que je fais actuellement un MCD avec beaucoup d'associations (j'en suis à près de 40 et je n'ai pas fini) : l'interdiction de nommer deux associations de la même façon. Ça commence à être difficile de trouver des verbes pour les nouvelles associations.
    C'était aussi un truc qui m'avait embêté sur AnalyseSI.
    Qu'est-ce qui justifie cette interdiction ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  12. #12
    Membre éprouvé
    Bonsoir,
    Citation Envoyé par CinePhil Voir le message
    Un autre détail qui m'embête, vu que je fais actuellement un MCD avec beaucoup d'associations (j'en suis à plus de 40 et je n'ai pas fini) : l'interdiction de nommer deux associations de la même façon. Ça commence à être difficile de trouver des verbes pour les nouvelles associations.
    C'était aussi un truc qui m'avait embêté sur AnalyseSI.
    Qu'est-ce qui justifie cette interdiction ?
    Comme tu le sais, en cas d'association multiple de part et d'autre (ou avec du 0,1 si souhaité par le concepteur), une table de correspondance est générée et doit donc avoir un nom unique.
    Alors, c'est vrai que pour les associations avec une cardinalité 1,1 rien n'est généré au niveau MLD et l'on pourrait avoir ces associations avec un même nom...
    Donc, pourquoi pas l'autoriser dans ce cas précis (sur option avec NON par défaut ), mais ça demandera des contrôles en cas de changement de cardinalités, et donc, par exemple, refuser un changement de cardinalité de 1,n vers 1,1 si le nom de l'association existe déjà... J'ai peur que ça introduise pas mal d'effets de bord.
    Sinon, ce que je fais quand j'ai le même problème que toi et que je manque d'imagination, je garde le même nom et je rajoute des ' : Concerner, Concerner', Concerner''
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  13. #13
    Nouveau membre du Club
    Merci beaucoup pour cette nouvelle évolution de Looping ! J'aime beaucoup.
    Le MLD Graphique est très utile !
    Le pointeur "Prof" également : je m'en sers beaucoup !
    Au top !

###raw>template_hook.ano_emploi###