Partager via


Comment : créer des éléments et des relations

Dans le code de programme d'une extension de Visual Studio Ultimate, vous pouvez créer et supprimer des éléments et des relations.

Création d'un élément de modèle

Ee330929.collapse_all(fr-fr,VS.110).gifImportations d'espaces de noms

Vous devez inclure les instructions using suivantes.

Les méthodes de création sont définies comme des méthodes d'extension dans cet espace de noms :

using Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml;

Ee330929.collapse_all(fr-fr,VS.110).gifObtention du propriétaire de l'élément que vous souhaitez créer

Un modèle forme une arborescence unique afin que chaque élément dispose d'un propriétaire, à l'exception de la racine modèle.La racine modèle est de type IModel, qui est un type d'IPackage.

Si vous créez un élément qui sera affiché dans un diagramme particulier (par exemple, le diagramme actuel de l'utilisateur), vous devez généralement le créer dans le package lié à ce diagramme.Par exemple :

IPackage linkedPackage = Context.CurrentDiagram.Element as IPackage;

Ce tableau récapitule la propriété d'éléments de modèles communs :

Élément à créer

Propriétaire

IActor, IUseCase, IComponent, IClass, IInterface, IEnumeration

IActivity, IInteraction

IPackage, IModel

IAttribute, IOperation

IClass, IInterface

IPart, IPort

IComponent

IAction, IObjectNode

IActivity

ILifeline, IMessage, ICombinedFragment

IInteraction

Ee330929.collapse_all(fr-fr,VS.110).gifAppel de la méthode de création sur le propriétaire

Le nom de méthode se présente comme suit : CreateTypeDétenu().Par exemple :

IUseCase usecase1 = linkedPackage.CreateUseCase();

Certains types disposent de méthodes de création plus complexes, particulièrement dans les diagrammes de séquences.Consultez Comment : modifier des diagrammes de séquence à l'aide de l'API UML.

Pour certains types d'éléments, vous pouvez modifier le propriétaire d'un élément tout au long de sa durée de vie, grâce à SetOwner(newOwner). 

Ee330929.collapse_all(fr-fr,VS.110).gifDéfinition du nom et d'autres propriétés

usecase1.Name = "user logs in";

 

Ee330929.collapse_all(fr-fr,VS.110).gifExemple

 using Microsoft.VisualStudio.Uml.Classes;
 using Microsoft.VisualStudio.Uml.Extensions;
 ...
  void InstantiateObserverPattern (IPackage package, string namePrefix)
  {    IInterface observer = package.CreateInterface();
       observer.Name = namePrefix + "Observer";
       IOperation operation = observer.CreateOperation();
       operation.Name = "Update";
       IClass subject = package.CreateClass();
       subject.Name = namePrefix + "Subject"; ...

Création d'une association

Pour créer une association

  1. Obtenez le propriétaire de l'association, qui est généralement le package ou le modèle contenant l'extrémité source de la relation.

  2. Appelez la méthode de création requise sur le propriétaire.

  3. Définissez les propriétés de la relation comme son nom.

    Par exemple :

    IAssociation association = subject.Package.CreateAssociation(subject, observer);
    association .Name = "Observes";
    
  4. Définissez les propriétés de chaque extrémité de la relation.Il existe toujours deux MemberEnds.Par exemple :

    association .MemberEnds[0].Name = "subject";   // role name
    association .MemberEnds[1].Name = "observers"; // role name
    association .MemberEnds[1].SetBounds("0..*");         
                // multiplicity defaults to "1"
    association.MemberEnds[0].Aggregation = AggregationKind.Composite;
    

Création d'une généralisation

IGeneralization generalization = 
  subclass.CreateGeneralization(superClass);

Suppression d'un élément, d'une relation ou d'une généralisation du modèle

anElement.Delete();

Lorsque vous supprimez un élément d'un modèle :

  • Chaque relation à laquelle il est lié est également supprimée.

  • Chaque forme qui l'a représenté dans un diagramme est également supprimée.

 

Voir aussi

Concepts

Extension de modèles et de diagrammes UML

Comment : afficher un modèle sur des diagrammes