Partager via


Comment : définir un profil pour étendre UML

Dans Visual Studio Ultimate, vous pouvez définir un profil UML pour personnaliser les éléments de modèle standard à des fins spécifiques. Un profil définit un ou plusieurs stéréotypes UML. Un stéréotype peut être utilisé pour marquer un type comme représentation d'un type d'objet spécial. Un stéréotype peut être utilisé pour étendre la liste des propriétés d'un élément.

Plusieurs profils sont installés avec Visual Studio Ultimate. Pour plus d'informations sur ces profils et sur l'application de stéréotypes, consultez Personnalisation de votre modèle avec des profils et des stéréotypes.

Vous pouvez définir vos propres profils pour adapter et étendre UML à votre propre secteur d'activité ou architecture. Par exemple :

  • Si vous définissez fréquemment des sites Web, vous pouvez faire de même pour votre propre profil qui fournit un stéréotype de « page Web » qui peut être appliqué aux classes de diagrammes de classes. Vous pouvez ensuite utiliser des diagrammes de classes pour planifier un site Web. Chaque classe de type « page Web » dispose de propriétés supplémentaires concernant le contenu, le style, etc. des pages.

  • Si vous développez le logiciel de banque, vous pouvez définir un profil qui fournit un stéréotype « Compte ». Vous pouvez ensuite utiliser des diagrammes de classes pour définir différents types de comptes et afficher leurs relations.

Vous pouvez distribuer vos propres profils à votre équipe. Chaque membre de l'équipe peut installer votre profil. Cela leur permet de modifier et de créer des modèles qui utilisent leurs stéréotypes.

Notes

Si vous appliquez les stéréotypes d'un profil dans un modèle que vous modifiez, puis que vous partagez le modèle avec d'autres personnes, celles-ci doivent installer le même profil sur leurs propres ordinateurs.Sinon, elles ne seront pas en mesure de visualiser les stéréotypes que vous avez utilisés.

Un profil fait souvent partie d'une extension Visual Studio plus grande. Par exemple, vous pouvez définir une commande qui traduit des parties d'un modèle à coder. Vous pouvez définir un profil que les utilisateurs doivent appliquer aux packages qu'ils souhaitent traduire. Vous distribueriez alors votre nouvelle commande avec le profil dans une extension Visual Studio unique.

Vous pouvez également définir des variantes localisées d'un profil. Les utilisateurs chargeant votre extension visualisent la variante appropriée à leur propre culture.

Comment définir un profil

Pour définir un profil UML

  1. Créez un fichier XML avec l'extension de nom de fichier .profile.

  2. Ajoutez des définitions de stéréotypes en fonction des indications décrites dans Structure d'un profil.

  3. Ajoutez le profil à une extension Visual Studio (fichier.vsix ). Vous pouvez créer une extension pour votre profil ou ajoutez le profil à une extension existante.

    Consultez la section suivante Comment ajouter un profil à une extension Visual Studio.

  4. Installez l'extension sur votre ordinateur.

    1. Double-cliquez sur le fichier d'extension, qui possède une extension de nom de fichier .vsix.

    2. Redémarrez Visual Studio.

  5. Vérifiez que le profil a été installé.

    1. Sélectionnez le modèle depuis l'Explorateur UML.

    2. Dans la fenêtre Propriétés, cliquez sur la propriété Profils. Votre profil s'affichera dans le menu. Activez la case à cocher en regard du profil.

    3. Sélectionnez un élément pour lequel votre profil définit des stéréotypes. Dans la fenêtre Propriétés, cliquez sur la propriété Stéréotypes. Vos stéréotypes s'afficheront dans la liste. Activez la case à cocher en regard de l'un des stéréotypes.

    4. Si votre profil définit des propriétés supplémentaires pour ce stéréotype, développez la propriété du stéréotype pour les afficher.

  6. Envoyez le fichier d'extension aux autres utilisateurs de Visual Studio à installer sur leurs ordinateurs.

