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 plusieurs stéréotypes UML. 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 et 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
Créez un fichier XML avec l'extension de nom de fichier .profile.
Ajoutez des définitions de stéréotypes en fonction des indications décrites dans Structure d'un profil.
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.
Installez l'extension sur votre ordinateur.
Double-cliquez sur le fichier d'extension, qui possède une extension de nom de fichier .vsix.
Redémarrez Visual Studio.
Vérifiez que le profil a été installé.
Sélectionnez le modèle depuis l'Explorateur UML.
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.
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.
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.
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'une extension Visual Studio.
Pour définir un profil dans une nouvelle extension Visual Studio
Créez un projet d'extension Visual Studio.
Notes
Vous devez avoir installé Kit de développement logiciel (SDK) Visual Studio pour utiliser cette procédure.
Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Fichier.
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.
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.
Définissez la propriété Copier dans la sortie du fichier de profil.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le fichier de profil, puis cliquez sur Propriétés.
Dans la fenêtre Propriétés, affectez à la propriété Copier dans le répertoire de sortie la valeur Toujours copier.
Dans l'Explorateur de solutions, ouvrez source.extension.vsixmanifest.
Le fichier s'ouvre dans l'éditeur de manifeste de l'extension.
Définissez les champs ID et Nom du produit. L'ID doit être unique.
Sous Contenu, définissez une ligne décrivant le profil :
Cliquez sur Ajouter du contenu. Définissez les champs dans la boîte de dialogue Ajouter du contenu de la manière détaillée ci-dessous.
Affectez à Sélectionner un type de contenu la valeur Type d'extension personnalisée.
Affectez à Type la valeur Microsoft.VisualStudio.UmlProfile.
Cliquez sur Fichier dans le projet et sélectionnez le nom de votre fichier de profil, par exemple MyProfile.profile.
Générez le projet.
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.
Pour installer l'extension :
Double-cliquez sur le fichier .vsix. Le programme d'installation des extensions Visual Studio démarre.
Redémarrez une instance de Visual Studio en cours d'exécution.
Si vous n'avez pas installé Kit de développement logiciel (SDK) 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
Créez un répertoire Windows qui contient les trois fichiers suivants :
VotreProfil.profile
extension.vsixmanifest
[Content_Types].xml - tapez ce nom comme indiqué ici, avec les crochets.
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>
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 :
lecteur**:\Program Files\Microsoft Visual Studio 10.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>
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é).
Renommez le fichier zippé et remplacez son extension de nom de fichier .zip par .vsix.
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
Double-cliquez sur le fichier .vsix dans l'Explorateur Windows ou ouvrez-le dans Visual Studio.
Cliquez sur Installer dans la boîte de dialogue qui apparaît.
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é
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é.
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.
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.
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.
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.
Vous pouvez créer des dossiers de culture et des profils localisés supplémentaires pour autant de cultures que vous le souhaitez.
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éfinition des stéréotypes et des profils XSD (page éventuellement en anglais). Pour vous aider à modifier les fichiers des profils de modification, installez le fichier .xsd dans :
%ProgramFiles%\Microsoft Visual Studio 10.0\Xml\Schemas
Cette section utilise le profil C# comme exemple. La définition de profil complète peut être visualisée dans :
lecteur**:\Program Files\Microsoft Visual Studio 10.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.
Résolution des problèmes
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
Vérifiez que la syntaxe XML de base du fichier .profile est correcte.
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.
Assurez-vous que la syntaxe est telle que décrite ici, et telle qu'indiqué dans lecteur**:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\UmlProfiles\**.
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.
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.
Supprimez le fichier d'extension d'un sous-dossier de LocalAppData\Microsoft\VisualStudio\10.0\Extensions\
Pour visualiser LocalAppData, vous devez activer l'option Afficher les fichiers et les dossiers masqués sous l'onglet Affichage des Options des dossiers de l'Explorateur Windows.
LocalAppData est en général dans C:\Users\nomUtilisateur\AppData\Local\
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 : application d'une couleur aux éléments UML par stéréotype (page éventuellement en anglais)
Exemple : Définition des stéréotypes et des profils XSD (page éventuellement en anglais)