• Aucun résultat trouvé

3.3 Modèles de caractéristiques

3.3.2 Les usages des modèles de caractéristiques

Le tableau 3.1 récapitule les différents critères permettant de caractériser les usages des méta-modèles de caractéristiques existants.

TABLE3.1 : Les différents types de variabilité (exception faite de la variabilité entre caracté-

ristiques) et modèles de caractéristiques

Méta-modèle Variabilité de Variabilité Identification Groupement des Choix des l’environnement de données des rôles caractéristiques caractéristiques

pertinentes à chaque rôle

FODA [Kang et al., 1990] - - - - -

FORM [Kang et al., 1998] - - - oui – layers -

Halmans et al. [2003] - - oui – Acteurs oui – UML packages oui – associations

Fey et al. [2002] - - - oui – feature sets -

Czarnecki et al. [2005] partiellement partiellement - - oui - spécialisation du modèle de caractéristiques Acher et al. [2009, 2011a] partiellement partiellement - - -

Variabilité de l’environnement. Un produit peut être configuré en fonction de son envi- ronnement, ou contexte, d’exécution. L’environnement d’exécution peut être modélisé sous la forme d’un modèle de caractéristiques [Acher et al., 2009; Jaroucheh et al., 2010b], ou d’une ontologie [Jaroucheh et al., 2010a]. La configuration d’un modèle de caractéristiques peut être contrainte par son contexte [Fernandes et al., 2008, 2011]. Cela est particulière- ment utile dans le cas des lignes de produits dynamiques qui doivent être reconfigurées automatiquement (cela sort du cadre de cette étude).

Variabilité de données. La disponibilité de données peut varier dans l’environnement. Par exemple, dans le cadre d’un logiciel d’optimisation énergétique, la présence de certains cap- teurs détermine la disponibilité de données durant l’exécution du produit dont l’absence peut compromettre certaines fonctionnalités.

Identification des rôles. Différentes parties prenantes peuvent être impliquées dans un projet de développement logiciel. Chacune a un rôle et des compétences différentes. Ainsi, le choix lié à certains points de variabilité doit être fait par une partie prenante ayant un rôle précis. Par exemple, un client dont l’expertise porte uniquement sur son domaine métier peut choisir des caractéristiques ayant un impact direct sur son métier, mais ne peut pas choisir des caractéristiques liées à l’implémentation technique d’un logiciel.

Groupement des caractéristiques. Les groupes de caractéristiques permettent de struc- turer un modèle de caractéristiques. Ces groupes peuvent être définis selon le niveau d’abs- traction des caractéristiques ou servir à grouper des caractéristiques selon la nature des fonctionnalités qu’elles représentent.

Choix des caractéristiques pertinentes à chaque rôle.

Ce critère décrit comment les choix effectués par les différentes parties prenantes de la conception d’un nouveau produit peuvent influer les uns sur les autres. Par exemple, un logiciel peut être créé à partir d’une agrégation de composants logiciels configurés par des fournisseurs différents.

La méthode FODA [Kang et al., 1990] est la méthode originale utilisant et définissant les modèles de caractéristiques. Les possibilités offertes par cette méthode ne répondent pas aux critères énoncés précédemment.

La méthode FORM [Kang et al., 1998] est une amélioration de la méthode FODA. Elle permet de grouper des caractéristiques dans des couches ou layers pour séparer les différents niveaux d’abstraction représentés par les caractéristiques.

Günter Halmans et Klaus Pohl [2003] proposent de décrire la variabilité d’une ligne de produits à l’aide de diagrammes de cas d’utilisation. Cette approche permet d’identifier les rôles des parties prenantes liées à la ligne de produits à l’aide de la classe UML Acteurs. Ainsi, les caractéristiques, décrites ici par des cas d’utilisation, peuvent être groupées dans des paquetages UML. Les caractéristiques pertinentes à chaque rôle sont identifiées par les associations entre acteurs et cas d’utilisation.

Fey et al. [2002] groupent les caractéristiques à l’aide de feature-sets. Contrairement aux groupements précédents qui imposent une structure hiérarchique (paquetages, couches), les feature-sets permettent des groupements arbitraires de caractéristiques.

Czarnecki et al. [2005] ne supportent que partiellement la variabilité de l’environne- ment. En effet, l’adaptation à l’environnement ne peut être obtenue que manuellement en éditant les multiplicités des caractéristiques. Les auteurs permettent aux différentes parties prenantes de configurer séparément un modèle de caractéristiques grâce à la spécialisation. Par exemple, des entreprises peuvent livrer à leurs clients des composants logiciels configu- rés différemment (par exemple, avec des interfaces différentes). Les clients peuvent réutili- ser ces composants logiciels dans leur propre ligne de produits si nécessaire en spécialisant à nouveau les composants fournis.

Acher et al. [2009, 2011a] proposent de représenter l’environnement des produits sous la forme d’un modèle de caractéristiques dans lequel chaque choix de caractéristique est déterminé par un événement extérieur. Les caractéristiques de l’environnement sont liées par des contraintes aux caractéristiques de la configuration du produit. Ainsi, chaque chan- gement dans l’environnement entraîne une reconfiguration du produit. Cette approche ne permet pas d’adapter la construction du modèle de caractéristiques du produit en fonction du contexte. Par exemple, dans le cadre d’un logiciel d’optimisation énergétique de bâti- ment, cette approche ne permettrait pas d’adapter le modèle de caractéristiques aux spé- cificités du bâtiment car certains caractéristiques du logiciel doivent être dupliquées pour chaque occurrence d’équipement ou de lieux.

Nous ne comparons pas ici CVL aux autres approches car CVL n’utilise pas de modèle de caractéristiques, mais un “modèle décisionnel” [Czarnecki et al., 2012]. De même, nous

n’étudions pas ici l’ensemble des approches liées à la reconfiguration dynamique de mo- dèles de caractéristiques [Morin et al., 2010] car cela sort du cadre cette étude. Cependant, nous prenons en compte de quelles façons ces approches lient le modèle de caractéristiques à son contexte d’exécution, et comme nous le verrons dans la section suivante, comment est adapté le modèle de caractéristiques en fonction de son contexte [Fernandes et al., 2008].

Czarnecki et al. [2004b] proposent de configurer un modèle de caractéristiques en plu- sieurs étapes. Chaque étape vise à réduire le nombre de choix possibles en choisissant ou en écartant des caractéristiques, ou en réduisant leurs multiplicités [Czarnecki et al., 2004a]. Ainsi, leur approche permet de supporter partiellement la variabilité de l’environnement et des données car les multiplicités des caractéristiques peuvent être adaptées à chaque spé- cialisation du modèle de caractéristiques afin d’adapter le produit au nombre d’occurrences d’éléments du contexte.