Comment ajouter un profil à une extension Visual Studio

Pour installer un profil et pouvoir l'envoyer à d'autres utilisateurs, vous devez l'ajouter à une extension Visual Studio. Pour plus d'informations, consultez Déploiement d'extensions Visual Studio.

Pour définir un profil dans une nouvelle extension Visual Studio

  1. Créez un projet d'extension Visual Studio.

    Notes

    Vous devez avoir installé Kit de développement logiciel Visual Studio pour utiliser cette procédure.

    1. Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.

    2. Dans la boîte de dialogue Nouveau projet, sous Modèles installés, développez Visual C#, cliquez sur Extensibilité, puis sur Projet VSIX. Définissez le nom du projet, puis cliquez sur OK.

  2. Ajoutez votre profil au projet.

    • Dans l'Explorateur de solutions, cliquez sur le projet avec le bouton droit, pointez sur Ajouter, puis cliquez sur Élément existant. Dans la boîte de dialogue, localisez votre fichier de profil.
  3. Définissez la propriété Copier dans la sortie du fichier de profil.

    1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le fichier de profil, puis cliquez sur Propriétés.

    2. Dans la fenêtre Propriétés, affectez à la propriété Copier dans le répertoire de sortie la valeur Toujours copier.

  4. Dans l'Explorateur de solutions, ouvrez source.extension.vsixmanifest.

    Le fichier s'ouvre dans l'éditeur de manifeste de l'extension.

  5. Sur la page Composants, ajoutez une ligne décrivant le profil :

    • Cliquez sur Nouveau. Définissez les champs dans la boîte de dialogue Ajouter Nouveau Composant de la manière détaillée ci-dessous.

    • Affectez à Type la valeur Microsoft.VisualStudio.UmlProfile.

      Ce n'est pas l'un des choix déroulants. Entrez ce nom au clavier.

    • Cliquez sur Fichier dans le système de fichiers et sélectionnez le nom de votre fichier de profil, par exemple MyProfile.profile.

  6. Générez le projet.

  7. Pour déboguer le profil, appuyez sur F5.

    Une instance expérimentale de Visual Studio s'ouvre. Dans ce cas, ouvrez un projet de modélisation. Dans l'Explorateur UML, sélectionnez l'élément racine du modèle, et dans la fenêtre Propriétés, sélectionnez votre profil. Sélectionnez ensuite les éléments à l'intérieur du modèle et définissez les stéréotypes que vous avez définis pour eux.

  8. Pour récupérer le VSIX pour le déploiement

    1. Dans l'Explorateur Windows, ouvrez le dossier .\bin\Debug ou .\bin\Release pour rechercher le fichier .vsix. Il s'agit d'un fichier d'extension Visual Studio. Il peut être installé sur votre ordinateur et envoyé à d'autres utilisateurs Visual Studio.

    2. Pour installer l'extension :

      1. Double-cliquez sur le fichier .vsix. Le programme d'installation des extensions Visual Studio démarre.

      2. Redémarrez une instance de Visual Studio en cours d'exécution.

Si vous n'avez pas installé Kit de développement logiciel Visual Studio, la procédure possible suivante peut être utilisée pour les petites extensions.

