pure::variants – Connecteur pour
Manuel de gestion du code source
Parametric Technology GmbH
Version 6.0.7.685 pour pure :: variantes 6.0
Droits d'auteur © 2003-2024 Parametric Technology GmbH
2024
Introduction
Le connecteur pure::variants pour la gestion du code source (Connector) permet aux développeurs de gérer la variabilité du code source à l'aide de pure::variants. La gestion du code source de pure::variants offre une opportunité flexible de synchroniser les structures de répertoires et le code source fileLes modèles pure::variants sont facilement compatibles. La gestion des variantes peut ainsi être appliquée de manière pratique même à des projets logiciels complexes. De plus, les connexions entre les fonctionnalités pure::variants et le code source peuvent être gérées plus facilement avec le générateur et sont hautement accessibles via la gestion du code source.
1.1. Configuration logicielle requise
Le connecteur pure::variants pour la gestion du code source est une extension de pure::variants et est disponible sur toutes les plates-formes prises en charge.
1.2. Installation
Veuillez consulter la section pure::variants Connectors dans le pure::variants Setup Guide pour des informations détaillées sur l'installation du connecteur (menu Help -> Help Contents puis pure::variants Setup Guide -> pure::variants Connectors).
1.3. À propos de ce manuel
Le lecteur doit avoir des connaissances de base et une expérience avec pure::variants. Veuillez consulter son introduction avant de lire ce manuel. Le manuel est disponible dans l'aide en ligne ainsi qu'au format PDF imprimable ici.
Utilisation du connecteur
2.1. Démarrage de pure::variants
Selon la méthode d'installation utilisée, démarrez Eclipse compatible pure::variants ou, sous Windows, sélectionnez l'élément pure::variants dans le menu du programme.
Si la perspective Gestion des variantes n’est pas déjà activée, faites-le en la sélectionnant dans Ouvrir la perspective->Autre… dans le menu Fenêtre.
2.2. Importer une arborescence de répertoires dans un modèle de famille
Avant d'importer une arborescence de répertoires dans un modèle de famille, un projet de variantes doit être créé. Il est également conseillé d'avoir déjà défini des fonctionnalités dans un modèle de fonctionnalités. Veuillez consulter la documentation pure::variants pour obtenir de l'aide sur ces étapes.
L'importation proprement dite est lancée en sélectionnant l'action Importer… soit dans le menu contextuel des Projets view ou avec le menu Importer… dans le File menu. Sélectionnez Modèles de variantes ou Projets dans la catégorie Gestion des variantes et appuyez sur Suivant. Sur la page suivante, sélectionnez Importer un modèle de famille à partir des dossiers sources et appuyez à nouveau sur Suivant.
Choisissez le type de code source à importer
L'assistant d'importation apparaît (voir Figure 1, « Page de l'assistant d'importation pour sélectionner le type de code source pouvant être importé »). Sélectionnez un type de projet à importer et appuyez sur Suivant. Chaque type contient un ensemble prédéfini de file types à importer dans le modèle.
Figure 1. Page de l'assistant d'importation permettant de sélectionner le type de code source pouvant être importéSélectionner la source et la cible
Sur la page suivante de l’assistant (Figure 2, « Page de l'assistant d'importation pour sélectionner la source et la cible de l'importation ») le répertoire source et le modèle cible doivent être spécifiés.
Appuyez sur le bouton Parcourir… pour sélectionner le répertoire dans lequel se trouve le code source à importer. Par défaut, l'espace de travail actuel est sélectionné car il peut s'agir d'un point de départ utile pour la navigation.
Ci-dessous, vous pouvez spécifier un modèle d'inclusion et d'exclusion. Ces modèles doivent être des expressions régulières Java. Chaque chemin d'entrée, relatif au dossier racine source, est vérifié avec ces modèles. Si le modèle d'inclusion correspond, un dossier est importé, si le modèle d'exclusion ne correspond pas. Cela signifie que le modèle d'inclusion présélectionne les dossiers à importer, le modèle d'exclusion restreint cette présélection.
Après avoir sélectionné le répertoire du code source, un modèle cible doit être défini. Sélectionnez donc un projet de variante ou un dossier dans lequel le modèle doit être stocké et entrez un nom de modèle. file Le nom est automatiquement étendu avec l'extension .ccfm s'il n'est pas indiqué dans cette boîte de dialogue. Par défaut, il sera défini sur le même nom que le nom du modèle lui-même. Il s'agit du paramètre recommandé.
Après avoir spécifié un dossier source approprié et le nom du modèle souhaité, vous pouvez fermer la boîte de dialogue en appuyant sur Terminer. Si vous appuyez sur le bouton Suivant, une autre page s'affiche où des paramètres supplémentaires peuvent être définis.
Figure 2. Page de l'assistant d'importation pour sélectionner la source et la cible de l'importationModifier les préférences d'importation
Sur la dernière page de l'assistant (Figure 3, « Page de l'assistant d'importation pour définir une configuration individuelle« » il existe des préférences qui peuvent être effectuées pour personnaliser le comportement d'importation du projet logiciel importé.
La page de dialogue affiche un tableau dans lequel le file des types sont définis, qui seront pris en compte par le processus d'importation.
Chaque ligne se compose de quatre champs.
- Le champ Description contient un court texte descriptif pour identifier le file taper.
- Le File Le champ de modèle de nom est utilisé pour sélectionner files à importer lorsqu'ils correspondent à la valeur des champs. Le champ utilise la syntaxe suivante :
- Le cas d’utilisation le plus courant peut être un file extension. La syntaxe habituelle est .EXT, où EXT est l'extension souhaitée file extension (par exemple .java).
- Une autre situation courante est une situation spéciale file, comme une marquefile. Il est donc possible de faire correspondre exactement file nom. Pour ce faire, il suffit de saisir le file nom dans le champ (par exemple build.xml).
- Dans certains cas, les souhaits de cartographie sont plus spécifiques, donc seulement fileLes éléments qui correspondent à un modèle spécial doivent être importés. Pour répondre à cette exigence, il est possible d'utiliser des expressions régulières dans le File champ de modèle de nom.
Décrire la syntaxe des expressions régulières dépasserait le but de cette aide. Veuillez consulter la section sur les expressions régulières du chapitre de référence du guide d'utilisation de pure::variants (par exemple .*).
- Le champ Type d'élément mappé définit le mappage entre un file type et un type d'élément de famille pure::variants. Le type d'élément de famille est un descripteur de la source file pour fournir des informations supplémentaires à l'élément mappé dans le modèle importé. Les sélections typiques sont ps:class ou ps:makefile.
- Le cartographié file le champ de type définit le mappage entre un file type et un pure::variants file type. Le file type dans pure::variants est un descripteur pour la source file pour fournir des informations supplémentaires à l'élément mappé dans le modèle importé. Les sélections typiques sont impl pour les implémentations ou def pour la définition files.
Figure 3. Page de l'assistant d'importation pour définir une configuration individuelleNouveau file Les types peuvent être ajoutés en utilisant le bouton Ajouter un mappage. Tous les champs sont remplis avec la valeur undefined et doivent être remplis par l'utilisateur. Pour modifier une valeur dans un champ, cliquez simplement dans le champ avec la souris. La valeur devient modifiable et peut être modifiée. Il n'est pas possible de modifier la valeur par défaut file modèles de noms de la table. Pour rendre une personnalisation flexible, il est possible de désélectionner un file tapez en désélectionnant la ligne. Désélectionné file les modèles de noms restent dans la configuration mais ne seront pas utilisés par l'importateur. Défini par l'utilisateur file les types peuvent être supprimés à nouveau en utilisant le bouton Supprimer le mappage.
Par défaut un Autre files file Le modèle de nom est disponible dans le tableau mais désélectionné. En général, il n'est pas souhaité d'importer tous les files mais cela peut être facilement modifié en sélectionnant la ligne correspondante.
Il existe trois options d'importation générales pour personnaliser le comportement de l'importateur.
- N'importez pas de répertoires sans correspondance files (par exemple les répertoires CVS).
Si l'importateur trouve un répertoire où aucune correspondance file est dedans et où aucun sous-répertoire n'a de correspondance file, le répertoire ne sera pas importé. Ceci est souvent utile si les projets sont gérés par des systèmes de gestion de versions comme CVS. Pour CVS, chaque répertoire pertinent contient un répertoire CVS dans lequel les éléments non pertinents files sont stockés. Si cette option est sélectionnée et que le CVS-files ne correspond à aucun file type défini ci-dessus, le répertoire ne sera pas importé en tant que composant dans le modèle de famille. - Trier files et répertoires.
Activez cette option pour trier files et répertoires, chacun classé par ordre alphabétique. - Gestion du chemin d'importation.
Pour une synchronisation ultérieure, l'importateur doit stocker le chemin d'origine de tous les éléments importés dans le modèle.
Dans de nombreux cas, les modèles de famille sont partagés avec d'autres utilisateurs. La structure du répertoire peut être différente pour chaque utilisateur. Pour prendre en charge la plupart des scénarios d'utilisation courants, l'importateur peut fonctionner dans différents modes :
Absolu | Le chemin absolu vers l'élément importé sera stocké dans le modèle. Pour une synchronisation ultérieure et pendant la transformation, le files doivent être placés exactement au même endroit que lors de la première importation. |
Par rapport à l'espace de travail | Les chemins sont stockés par rapport au dossier de l'espace de travail. Pour la synchronisation, files doit faire partie de l'espace de travail Eclipse. La transformation doit utiliser l'espace de travail Eclipse comme répertoire d'entrée. |
Par rapport au projet | Les chemins sont stockés par rapport au projet. Pour la synchronisation, fileLes fichiers font partie du projet dans Eclipse. La transformation doit utiliser le dossier du projet comme répertoire d'entrée. |
Par rapport au chemin | Les chemins sont stockés par rapport au chemin donné. Pour la synchronisation, le fileLes fichiers doivent être placés exactement au même endroit. Le répertoire d'entrée de la transformation est le même que le chemin relatif lors de l'importation. |
Toutes les préférences de cette boîte de dialogue sont enregistrées de manière permanente. Les personnalisations personnelles ne doivent pas être refaites à chaque exécution de l'importation. Cela rend le flux de travail d'importation simple et rapide.
2.3. Mise à jour des modèles à partir de l'arborescence des répertoires
Appuyez sur le bouton Synchroniser pour synchroniser un modèle importé avec son chemin de répertoire. Le chemin racine du projet est stocké dans le modèle, il sera donc synchronisé avec le même répertoire qu'auparavant. Pour activer le bouton Synchroniser, ouvrez le modèle et sélectionnez n'importe quel élément. Après avoir appuyé sur le bouton Synchroniser, un éditeur de comparaison s'ouvre où le modèle de famille actuel et le modèle de la structure de répertoire actuelle sont opposés (voir Figure 4, « Mise à jour du modèle à partir de l'arborescence de répertoires dans l'éditeur de comparaison »).
Figure 4. Mise à jour du modèle à partir de l'arborescence des répertoires dans l'éditeur de comparaison L'éditeur de comparaison est utilisé dans pure::variants pour comparer les versions de modèles, mais dans ce cas, il est utilisé pour comparer la structure physique du répertoire (affichée dans le coin inférieur droit) avec le modèle pure::variants actuel (dans le coin inférieur gauche). Toutes les modifications sont répertoriées sous forme d'éléments distincts dans la partie supérieure de l'éditeur, classées par éléments affectés.
La sélection d'un élément dans cette liste met en évidence le changement respectif dans les deux modèles. Dans l'exempleample, un élément ajouté est marqué d'une case sur le côté droit et connecté à sa position possible dans le modèle sur le côté gauche. La barre d'outils Fusionner entre les fenêtres d'éditeur supérieure et inférieure fournit des outils pour copier des modifications individuelles ou même toutes les modifications (non conflictuelles) dans leur ensemble du modèle d'arborescence de répertoires vers le modèle d'entités.
Note
La synchronisation est effectuée avec les derniers paramètres d'importation utilisés. Cela permet de mettre à jour le modèle avec d'autres paramètres définis lors de l'importation.
Utilisation de l'indexeur de relations
Le connecteur pour la gestion du code source améliore les relations View avec des informations sur les connexions entre les éléments du modèle pure::variants et le code source. Des relations sont ajoutées pour les fonctionnalités qui sont utilisées dans les conditions des éléments ps:condxml et ps:condtext.
Pour ps:flag et ps:flagfile éléments l'emplacement des constantes du préprocesseur dans la source C/C++ fileLes constantes de préprocesseur correspondantes sont affichées. De plus, les emplacements des constantes de préprocesseur correspondantes sont affichés pour une fonction sélectionnée en utilisant le mappage entre les noms uniques des fonctions et les constantes de préprocesseur.
3.1. Ajout de l'indexeur de relations à un projet
L'indexeur de relations peut être activé sur une page de propriétés de projet spéciale. Sélectionnez le projet et choisissez l'élément Propriétés dans le menu contextuel. Dans la boîte de dialogue qui s'affiche, sélectionnez la page Indexeur de relations.
Figure 5. Page de propriétés du projet pour l'indexeur de relations
L'indexeur de relations est activé pour le projet en sélectionnant l'option Activer l'indexeur de relations (1). Après avoir activé l'indexeur, il existe d'autres options pour définir le comportement spécifique au projet. L'indexation des conditions pure::variants et des constantes du préprocesseur C/C++ peut être activée séparément (2). La liste avec file Les modèles de noms (3) sont utilisés pour sélectionner le files pour l'indexation. Seulement fileLes éléments qui correspondent à l'un des modèles sont scannés. Ajoutez le « * » comme modèle pour scanner tous les éléments files d'un projet.
Après avoir activé l'indexeur pour un projet, un générateur est ajouté au projet. Ce générateur analyse les modifications files pour de nouvelles relations avec les éléments du modèle pure::variants automatiquement.
3.2. Les relations avec le code source
Avec l'indexeur de relations activé, les relations View contient des entrées supplémentaires. Ces entrées indiquent le nom de la file et le numéro de ligne du point de variante. L'info-bulle affiche la section appropriée du file. En double-cliquant sur l'entrée, le file sera ouvert dans un éditeur.
Conditions pure::variants
La condition pure::variants peut être utilisée pour inclure ou exclure des sections d'un file en fonction d'une sélection de caractéristiques. L'indexeur de conditions recherche de telles règles et extrait les caractéristiques référencées. Si une telle caractéristiques est sélectionnée dans l'éditeur, les relations View montrera tout files et les lignes où se trouve une condition avec la fonction sélectionnée (voir Figure 6, « Représentation d'une condition dans les relations View").
Figure 6. Représentation d'une condition dans les relations ViewPour obtenir une explication détaillée sur la façon de définir les conditions, consultez la section ps:condtext du chapitre 9.5.7 du Guide de l'utilisateur de pure::variants (Référence–>Types d'éléments sources prédéfinis–>ps:condtext).
Constantes du préprocesseur C/C++
L'indexeur du préprocesseur C/C++ analyse files pour les constantes utilisées dans les règles du préprocesseur (par exemple #ifdef, #ifndef, …).
Si un ps:flag ou ps:flagfile l'élément est sélectionné les relations View montre l'utilisation de la constante de préprocesseur définie.
Les relations View affiche également les constantes de préprocesseur connectées aux entités à l'aide de modèles de mappage. Pour cela, les modèles sont étendus avec les données de l'entité sélectionnée. Les symboles résultants sont utilisés pour rechercher les constantes de préprocesseur correspondantes. Figure 7, « Représentation d'une constante de préprocesseur C/C++ dans les relations View" montre un example avec le modèle fame{Name}. Le modèle est étendu avec le nom unique de la fonction en fameNative. Dans le code indexé, il y a 76 emplacements où la constante de préprocesseur fameNative est utilisée.
Ces emplacements sont affichés dans les relations View. Les modèles peuvent être définis dans les préférences (voir Section 3.3, « Les Préférences »).
Figure 7. Représentation d'une constante de préprocesseur C/C++ dans les relations View
3.3. Les préférences
Pour modifier le comportement par défaut de l'indexeur, ouvrez les préférences Eclipse et sélectionnez la page Indexeur de relations dans la catégorie Gestion des variantes. La page affiche deux listes.
Figure 8. Page de préférences de l'indexeur de relationsLa liste supérieure contient la valeur par défaut file modèles pour l'indexeur (1). Cette liste correspond au paramètre de modèle initial pour les projets nouvellement activés.
La liste inférieure contient le mappage entre les fonctions et les constantes du préprocesseur (2). Ce mappage est utilisé pour tous les projets. Le tableau 1, « Remplacements de mappage pris en charge », indique tous les remplacements possibles.
Tableau 1. Remplacements de mappage pris en charge
Caractère générique | Description | Example: FeatureA |
Nom | le nom unique de la fonction sélectionnée | FLAG_{Nom} – FLAG_FeatureA |
NOM | le nom unique en majuscules de la fonction sélectionnée | DRAPEAU_{NOM} – DRAPEAU_FEATUREA |
nom | le nom unique en minuscules de la fonction sélectionnée | flag_{name} – flag_featurea |
Documents / Ressources
![]() |
Connecteur pure-systems 2024 pour logiciel de gestion de code source [pdf] Manuel de l'utilisateur 2024, 2024 Connecteur pour logiciel de gestion de code source, Connecteur pour logiciel de gestion de code source, Logiciel de gestion de code source, Logiciel de gestion, Logiciel |