Forum Programmation.autre [Umbrello] sélection multiple

Posté par . Licence CC by-sa
Tags :
1
31
août
2017

J'essaie d'utiliser Umbrello, l'outil de KDE qui permets de générer un modèle objet à partir d'un code source (C++ dans mon cas) et a priori le dernier open source avec un potentiel correct (non, dia ne fait pas le taf. Il y avait bien bouml mais d'une part il n'est plus libre et la dernière version freeze anyway. Quant à son fork, il faut mingw pour le compiler, hors, la, pas de bol je suis au taf sous windows, et pas du tout envie d'installer un autre compilo sur cette machine).

Quelqu'un sait s'il y a moyen de sélectionner plusieurs classes d'un coup afin de les ajouter au diagramme de classes? Parce qu'après l'import d'une arborescence (contenant un peu plus de 120 headers, qu'il a déjà fallu que j'aille chercher dans tous les sous-dossiers, tant qu'a faire) c'est assez pénible de les mettre dans le diagramme…

Question subsidiaire (pas encore cherché, pour le moment je me galère a ajouter les classes dans le diagramme): comment faire pour ne pas afficher les méthodes et les propriétés (variables membres)?

[Edit]
Bon, j'ai trouvé pour l'affichage «réduit» des classes, c'est classique en fait: soit ça se config dans les propriétés de l'élément, soit dans celles du diagramme. J'avais peur que ça ne soit un truc à la con, vu comment j'ai déjà galéré faire quoique ce soiy, y compris trouver ce damné treeview (qui n'est pas affiché par défaut au 1er lancement, non non).

  • # C'est utilisable ce truc ?

    Posté par . Évalué à 3 (+1/-0).

    Je me rappelle l'avoir essayé il y a quelques temps (à vue de nez je dirais il y a un peu plus d'un an), et j'en ai eu un mauvais souvenir : complètement inutilisable.

    Si ça a changé, je veux bien repasser un peu de temps à le tester.

    • [^] # Re: C'est utilisable ce truc ?

      Posté par . Évalué à 3 (+1/-0).

      À priori, il est utilisable, mais c'est un peu pénible:

      • devoir ajouter 1 par 1 plus d'une centaine de classe dans le diagramme,
      • doc qui semble ne pas se baser sur une installation fraîche,
      • quand on clique sur une classe et qu'il y a une relation en dessous (parce qu'on a d'abord cherché a afficher tout avant de ranger) c'est la relation et non la classe qui est sélectionnée,
      • quelques lenteurs au rendu probablement liées à du rendu matériel (puisque ni le CPU ni la RAM n'étaient saturés.

      J'ai aussi l'impression qu'il n'a pas sauvegardé le fichier sur lequel je bossais, ce qui m'agace un poil, mais j'ai peut-être fait une mauvaise manip, ou windows m'a trahit. Sur ce point, je n'ai pas d'éléments tangibles.

      Je ne me suis pas encore essayé à la génération de code, et ne le ferais pas de toute façon: j'utilise surtout ce type d'outils pour démêler l'écheveau des relations dans du code sale, non documenté, inutilement complexe que je ne connais pas: parce que dans le cas contraire, un coup de doxygen suffit souvent.

  • # A propos de Bouml

    Posté par (page perso) . Évalué à 3 (+2/-0). Dernière modification le 01/09/17 à 09:14.

    Il y avait bien bouml mais d'une part il n'est plus libre et la dernière version freeze anyway …

    Bouml est de nouveau libre d'utilisation, et je continue son développement, bonnes modélisations

    Bruno

    • [^] # Re: A propos de Bouml

      Posté par . Évalué à 2 (+0/-0).

      J'ai bien vu qu'il est de nouveau gratuit, mais comme je l'ai dit, lorsque j'essaie de reverser le code , le plugout freeze à 23%. Je n'ai pas vu d'indices qui pourraient me permettre de déterminer pourquoi, malheureusement.

      • [^] # Re: A propos de Bouml

        Posté par (page perso) . Évalué à 2 (+1/-0).

        Pardon, je n'avais pas compris votre remarque à propos du freeze, j'ai cru que vous parliez du développement

        Quelle version de bouml utilisez-vous et sous quel OS êtes vous ?

        Vous pouvez m'envoyez à contact@bouml.fr une archive des sources à reverser que je puisse faire des essais ?

        • [^] # Re: A propos de Bouml

          Posté par . Évalué à 2 (+0/-0). Dernière modification le 01/09/17 à 10:28.

          Windows 7. Je ne me souviens plus de la version que j'avais installée, probablement la dernière mais un doute me prend, peut-être me suis-je trompé entre la 7 et la 7.1.
          Je vais vérifier avec la 7.1 par acquis de conscience (je n'aime pas avoir des applications qui ne me sont pas utiles sur mes machines, du coup je l'ai supprimé).

          Vous pouvez m'envoyez à contact@bouml.fr une archive des sources à reverser que je puisse faire des essais ?

          Ça, ça ne vas pas être possible, malheureusement.

          [Edit]
          Je ne me suis pas trompé, le lien est simplement mauvais: sur le miroir, la version n'est pas la même que sur le 1er lien. Du coup j'étais avec la v7, je retente la 7.1.

          • [^] # Re: A propos de Bouml

            Posté par (page perso) . Évalué à 2 (+1/-0). Dernière modification le 01/09/17 à 10:37.

            Me dire seulement "ca bug" sans plus de détails cela ne va pas m'aider à corriger ;)

            De quel reverse s'agit-t-il, C++ ?

            Lorsque c'est bloqué est-ce que cpp_reverse (si c'est bien pour C++) est encore dans la liste des process ? si oui boucle-t-il ?

            Vous ne pouvez pas réduire les sources à reverser (en copiant dans un/des autres(s) dossier et en retirant des dossiers/fichiers au fur et à mesure) pour pouvoir m'envoyer une version réduite des sources ?

            P.S. je ne vais pas diffuser les sources que vous me fournirez pour essais, je ne pirate pas les logiciels, j'en diffuse un :-)

            [edit] ah oui le lien vers bouml pour windows n'allait pas vers la 7.1 sur la page en Anglais, c'est corrigé[/edit]

            • [^] # Re: A propos de Bouml

              Posté par . Évalué à 2 (+0/-0). Dernière modification le 01/09/17 à 10:46.

              Me dire seulement "ca bug" sans plus de détails cela ne va pas m'aider à corriger ;)

              Évidemment :) je rédigeais un complément d'info, compte tenu du fait que je n'avais pas la bonne version. Le temps d'avoir plus d'infos.

              P.S. je ne vais pas diffuser les sources que vous me fournirez pour essais, je ne pirate pas les logiciels, j'en diffuse un :-)

              Ce n'est pas la question, juste, c'est une clause de mon contrat. Je ne l'apprécie pas nécessairement, mais pas envie d'avoir d'emmerdes ;)

              Ceci dit, je pense que mon complément d'info peut donner un indice pour reproduire. Bon, j'ai un peu de temps, je vais voir si c'est bien cette macro multiligne suivie d'un if.

              • [^] # Re: A propos de Bouml

                Posté par . Évalué à 2 (+0/-0).

                Bon, voici un code minimal qui reproduit:

                class A{};
                
                #define SOMETHING( classname )\
                class classname : public A\
                {\
                };
                
                #define somemacro()\
                {\
                }

                La définition de class A{}; n'est pas nécessaire, c'est juste histoire que ce soit éventuellement compilable.

                PS: c'est pénible d'afficher par défaut le dossier d'installation de bouml. La racine C, j'aurai compris, mais je pense que le mieux aurait été le %HOMEDIR% ou $HOME (en fonction de l'os).

          • [^] # Re: A propos de Bouml

            Posté par . Évalué à 2 (+0/-0).

            Freeze confirmé à 23%. Seul cpp_reverse.exe consomme du CPU (13%, sur un octocore, un cœur occupé à quasi 100% aka ~= 13*8… cet OS est vraiment ridicule, incapable d'indiquer intelligemment le temps consommé par un processus pfff), à vue de nez c'est une boucle infinie. Pas de malloc dans l'air, la mémoire reste stable.

            Le maximum d'informations que j'ai le droit de donner (je ne suis pas sous windows pour le plaisir), c'est que le fichier qui semble être traité au moment du freeze est constitué à 100% de macros, y compris des macros multilignes.
            En l'occurrence, la dernière ligne indiquée dans la trace est une macro dont la 2nde ligne commence par un if. Les macros multilignes précédentes ne présentent pas cette caractéristique.

            Je ne vois pas comment donner plus d'infos (sans rompre de clauses dans mon contrat, je veux dire).

            • [^] # Re: A propos de Bouml

              Posté par (page perso) . Évalué à 2 (+1/-0).

              si vous mettez le fichier en cause seul dans un répertoire provisoire et que vous lancez le reverse sur ce répertoire est-ce que cela reproduit le problème du reverse ?

              si oui vous deviez pouvoir réduire le contenu du fichier (en coupant en 2 par essais successifs cela ira très vite) permettant de situer le problème, ensuite vous pouvez remplacer les identificateurs avec des xxx rendant le code non sensible ni utilisable autrement que pour me permettre de corriger le problème ;-)

            • [^] # Re: A propos de Bouml

              Posté par (page perso) . Évalué à 1 (+0/-0).

              C'est bon, en lançant le reverse sur /usr/include (!) j'ai reproduit le problème

              Merci pour votre aide, ce sera corrigé dans la prochaine version

              • [^] # Re: A propos de Bouml

                Posté par . Évalué à 2 (+0/-0).

                Au pire, j'ai un code minimal posté un peu plus haut. Bon courage pour le fix.

                • [^] # Re: A propos de Bouml

                  Posté par (page perso) . Évalué à 2 (+1/-0). Dernière modification le 01/09/17 à 11:53.

                  Je peux reverser sans problème votre code, en tout cas sous Linux

                  Le code qui produit le problème dans mon cas est issu de socket.h et n'a rien à voir avec les macros :

                  typedef union { SOCKADDR_ALLTYPES
                  } __CONST_SOCKADDR_ARG __attribute
                  ((transparent_union));

                  __END_DECLS

                  C'est la phase de scan qui boucle

                  • [^] # Re: A propos de Bouml

                    Posté par (page perso) . Évalué à 2 (+1/-0).

                    Correction triviale, il manquait juste une détection de fin de fichier quelque part, la dernière forme dans mon cas n'étant pas une forme C++ standard (finissant par un ';' etc)

                    Je peux maintenant reverser /usr/include (produisant 12697 classes, 25270 attributes, 24277 relations et 2381 opérations !)

                    Je vais vous mettre une nouvelle version du reverse C++ pour Windows afin que vous puissiez me dire si cela corrige également votre cas que je ne peux pas le reproduire

                    • [^] # Re: A propos de Bouml

                      Posté par (page perso) . Évalué à 2 (+1/-0).

                      J'arrive bien à reproduire votre problème sous Windows, contrairement à ce qui se passe sous Linux

                      Ma correction est également valable pour votre cas, en attendant une version officielle vous pouvez remplacer vos exécutables avec les nouveaux :

                      • [^] # Re: A propos de Bouml

                        Posté par . Évalué à 4 (+2/-0).

                        Merci beaucoup. Je confirme, c'est réglé.

                      • [^] # Re: A propos de Bouml

                        Posté par (page perso) . Évalué à 1 (+0/-0).

                        chapeau bas pour la réactivité !

                        ça me rend triste que le paquet pour Archlinux soit "out of date" (v6.11.3-1 alors que pour les autres distributions on a des paquets en v7.1)

                        quelle serait la meilleure solution pour l'installer, compilation à partir des sources, utiliser les binaires d'une autre distrib ?

                        Envoyé depuis mon Archlinux

                        • [^] # Re: A propos de Bouml

                          Posté par (page perso) . Évalué à 1 (+0/-0).

                          Bonjour,

                          Ce n'est pas moi qui gère le paquet pour Archlinux, et vu que les sources des 5.x et 6.x n'étaient pas disponibles je ne comprends pas trop comment le paquet pour la v6.11.3 a bien pu être fait, à moins d'être parti de binaires que je produis pour une autre distribution comme vous sembliez le dire, mais dans ce cas laquelle ?.

                          Sur https://aur.archlinux.org/packages/bouml/ les liens vers les tar tombent dans le vide, comment faisiez-vous pour obtenir la version pour Archlinux ?

                          P.S. Pour se rendre compte qu'il y a des réponses ici il faut allez voir soit même, ce qui n'est vraiment pas pratique, je n'ai pas trouvé comment paramétrer mon compte pour recevoir un mail automatiquement, est-ce possible ?

                          • [^] # Re: A propos de Bouml

                            Posté par (page perso) . Évalué à 1 (+0/-0). Dernière modification le 02/09/17 à 19:36.

                            je ne l'ai jamais installé, ce sont ces échanges qui m'ont donné envie d'essayer

                            l'install de la v6 ne fonctionne pas, trop tard pour moi donc…

                            j'ai essayé yaourt bouml

                            ==> ERREUR : Erreur lors du téléchargement de https://github.com/funilrys/archlinux-bouml-src/archive/v6.11.3-64.tar.gz
                            Abandon…

                            cela dit, je suis preneur d'une solution (pour Archlinux)

                            Envoyé depuis mon Archlinux

                            • [^] # Re: A propos de Bouml

                              Posté par (page perso) . Évalué à 1 (+0/-0).

                              Je produis déjà 36 paquetages pour atteindre différents OS, différentes versions de ceux-ci, majoritairement en 64b et une douzaine en 32b, ce qui me prend une journée complète. Je verrais pour ArchLinux (en 64b) une fois que j'aurais livré la 7.1.1 qui corrige quelques bugs et ajoute le roundtrip Php

                          • [^] # Re: A propos de Bouml

                            Posté par (page perso) . Évalué à 1 (+0/-0). Dernière modification le 02/09/17 à 19:52.

                            P.S. Pour se rendre compte qu'il y a des réponses ici il faut allez voir soit même, ce qui n'est vraiment pas pratique, je n'ai pas trouvé comment paramétrer mon compte pour recevoir un mail automatiquement, est-ce possible ?

                            je ne crois pas qu'il soit possible d'être notifié par email, mais dans la FAQ du site il est fait mention de 2 solutions alternatives

                            Envoyé depuis mon Archlinux

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.