Pour définir une extension de profil sans utiliser le Kit de développement Visual Studio SDK

  1. Créez un répertoire Windows qui contient les trois fichiers suivants :

    • YourProfile.profile

    • extension.vsixmanifest

    • [Content_Types].xml - tapez ce nom comme indiqué ici, avec les crochets.

  2. Modifiez [Content_Types].xml afin qu'il contienne le texte suivant. Notez qu'il contient une entrée pour chaque extension de nom de fichier.

    <?xml version="1.0" encoding="utf-8"?>
    <Types xmlns="https://schemas.openxmlformats.org/package/2006/content-types">
      <Default Extension="profile" ContentType="application/octet-stream" />
      <Default Extension="vsixmanifest" ContentType="text/xml" />
    </Types>
    
  3. Copiez un extension.vsixmanifest existant et modifiez-le à l'aide d'un éditeur XML. Modifiez les nœuds ID, Nom et Contenu.

    • Vous pouvez rechercher un exemple de extension.vsixmanifest dans ce répertoire :

      drive**:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\UmlProfiles**

    • Le nœud Contenu doit se présenter comme suit :

      <Content>
        <CustomExtension Type="Microsoft.VisualStudio.UmlProfile"
        >YourProfile.Profile</CustomExtension>
      </Content>
      
  4. Compressez les trois fichiers dans un fichier zippé.

    Dans l'Explorateur Windows, sélectionnez les trois fichiers, cliquez avec le bouton droit, pointez sur Envoyer vers, puis cliquez sur Dossier compressé (zippé).

  5. Renommez le fichier zippé et remplacez son extension de nom de fichier .zip par .vsix.

  6. Pour installer le profil sur un ordinateur avec les éditions appropriées de Visual Studio, double-cliquez sur le fichier .vsix.

Pour installer un profil UML à partir d'une extension Visual Studio

  1. Double-cliquez sur le fichier .vsix dans l'Explorateur Windows ou ouvrez-le dans Visual Studio.

  2. Cliquez sur Installer dans la boîte de dialogue qui apparaît.

  3. Pour désinstaller ou temporairement désactiver l'extension, ouvrez Gestionnaire d'extensions à partir du menu Outils.

Comment définir des profils localisés

Vous pouvez définir différents profils pour des cultures ou des langues différentes et toutes les empaqueter dans la même extension. Lorsqu'un utilisateur charge votre extension, il visualisera le profil que vous avez défini pour sa culture.

Vous devez toujours fournir un profil par défaut. Si vous n'avez pas défini de profil pour la culture de l'utilisateur, il visualisera le profil par défaut.

Pour définir un profil localisé

  1. Créez un profil comme décrit dans les sections précédentes Comment définir un profil et Comment ajouter un profil à une extension Visual Studio. Il s'agit du profil par défaut qui sera utilisé dans les installations pour lesquelles vous ne fournissez pas de profil localisé.

  2. Ajoutez un nouveau répertoire dans le répertoire dans lequel se trouve votre fichier de profil par défaut.

    Notes

    Si vous générez l'extension à l'aide d'un projet d'extension Visual Studio, utilisez l'Explorateur de solutions pour ajouter un nouveau dossier au projet.

  3. Remplacez le nom du nouveau répertoire par le code court ISO de la culture localisée, par exemple bg pour le bulgare ou encore fr pour le français. Vous devez utiliser un code de culture neutre (en général deux lettres) et non un code de culture spécifique comme fr-CA. Pour plus d'informations sur les codes de culture, consultez la méthode CultureInfo.GetCultures, qui fournit une liste complète des codes de culture.

  4. Ajoutez une copie de votre profil par défaut au nouveau répertoire. Ne modifiez pas son nom de fichier.

    Un exemple de dossier d'extension Visual Studio, avant qu'il ne soit créé ou compressé dans un fichier .vsix, contient les dossiers et fichiers suivants :

    extension.vsixmanifest

    MyProfile.profile

    fr\MyProfile.profile

    de\MyProfile.profile

    Notes

    Vous ne devez pas insérer de référence aux versions localisées des profils dans extension.vsixmanifest.Les fichiers de profils copiés doivent posséder le même nom que le profil présent dans le dossier parent.

  5. Modifiez la nouvelle copie du profil, en traduisant vers le langage cible, toutes les parties qui seront visibles par l'utilisateur, comme les attributs displayName.

  6. Vous pouvez créer des dossiers de culture et des profils localisés supplémentaires pour autant de cultures que vous le souhaitez.

  7. Générez l'extension Visual Studio en créant le projet d'extension ou en compressant tous les fichiers, comme décrit dans les sections précédentes.

