lock classe/artifact

Please use this forum to ask for a new feature or to change an existing feature.
Merci d'utiliser ce forum pour demander de nouvelles fonctionnalités ou la modification de fonctionnalités existantes.

lock classe/artifact

Postby johanjof » Sat 24 Feb 2018 11:05

Bonjour Bruno,

Après une intense utilisation de BOUML, j'ai trouvé pas mal de petites choses qu'on pourrait ajouter, je pense que vous pourriez les trouver simples à réaliser.
Je vous en soumets une : donner à l'utilisateur la possibilité de mettre un verrou sur une classe (côté définition ou artifact) pour qu'elle soit figée, c'est-à-dire ni modifiable, générable ou reversable (drôle de verbe :) ).

Qu'en pensez-vous ?
johanjof
 
Posts: 27
Joined: Mon 1 Jan 2018 20:49

Re: lock classe/artifact

Postby Bruno Pagès » Sat 24 Feb 2018 12:17

Bonjour,

:o c'est bizarre comme demande, surtout au niveau de la génération

Par reversable je suppose que vous voulez dire roundtripable : le reverse créé les classes et il est difficile de poser un verrou sur une classe qui n'existe pas encore ;)

Si un artefact est associé à plusieurs classes je ne me vois pas (re)générer certaines de ces classes et pas les d'autres, pour cela il faudrait que la génération soit précédée d'un reverse pour mémoriser l'ancienne définition des classes avec verrou afin de la restituer pour palier au cas ou vous auriez (ou non) généré leurs code puis modifié celles-ci puis posé le verrou (c.a.d. que dans les sources la définition ne correspond pas au modèle) :?

Donc poser/retirer un verrou sur un artefact poserait/retirerait en même temps le verrou sur toutes ses classes associées, et poser/retirer un verrou sur une classe le ferait également sur son artefact et donc sur ses classes associées. De plus poser/retirer un verrou sur une classe le poserait/retirerait également sur ses sous-classes, et poser/retirer un verrou sur une sous-classe le poserait/retirerait également sur ses sur-classes et donc les sous-classes de celles-ci.

A noter qu'en dehors de la génération ce que vous demander existe déjà à différentes niveaux en retirant le droit d'écriture sur certains des fichiers projet
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 571
Joined: Mon 20 Feb 2012 09:23
Location: France

Re: lock classe/artifact

Postby johanjof » Sat 24 Feb 2018 13:17

Merci pour votre réponse.

A vrai dire je ne trouve pas l'idée bizarre. De nombreux logiciels possèdent une fonction de protection contre une manipulation hasardeuse. Il me semble que même des logiciels de schémas comme visio le proposent.
Une fonction de verrou comme celle-là est très simple à implémenter et si les codes sources de BOuml étaient disponibles j'aurais probablement proposé un patch.

Par ailleurs je n'ai pas précisé s'il était plutôt souhaitable de poser le verrou sur une définition de classe dans un diagramme de classe ou plutôt sur un artefact. Mais je vois d'après ce que vous dites qu'il serait peut-être judicieux que cela soit au niveau définition, car cela serait plus malléable.

Je fais de nombreux aller-retours IDE/BOuml et il m'arrive de temps à autre de m’emmêler les pinceaux, entre génération par classe et génération sur toutes les classes et écraser des fonctions que je n'ai encore pas déclaré à BOuml. Cela n'est pas très pratique d'avoir à basculer dans un explorateur en plus des 2 outils utilisés, pour mettre en lecture seule les fichiers que l'on souhaite verrouiller pendant que l'on en met à jour d'autres dans les 2 sens.

On pourrait aussi imaginer que cela permette par ailleurs de faire du reverse (et non du roundtrip) dans le projet courant d'une nouvelle classe crée côté IDE ou importée.

Dommage
johanjof
 
Posts: 27
Joined: Mon 1 Jan 2018 20:49

Re: lock classe/artifact

Postby Bruno Pagès » Sat 24 Feb 2018 14:28

johanjof wrote:Par ailleurs je n'ai pas précisé s'il était plutôt souhaitable de poser le verrou sur une définition de classe dans un diagramme de classe ou plutôt sur un artefact. Mais je vois d'après ce que vous dites qu'il serait peut-être judicieux que cela soit au niveau définition, car cela serait plus malléable.

