Précédent   Forum des professionnels en informatique > Général Développement > Conception > Outils > BOUML
BOUML Forum d'entraide sur l'outil UML 2 BOUML : modélisation, générateurs, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/09/2007, 20h03   #21
Modérateur
 
Avatar de bruno_pages
 
Homme bruno pagès
Développeur informatique
Inscription : juin 2005
Messages : 2 970
Détails du profil
Informations personnelles :
Nom : Homme bruno pagès
Âge : 52
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : juin 2005
Messages : 2 970
Points : 4 576
Points : 4 576
Citation:
Envoyé par yann2 Voir le message
Lorsque le TemplateableElement est de type Classifier (ce qui est le cas du type Class), il faut utiliser uml:RedefinableTemplateSignature à la place de uml:TemplateSignature (UML Superstructure v2.1.1 p.626 (cad p642 du PDF)).
effectivement
[edit]
Finalement je n'en plus si sure :
  • vu la définition de RedefinableTemplateSignature, je me demande s'il ne s'agit pas ici de meta classes et non de classes (au sens template C++, generic Java)
  • de plus fig 17.18 (UMl 2.1.1) on voit que Classifier hérite de TempleteableElement, et donc un Classifier peut aussi avoir un TemplateSignature
  • enfin, une classe template peut également avoir des actuals, et cela n'est possible que via un TempleteableElement, pas au 'niveau' d'un Classifier. Comme je ne vois pas pourquoi il faudrait que la définition des formals et les actuals ne soient pas au même 'niveau' pour une classe mon coeur re-balance du coté de l'utilisation de TemplateSignature,
Qu'en penses-tu ?

Il y a autre chose qui me semble également bizarre : un actual est un ParameterableElement, on a l'impression de tourner en rond ...
[/edit]

[edit 2]
Bon, Visual Paradigm for UML génère aussi un RedefinableTemplateSignature, alors je m'incline

c'est le seul outils (a part Bouml of course) qui a bien voulut reverser correctement un generique Java et produire de l'XMI.

Par contre celui-ci ne sait pas reverser l'utilisation d'un générique, donc avec :
Code :
1
2
3
4
5
6
class Map<K,V>  {}
class C {}
class D{}
class MapCD extends Map<C,D>{
  public Map<D,C> rev;
}
MapCD hérite de Map sans plus, y compris au niveau de l'XMI produit
rev est de type Map, y compris au niveau de l'XMI produit
[edit 2]

Citation:
Envoyé par yann2 Voir le message
Il est donc inutile d'indiquer deux fois le paramètre
là je ne comprends pas : je ne vois pas ou je mets deux fois le parameter, peut etre que tu as crus que je mettais à la fois parameter="xxx" et <parameter xmi:idref="xxx"> ?

Sinon, comme une signature peut avoir plusieurs parameters, je préfère l'utilisation de <parameter xmi:idref="xxx">

Citation:
Il ne faut pas oublier la propriété signature de l'objet TemplateParameter
comme c'est un ownedParameter je trouve cela redondant
Citation:
Il ne faut pas oublier l'attribut owningTemplateParameter du ParametereableElement
comme c'est un ownedParameteredElement je trouve cela redondant.

En fait je ne genère jamais de owningXXX car j'utilise des ownedXXX. C'est une erreur ?
__________________
Bruno Pagès, auteur de Bouml, mes tutoriels sur DVP (vieux, non à jour)
bruno_pages est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2007, 13h07   #22
Membre émérite
 
Avatar de yann2
 
Inscription : mai 2004
Messages : 751
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2004
Messages : 751
Points : 901
Points : 901
Salut

Désolé Bruno, je n'ai pas beaucoup de temps.

En fait je pense que Classifier redéfini l'attribut ownedTemplateSignature de la classe TemplateableElement et restreint le type à RedefinableTemplateSignature.

Pour info voici le code du plugin UML2 d'eclipse pour la classe Classifier :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
public NotificationChain basicSetOwnedTemplateSignature(
			TemplateSignature newOwnedTemplateSignature, NotificationChain msgs) {

		if (newOwnedTemplateSignature != null
			&& !(newOwnedTemplateSignature instanceof RedefinableTemplateSignature)) {

			throw new IllegalArgumentException(newOwnedTemplateSignature
				.toString());
		}

		return basicSetOwnedTemplateSignatureGen(newOwnedTemplateSignature,
			msgs);
	}
De ce côté du plugin c'est clair ! Il est impossible de mettre autre chose qu'un RedefinableTemplateSignature.

yann
__________________
duck and cover
yann2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2007, 14h53   #23
Modérateur
 
Avatar de bruno_pages
 
Homme bruno pagès
Développeur informatique
Inscription : juin 2005
Messages : 2 970
Détails du profil
Informations personnelles :
Nom : Homme bruno pagès
Âge : 52
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : juin 2005
Messages : 2 970
Points : 4 576
Points : 4 576
Voilà ce que je vais faire :
  • je vais laissé la génération pour Uml 2.0 inchangée
  • je vais utiliser RedefinableTemplateSignature pour Uml 2.1 + autres modifications permettant à Eclipse d'importer l'XMI
En procédant ainsi j'aumente la probabilité d'import par d'autres outils sans ajouter une option pour choisir entre RedefinableTemplateSignature et TemplateSignature.

Pour info : Visual Paradigm for UML 6.1 produit un RedefinableTemplateSignature, mais accepte d'importer ce qui est produit par Enterprise Architect et qui contient TemplateSignature. Visual Paradigm n'accepte pas d'importer un fichier sans exporter où avec un exporteur inconnu de lui. VP refuse donc d'importer un fichier produit pas Bouml tant que je ne l'édite pas pour remplacer l'xmi:Documentation de Bouml par celui d'Enterprise Architect, ce qui est assez pitoyable ...
__________________
Bruno Pagès, auteur de Bouml, mes tutoriels sur DVP (vieux, non à jour)
bruno_pages est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 08h39   #24
Modérateur
 
Avatar de bruno_pages
 
Homme bruno pagès
Développeur informatique
Inscription : juin 2005
Messages : 2 970
Détails du profil
Informations personnelles :
Nom : Homme bruno pagès
Âge : 52
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : juin 2005
Messages : 2 970
Points : 4 576
Points : 4 576
Citation:
Envoyé par bruno_pages Voir le message
Voilà ce que je vais faire :
  • je vais laissé la génération pour Uml 2.0 inchangée
  • je vais utiliser RedefinableTemplateSignature pour Uml 2.1 + autres modifications permettant à Eclipse d'importer l'XMI
C'est fait, Bouml 2.31.2 est disponible sur le site

Bonnes modélisations

[edit]
J'ai ajouté l'import/export des actuals en utilisant une définition qui ne gène ni Eclipse UML ni Visual Paradigm. C'est à dire que ces deux outils ne prennent pas en compte les actuals mais acceptent de lire de fichier sans sortir en erreur.

Bouml importe bien-sur ce qu'il produit, on retrouve donc maintenant les valeurs des actuals après export-import. J'accepte aussi d'importer ce qui est produit par Visual Paradigm même si c'est doublement erroné :
  • parce que le TemplateBinding produit est incomplet, il manque justement la valeur des actuals alors qu'il est là pour les donner
  • parce que la signature ne référence pas le RedefinableTemplateSignature de la classe template mais la classe template elle-même
[/edit]
__________________
Bruno Pagès, auteur de Bouml, mes tutoriels sur DVP (vieux, non à jour)
bruno_pages est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h07.


 
 
 
 
Partenaires

Hébergement Web