Structure d'un profil

Le fichier XSD des profils UML peut être récupéré dans l'exemple suivant : Définitionde stéréotypes et profils XSD. Pour vous aider à modifier les fichiers des profils de modification, installez le fichier .xsd dans :

%ProgramFiles%\Microsoft Visual Studio 11.0\Xml\Schemas

Cette section utilise le profil C# comme exemple. La définition de profil complète peut être visualisée dans :

drive**:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\UmlProfiles\CSharp.profile**

Les premières parties de ce chemin d'accès peuvent différer dans votre installation.

Pour plus d'informations sur le profil .NET, consultez Stéréotypes standard pour les modèles UML.

Principales sections de la définition de profil UML

Chaque profil présente le contenu suivant :

<?xml version="1.0" encoding="utf-8"?>
<profile dslVersion="1.0.0.0" 
       name="CSharpProfile" displayName="C# Profile" 
       xmlns="https://schemas.microsoft.com/UML2.1.2/ProfileDefinition">
  <stereotypes>...</stereotypes>
  <metaclasses>...</metaclasses>
  <propertyTypes>...</propertyTypes>
</profile>

Notes

L'attribut appelé name ne doit pas contenir d'espace ni de ponctuation.L'attribut displayName, qui apparaît dans l'interface utilisateur, doit être une chaîne XML valide.

Chaque profil contient trois sections principales. Dans l'ordre inverse, elles se présentent comme suit :

  • <propertyTypes> - une liste des types utilisés pour les propriétés définies dans la section des stéréotypes.

  • <metaclasses> - une liste de types d'éléments de modèles auxquels s'appliquent les stéréotypes de ce profil, comme IClass, IInterface, IOperation, IDependency.

  • <stereotypes>- les définitions de stéréotypes. Chaque définition comprend les noms et les types des propriétés ajoutées à l'élément de modèle cible.

Types de propriétés

La section <propertyTypes> déclare une liste des types utilisés pour les propriétés dans la section <stereotypes>. Il existe deux genres de types de propriétés : externe et d'énumération.

Un type externe déclare le nom qualifié complet d'un type .NET standard :

<externalType name="System.String" />

Quant à lui, un type d'énumération définit un ensemble de valeurs littérales :

    <enumerationType name="PackageVisibility">
      <enumerationLiterals>
        <enumerationLiteral name="internal" displayName="internal"  />
        <enumerationLiteral name="protectedinternal" displayName="protected internal" />
      </enumerationLiterals>
    </enumerationType>

Métaclasses

La section <metaclasses> est une liste de types d'éléments de modèles auxquels les stéréotypes de ce profil peuvent être définis :

<metaclass 
      name="Microsoft.VisualStudio.Uml.Classes.IClass" />
<metaclass
      name="Microsoft.VisualStudio.Uml.Classes.IInterface" />
<metaclass
      name="Microsoft.VisualStudio.Uml.Components.IComponent" />

Pour obtenir une liste complète des types de relations et d'éléments de modèles que vous pouvez utiliser comme des métaclasses, consultez Types d'éléments de modèles.

Définition de stéréotype

La section <stereotypes> contient une ou plusieurs définitions de stéréotypes :

    <stereotype name="CSharpClass" displayName="C# Class"> ...

Chaque stéréotype répertorie un ou plusieurs types de relations ou d'éléments de modèles auxquels il peut être appliqué. Vous pouvez attribuer le nom d'un type de base afin d'inclure tous ses types dérivés. Par exemple, si vous spécifiez Microsoft.VisualStudio.Uml.Classes.IType, le stéréotype peut être appliqué à IClass, IInterface, IEnumeration, ainsi qu'à plusieurs autres types d'éléments.

      <metaclasses>
        <metaclassMoniker name=
         "/CSharpProfile/Microsoft.VisualStudio.Uml.Classes.IClass" />
      </metaclasses>