La pose/retrait du verrou doit pouvoir se faire au niveau de la classe et de l'artefact via l'explorateur, dans les diagrammes je vais voir en fonction du nombre d'entrées déjà présentes.
A priori il faudrait aussi pouvoir poser/retirer le verrou sur des vues/paquetages afin de procéder récursivement et non classe/artefact par classe/artefact ce qui serait fastidieux s'il y en a beaucoup

johanjof wrote:Je fais de nombreux aller-retours IDE/BOuml ...

Ces allers/retours sont effectivement dangereux, j'avoue que je suis toujours étonné qu'il y ai un mélange de génération et de reverse/roundtrip, surtout qu'il y a le mode 'preserve body' permettant d'utiliser la génération tout en protégeant les corps des opérations afin de les éditer en dehors de bouml, mais chacun est bien-sûr libre de faire comme bon lui semble :)

johanjof wrote:On pourrait aussi imaginer que cela permette par ailleurs de faire du reverse (et non du roundtrip) dans le projet courant d'une nouvelle classe crée côté IDE ou importée.

Le reverse ne se pose pas de question et créé inconditionnellement les classes présentes dans les fichiers reversés. Le roundtrip est plus complexe et prends en compte ce qui est déjà défini dans le modèle, bien-sur il créé aussi les nouvelles classes et/ou leur nouveaux membres, de même qu'il détruit ce qui n'existe plus, afin de mettre à jour le modèle pour qu'il corresponde au fichiers.

Le reverse c'est donc du one shot, contrairement au roundtrip qui peut être appliqué autant de fois que bon vous semble.

Le roundtrip peut être lancé à différents niveau, tout le projet ou un paquetage (récursivement) ou une vue ou un artefact ou d'une classe, afin de ne mettre à jour que ce que vous souhaitez, il n'y a pas que le menu global tools/outils pour le lancer, de même que pour la génération. Par contre il n'y a pas de possibilité simple pour le cas ou vous voulez juste ajouter les classes associées à un nouveau fichier :
  • si vous roundtripez le paquetage associé au répertoire du fichier les autres fichiers seront également roundtripés, sauf si vous posez le verrou sur les classes/artéfacts déja présents
  • si vous copier le fichier en cause dans un répertoire temporaire ad hoc pour faire un reverse après celui-ci il faudra déplacer la classe et son artéfact dans les bonnes vues correspondant au répertoire

Sans doute faudrait-il pouvoir indiquer une liste de fichiers source & en-tête lors d'un roundtrip qui serait lancé au niveau d'un paquetage ou d'une vue pour spécifier le répertoire afin de ne prendre en compte qu'eux, les fichiers pouvant n'avoir été jamais reversés/roundtripés

johanjof wrote:Dommage

je ne comprends pas, je n'ai pas dit que je ne le ferai pas, qu'est-ce qui est dommage ?

N'hésitez pas à ouvrir d'autres discussions pour vos autres idées, il est préférable pour moi de faire plusieurs modifications dans une version et non de faire une version par ajout, livrer une nouvelle version me prends une journée complète
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 571
Joined: Mon 20 Feb 2012 09:23
Location: France

Re: lock classe/artifact

Postby johanjof » Sat 24 Feb 2018 15:16

Désolé, entre votre "c'est bizarre", votre tirade sur les artefacts et votre dernière phrase de solution alternative, j'ai compris que l'idée ne vous intéressait pas.

Les allers retours sont effectivement dangereux, mais les roundtrips ou reverse sont inévitables lorsque l'on est en production active et qu'on est lancé dans l'IDE.
Le soucis c'est qu'en industrie, lorsque l'on doit produire, qu'on est dans le rush, on n'a pas toujours hélas le loisir de gérer proprement 2 phases bien distinctes de conception et de développement comme il se devrait. De plus, il manque souvent des choses même après une phase de conception séparée et il est alors important de synchroniser les deux outils pour des raisons de traçabilité.

Effectivement, pour ajouter une classe externe au projet je n'ai pas trouvé d'autre solution que d'utiliser la 2e option que vous indiquez, mais ceci pourrait être différent et plus ergonomique en utilisant des verrous.

