2010-10-11 11 views
3

J'ai une classe dans un package. Et j'ai une autre classe dans un autre paquet. Je voudrais lier cette deuxième classe à la première. Depuis le premier est un héritage de la seconde. Je ne suis pas capable de faire cette relation. Nous avons essayé, mais dans aucun des deux cas, les méthodes de la seconde n'apportent le premier.Héritage dans Enterprise Architect

Toute aide est la bienvenue. Merci

Class A
classe A

Class B
Classe B

La propriété de la classe A, doit être visible au sein de la classe B. A et B sont dans des dossiers différents. Et B, j'ai mis une "instance" de A.

Répondre

3

Apparemment, vous devez créer cette relation dans un diagramme qui contient les deux classes. N'oubliez pas que vous pouvez avoir plusieurs diagrammes liés à une même classe dans un autre paquet/espace de nommage.

Vous pouvez soit créer un nouveau diagramme qui gère exclusivement l'héritage (et d'autres relations) comme décrit ici: http://www.sparxsystems.com/WhitePapers/Version_Control.pdf

Ou bien, vous faites glisser juste la classe étrangère sur le schéma que vous travaillez actuellement, créez la relation et puis supprimez la classe étrangère après. La relation va persister. Notez que vous ne devez pas faire glisser/supprimer/supprimer la classe dans la vue du projet car cela entraînera des modifications dans les packages.

La première solution présente l'avantage qu'il existe une représentation UML réelle de la relation. D'un autre côté, l'ajout d'un autre groupe de diagrammes pour les relations inter-paquets peut encombrer la vue du projet, mais cela dépend de vous :)

1

Quel genre de lien essayez-vous d'établir (quelle est la nature de leur relation), et dans quel but?

  • Si vous en appelez un autre directement alors peut-être que vous êtes après une dépendance. S'il s'agit d'un héritage, essayez un lien generalization.

Edit: Je ne l'ai pas encore utilisé EA pour les énoncés prospectifs, d'ingénierie, donc je ne suis pas sûr de la meilleure façon de faire ce que vous êtes après, mais je ne l'obtenir à en partie travail :

  • Forme un lien entre les classes en faisant glisser la nouvelle flèche de chemin de la classe enfant sur la classe parente.
  • Dans le menu contextuel qui s'affiche, sélectionnez la généralisation
  • La boîte de dialogue "Remplacements et implémentation" doit apparaître.
  • Sélectionnez les méthodes que vous souhaitez appliquer.

J'ai essayé ceci et cela a fonctionné - mais seulement pour les méthodes pas pour les attributs que j'avais créés.

0

J'ai cherché une solution pour ajouter l'héritage manuellement, par ex.: Je verrai le IDisposable - interface dans C# sur ma classe ou interface sans avoir cette interface dans mon projet déclaré. Vous pouvez le faire en procédant comme suit: Sélectionnez la classe ou l'interface et appuyez sur [STRG + I] ou sélectionnez la classe/l'interface dans le diagramme dans un menu contextuel de survol: Avancé -> Parent.

Dans le dialogue suivant, vous pouvez sélectionner une classe, l'interface de votre projet ou tapez un new Name dans le texte déposé, sélectionnez vers le bas de la chute Generalize ou Implements et appuyez sur Add.

Enterprise Architect 12