L'attribut name de metaclassMoniker est un lien vers un élément dans la section <metaClasses>.

Notes

Le nom moniker doit commencer par /yourProfileName/, où yourProfileName est défini dans l'attribut name du profil ("CSharpProfile" dans cet exemple).Le moniker se termine par le nom de l'une des entrées dans la section des métaclasses.

Chaque stéréotype peut ou non répertorier des propriétés qu'il ajoute à tous les éléments de modèles auxquels il s'applique. Le <propertyType> contient un lien vers l'un des types définis dans la section <propertyTypes> . Le lien doit être un <externalTypeMoniker> qui fait référence à un <externalType>,, ou un <enumerationTypeMoniker> qui fait référence à un <enumerationType>. Une fois encore, le lien commence par le nom de votre profil.

      <properties>
        <property name="IsStatic" 
                displayName="Is Static" defaultValue="false">
          <propertyType>
    <externalTypeMoniker 
                   name="/CSharpProfile/System.Boolean" />
          </propertyType>
        </property>
        <property name="PackageVisibility" 
                  displayName="Package Visibility"
                  defaultValue="internal">
          <propertyType>
            <enumerationTypeMoniker 
                  name="/CSharpProfile/PackageVisibility"/>
          </propertyType>
        </property>
      </properties>
    </stereotype>

Types d'éléments de modèles

L'ensemble de types pour lequel vous pouvez définir des stéréotypes est répertorié dans Types d'éléments de modèles.

Dépannage

  • Mes stéréotypes n'apparaissent pas dans mes modèles UML.
    Vous devez sélectionner votre profil depuis un package ou un modèle. Les stéréotypes s'afficheront alors dans les éléments situés à l'intérieur du package ou du modèle. Pour plus d'informations, consultez Comment : ajouter des stéréotypes à des éléments de modèle.

  • Le message d'erreur suivant apparaît lorsque j'ouvre un modèle UML : VS1707: The following profiles cannot be loaded because a serialization error occurred: MyProfile.profile

    1. Vérifiez que la syntaxe XML de base du fichier .profile est correcte.

    2. Assurez-vous que chaque nom Moniker est sous la forme /nomProfil/nomNœud. nomProfil est la valeur de l'attribut name dans le nœud racine du profil. nomNœud est la valeur de l'attribut name d'une métaclasse, d'un externalType ou d'un enumerationType.

    3. Assurez-vous que la syntaxe est telle que décrite ici, et telle qu'indiqué dans drive**:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\UmlProfiles\**.

    4. Désinstallez l'extension défaillante. Dans le menu Outils, cliquez sur Gestionnaire d'extensions.

      • Si l'extension n'apparaît pas, examinez l'élément suivant.
    5. Régénérez le fichier VSIX et ouvrez-le dans l'Explorateur Windows pour le réinstaller. Redémarrez Visual Studio.

  • L'extension ne s'affiche pas dans le Gestionnaire d'extensions, mais lorsque vous essayez de la réinstaller, le message suivant apparaît : The extension is already installed to all applicable products.

    1. Supprimez le fichier d'extension à partir d'un sous-dossier de LocalAppData\Microsoft\VisualStudio\12.0\Extensions\

      • Pour visualiser LocalAppData, vous devez activer l'option Afficher les fichiers et les dossiers masqués sous l'onglet Affichage des Options de dossiers de l'Explorateur Windows.

      • LocalAppData est en général dans C:\Users\userName\AppData\Local\

    2. Redémarrez Visual Studio.

Voir aussi

Tâches

Comment : ajouter des stéréotypes à des éléments de modèle

Concepts

Stéréotypes standard pour les modèles UML

Autres ressources

Personnalisation de votre modèle avec des profils et des stéréotypes

Exemple : Éléments UML de couleur par stéréotype

Exemple : Définition des stéréotypes, profils XSD