J'ai beaucoup d'idées mais je ne vous garantis pas d'arriver à les soumettre toutes rapidement. En ce moment, je code même le week-end et pas pour le plaisir... :(
Mais rien ne presse, vous pouvez laisser dans le pipe une suite de patch jusqu'à en avoir assez pour sortir THE grosse version :lol:
johanjof
 
Posts: 27
Joined: Mon 1 Jan 2018 20:49

Re: lock classe/artifact

Postby Bruno Pagès » Sat 24 Feb 2018 15:43

johanjof wrote:Désolé, entre votre "c'est bizarre", votre tirade sur les artefacts et votre dernière phrase de solution alternative, j'ai compris que l'idée ne vous intéressait pas.

non non, j'expliquais juste les limites de la chose, et ce qui est déjà possible de faire en attendant

johanjof wrote:Effectivement, pour ajouter une classe externe au projet je n'ai pas trouvé d'autre solution que d'utiliser la 2e option que vous indiquez, mais ceci pourrait être différent et plus ergonomique en utilisant des verrous.

J'ajouterais les verrous et la possibilité de reverser des fichiers spécifiques

johanjof wrote:J'ai beaucoup d'idées mais je ne vous garantis pas d'arriver à les soumettre toutes rapidement. En ce moment, je code même le week-end et pas pour le plaisir... :(
Mais rien ne presse, vous pouvez laisser dans le pipe une suite de patch jusqu'à en avoir assez pour sortir THE grosse version :lol:

ok
Last edited by Bruno Pagès on Mon 26 Feb 2018 19:12, edited 1 time in total.
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 571
Joined: Mon 20 Feb 2012 09:23
Location: France

Re: lock classe/artifact

Postby Bruno Pagès » Mon 26 Feb 2018 18:37

Vous n'avez pas indiqué si les verrous sont temporaires et uniquement valables durant la session courante, ou s'ils doivent être sauvegardés dans les fichiers projet afin d'être restitués lorsque le projet sera rechargé ultérieurement
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 571
Joined: Mon 20 Feb 2012 09:23
Location: France

Re: lock classe/artifact

Postby johanjof » Mon 26 Feb 2018 23:11

Ah !
Euh...

(je réfléchis)

Je pense qu'il faut sauvegarder cet état. En effet verrouiller un fichier, revient à dire soit:
1. qu'on veut protéger une classe étant dans un état transitoire qui n'a pas pu encore être synchronisé (car dépend d'autres modif en cours par exemple) ou pour laquelle la synchronisation sera délicate (on a "devancé" BOUML en générant de nouvelles fonctions dans l'IDE, ce qui fait qu'on devra faire croire à BOUML qu'il a fait le travail, mettre à sa place les balises BOUML de body, déclarer les fonctions dans BOuml en ignorant la génération, puis faire un roundtrip body)
2. qu'on veut figer une classe dont on est satisfait de toute modification malheureuse.

Dans le cas 2, c'est sûr on veut sauvegarder. Mais dans le cas 1 je pense qu'il en va de même car on ne peut pas imposer à l'utilisateur de rester devant son ordi jusqu'à ce qu'il ait résolu son état transitoire, sans dormir ni manger ou jusqu'à ce que mort s'en suive :)

Ca n'est que mon avis
johanjof
 
Posts: 27
Joined: Mon 1 Jan 2018 20:49

Re: lock classe/artifact

Postby Bruno Pagès » Tue 27 Feb 2018 09:27

ok les verrous seront sauvegardés

mettre à sa place les balises BOUML de body

:shock: c'est impossible, le numéro en fin de commentaire n'est pas un nombre au hasard mais l'identificateur interne de l'opération, et comme dans votre cas l'opération n'existe pas encore à moins d'être extra lucide je ne vois pas comment vous pourriez deviner combien il vaudra
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 571
Joined: Mon 20 Feb 2012 09:23
Location: France

Re: lock classe/artifact

Postby johanjof » Thu 1 Mar 2018 01:52

Zut, j'avais encore jamais essayé mais ça me plaisait bien comme spéculation :)
Va falloir que je trouve autre chose.

Merci beaucoup pour les verrous.
johanjof
 
Posts: 27
Joined: Mon 1 Jan 2018 20:49

Next

Return to Change requests / Demandes d'évolution

Who is online

Users browsing this forum: No registered users and 1 guest

cron