Composants métier pour systèmes d'information
Composants métier pour systèmes d'information
Spécialité : Informatique
Rajaa SAIDI
le 26 Septembre 2009
Titre :
JURY
M. Mohammed Abbad , Président
Mme. Corine Cauvet , Rapporteur
M. Bouchaib Bounabat , Rapporteur
Mme. Dominique Rieu , Directeur de thèse
M. Driss Aboutajdine , Directeur de thèse
Mme. Selmin Nurcan , Examinateur
À mes parents
À Mes frères : Hicham, Adil, Mohammed Amine et Zakaria
À mes sœurs : Bouchra et Fadwa
À ma belle sœur Zakia et beau frère Khalid
À mes adorables nièces et neveux : Najlae, Aya, Saber et Mohammed Reda
C’est avec beaucoup d’émotions que je vous remercie pour vos nombreux sacrifices ainsi que
pour le soutien et la confiance que vous m’avez toujours accordés. Il m’est difficile de traduire
par les mots l’affection et la gratitude que je vous réserve. Aussi, est-ce à vous que je dédie ces
heures de travail, de joies et de souffrances que vous avez partagées. J’espère que vous vous
réjouissez de la réussite qui couronne mes efforts. Merci pour votre amour.
Remerciements
Les travaux présentés dans ce mémoire ont été effectués à l’équipe SIGMA (Système
d’Information : InGénierie et Modélisation Adaptable) du Laboratoire d’Informatique de
Grenoble (LIG), à l’Institut polytechnique de Grenoble (INPG), en collaboration avec le
Laboratoire de Recherche en Informatique et Télécommunications (LRIT), à la Faculté des
Sciences de Rabat (FSR) dans le cadre d’une thèse en cotutelle internationale.
Mes premières pensées vont à mes cinq directeurs de thèse. Je vais les évoquer par ordre
chronologique d’apparition dans le déroulement de ma thèse.
Janvier 2005
Je tiens à remercier M. Driss Aboutajdine, Professeur à la FSR et directeur du LRIT. Sans
l’environnement de recherche qu’il a su créer, je n’aurais pas pu me lancer dans la préparation
de cette thèse. J’exprime ici ma profonde gratitude à son égard et l’estime respectueuse que je
lui porte.
Merci aussi à mes co-directrices de thèse, Mme. Salma Mouline, Professeur à la FSR, et Mme.
Mounia Fredj, Professeur à l’École Nationale Supérieure d'Informatique et d'Analyse des
Systèmes (ENSIAS). Grâce à elles, j’ai pu entreprendre une thèse dans mon domaine favori : les
systèmes d’information. Je tiens à les remercier toutes les deux pour ces années de soutien,
pour leurs précieux conseils, et pour leur manière très simple de toujours trouver les mots
d’encouragement qui ne manquaient pas de raviver ma motivation.
Avril 2006
Je tiens également à remercier mes directrices de thèse au sein du LIG, Mmes. Dominique Rieu
et Agnès Front, Professeurs à l'Université Pierre Mendès France (UPMF) à Grenoble. Qu’elles
trouvent d’abord mes remerciements pour la confiance qu’elles m’ont toujours témoignée.
L’intérêt constant qu’elles ont pris pour ce travail, m’a permis de ne pas m’égarer dans des
problèmes flous et de ne jamais perdre de vue l’essentiel, en donnant de leur temps et en
acceptant de partager leurs expériences.
Je ne saurais omettre bien sûr M. Jean Pierre Giraudin, Professeur à l’UPMF et responsable de
l’équipe SIGMA. Je le remercie de m’avoir intégrée au sein de l’équipe et d’avoir accepté de
gérer le projet de collaboration. Le projet dans lequel il a toujours agi en faveur du doctorant.
Sa gentillesse, ses encouragements et ses conseils éclairants m’ont permis de mener ce travail
à son terme. Qu’il trouve ici un témoignage sincère de ma profonde reconnaissance. Je tiens
aussi à remercier Mme. Laila Kjiri, Professeur à ENSIAS, d’avoir accepté de gérer le projet de
collaboration du côté marocain.
Je tiens aussi à remercier les membres du jury :
• M. Mohammed Abbad, Professeur à la Faculté des Sciences de Rabat, qui m’a fait l’honneur
de présider ce jury.
• Mme. Corine Cauvet, Professeur à l’Université Aix-Marseille, de m’avoir fait l’honneur de
rapporter ma thèse.
• M. Bouchaib Bounabat, Professeur à l’École Nationale Supérieure d'Informatique et
d'Analyse des Systèmes, de m’avoir fait l’honneur de rapporter ma thèse.
• Mme. Dominique Rieu, Professeur à l'Université Pierre Mendès France à Grenoble, qui m’a
fait l’honneur de co-diriger ma thèse.
• M. Driss Aboutajdine, Professeur à la Faculté des Sciences de Rabat, qui m’a fait l’honneur
de co-diriger ma thèse.
• Mme. Selmin Nurcan, Maître de conférences à l'Université Paris 1 Panthéon Sorbonne,
d’avoir accepté d’être examinatrice de ma thèse.
Dans le but de valider les propositions de ma thèse, j’ai réalisé des expérimentations
utilisateurs, cette activité ne pourrait être entreprise sans l’aide de plusieurs personnes. Mes
pensées vont premièrement à Mme. Nadine Mandran, ingénieur de méthodes et de qualité au
sein du Marvelig. Je la remercie pour son aide, sa rigueur et ses conseils précieux. Je remercie
également les sujets participants aux expérimentations : Sophie, Charlotte, Yassine H, Diallo,
Jorge, Amin, Ansem, Luz Maria, Hassan, Youssef, Yassine, Ali, Marco, Mikael et Latifa. Je les
remercie tous d’avoir accepté ma demande et de m’avoir aidé à évaluer mes travaux.
Je tiens à remercier aussi mes amies côtoyées à Grenoble : Jihane, Latifa, Saadia, Raja, Asma,
Salma et Hayet. Un remerciement particulier est adressé à mes amies de l’AJCIT : Sanaa G,
Sanaa E, Najlae, Siham, Samira et Rajae. Merci de m’avoir fait confiance hormis la distance,
j’espère que mes préoccupations n’ont pas entravé les activités de l’association et que cette
association reste vivante.
Je remercie bien sûr mes amies de toujours : Amina, Ouafae, Asmaa et Aouatif, qui, malgré la
distance, continuent toujours à me soutenir et à m’encourager.
Enfin, je désire remercier tout particulièrement des amis, grâce auxquels j’ai pu puiser toute la
force dont j’avais besoin pour arriver au terme de ce travail. Dans les conseils desquels j’ai pu
rechercher à chaque fois que le besoin s’en faisait ressentir, le courage de ne pas abandonner
et la foi dans l’ouvrage entrepris. À Marie Paule, Marc Olivier et d’autres personnes qui se
reconnaîtront.
Table des matières
2 Problématique __________________________________________________________ 20
2.1 Nature de l’information réutilisable_______________________________________________ 20
2.2 Portée de l’information réutilisable _______________________________________________ 20
2.3 Propriétés de l’information réutilisable ____________________________________________ 21
2.3.1 Complétude ______________________________________________________________ 21
2.3.2 Variabilité________________________________________________________________ 22
2.4 Guide méthodologique pour la réutilisation ________________________________________ 22
3 Variabilité ______________________________________________________________ 48
3.1 Définitions ___________________________________________________________________ 49
3.2 Cadre de référence ____________________________________________________________ 49
3.2.1 Définition du cadre de référence _____________________________________________ 50
3.2.2 Synthèse ________________________________________________________________ 54
3.3 Approches de modélisation de la variabilité ________________________________________ 54
Tables des matières
Chapitre 3 : Concepts de base et vue métier d’un composant métier processus ___ 69
1 Vers un choix de concepts _________________________________________________ 71
1.1 Système d’information _________________________________________________________ 71
1.2 Domaine ____________________________________________________________________ 71
1.3 Identification des composants réutilisables ________________________________________ 72
1.4 Vers un composant fonctionnel __________________________________________________ 72
1.5 Processus métier Vs. Composant métier Vs. Composant fonctionnel ____________________ 74
1.6 Vers un CMP réutilisable _______________________________________________________ 75
Ce chapitre présente en premier lieu le contexte général de cette thèse (§1) ainsi que la
problématique abordée (§2). Les principales contributions réalisées sont ensuite introduites
(§3) avant de préciser le plan de ce mémoire (§4).
Chapitre1 : Contexte général et problématique 19
C’est dans ce sens que l’approche « Composant Métier » (CM) a été proposée [Herzum et al.,
2000] [Bass et al., 2000] [Heineman et al., 2001]. De tels composants sont ainsi utilisés par
exemple dans les domaines de la médecine, de la finance ou de la comptabilité [Andro et al.,
1998].
2 Problématique
2.3.1 Complétude
La modélisation d’un CM a souvent été limitée à l’aspect structurel du composant, en
particulier dans les modèles de données de [Mineau et al., 1995], les composants de [Castano
et al., 1994], le modèle de domaine de [Snoeck et al., 2000], le modèle Symphony de [Hassine,
2005] et le Business Component de [Herzum et al., 2000]. Cependant, une approche à vues
multiples permet d’exprimer plus complètement la solution offerte par un composant. En
effet, la réutilisation d’une telle solution permettrait une meilleure qualité de conception,
grâce à une spécification plus complète matérialisée par plusieurs vues.
Définir la complétude n’est pas une activité facile, car cette notion varie selon le contexte de
recherche. En se situant dans un contexte métier, doter le CM par une vue à caractère métier
22 Chapitre 1 : Contexte général et problématique
est certainement nécessaire. Cette vue matérialise l’aspect organisationnel du composant. Une
deuxième vue qui traduit la partie informatisée du composant est aussi intuitive pour illustrer
ses fonctionnalités. Ces fonctionnalités doivent inévitablement être détaillées dans une vue
explicitant le comportement du CM et une vue détaillant sa structure générale.
De ce fait, la solution d’un CM doit fournir une spécification complète en intégrant plusieurs
vues tout en gérant leur cohérence.
2.3.2 Variabilité
Pour augmenter sa réutilisation, un composant doit offrir plusieurs réalisations possibles. Sa
solution doit donc être flexible afin de pouvoir être adaptée aux spécificités du système en
cours de développement.
Ceci n’est, en fait, qu’une des conséquences prévisibles du développement informatique des
organisations. En effet, après avoir consenti des investissements importants pour améliorer
leur gestion, les entreprises et les administrations manifestent leur volonté d’adapter les
solutions informatiques à leurs propres besoins au lieu d’ajuster leurs méthodes de travailler
aux applications utilisées. C’est notamment pour cette raison qu’il est devenu nécessaire de
spécifier des CM supportant la variabilité [VanGurp et al., 2000] [Kang et al., 1990].
Plusieurs formes de variabilité existent, parmi lesquelles certaines peuvent être adoptées pour
représenter la variabilité dans les CM. Citons la variabilité des processus, correspondant au fait
que des PM similaires peuvent être déclinés de plusieurs façons selon les besoins de chaque SI.
De même, la variabilité du degré d'informatisation d’un PM varie d’un SI à un autre. Enfin,
pour favoriser la réutilisation par analogie entre domaines différents, mais qui manipulent des
informations similaires, la variabilité se doit de discriminer les spécificités de chaque domaine
métier.
La représentation de la variabilité dans un CM s’avère donc nécessaire. Son identification est
réalisée en analysant des PM admettant des propriétés communes et d’autres variables. Ce
constat nous amène à distinguer dans la spécification d’un CMP des propriétés fixes et des
propriétés variables facilitant sa réutilisation.
Par conséquent, un processus d’ingénierie de CM se doit d’une part de fournir les directives
requises pour représenter la structure fondamentale du composant, en offrant des
mécanismes facilitant sa description, et d’autre part de proposer une organisation du modèle
de composants afin d'en faciliter l'accès. Enfin, un processus de réutilisation doit fournir
l’ensemble des activités liées à la manipulation des composants pour la conception d’un SI, à
savoir la recherche, l’adaptation et la composition.
3 Contributions de la thèse
que la solution offerte par notre modèle de CMP correspondait bien à la propriété de
complétude que nous visions.
4 Plan de la thèse
Chapitre 1 : Contexte
général et problématique
Propositions
Chapitre 3 : Concepts de base et vue
métier d'un composant métier processus
Chapitre 5 : Mise en
œuvre et validation
Chapitre 6 : Conclusion
et perspectives
Ce chapitre expose un état de l’art sur les composants métier (§ 1), les méthodes de
développement basées composants (§ 2) ainsi que les concepts inhérents à l’expression et la
gestion de la variabilité (§ 3). Cet état de l’art constitue une vue d’ensemble des travaux
existants permettant ainsi de positionner (§ 4) les propositions de cette thèse.
Chapitre 2 : État de l’art 29
1 Composants métier
1.1 Définitions
Différentes définitions existent dans la littérature lorsqu'il est question de composants métier.
Ces définitions ne fournissent pas toutes la même description d’un CM.
Selon l'Object Management Group (OMG) “a business component represents a software
implementation of an “autonomous” business concept or business process. It is composed of
all software artefacts necessary to express, implement, and deploy a business component as
an autonomous, reusable element of an information system” [OMG, 1998].
D’autre part, [Herzum et al., 2000] rajoute des informations sur le cycle de vie et la granularité
d’un CM par la définition suivante : “a Business Component is a software implementation of
a concept and itself is a composition of software artifacts (including distributed components).
It is a unifying concept through the development lifecycle and the architectural tiers”.
D’autres définitions citées dans [Barbier et al., 2002] mettent en évidence les notions de
couverture et portée des CM :
« A business component is a software component that provides functions in a business
domain. (…) for example, an order management application is part of the Enterprise Resource
Planning (ERP) business domain » [Heineman et al., 2001].
30 Chapitre 2 : État de l’art
«A Business Component models and implements business logic, rules and constraints that are
typical, recurrent and comprehensive notions characterizing a domain or business area. Within
software engineering, business components are key abstractions that are captured during the
domain engineering activity. They are software artefacts in the sense that they are not part of
reality but embody and represent recurrent invariants relevant to requirements, particularly at
the earliest phases of development» [Ambler, 1998].
«A Business Component is a part of an enterprise that has the potential to operate
independently, in the extreme as a separate company, or as part of another company»
[Cherbakov et al., 2005].
Par ailleurs, la structure d’un CM peut être caractérisée par les éléments suivants [Cummins,
1999] [Casanave, 1996] : nom (terme employé par les experts pour caractériser le CM),
définition (signification du CM), attributs (propriétés appropriées concernant le CM),
comportement (actions ou services que le CM peut réaliser), relations (connections
représentant les interactions avec d'autres CM) et contraintes métier (contraintes liées aux
comportements, relations et attributs du CM).
À partir de toutes ces définitions qui varient selon les auteurs, nous considérons qu’un CM est
une représentation d'un concept actif dans un domaine métier. Ainsi, les CM sont utilisés pour
définir des concepts de type « produit » (par exemple, bibliothèque, compte, abonné…), ou
pour définir des « processus » pour les concepts qu'ils représentent (par exemple, processus
d’emprunt, processus de réservation d’un ouvrage, processus d’inscription d’un abonné…).
Un CM peut être une composition d’artefacts qui assurent la complétude de sa solution. Ces
artefacts peuvent représenter différents niveaux d’abstraction (analyse, conception…) ou
différentes vues de développement (fonctionnelle, dynamique, statique…). Finalement, un CM
doit avoir une structure qui facilite sa réutilisation sous forme d’un modèle de composants.
manière plus générale, elle peut être mesurée en nombre d’entités (des modules, des
activités, etc.). Elle peut être faible (< 10), moyenne (< 100) ou forte.
c) Unité de composition
Il s’agit du plus petit élément d’un composant. Les classes et les objets restent dans la plupart
des approches des unités de composition.
d) Variabilité
La variabilité est une propriété essentielle qui peut permettre à un utilisateur (concepteur
d’applications ou utilisateur final) d’adapter un composant à son besoin [Kang et al., 1990], la
variabilité peut être conceptuelle ou technique.
• Variabilité conceptuelle : concerne la variabilité introduite dans les modèles conceptuels du
composant, ex. variabilité des fonctionnalités, des modes d’interaction ou de la structure
d’un CM.
• Variabilité technique : consiste principalement en des variations dans la plate-forme ;
systèmes d’exploitation, matériel, interface utilisateur, langage de programmation, etc.
Le concept de variabilité sera traité en profondeur dans une partie suivante (§ 3).
e) Type de connaissance
Selon différents auteurs, une classification des CM en trois types de connaissance est proposée
[Herzum et al., 2000] [Schmid, 1999] :
• Composants métier de type entité : ils représentent les éléments "statiques" et réels du
domaine d'activité considéré, et correspondent généralement aux éléments identifiés lors
de la conception des modèles de données.
• Composants métier de type processus : ils représentent des activités (processus métier) du
domaine considéré. Les utilisateurs s’appuient dans la réalisation de leurs tâches sur ce
type de composants métier. De ce fait, les processus manipulent et utilisent des
composants métier de type entité.
• Composants métier de type utilitaire : il s'agit de composants métier qui peuvent être mis
en œuvre dans des SI se rapportant à des contextes différents. Ils sont utilisés par les
composants métier de type processus et de type entité. Ils sont de granularité plus faible
que les deux catégories de composants métier précédemment citées. Une mesure, une
adresse, une valeur monétaire, ainsi que les composants à référence spatiale comme les
points, les lignes ou les polygones, sont des exemples de composants métier de type
utilitaire.
On peut noter que les CM de type utilitaire sont très stables et n'évoluent quasiment pas dans
le temps ; une adresse reste une adresse. Ils sont de plus aisément standardisables. Les CM de
type entité présentent également une grande stabilité, mais dans un domaine beaucoup plus
spécifique. Toutefois, ils restent pauvres en terme de connaissances s’ils sont réutilisés
indépendamment de leur processus d’origine. Les CM de type processus sont généralement
présentés, dans le contexte des entreprises, comme des éléments peu stables, car appelés à
évoluer pour permettre à l'entreprise de rester concurrentielle. Le Tableau 2-1 synthétise le
critère Type de connaissance des CM.
32 Chapitre 2 : État de l’art
Type de
Type de connaissance Stabilité Exemples
connaissance utilisé
• La vue structurelle : identifie les concepts du domaine sous forme de classes, leurs
associations avec multiplicité et leurs attributs ;
• La vue logicielle : représente la forme d’un CM quand il est implanté par une technologie
composant (ex. EJB, CORBA, etc.).
j) Couverture
Il s’agit du domaine d’application du CM. Il peut s’agir d’un CM générique, de domaine ou
d’une entreprise.
1.2.2 Synthèse
Le Tableau 2-2 résume les critères de classification des CM. Notons que les valeurs données à
ces critères sont les plus rencontrées dans la littérature et peuvent être enrichies par d’autres
valeurs selon la spécificité de l’approche utilisée pour la conception d’un CM.
Critère Valeurs
Visibilité Noire Blanche Verre
Granularité Faible Moyenne Forte
Unité de composition Classe Objet
Variabilité Conceptuelle Technique
Type de connaissance Entité Processus Utilitaire
Nature de solution Conceptuelle Logicielle
Langage de représentation UML / langage naturel
Langage d’implantation COM/DCOM, CORBA, EJB, etc.
Complétude Métier Fonctionnelle Dynamique Structurelle Logicielle
34 Chapitre 2 : État de l’art
Facture
Commande
Personne
Bon de commande Client
Commande Personne
Article Compte
Article Compte
Produit
Demande
Attente délai
d’emprunt
avant
réexamen
<Abonné.quota=false>
Solution
<ouvrage.
Disponibilité
Réalisation L’ouvrage
Traitement d’une =false>
redevient
demande d’emprunt
< [Sinon]>
disponible
Action
Événement
1
<<Partie>>
CarteAbonné
NumCarte : int
DateExpiration : Date
<<utilise>>
<<Maître>>
<<Interface>>
Oeuvre
Service Oeuvre
CodeOeuvre
<<réalise>>
VérifierDispoOeuv()
VérifierDispoOeuv()
La classe maître décrit les éléments d’identification du CM. Ces éléments facilitent en
particulier la recherche du CM dans le cas où un autre CM client a besoin de l’un de ses
services. Dans l’exemple de la Figure 2-3, la classe Abonné stéréotypée « Maître » est la classe
maître du CM Abonné.
c) Classe Partie
C’est une classe complémentaire de la classe maître ayant un intérêt dans son contexte. Elle
s’identifie par son attachement à la classe maître. Une classe partie est reliée à la classe maître
par une relation de composition. La classe partie permet de structurer certains attributs de la
classe maître. Dans notre exemple, un abonné peut avoir une carte d’abonné. Le diagramme
de la Figure 2-3 introduit le concept de carte d’abonné comme une classe partie stéréotypée
« Partie ».
Ce découpage fournit une structuration des données métier à partir de la classe maître pour
permettre une mise en valeur : a) d’un aspect métier de l’objet métier, b) de multiples
occurrences d’un concept, c) d’un aspect optionnel d’une caractéristique du CM.
d) Classe Rôle
Une classe rôle décrit ce qu'un CM utilise. Elle met en évidence les collaborations réalisées par
un CM et représente un fournisseur de services auprès du CM client. En UML, cette
dépendance est représentée par un lien de dépendance de stéréotype « utilisation ». Les
attributs importés dans le rôle sont représentés par la notation d’attribut dérivé “ / ”. Dans
notre exemple, le CM Abonné possède une classe rôle stéréotypée « Rôle » qui lui permet
l’utilisation des services fournis par le CM Emprunt. De la même manière, le CM Emprunt
possède deux rôles : un sur le CM Abonné et un autre sur le CM Œuvre.
1.5 Synthèse
Cette partie a présenté l’approche composant métier avec ses spécificités. En effet, un CM
caractérise un domaine ou un secteur d'activité particulier et matérialise des invariants
récurrents concernant des besoins du même métier. Dans cette partie, nous avons tenu à
rassembler différentes définitions attribuées au concept CM, formulant ainsi une définition
générale. Ensuite, nous avons effectué une étude comparative de différentes approches de
conception de CM s’inscrivant dans la tendance actuelle de spécification d’un CM de nature
conceptuelle.
La mise en œuvre des différentes approches nécessite bien évidemment la mise en place d’un
processus de spécification ainsi que d’un processus de réutilisation de CM. Ces deux processus
seront présentés dans la partie suivante dans le cadre des méthodes de développement
basées composants.
Chapitre 2 : État de l’art 41
Processus pour la
réutilisation Cahier des charges
de l’application
Composants
Réutilisables
Processus par la
réutilisation
Application
Figure 2-4 : Processus pour la réutilisation Vs Processus par la réutilisation [Oussalah et al.,
1999]
En effet, les méthodes de développement basées composants telles que Catalysis [D'Souza et
al., 1998], RUP [IBM, 2009], Select Perspective [Select, 2009] et Symphony [Hassine, 2005],
ont remplacé les démarches traditionnelles, par l’introduction dans leur cycle de
développement, de deux processus liés à la réutilisation (Cf. Figure 2-4) :
1
Umanis (site Internet : [Link]
Chapitre 2 : État de l’art 43
le modèle SMaC (Supply Manage Consume) qui illustre la prise en charge de ces deux
processus par cette méthode.
Besoins
métier
Fournir Consommer
Administrer
Demandes de services
Cadrage métier
Services de données
Architecture métier
Architecture technique
Administration des composants Planification incrémentale
Architecture des données
Livraison de solutions métier
Livraison de composants
Composants
Cadrage de solutions métier
Solutions
métier
2.5 Synthèse
Dans cette partie, nous avons présenté une description générale des méthodes basées
composants, en nous intéressant en particulier à la prise en charge ou non du double
processus pour et par la réutilisation.
Selon cette étude, la plupart des méthodes de développement à base de composants souffrent
d’un certain nombre de faiblesses. Le principal problème qui freine la réutilisation est que le
processus de développement est principalement axé « développement de systèmes
d’information» (la prise en charge, par exemple, des techniques d’abstraction des
connaissances de domaine reste absente). Généralement, ces méthodes n’utilisent pas
clairement d’infrastructure de réutilisation, et la conception des composants passe par
l’encapsulation des objets métier liés à un SI dans des entités appelées composants.
En outre, parmi les critères mis en avant lors de la conception des CM, nous avons distingué le
critère variabilité défini comme une propriété essentielle qui maximise la réutilisabilité du
composant. Ce critère est traité dans la partie suivante.
3 Variabilité
3.1 Définitions
L’expansion de la recherche dans le domaine de la variabilité a donné lieu à plusieurs
définitions pour ce concept. La plupart des auteurs ont adopté la définition citée dans
[VanGurp et al., 2000] : « Variability is the ability to change or customise a software system »,
traduit en « la capacité d’un système ou d’un artefact à être changé, personnalisé ou configuré
selon un contexte d’utilisation particulier ». Cette définition est une définition de base qui a
été personnalisée selon le domaine d’étude.
Selon l’ingénierie des domaines, la variabilité est considérée comme la représentation des
caractéristiques qui sont définies en fonction des aspects essentiels et visibles du domaine,
eux-mêmes identifiés à partir des connaissances de domaine [Kang et al., 1990].
Dans l’approche lignes de produits, la variabilité permet la conception d’une architecture
permettant de définir plusieurs produits [Ziadi, 2004] [Pohl et al., 2005]. Les membres d’une
ligne de produits sont caractérisés par leurs points communs et leurs points variables appelés
« points de variation ».
Dans l’ingénierie des composants orientés problème [Ramadour, 2001], la variabilité est
exprimée à travers les différentes solutions possibles d’un même problème, ce qui permet de
maximiser la réutilisation des connaissances du domaine.
Dans l’approche Web sémantique, la variabilité est décrite comme un principe qui permet
d’associer à un même concept de plusieurs points de vue. Ainsi, la variabilité vise à associer
aux systèmes une connaissance qui guide leur usage [Guzélian et al., 2005]. [Sipka, 2005]
rejoint cette dernière définition en décrivant la variabilité comme la représentation des
instances d’un concept et la relation entre ses caractéristiques variables. Une caractéristique
représente l’intention d’un concept et ses variantes représentent l’extension de ce concept.
En résumé de cette partie, la variabilité est une technique qui sert à contrôler les parties
communes et variables des artefacts d’un système dans le but de faciliter sa réutilisation dans
un contexte donné.
• La variabilité dans l'espace est mise en évidence quand un artefact capture différentes
formes en même temps. Par exemple, un artefact de réservation peut se rapporter à
plusieurs formes en même temps, selon qu’il s’agisse d’une réservation d'une chambre
d'hôtel, d'un ouvrage d’une bibliothèque, d’un billet d’avion, etc.
• La variabilité dans le temps concerne le fait qu’il y ait différentes versions d'un artefact à
différents moments. Il s’agit donc de l’évolution de l’artefact en fonction de l’évolution de
son domaine d’application.
e) Représentation de la variabilité
Il est nécessaire de définir un langage de modélisation de la variabilité, afin d’assister le
concepteur d’applications à bien prendre en compte ce concept. Nous présentons ici des
exigences importantes qui doivent être prises en considération lors de la représentation de la
variabilité.
• Représenter des parties fixes et des parties variables
Pour représenter la variabilité sur un artefact réutilisable, nous distinguons deux parties
essentielles.
− Parties fixes : ce sont des éléments récurrents dans des SI de même nature. Ils représentent
les structures de l’artefact obligatoirement réutilisables dans chaque système
d’information. Ils sont directement intégrés dans le SI en cours de construction.
− Parties variables : elles représentent les structures de l’artefact pour lesquelles la
réutilisation exige un processus de sélection adapté aux exigences d’un SI particulier. Ces
éléments variables peuvent être communs à tous les SI tout en prenant différentes formes,
ou ils peuvent être spécifiques à des SI particuliers.
Par ailleurs, un élément variable dans un artefact est représenté par une unité de variabilité, il
s’agit d’un endroit spécifique auquel une décision est reliée. En effet, l’unité de la variabilité
consiste à identifier avec précision la propriété variable d'un artefact. Cela mène à la
définition, en premier lieu, du sujet et de l'objet de la variabilité [Pohl et al., 2005].
− Le sujet de la variabilité représente une propriété variable du monde réel. Par exemple, la
réservation est un sujet de variabilité.
− L’objet de la variabilité représente un exemple particulier du sujet de variabilité. Par
exemple, la réservation de train est un objet de la variabilité lié au sujet réservation.
En outre, pour représenter les différences entre des artefacts de la même famille, les concepts
de Points de Variation (PV) et de Variantes (V) sont employés [Jacobson et al., 1997]. Nous
définissons ces deux concepts comme suit :
− Un point de variation localise un endroit spécifique dans un artefact auquel une décision,
prise lors de la conception d’un SI, est attachée.
− Une variante représente une réalisation spécifique d'un point de variation. Elle correspond
aux solutions alternatives de conception.
Par exemple, lors de la conception du processus de réservation, la fonctionnalité réservation
peut être réalisée de différentes manières. Elle est identifiée comme un PV, tandis que la
réservation d’une chambre d’hôtel et la réservation d’un billet d’avion constituent, par
Chapitre 2 : État de l’art 53
− Option : un point de variation de type « option » fournit des variantes qui peuvent être
sélectionnées ou non : à partir d'un ensemble de n options, k options (k compris entre 0 et
n) peuvent être choisies, y compris toutes (n), ou aucune (0). Par exemple, un système de
gestion d’une bibliothèque peut proposer ou non l’attribution d’une carte d’abonné. La
création de carte d’abonné est identifiée comme optionnelle dans ce système.
− Alternative : un point de variation de type « alternative » permet le choix d’une seule
variante parmi n choix possibles. Ce type de variation est connu sous le nom de la relation
XOR entre les variantes de ce point de variation. Par exemple, pour réutiliser un système de
gestion d’une bibliothèque, le concepteur doit choisir entre un système qui gère la
réservation d’œuvre ou bien un système sans réservation. Ce système propose donc un
choix entre deux alternatives : système avec ou sans réservation.
− Alternative Optionnelle : un point de variation de type « alternative optionnelle » est un
point de variation de type option qui offre des variantes alternatives. Ce type de variation
permet le choix de 0 ou 1 variante parmi n choix possibles. Par exemple, l’emprunt d’une
œuvre dans une bibliothèque peut contenir un point de variation optionnel sur la gestion
de garantie. Ce point de variation offre deux alternatives possibles : emprunt avec dépôt de
garantie et emprunt sans dépôt de garantie. Le concepteur peut choisir une ou aucune
variante parmi ces deux alternatives.
− Ensemble d’alternatives : un point de variation de type « ensemble d’alternatives » signifie
qu'il existe de multiples réalisations de cette variation et qu’au moins une doit être
sélectionnée. Par exemple, un système de gestion d’une bibliothèque peut offrir différents
types de carte d’abonné : une carte magnétique, une carte à code barre, etc. Au moins un
type de carte doit être choisi par le concepteur.
• Représenter les contraintes de dépendance de la variabilité
Les artefacts réutilisables supportant la variabilité doivent être caractérisés par des contraintes
de dépendance entre variantes et points de variations. En effet, le choix d’un point de
variation ou d’une variante peut influencer le choix d’autres points de variation ou variantes.
Nous distinguons ici deux types de contraintes inspirés des règles de compositions de FODA
[Kang et al., 1990] : l’inclusion et l’exclusion mutuelle.
− La règle d’inclusion spécifie que le choix d’un élément variable exige la présence d’un autre
élément variable lors de la réutilisation de l’artefact comportant ces éléments.
− La règle d’exclusion mutuelle entre deux éléments variables spécifie que la présence de l’un
de ces éléments interdit la présence de l’autre lors de la réutilisation de l'artefact
comportant ces éléments.
54 Chapitre 2 : État de l’art
• la conception : un artefact réutilisable est réduit par le concepteur d’applications avant son
utilisation par l’utilisateur final.
• l’exécution : la variabilité est résolue après que l’artefact réutilisable ait été délivré et
installé dans son environnement d’exécution à l’aide des techniques des langages à objets
telles que l’héritage, la liaison dynamique, la surcharge et la délégation.
3.2.2 Synthèse
Le Tableau 2-5 résume les axes de notre cadre de référence ainsi que leurs valeurs.
Axes du cadre de référence Valeurs
Contexte de l'approche Domaine d’application de l’approche
Finalité de l'approche Réutilisation / Personnalisation
Complétude Métier/ Fonctionnelle/Dynamique/Structurelle/Technique
Identification de la variabilité Processus d’identification des connaissances variables
Partie fixe/variable Oui / Non
Type de variation Option / alternative /
Représentation de la alternative optionnelle /
variabilité ensemble d’alternatives
Contraintes de variabilité Non/ exclusion/ inclusion
Notation Graphique / textuelle
Réduction de la variabilité Processus de sélection des variantes utiles
Conception / exécution
Tableau 2-5 : Axes du cadre de référence
GAB
Bien que les méthodes FODA et FORM aient fourni beaucoup de techniques utiles pour la
gestion de la variabilité, un certain nombre de limitations sont restées présentes. Par exemple,
la capacité de présenter un grand nombre de points de variabilité avec leurs contraintes de
dépendance dans une seule vue demeure un défi. Pour essayer d'alléger cette limitation,
[Bashroush et al., 2008] traite le problème en divisant le modèle de caractéristiques en un
certain nombre de vues. Le modèle ainsi adopté est appelé « modèle à quatre vues » (the Four
Views Model (4VM)), où chaque vue couvre un ensemble spécifique de préoccupations. Les
vues adoptées dans le modèle 4VM sont les suivantes :
- Vue métier : représente les propriétés liées à la gestion du projet, telles que le coût (ou
l’avantage) de l’utilisation d’une caractéristique, le temps d’implémentation d’une
caractéristique, etc. Ces propriétés sont utilisées par les chefs de projet pour effectuer le choix
d’une variante au moment de la conception d’un produit.
- Vue comportementale & hiérarchique : représente la manière dont les différentes
caractéristiques sont organisées (habituellement dans une structure arborescente) à côté du
comportement attaché à chaque caractéristique.
- Vue d'interaction & de dépendance : complémentaire à la vue comportementale et
hiérarchique, elle représente les interactions et les relations de dépendance entre certaines
caractéristiques.
- Vue intermédiaire : représente les endroits où des décisions de conception sont injectées
dans le modèle de caractéristiques afin de le lier à l'architecture du système.
Communication
Supplier
Deliver Product Catalog << alt_vp >> Check Account Deliver Order
<<alternative_XOR>> <<alternative_XOR>>
With Priority Control With Serial
<<extend>> <<extend>>
<<include>>
Figure 2-13 : Diagramme de cas d’utilisation supportant la variabilité [Oliviera et al., 2005]
Dans les diagrammes de classes étendus de [Clauss, 2001], la variabilité est exprimée au niveau
des classes à travers les stéréotypes « mandatory » pour les classes obligatoires,
« alternative » pour les classes alternatives, « optionnel » pour les classes optionnelles. De
plus, le stéréotype « XOR » est indiqué sur la relation liant le point de variation et ses variantes
alternatives pour contraindre leur choix. Concernant les règles de dépendance entre les
classes, la démarche utilise des dépendances d’inclusion et d’exclusion mutuelles matérialisées
par les stéréotypes « requires » et « mutex ».
La Figure 2-14 présente un exemple dans le domaine du commerce électronique modélisé sous
la forme d’un diagramme de classes supportant la variabilité [Clauss, 2001].
<<context>>
Order_Processus
<<mandatory>> <<mandatory>>
<<optional>>
Transaction Fulfillment
Approval
{XOR}
<<alternative>> <<alternative>>
Online_Display Printed_Invoice
<<alternative>>
Pay_By_Bill
<<alternative>> <<requires>>
Credit_Card
<<alternative>> <<mutex>>
Pay_On_Delivery
variation par la relation alternative. Chaque variante est liée au cas d’utilisation correspondant
par une relation de type «artefact de dépendance » (artefact dependency).
La réduction de la variabilité est réalisée lors de l’ingénierie de l’application (dérivation de
produits à partir de la ligne). Ce processus est effectué par une activité de communication en
mettant à la disposition du concepteur l’OVM contenant des variantes bien documentées pour
faciliter leur choix.
VP
Open Front Door Door Lock
Inhabitant
« Include » « Include »
V V
Unlock Door Unlock Door by
by Keypad Fingerprint Fingerprint Keypad
Scanner
V Variant Alternative
de conception souhaité, de lui permettre de choisir sur quelles classes le patron sera appliqué
et de générer automatiquement le code correspondant à cette instance spécifique du patron.
La Figure 2-17 présente un exemple de choix de compromis d’implémentation appliqué au
patron « Observateur ».
L’approche de [Arnaud, 2008] propose au concepteur de patrons de représenter sa solution
semi-formelle comme un mini-système à variantes, dont le pilier central, exprimant la
variabilité, est la vue des cas d’utilisation. L’approche de [Arnaud, 2008] propose de concevoir
un patron sous forme de trois vues : fonctionnelle, dynamique et statique.
Pour représenter la variabilité sur la vue fonctionnelle, [Arnaud, 2008] définit un opérateur
générique pouvant être utilisé pour les quatre types de variabilité présentés précédemment.
Cet opérateur est composé d’un point de variation, matérialisé par un cas d’utilisation
stéréotypé <<Variation>> et de plusieurs variantes matérialisées par des cas d’utilisation
stéréotypés <<Variant>>. À l’aide de valeurs marquées sur ces stéréotypes, les cardinalités
minimale et maximale sont exprimées (selon le type de variabilité). La Figure 2-18 illustre la
vue fonctionnelle du patron observateur.
L’expression de la variabilité sur la vue dynamique est basée sur la notion de frame de
référence (interaction use) et de frame de type ‘sd’ (Sous-Diagramme). Ces mécanismes
permettent de modéliser des fragments d’interaction combinés. Par exemple, pour
représenter une variation de type « Alternative », un frame de type référence stéréotypé
« Variation » est utilisé pour référencer le sous-diagramme de séquence comportant les
variantes alternatives. Les variantes sont modélisées par des frames de type ‘sd’ stéréotypés
« Variant ».
min : 1
max : 1
<<include>>
min : 0 <<include>>
max : *
modifier le sujet <<Variation>>
notifier les observateurs
<<include>> <<include>>
<<racine>>
Client Observateur
<<include>>
<<Variant>> <<Variant>>
notifier im plicitement notifier explicitement
<<include>>
<<include>>
<<Variant>>
Gérer les observateurs
notifier
Quant au processus de réduction de la variabilité selon [Arnaud, 2008], il est constitué de deux
activités : a) le choix du patron à imiter qui consiste à sélectionner un patron dans un système
de patrons. La solution du patron sélectionné est appelée un modèle imitable et consiste en un
mini-système à variantes composé de trois vues, b) la réduction qui permet au concepteur de
choisir les variantes qu’il désire imiter à partir de la vue des cas d’utilisation. Les vues
dynamiques et statiques sont alors automatiquement déduites. Un modèle imité dans l’état
adaptable est ainsi obtenu.
variabilité automatique du
Notation Textuelle : Boîte de code correspondant
dialogue à cette instance
Définir des variantes pour Partie fixe/variable Oui Choix des variantes à
la solution d’un patron Type variation Option / alternative imiter à partir de la
avec comme point vue des cas
Contraintes de Non
d’entrée la vue d’utilisation. Les
variabilité
fonctionnelle du patron Notation Graphique : Diagrammes autres vues sont
[Arnaud, 2008] UML étendus automatiquement
déduites
Tableau 2-7 : Comparaison des approches : identification, représentation et réduction de la
variabilité
64 Chapitre 2 : État de l’art
3.5 Synthèse
Dans le Tableau 2-8, nous évaluons les différents types d’approches en soulignant leurs
avantages et inconvénients.
Approche Avantages Inconvénients
FODA [Kang et al., 1990] - Bonne hiérarchisation des
- Techniques non supportées par
FORM [Kang et al., 1998] connaissances de domaine
les outils standards de
4VM [Bashroush et al., - Solutions à différentes
développement
2008] vues de développement
- Diagramme d’activités
[Razavian et al., 2008]
- Diagramme de cas
d’utilisation [Oliviera et al., - Absence d’une solution complète
- Expression de la variabilité
2005] intégrant différentes vues du
sur des diagrammes UML
- Diagramme de classes développement
[Clauss, 2001], [Ziadi,
2004]
- Diagramme de séquence
[Ziadi , 2004]
- Technique non supportée par les
- Maintien de la traçabilité
- OVM [Pohl et al., 2005] différents outils standards de
de la variabilité
développement
Définition des compromis - Approche fortement liée aux
PatternGen d’implémentation concepts de patrons
[Sunyé, 1999] spécifiques à chaque - Approche liée à la phase
implémentation d’un patron d’implémentation
- Expression de la variabilité
- Approche évaluée seulement
sur des diagrammes UML
Mini-système dans le contexte des patrons
- Solutions complètes à
[Arnaud, 2008] - Absence de la gestion des
différentes vues de
contraintes de variabilité
développement
Tableau 2-8 : Évaluation des approches de modélisation de la variabilité
Parmi les concepts de base de la variabilité, nous avons introduit des nouveaux concepts tels
que la complétude de la variabilité. En effet, la variabilité était souvent représentée sur la vue
statique d’un artefact de développement malgré certaines tentatives de sa représentation sur
différentes vues, mais souvent sans tenir compte de la cohérence entre les vues. Nous avons
aussi distingué le concept de portée de la variabilité pour lequel nous avons remarqué
l’absence de la distinction entre une variabilité orientée exécution et une variabilité orientée
conception, c’est pour cela nous avons classifié la variabilité en deux types : variabilité pour la
personnalisation (orientée exécution) et variabilité pour la réutilisation (orientée conception).
Chapitre 2 : État de l’art 65
Critère Attributs
Visibilité Noire Blanche Verre
Granularité Faible Moyenne Forte
Unité de composition Classe Objet
Variabilité Conceptuelle Technique
Type de connaissance Entité Processus Utilitaire
Nature de solution Conceptuelle Logicielle
Complétude Métier Fonctionnelle Dynamique Structurelle
Couverture Générique Domaine Entreprise
Portée Analyse Conception Implantation
Tableau 2-9 : Critères des CM considérés dans notre approche
Concernant l’axe variabilité, le Tableau 2-10 résume les concepts de variabilité pris en
considération dans notre approche. Parmi les approches étudiées, nous distinguons plus
particulièrement l’approche de [Arnaud, 2008], plus représentative de nos objectifs, et nous
basons sur ses techniques d’expression de solutions complètes à variantes. Par contre, cette
approche ayant été évaluée seulement pour les patrons de conception, des extensions liées à
la conception des CM sont nécessaires. En outre, une démarche basée sur les principes
d'analyse de domaine est indispensable pour identifier la variabilité.
Axes du cadre de référence Attributs
Contexte de l'approche Variabilité conceptuelle pour la réutilisation des CM
Finalité de l'approche Réutilisation
Complétude Métier/Fonctionnelle/Dynamique /Structurelle
Identification de la variabilité Étude des points communs et discriminants entre
différents SI de même nature
Partie fixe/variable Oui
Type de variation Option/ alternative /
alternative optionnelle /
Représentation de la variabilité ensemble d’alternatives
Contraintes de Exclusion/ inclusion
variabilité
Notation Graphique / textuelle
Réduction de la variabilité Processus intégré dans le processus de conception
par la réutilisation
Tableau 2-10 : Concepts de la variabilité pris en compte dans notre approche
Par ailleurs, l’étude des différentes méthodes de développement basées composants a montré
que beaucoup de travaux ont été consacrés à la formalisation des composants, mais que peu
d’entre eux ont apporté de véritables solutions concernant la prise en charge du double
processus « pour et par la réutilisation ». Par exemple, dans l’actuelle version de la démarche
Symphony [Hassine, 2005], la prise en compte de la réutilisation n’a pas été achevée : il s’agit
maintenant d’identifier, en plus des structures modulaires métier (appelées objets métier), des
structures modulaires métier réutilisables (appelées composants métier).
Chapitre 2 : État de l’art 67
L’objectif de nos travaux s’inscrit dans ce sens. Pour cela, nous proposons une extension de la
méthode Symphony, afin de la doter des deux processus pour et par la réutilisation adaptés à
son processus de développement de SI à base de composants tout en tenant compte de
l’intégration de la variabilité dans ces processus.
Cha p it re 3 : Co nc ept s de ba s e et
v ue m ét i er d’ un c o m po s a nt
m ét ier p r o c es s us
1.2 Domaine
Un domaine peut être défini par un ensemble de problèmes ou de fonctions que les
applications de ce domaine peuvent résoudre. Il peut donc être associé à un secteur métier,
une collection de problèmes, une collection d’applications ou encore un ensemble de
connaissances avec un vocabulaire commun [SEI, 2007].
Pour déterminer un domaine, il est nécessaire de définir sa frontière. Or, cette frontière n’est
souvent pas facile à délimiter. Ceci peut être dû à l'inexpérience de l'analyste de domaine ou à
la nature de certains domaines qui utilisent ou fournissent des services à d'autres domaines.
Une manière de considérer un domaine est de le voir comme un ensemble d’applications. Ce
point de vue se concentre sur des familles d'applications. Le domaine est borné selon la
similarité de ces applications [Harsu, 2002].
Dans nos travaux, nous nous intéressons à la réutilisation de concepts récurrents dans
plusieurs systèmes d’information. Motivés par cet objectif, nous considérons un domaine
72 Chapitre 3 : Concepts de base et vue métier d’un composant métier processus
comme une classe de problèmes pour laquelle il existe plusieurs solutions. Un système
d’information est vu comme une solution particulière à la classe de problèmes.
Un modèle de domaine, défini comme une classe de problèmes, est fortement réutilisable, du
fait que des concepts orientés problème sont plutôt stables. Ils ne varient pas nécessairement,
bien que les besoins des systèmes changent. Par exemple, le domaine de réservation de vols
peut être représenté par plusieurs systèmes similaires modélisés selon les règles métier de
chaque compagnie aérienne.
En outre, les domaines peuvent être divisés en domaines métier (DM) et domaines
fonctionnels (DF). Dans les domaines métier, les systèmes d’information sont classifiés selon le
secteur d’activité. De tels systèmes sont, par exemple, des systèmes de réservation de vols,
des systèmes médicaux, des systèmes de gestion des stocks, etc. Dans les domaines
fonctionnels, les systèmes d’information sont classifiés selon leurs fonctionnalités. Des
exemples sont des systèmes d’allocation de ressources, des systèmes d’enregistrement, des
systèmes de surveillance, etc.
Le méta-modèle de la Figure 3-2 illustre l’ensemble des concepts discutés dans ce paragraphe
en utilisant un exemple illustratif présenté dans la Figure 3-3.
informatisées du CMP. Pour illustrer notre modèle de CMP multi-vues, nous utilisons l’exemple
du CMP « Allocation de Ressource ».
a. Vue métier
La vue métier d’un CMP modélise l'ensemble des tâches à accomplir et les différents acteurs
impliqués dans la réalisation d'un PM lié à un SI donné. Cette vue illustre les interactions sous
forme d'échange d'informations entre divers acteurs et fournit en outre à chacun des acteurs
les informations nécessaires pour la réalisation de sa tâche.
Pour modéliser cette vue, nous utilisons le diagramme d’activités d’UML 2. Un diagramme
d'activités permet de modéliser le comportement du CMP, à travers une séquence d’activités
schématisant le déroulement du processus. La distinction entre les activités informatisées et
celles manuelles est réalisée par l’utilisation des deux stéréotypes « Informatisée » et
« Manuelle ». À titre d’exemple, la Figure 3-4 illustre la vue métier du CMP « Allocation de
Ressource » modélisée par un diagramme d’activités.
Client Allocation Manager
<<Manuelle>> <<Informatisée>>
Demande Gestion Allocation
Allocation
Gestion Allocation
Allocation
Manager
La description des cas d’utilisation est libre. Cependant, cette description prend souvent une
forme rédigée qui convient à la communication avec les utilisateurs. Des règles de
structuration doivent être appliquées pour en faciliter l’expression, la compréhension et la
cohérence. La Figure 3-6 illustre une façon de décrire le cas d’utilisation « Gestion Allocation ».
Cas d’utilisation : Gestion Allocation
Acteurs : Allocation Manager.
Résumé : ce cas traite la gestion d’allocation de ressources par un manager
d’allocation.
Événement déclencheur : un client demande une allocation de ressource.
Pré-conditions :
1. Client déjà enregistré.
2. Ressource déjà enregistrée.
Description détaillée :
Un client se présente au lieu de l’allocation de ressources.
Le manager :
1. Identifie le client.
2. Identifie la ressource.
3. Vérifie l’autorisation du client à louer des ressources.
4. Vérifie la disponibilité de la ressource.
5. Crée une allocation.
Post-condition : Allocation créée.
La vue dynamique d’un CMP modélise les différentes interactions entre les classes du CMP
ainsi qu’une description détaillée de ses fonctionnalités.
Pour modéliser cette vue, nous utilisons un ensemble de diagrammes de séquence UML 2 (un
diagramme de séquence par cas d’utilisation). Un diagramme de séquence est la
représentation graphique des interactions entre les acteurs et le système selon un ordre
chronologique. Ces interactions sont spécifiées dans le cadre d'un scénario d'un cas
d’utilisation. La Figure 3-7 illustre la vue dynamique du CMP « Allocation de Ressource ». Dans
cet exemple, cette vue est composée d’un seul diagramme de séquence puisque la vue
fonctionnelle n’inclut que le cas d’utilisation « Gestion Allocation ».
d. Vue structurelle
La vue structurelle d’un CMP permet d’identifier les concepts encapsulés par le CMP sous
forme de classes, leurs associations avec multiplicité et leurs attributs.
Pour modéliser cette vue, nous adoptons le modèle conceptuel Symphony déjà présenté dans
le chapitre précédent (§1.3.3). Le modèle Symphony est un diagramme de classes avec une
structuration inspirée de la technique CRC (Classe-Responsabilité-Collaboration) [Wirfs-Brock
et al., 1990]. Le choix de ce modèle est motivé par son avantage au niveau de la séparation des
rôles, services et structure d’un composant, requise pour la spécification d’un CMP. La Figure
3-8 représente la cartographie des CM (CMP et CME). La Figure 3-9 représente la vue
structurelle du CMP « Allocation de Ressource » selon le modèle Symphony. Les classes
« Rôle » formalisent les liens d’utilisation entre les différents CM. Par exemple, le CMP
« Allocation de Ressource » utilise les CME « Allocation », « Client » et « Ressource » par
invocation de leurs classes « Interface » par l’intermédiaire des classes « Rôle » :
GestionRessource, GestionClient et CréationAllocation.
<<utilise>> <<utilise>>
<<utilise>>
<<utilise>>
<<Composant Métier Entité>>
Ressource
<<Rôle>> <<Maître>>
<<Interface>> <<Maître>> <<Interface>> Ressource <<Rôle>>
GestionClient
Service Allocation de Allocation de Ressource Service Ressource RessAll
/ CodeClient CodeRessource : Int
Ressource Titre : Double / CodeAll : int
<<réalise>> LierAllocation() AjoutAllocation(A) <<réalise>>
GestionAllocation() GestionAllocation() VérifierDispoRess() AjoutAllocation(A)
IdentifierClt(Clt) <<Rôle>> LierAllocation(A)
IdentifierRess(Ress) CréationAllocation VérifierDispoRess()
/ CodeAll : int
Figure 3-10 : Mécanisme d’abstraction / réutilisation des parties fixes et variables d’un CMP
Ce mécanisme est perçu dans [Cauvet et al., 1999] comme des propriétés introduites au
niveau de la spécification du composant. Au moment de la réutilisation, c’est en fixant la partie
variable que l’on choisit une réalisation particulière et que l’on adapte le composant en
fonction des spécificités du système en cours de développement.
c) Origines de la variabilité
Nous distinguons deux aspects qui peuvent être à l’origine de la variabilité représentée dans
des CMP.
1. Variabilité des PM : un CMP modélise des PM similaires qui peuvent être déclinés de
plusieurs façons selon les besoins de chaque SI (Cf. Figure 3-11.a et Figure 3-11.b).
2. Variabilité du degré d'informatisation du PM : un CMP doit prendre en considération le
degré d’informatisation d’un PM qui peut varier d’un système d'information à un autre (Cf.
Figure 3-11.a et Figure 3-11.c).
PM dans SI1 (Figure 3-11.a)
<<Informatisée>> <<Informatisée>>
Activité 1 Activité 3
<<Informatisée>>
PV
V1 V2
Vue Métier
PV
V1 V2
Vue Fonctionnelle
PV
V1
V2
Vue Dynamique
PV
V1 V2
Vue Structurelle
Cette vue propose une spécification organisationnelle d’un CMP qui peut être construite par
abstraction d’un ou plusieurs PM liés à leur propre SI. L’accent est mis sur l’identification et la
spécification d’une vue d’ensemble des activités internes d'un métier, dont l'objectif est de
fournir un résultat observable et mesurable pour un utilisateur individuel du métier. La vue
métier est modélisée par un diagramme d’activités UML étendu par les concepts de variabilité.
Dans la suite de cette section, nous présentons les mécanismes que nous adoptons pour
représenter la variabilité sur la vue métier. Nous illustrons i) les endroits où la variabilité
survient, ii) la représentation de la variabilité ainsi que son mécanisme de réduction en
utilisant des exemples appropriés et iii) finalement les différentes extensions d’UML
introduites.
Chapitre 3 : Concepts de base et vue métier d’un composant métier processus 85
Nous représentons le flot entrant et le flot sortant d’une activité « A » (Cf. Figure 3-13.a) par
des activités appelées respectivement « Flot entrant de A » et « Flot sortant de A ». Nous
utilisons dans le premier cas une transition de l’activité « Flot entrant de A » vers l’activité
« A » et dans le deuxième cas une transition de l’activité « A » vers l’activité « Flot sortant de
A » (Cf. Figure 3-13.b).
Figure 3-13.a
Object1 Object2
Notation
Comme nous l’avons présenté précédemment, nous introduisons les concepts de point de
variation et de variante par l’utilisation des stéréotypes. Dans ce type de variation, nous
annotons l’activité variation par la valeur marquée (min : 1, max : 1) exprimant ainsi les
cardinalités à respecter lors du choix des variantes de ce type de variation (Cf. Figure 3-14.a).
Règles de réduction
Si une variante Vi est choisie par le concepteur, l’activité PV est remplacée par l’activité Vi et le
flot entrant de PV devient le flot entrant de Vi. Les variantes non sélectionnées sont
supprimées avec leur flot sortant (Cf. Figure 3-14.b).
88 Chapitre 3 : Concepts de base et vue métier d’un composant métier processus
Flot Entrant de
PV min : 1 Acteur
max : 1
Flot Entrant de
<<Variation>> PV
PV
Vi
<<Variant>> <<Variant>> <<Variant>>
..........
V1 Vi Vn
Flot Sortant de
Flot Sortant de Flot Sortant de .......... Flot Sortant de Vi
V1 Vi Vn
min : 1
max : 1
Demande
allocation
<<Variation>>
Traitement demande
<<Variant>> <<Variant>>
Traitement sans Traitement avec
réservation réservation
Demande traitée
Demande traitée
Notation
Dans ce type de variation, nous annotons l’activité variation par la valeur marquée (min : 0,
max : 1) exprimant ainsi les cardinalités à respecter lors du choix des variantes de ce type de
variation (Cf. Figure 3-16.a).
Contraintes de construction
Dans ce type de variation, il faut vérifier une contrainte que nous appelons « contrainte de
construction », obligatoire pour maintenir la cohérence du diagramme d’activités. Cette
contrainte est donnée de la manière suivante :
Le flot entrant d’une variation de type « Alternative-Optionnelle » doit contenir au moins une
transition vers une autre activité non stéréotypée par « Variation » et « Variant », ou vers une
activité stéréotypée « Variation » dont le min=1.
Règles de réduction
• Si une variante Vi est choisie par le concepteur, l’activité PV est remplacée par l’activité Vi et
le flot entrant de PV devient le flot entrant de Vi. Les variantes non sélectionnées sont
supprimées avec leur flot sortant (Cf. Figure 3-16.b).
• Si aucune variante n’est sélectionnée, l’activité PV, et ses variantes Vi sont supprimées avec
leur flot sortant (Cf. Figure 3-16.c).
Flot Entrant de
PV min : 0
max : 1
<<Variation>>
PV
Flot Entrant de
PV
Acteur
Flot Entrant de
Vi
PV
Flot Sortant de
Vi
Exemple
Pour illustrer la représentation de la variabilité dans ce type de variation, nous utilisons un
fragment du processus « Enregistrement client » comme exemple. Dans la Figure 3-17.a, après
l’activité d’enregistrement d’un client, certains systèmes incluent une activité d’impression
d’un justificatif et d’autres se restreignent à un simple enregistrement des informations du
client. L’impression du justificatif peut se faire de différentes manières, par exemple par
impression d’une carte ou d’un reçu. Dans ce cas, un concepteur peut choisir une des variantes
proposées (Cf. Figure 3-17.b) ou ne rien choisir (Cf. Figure 3-17.c) selon les besoins du SI en
cours de construction. Notons que l’activité « Enregistrer Client », flot entrant de cette
variation, a une transition vers une activité fixe (nœud final) puisque la variation est de
cardinalité minimale égale à 0. Cette contrainte a permet de maintenir la cohérence du
diagramme obtenu après la réduction de la variabilité (Cf. Figure 3-17.c).
Variabilité (Figure 3-17.a) Réduction (Figure 3-17.b) Réduction (Figure 3-17.c)
Client Manager
Client enregistré
Client enregistré
Client enregistré
Une activité PV est un point de variation de type « Option » si chaque variante de PV peut être
choisie ou non par le concepteur.
Notation
Dans ce type de variation, nous annotons l’activité variation par la valeur marquée (min : 0,
max : n) exprimant ainsi les cardinalités à respecter lors du choix des variantes de ce type de
variation (Cf. Figure 3-18.a).
Contraintes de construction
Dans ce type de variation, il faut vérifier la même contrainte de construction donnée dans
3.2.1.b, car il s’agit d’une contrainte liée à la cardinalité minimale 0.
Règles de réduction
1) Si un ensemble {Vi ; 1≤i≤n} de variantes est choisi par le concepteur, le point de variation
est remplacé par une transition composite, qui est matérialisée par un nœud de décision où
arrive l’ensemble du flot entrant de PV et d’où partent plusieurs transitions vers les variantes
sélectionnées. Un deuxième nœud de décision est créé où arrive une transition de chaque Vi
Chapitre 3 : Concepts de base et vue métier d’un composant métier processus 91
sélectionnée et d’où partent une transition vers le flot sortant de Vi et une transition vers le
premier nœud de décision. Cette deuxième décision permet à l’utilisateur final le choix de
plusieurs options à l’exécution du processus. Toutes les décisions sont conditionnées par le
choix de l’utilisateur final. Les variantes non sélectionnées sont supprimées avec leur flot
sortant (Cf. Figure 3-18.b).
2) Si une seule variante Vi est choisie par le concepteur, l’activité PV est remplacée par
l’activité Vi et le flot entrant de PV devient le flot entrant de Vi. Les variantes non
sélectionnées sont supprimées avec leur flot sortant (Cf. Figure 3-16.b).
3) Si aucune variante n’est sélectionnée, l’activité PV et ses variantes Vi sont supprimées
avec leur flot sortant (Cf. Figure 3-16.c).
Flot Entrant de
PV min : 0
max : n
<<Variation>>
PV
Flot Entrant de
PV
Client
min : 0
max : 2
<<Variation>>
Convertir Devise [Si Choix] [Si Choix]
<<Variant>> <<Variant>>
Convertir vers Dollar Convertir vers Euro
Conversion effectuée
Conversion effectuée
Une activité PV est un point de variation de type « Ensemble d’alternatives » si PV doit être
remplacée par au moins une variante parmi un ensemble d’alternatives. Au moment de
l’exécution, une seule variante est choisie par l’utilisateur final.
Notation
Pour ce type de variation, nous annotons l’activité variation par la valeur marquée (min : 1,
max : n) exprimant ainsi les cardinalités à respecter lors du choix des variantes de ce type de
variation (Cf. Figure 3-20.a).
Règles de réduction
1. Si un ensemble {Vi ; 1≤i≤n} de variantes est choisi par le concepteur, le point de variation
est remplacé par une transition composite, qui est matérialisée par un nœud de décision où
arrive l’ensemble du flot entrant de PV et d’où partent plusieurs transitions vers les variantes
sélectionnées. Le nœud de décision est conditionné par le choix de l’utilisateur final. Les
variantes non sélectionnées sont supprimées avec leur flot sortant (Cf. Figure 3-20.b).
2. Si une seule variante Vi est choisie par le concepteur, l’activité PV est remplacée par
l’activité Vi et le flot entrant de PV devient le flot entrant de Vi. Les variantes non
sélectionnées sont supprimées avec leur flot sortant (Cf. Figure 3-16.b).
Exemple
Pour illustrer la représentation de la variabilité dans ce type de variation, nous utilisons un
fragment du processus « Gestion de paiement » comme exemple. Dans ce processus, pour
valider un paiement, le caissier doit saisir le type de paiement selon qu’il s’agit d’un paiement
par espèce, par carte bancaire ou par chèque. Un système incluant la gestion de paiement doit
au moins supporter l’un de ces types (Cf. Figure 3-21.a). Ainsi, le concepteur doit choisir au
moins une des variantes, et au moment de l’exécution une seule variante sera choisie (Cf.
Figure 3-21.b), d’où la nécessité de l’utilisation d’un point de variation de type ensemble
d’alternatives.
Variabilité (Figure 3-21.a) Réduction (Figure 3-21.b)
Caissier
min : 1
max : 3
Caissier
<<Variation>>
Saisie Paiement
Paiement validé
Paiement validé
Une activité PV est un point de variation de type « choix d’informatisation » si PV est une
activité de type « alternative » et qui offre deux variantes possibles : manuelle et informatisée.
Le concepteur doit choisir entre les deux variantes.
Notation
Pour ce type de variation, nous annotons l’activité variation par la valeur marquée (min : 1,
max : 1). Les deux variantes de cette activité sont stéréotypées « Manuelle » et
« Informatisée » (Cf. Figure 3-22.a).
Règles de réduction
Si une variante Vi est choisie par le concepteur, l’activité PV est remplacée par l’activité Vi et le
flot entrant de PV devient le flot entrant de Vi. Les variantes non sélectionnées sont
supprimées avec leur flot sortant (Cf. Figure 3-22.b).
94 Chapitre 3 : Concepts de base et vue métier d’un composant métier processus
Flot Entrant de
PV min : 1
max : 1 Flot Entrant de
PV
<<Variation>>
PV
<<Informatisée>>
V2
<<Variant , Manuelle>> <<Variant , Informatisée>>
V1 V2 Flot Sortant de
V2
Flot Sortant de Flot Sortant de
V1 V2
min : 1
max : 1
<<Variation>>
Demander
Allocation
<<Informatisée>>
<<Variant , Manuelle>> <<Variant , Informatisée>>
Traiter Demande
Remplir fiche papier Remplir formulaire électronique
Allocation traitée
<<Informatisée>> <<Informatisée>>
Remplir formulaire Traiter Demande
électronique
Allocation traitée
Cas 1 : Le rôle d’un acteur A est variable si au moins une activité de A peut être exécutée par
d’autres acteurs. Le concepteur doit choisir l’acteur responsable de cette activité.
Cas 2 : Un acteur est optionnel si toutes ses activités peuvent ne pas être choisies lors de la
réutilisation.
Notation
Pour représenter la variabilité dans le cas 1, nous utilisons une activité de type « Alternative ».
Chaque variante de cette activité est incluse dans une partition correspondante à l’acteur
responsable de son exécution. (Cf. Figure 3-24.a).
Dans le cas 2, aucune nouvelle notation n’est nécessaire puisque ce type de variabilité est une
conséquence de la variabilité des activités.
Règles de réduction
Cas 1 : Si une variante Vi est choisie par le concepteur, le flot entrant de PV devient le flot
entrant de Vi en supprimant l’activité PV. Les variantes non sélectionnées sont supprimées
avec leur flot sortant (Cf. Figure 3-24.b).
Cas 2 : Si toutes les activités d’un acteur sont supprimées au moment de la réduction de la
variabilité, cet acteur est aussi supprimé.
Exemple
Dans la Figure 3-25.a, nous illustrons le cas où le rôle d’un acteur donné est variable. Dans cet
exemple, la saisie d’une demande d’allocation peut être faite par le « Client » ou par le
« Allocation Manager », d’où la nécessité de représenter la variabilité. Si, par exemple, le
concepteur choisit « Allocation Manager » comme responsable de cette activité, la réduction
du diagramme donne lieu au diagramme illustré dans la Figure 3-25.b.
Variabilité (Figure 3-25.a) Réduction (Figure 3-25.b)
Client Allocation Manager Client Allocation Manager
min : 1
max : 1
Demande traitée
Un objet est optionnel s’il est produit par un flot qui contient au moins une activité
stéréotypée « Variant ».
Notation
Pour représenter un objet optionnel, aucune nouvelle notation n’est nécessaire puisque la
variabilité d’un objet est considérée comme une conséquence de la variabilité des activités.
Règles de réduction
Si le flot qui produit un objet est supprimé au moment de la réduction de la variabilité, cet
objet est aussi supprimé.
Exemple
Dans un système de gestion d’une bibliothèque, l’inscription d’un client peut être gratuite ou
payante. L’inscription payante provoque la création d’un objet « Facture ». Cet objet est
optionnel puisque le concepteur peut choisir ou non la variante inscription payante (Cf. Figure
3-26.a). Dans le cas où le concepteur choisit une inscription gratuite, l’objet « Facture » est
supprimé puisqu’il fait partie du flot supprimé (Cf. Figure 3-26.b).
Chapitre 3 : Concepts de base et vue métier d’un composant métier processus 97
min : 1
max : 1
<<Variant>> <<Variant>>
Inscription Inscription Demande Inscription
gratuite payante d'inscription gratuite
Créer Facture
[ Facture payée ]
Inscription Créée
Notons que la contrainte d’exigence concerne particulièrement des variantes qui ne sont pas
liées par des flots. Une relation d’exigence entre variantes liées par des flots est implicite car
elle est obtenue par les règles de construction du diagramme d’activités qui est un graphe
orienté.
Propriétés des contraintes
Nous donnons ici des propriétés des contraintes de dépendance entre deux variantes :
Transitivité
- Si une variante A exige une variante B et B exige une variante C, alors A exige C.
Symétrie
- Si une variante A exclut une variante B, alors B exclut A.
Notation
Pour représenter les contraintes de dépendance entre deux variantes, nous utilisons une
valeur marquée associée à une activité variante et qui détermine ses variantes exigées (Exige)
et ses variantes exclues (Exclut) (Cf. Figure 3-27).
98 Chapitre 3 : Concepts de base et vue métier d’un composant métier processus
Exige :[C]
Exclut : [B]
<<Variant>>
A Exige : null
<<Variant>> Exclut : [A,C]
B
Exige : null
<<Variant>> Exclut :[B]
C
- Si une variante A exclut une variante B, alors il ne doit pas y avoir un flot entre A et B.
Règles de réduction
- Si une variante est choisie, alors toutes les variantes liées avec elle par une contrainte
d’exigence doivent être conservées.
- Si une variante est choisie, alors toutes les variantes liées avec elle par une contrainte
d’exclusion ne doivent pas être conservées.
Exemple
Pour illustrer les contraintes de dépendance dans un diagramme d’activités, nous utilisons
l’exemple « Gestion d’Emprunt ». Dans cet exemple, nous représentons deux types de points
de variation : « Modification Demande » de type « Option » et « Traitement Demande » de
type « Alternative » (Cf. Figure 3-28.a). Les valeurs marquées des deux variantes
« Modification Réservation » et « TraitementSansRéservation » indiquent que ces deux
variantes sont liées par un lien d’exclusion. En outre, les deux variantes ne sont liées par aucun
flot, ce qui signifie que la contrainte de construction est validée. Par conséquent, le choix de la
variante « Modification Réservation » interdit le choix de la variante « Traitement sans
Réservation » (Cf. Figure 3-28.b).
Variabilité (Figure 3-28.a)
Client Manager
min : 1
min : 0 max : 1 <<Variation>>
max : 2 Traitement
Demande
<<Variation>> Exige : null
Demande Exclut : [Modification Réservation]
Modification
Emprunt
Demande
<<Variant>> <<Variant>>
TraitementAvec TraitementSans
<<Variant>> <<Variant>>
Réservation Réservation
Modification Demande
Réservation Renouvellement
Création Emprunt
Exige : null
Exclut : [Traitement Sans Réservation]
Chapitre 3 : Concepts de base et vue métier d’un composant métier processus 99
[ si choix ]
Demande
Emprunt TraitementAvecRéservation
[ si choix ]
[ si choix ]
Demande
Modification
Renouvellement
Réservation
Création Emprunt
[ Valider demande]
[ Valider demande]
min : 1
max : 1
<<Variation>>
Saisie demande allocation
<<Informatisée>>
Traitement demande
allocation
Demande traitée
− les activités de cette vue sont représentées par des classes « Action » UML 2.
Les classes grisées illustrent les méta-classes concernées par nos extensions (Cf. Figure 3-30).
+inPartition
*
ActivityPartition
0..1 0..1
* Activity
+Partition 0..1 +Activity
+inPartition *
+Activity
CMP_BusinessView
+Node +Node
* * 1+T arget +Incoming +Edge
*
ActivityNode ActivityEdge *
1+Source *+Edge
+Outcoming*
Context ActivityEdge
inv: [Link] (‘Variation’)
implies
[Link] (‘Variant’)
Context ActivityNode
inv: [Link] (‘Variation’) and [Link]->exists (e| ([Link]
(‘Manuelle’) and [Link]->exists (e| ([Link] (‘Informatisée’)
implies
not [Link] (‘Manuelle’) and not [Link](‘Informatisée’)
[4] Une action fixe est une action non stéréotypée par « Variation » et « Variant » et son flot
d’entrée est obligatoire.
[5] Une action fixe qui a une transition vers une action de type « Variation » dont le min=0, doit
avoir au moins une transition vers une autre action fixe ou vers une action stéréotypée
« Variation » dont le min=1.
Formalisation en OCL
Context ActivityEdge
inv: [Link] (‘Variation’) and [Link]=0
implies
[Link]->exists (e| (not [Link] (‘Variation’) and not
[Link] (‘Variant’)) or (([Link] (‘Variation’) and
[Link]=1)))
102 Chapitre 3 : Concepts de base et vue métier d’un composant métier processus
4 Conclusion
Dans ce chapitre, nous avons présenté en premier lieu la description des concepts de base
nécessaires pour la définition d’un CM. Nous avons tout d’abord défini la manière dont les
connaissances d’un SI ou d’un domaine peuvent être identifiées pour être ensuite formalisées,
structurées et mises à la disposition des concepteurs de SI à base de composants. Le principal
résultat concerne la nature de la solution encapsulée dans un CM. Ainsi, nous avons considéré
qu’un CM potentiellement réutilisable doit être exprimé sous la forme d’un CM processus
(CMP) qui utilise des CM entité (CME).
Dans la deuxième partie de ce chapitre, nous avons présenté nos propositions en terme de
spécification de la solution offerte par un CMP donné. Cette dernière est composée de quatre
vues de développement organisées autour de l'expression de la variabilité. Dans ce chapitre, le
point d’intérêt est mis sur la vue métier qui définit l’aspect organisationnel du CMP. Les autres
vues sont déduites de la vue métier matérialisant ainsi les propriétés informatisées du CMP. Il
nous faut désormais proposer un processus d’ingénierie de composants capable de produire
des CMP exprimés selon ce modèle. Ceci fait l'objet du chapitre suivant.
Cha p it re 4 : Ing éni er ie de
c o m po s a nt m ét ier pro c es s u s
suppo rta nt la va ria bil ité
Traçabilité de la
variabilité
CMP supportant la variabilité Organisation
Bibliothèque de CMP
Documentation / Classification
maintenue. Les cinq premières phases de spécification sont illustrées dans la section 3, tandis
que la phase d’organisation sera traitée dans le chapitre suivant.
Phase Artefact produit
Fiche descriptive détaillée du CMP : diagramme de cas
Description du CMP d’utilisation métier du CMP générique, scénario détaillé
du CMP supportant la variabilité.
Vue métier du CMP représentée par un diagramme
Spécification de la vue métier
d’activités supportant la variabilité.
Vue fonctionnelle du CMP représentée par un
Spécification de la vue fonctionnelle diagramme de cas d’utilisation supportant la variabilité.
Une fiche descriptive par cas d’utilisation.
Vue dynamique du CMP représentée par un ensemble de
Spécification de la vue dynamique
diagrammes de séquence.
Vue structurelle du CMP représentée par des fragments
Spécification de la vue structurelle
structurels selon le modèle Symphony.
Tableau 4-1 : Description des phases du processus et des artefacts produits
Pour illustrer le processus de spécification d’un CMP, nous utilisons l’exemple du processus de
gestion d’allocation de ressources. Une ressource est une entité dont la particularité est d’être
partagée, requise et disponible pour la gestion dont elle est objet. Plusieurs entités peuvent
jouer le rôle d’une ressource. Par exemple, dans le contexte d’une bibliothèque, un livre est
une ressource pour le processus « Emprunt ». Dans une agence de location de voitures, une
voiture est une ressource pour le processus « Location ».
L’étude des différentes manières de gérer les ressources permet de définir des catégories de
ressources. Certaines sont des ressources consommables puisque leur existence est liée à un
événement donné (ex. un billet d’avion, un billet de spectacle…), et d’autres ne sont pas
consommables car elles sont allouées pour une période précise, et exigent donc un processus
de retour qui libère la ressource pour d’autres demandes (ex. livre, voiture…). Il existe aussi
des ressources dont la demande passe par une réservation avant l’allocation. Dans ce chapitre,
pour illustrer le processus d’ingénierie d’un CMP de gestion d’allocation de ressources, nous
nous appuyons sur cinq PM simplifiés d’allocation de ressources issus de SI différents.
L’utilisation de ces PM nous servira à identifier la variabilité. Le Tableau 4-2 illustre l’ensemble
de ces PM.
Ressource PM SI
Livre PM1 : Gestion Emprunt Livre Bibliothèque
Voiture PM2 : Gestion Allocation Voiture Agence de voiture
Chambre PM3 : Gestion Allocation Chambre d’Hôtel Hôtel
Billet d’avion PM4 : Gestion Allocation Billet d’Avion Compagnie aérienne
Billet de spectacle PM5 : Gestion Allocation Billet Spectacle Agence artistique
Tableau 4-2 : Liste des PM utilisés
108 Chapitre 4 : Ingénierie de composant métier processus supportant la variabilité
3.1.1 Description
Les étapes de cette phase sont les suivantes (Cf. Figure 4-2) :
Fiche descriptive du PM
[Pour chaque PM]
DemandeEmpruntLivre
RécupérationLivre
Modèle métier
Abonné
DemandeRenouvellement
RestitutionLivre
Modèle organisationnel
Abonné Bibliothécaire
<<Informatisée>> <<Informatisée>>
Demande Traitement
« Demande Emprunt Livre » EmpruntLivre Demande
DemandeLivre :
RécupérationLivre <<Informatisée>>
Création Emprunt
« Récupération Livre »
Emprunt :
Livre :
[Emprunté]
<<Informatisée>> <<Informatisée>>
Demande MiseàJour
Renouvellement Emprunt
« Demande Renouvellement »
Demande Emprunt :
Renouvellement :
RestitutionLivre <<Informatisée>>
Enregistrement
RetourLivre
« Restitution Livre »
Livre :
[Disponible]
Chapitre 4 : Ingénierie de composant métier processus supportant la variabilité 111
DemandeLocationVoiture
Annulation Réservation
Modèle métier
Client RécupérationVoiture
Demande Renouvellement
RestitutionVoiture
Modèle organisationnel
Client Agent
<<Informatisée>> <<Informatisée>>
« Demande Location Demande Création
LocationVoiture Réservation
Voiture »
DemandeVoiture : Réservation :
« Récupération Voiture »
Récupération Voiture <<Informatisée>>
Création Contrat
Voiture : Contrat :
[Louée]
<<Informatisée>> <<Informatisée>>
Demande MiseàJour
Renouvellement Contrat
« Demande Renouvellement »
Demande
Renouvellement : Contrat :
Voiture :
[Disponible]
Chapitre 4 : Ingénierie de composant métier processus supportant la variabilité 113
DemandeChambreDirecte
DemandeAllocationChambre
AnnulationRéservation
Modèle métier
Client OccupationChambre
DemandeProlongationSéjour
LibérationChambre
Modèle organisationnel
<<Informatisée>> <<Informatisée>>
Demande Allocation Création
Chambre Réservation
« Demande Allocation
Chambre »
DemandeChambre :
Réservation :
[Créée]
Chambre : Séjour :
[Occupée]
<<Informatisée>>
CréationDemande
Prolongation
Demande Prolongation Séjour
« Demande Prolongation
<<Informatisée>>
Séjour » Demande MiseàJour Séjour
Prolongation :
Séjour :
Chambre :
[Disponible]
Chapitre 4 : Ingénierie de composant métier processus supportant la variabilité 115
DemandeBilletAvion
Modèle métier
Client
RetraitBillet
- Un client (acteur principal) émet une demande d’achat d’un billet d’avion à
une agence de voyage Lowcost en remplissant un formulaire électronique.
L’agent de voyage (acteur secondaire) :
1. Vérifie la disponibilité d’un billet.
2. Crée une réservation.
3. Communique au client le code de sa réservation en mentionnant
Scénario l’impossibilité d’annulation.
- Le client se présente à l’agence de voyage pour payer et retirer son billet.
L’agent de voyage :
1. Identifie le client par le biais du code réservation.
2. Crée le billet d’avion.
3. Imprime le billet et le remet au client.
Modèle organisationnel
<<Informatisée>> <<Informatisée>>
« Demande Billet Avion » Demande Billet Traitement Demande
Avion
DemandeBillet : Réservation :
Retrait Billet
<<Informatisée>>
Création Billet
« Retrait Billet »
Billet :
116 Chapitre 4 : Ingénierie de composant métier processus supportant la variabilité
DemandeTicketSpectacle
Modèle métier
Client
RetraitTicket
DemandeTicket :
Retrait Ticket
<<Informatisée>>
Création Ticket
« Retrait Ticket »
Ticket :
b) Analyse du CMP
Fiche descriptive du CMP
Dans le Tableau 4-3, nous étudions la similarité sémantique entre les cas d’utilisation métier,
les acteurs, les activités /événements ainsi que les objets de chaque PM considéré en créant
des cas d’utilisation métier, des acteurs, des activités / événements et des objets abstraits
utilisés dans le CMP. L’abstraction des cas d’utilisation métier étant identique à celle des
activités déclencheurs de chaque sous-PM, nous ne montrons que l’abstraction de ces activités
(Activités soulignées dans le tableau).
Chapitre 4 : Ingénierie de composant métier processus supportant la variabilité 117
Demande Ticket
Réservation Réservation
Emprunt
Contrat Allocation
Séjour
Demande Renouvellement
Renouvellement
Demande Prolongation
Livre
Voiture
Chambre Ressource
Billet
Ticket
min : 1
max : 2 <<include>>
<<Variant>>
Demande Allocation Directe
<<include>>
<<Variation>>
<<Variant>>
Demande Allocation Abstraite
Demande Allocation
min : 0
max : 1 <<include>>
<<Variation>> <<Variant>>
AnnulationRéservation Annulation Réservation
<<include>>
<<Variant>>
Demande Renouvellement Direct
<<Variation>>
Demande Renouvellement
<<include>>
Abstrait
min : 0
max : 1 <<Variant>>
Demande Renouvellement
<<include>>
<<Variation>> <<Variant>>
RestitutionRessource Restitution Ressource
partir des cas d’utilisation métier, et 2) des variations déduites de ces cas d’utilisation
représentées dans le scénario par des pointillés.
- Variation : Demande Allocation abstraite
• Variante : Demande Allocation Directe
- Le client (acteur principal) se présente directement pour
demander sa ressource.
- L’Allocation Manager (acteur secondaire) crée la demande
d’allocation.
• Variante : Demande Allocation
- Le client crée la demande d’allocation via un formulaire
électronique.
Variation : Traitement Demande Allocation
L’Allocation Manager traite la demande :
1. Identifie le client par le biais du code demande.
2. Vérifie la disponibilité de la ressource.
• Variante : Traitement Avec Réservation
- Crée une réservation et communique au client le code de
réservation.
• Variante : Traitement Sans Réservation
- Confirme au client la disponibilité de la ressource à la date
Scénario demandée.
- Variation : Annulation Réservation
• Variante : Annulation Réservation
- Le client peut annuler sa réservation en la supprimant.
- Le client se présente pour récupérer la ressource.
L’Allocation Manager :
1. Variation : Allocation avec Réservation
• Variante : Vérification Réservation
- Vérifie le code de réservation.
2. Crée l’allocation.
3. Variation : Modification État Ressource
• Variante : Suppression Ressource
- Supprime la ressource (ressource consommable).
• Variante : Mise à jour Ressource
- Met à jour l’état de la ressource (ressource non
consommable).
120 Chapitre 4 : Ingénierie de composant métier processus supportant la variabilité
V 11 V 12 V 21 V 22 V 31 V 41 V 51 V 52 V 61 V 62 V 71
V 11
V 12
V 21 Exige
V 22 Exclut Exclut
V 31 Exige Exclut
V 41 Exige Exclut
V 51 Exige
V 52 Exclut Exclut Exclut
V 61 Exige Exclut
V 62 Exige Exclut
V 71 Exige Exclut
3.2.1 Description
La spécification de la vue métier comprend les étapes suivantes (Cf. Figure 4-4) :
[des Variations?]
[Non]
[Pour toute activité de type variation]
Représentation de la variation
[des variantes?]
[oui]
<<Variation>>
DemandeAllocationAbstraite
Réservation :
[Créée]
Client
« Annulation Réservation » min : 0
max : 1
<<Variation , Informatisée>>
AnnulationRéservation Exige : Traitement Avec
Réservation
Exclut : Traitement Sans
<<Variant , Informatisée>> Réservation
Annulation Réservation
Réservation :
[Annulée]
Notons que dans le sous-CMP « Récupération Ressource », nous utilisons une règle de
construction déjà définie dans le troisième chapitre, pour assurer la cohérence du diagramme
Chapitre 4 : Ingénierie de composant métier processus supportant la variabilité 123
d’activités. Cette règle concerne l’événement « Récupération Ressource » qui apparaît deux
fois dans le modèle.
RécupérationRessource min :0
max : 1
<<Variation , Informatisée>>
AllocationAvecRéservation
« Récupération
<<Variant , Informatisée>>
Ressource» VérificationRéservation
Exclut : Demande
Ressource : Exige : Restitution Renouvellement Directe, Ressource :
Ressource
[Allouée] Demande Renouvellement, [Supprimée]
Restitution Ressource
Abstrait »
<<Variant , Informatisée>> <<Variant , Manuelle>>
Demande Renouvellement Demande Renouvellement <<Informatisée>>
Direct DemandeRenouvellement
Exige : MiseàJourRessource
Exclut : SuppressionRessource
<<Informatisée>
MiseàJour Allocation
Renouvellement :
Allocation :
Ressource :
[Disponible]
3.3.1 Description
La vue fonctionnelle d’un CMP représente un ensemble de services rendus par le composant.
Elle est modélisée par un diagramme de cas d’utilisation où chaque cas d’utilisation
correspond à une fonction métier du composant et correspond à une séquence d’actions
produisant un résultat observable pour un acteur particulier. L'objectif de la spécification
fonctionnelle est la génération des cas d'utilisation à partir des activités informatisées. À ce
niveau, on modélise les aspects informatiques du système, sans pour autant rentrer dans les
détails d'implémentation. Notons que la décomposition du CMP global en sous-CMP exige la
conservation de cette décomposition au niveau fonctionnel en affectant chaque cas
d’utilisation au sous-CMP candidat à l’assumer. La spécification de la vue fonctionnelle
comprend les étapes suivantes (Cf. Figure 4-6 ) :
− Génération des cas d’utilisation fixes : à partir de la liste des activités fixes informatisées, on
génère des cas d’utilisation fixes.
− Génération des cas d’utilisation variables : à partir de la liste des activités variables
informatisées, on génère des cas d’utilisation variables. Cette étape sera détaillée dans le
paragraphe (3.4.2).
− Mise en relation des cas d’utilisation : il s’agit d’une part, de préciser si un cas d’utilisation
appelle un autre cas d’utilisation (relation « include »), et d’autre part de préciser si un cas
d’utilisation s'inspire d'un autre cas d’utilisation (relation « extend »). Il s’agit aussi de
préciser s’il existe des cas d’utilisation génériques (relation « généralisation »). Concernant
les cas d’utilisation variables, la mise en relation entre des cas d’utilisation variations et
leurs variantes est exprimée par la relation « include ».
− Description des cas d’utilisation : il s’agit de définir de manière détaillée chaque cas
d’utilisation et de décrire comment il assume l’obtention de sa finalité.
− Établissement de la cartographie fonctionnelle : il s’agit d’établir une cartographie des CME
utilisés par chaque sous-CMP. Chaque CMP/CME est modélisé par un package UML, et
chaque cas d’utilisation est affecté au CMP/CME candidat pour l’assumer. Une technique
pour déterminer un CME est d’appliquer une analyse syntaxique sur le nom du cas
d’utilisation (une des pratiques consiste à choisir le complément du verbe nommant le cas
d’utilisation [Hassine, 2005]). Notons que le niveau de granularité du CMP peut agir sur la
création ou non de sous-CMP qui utilisent des CME. Dans le cas où le CMP est de
granularité faible, il n’est pas nécessaire de garder la décomposition établie au niveau de la
vue métier pour constituer la cartographie fonctionnelle. Dans le cas contraire, il est
recommandé de créer un sous-CMP pour chaque sous-PM identifié.
Chapitre 4 : Ingénierie de composant métier processus supportant la variabilité 125
Vue Métier
[Variations?]
À partir du Tableau 4-6, nous extrayons les différentes formes de variabilité qui peuvent être
représentées dans la vue fonctionnelle d’un CMP. Le Tableau 4-7 résume l’ensemble de ces
formes dont les mécanismes de représentation sont donnés dans la section suivante.
Élément Forme de variabilité
Cas d’utilisation Alternative/ Alternative Optionnelle / Option / Ensemble d’alternatives
Variation de Rôle
Acteur
Optionnel
Tableau 4-7 : Formes de variabilité dans la vue fonctionnelle
b) Règles de traduction
Flot Entrant de
PV min : x
max : y
<<Variation>>
PV
Min : x <<include>>
Max : y <<Variant>>
V1
<<include>>
Acteur <<Variant>>
<<Variation>> V2
PV ......
<<include>>
<<Variant>>
Vn
Flot Entrant de
PV min : 1
max : 1
<<Variation>>
PV
<<include>>
<<Variation>> <<Variant>>
Acteur
PV V2
Flux Entrant
min : 1
de PV
max : 1
<<Variation>>
PV
min : 1
<<include>> max : 1
Acteur 1 <<Variant>>
V1
<<include>>
Acteur i <<Variant>> <<Variation>>
.... Vi PV
<<include>>
Acteur n <<Variant>>
Vn
- Si une activité point de variation n’admet que des variantes informatisées, le point de
variation et ses variantes sont conservés dans la vue fonctionnelle. Les mêmes valeurs
marquées sont conservées.
- Si une activité point de variation n’admet que des variantes manuelles, le point de variation
et ses variantes ne sont pas conservés dans la vue fonctionnelle.
- Si une activité point de variation admet des variantes manuelles et informatisées, on ne
conserve que les variantes informatisées, la cardinalité maximale du point de variation devient
le nombre des variantes conservées :
+ Si le nombre des variantes conservées est supérieur ou égal à 2, le même type de variation
est conservé en changeant la cardinalité maximale.
+ Sinon, le point de variation devient de type option de cardinalité maximale égale à 1.
Cas particuliers :
[1] Une activité informatisée, non stéréotypée « Variant » et « Variation », liée directement à
une variante informatisée, donne lieu à un cas d’utilisation de type option incluant le cas
d’utilisation variante correspondant à cette activité.
[2] Une activité informatisée « A » liée directement à une variante manuelle issue d’un point
de variation « PV », donne lieu à un cas d’utilisation « Variant ».
2.a. Si PV admet des variantes informatisées et manuelles, PV est conservée dans la vue
fonctionnelle, ses variantes manuelles sont remplacées par les activités informatisées
auxquelles elles sont directement liées.
2.b. Si PV est manuelle, le même nom PV est conservé dans le cas d’utilisation de type
« Variation » créé, ce cas d’utilisation inclut le cas d’utilisation correspondant à A.
[3] Un cas d’utilisation racine peut être créé incluant un ensemble de cas d’utilisation
correspondant à un ensemble d’activités informatisées successives et ininterruptibles.
c) Règles de réduction
Les règles de réduction suivantes sont les mêmes que celles utilisées pour la réduction de la
vue métier, mais elles sont automatiquement appliquées suite à la réduction de la vue métier.
<<include>>
<<Variation>>
<<Variant>>
Annulation Réservation min : 0
Client AnnulationRéservation
max : 2
<<include>>
min :1 <<Variant>>
max : 2 DemandeRenouvellement
<<include>> <<include>>
<<Variant>> <<Variation>>
Demande Allocation DemandeRenouvellement Abstrait
<<include>>
<<Variant>> <<include>>
<<Variation>>
DemandeRenouvellement
Demande Allocation Abstraite
MiseàJourAllocation
<<Variant>>
Demande Allocation
min : 1
max : 1
<<Variant>>
TraitementAvecRéservation
<<Variation>>
TraitementDemandeAllocation <<Variant>>
TraitementSansRéservation
min : 0
max : 1 <<include>>
<<include>>
Allocation
Création Allocation
min : 1
max : 1 <<include>> <<Variant>>
<<include>> SuppressionRessource
Allocation
Manager <<include>>
<<Variation>> <<Variant>>
ModificationEtatRessource MiseàJourRessource
min : 0
max : 1
<<include>>
<<Variant>>
<<Variation>>
EnregistrementRetourRessource
RestitutionRessource
[3]). Notons aussi que les deux variantes Demande Allocation et Demande Renouvellement
sont créées selon la règle [2.a]. Les variations sont conservées en appliquant les règles de
traduction sur les valeurs marquées.
La Figure 4-12 illustre un exemple de réduction de la vue fonctionnelle. La variante Demande
Allocation est assignée seulement au client, ce qui implique la suppression de la variante
assignée à l’allocation manager. La variante TraitementSansRéservation remplace le point de
variation TraitementDemandeAllocation. La variante SuppressionRessource remplace le point
de variation ModificationEtatRessource. Les autres points de variation (Annulation
Réservation, AllocationAvecRéservation, DemandeRenouvellementAbstrait et
RestitutionRessource) sont tous supprimés avec leurs variantes.
TraitementSansRéservation
<<include>>
Allocation CréationAllocation
Allocation
Manager
Suppression Ressource
<<Entité>> <<Entité>>
Ressource Client
3.4.1 Description
La vue dynamique d’un CMP représente son aspect comportemental. Nous représentons cette
vue par un ensemble de diagrammes de séquence d’UML 2. L’objectif de la spécification
dynamique du CMP est d’illustrer les interactions entre CME en définissant un scénario. Cette
phase inclut trois étapes (Cf. Figure 4-15) :
− Analyse dynamique : il s’agit d’une modélisation précise proposée par un diagramme de
séquence pour chaque cas d’utilisation et une formalisation des opérations à assumer par
les CME spécifiés dans la cartographie fonctionnelle.
− Spécification des interactions fixes : il s’agit de la formalisation des scénarios
correspondants aux cas d’utilisation fixes.
− Spécification des interactions variables : il s’agit de la formalisation des scénarios
correspondants aux cas d’utilisation variables. Cette étape est détaillée dans le paragraphe
3.4.2.
Vue Fonctionnelle
Analyse dynamique
[Variations ?]
[Oui]
[Non]
Spécification des interactions variables
Vue Dynamique
interaction de type « Variation ». L’ensemble de ses variantes est représenté par un sous-
diagramme de séquence comportant des références sur ces variantes.
Dans cette partie, nous présentons seulement la représentation de la variabilité sur les
interactions dont découle la variabilité des objets. Pour ce faire, nous utilisons le mécanisme
de composition proposé dans la nouvelle génération des diagrammes de séquence d’UML 2. Il
s’agit de la possibilité de composer les diagrammes de séquence pour spécifier des
comportements plus complexes.
La composition est réalisée dans UML 2 par deux mécanismes principaux : 1) les frames de
type référence (interaction use) ou de type ‘sd’ (sous-diagramme) et 2) les opérateurs
d’interaction. Ces mécanismes permettent de modéliser des fragments d’interaction
combinés.
Des exemples d’opérateurs d’interaction sont donnés ci-dessous.
− L'opérateur loop associé à un seul opérande, permet d'exprimer une boucle.
− L'opérateur opt permet de spécifier qu'un fragment d'interaction (opérande) est
optionnel (à l'aide d'une contrainte).
− L'opérateur alt est destiné à la définition de structures de choix conditionnels entre
plusieurs fragments (opérandes).
− L'opérateur seq indique que différents opérandes doivent être exécutés en séquence,
mais dans n'importe quel ordre.
− L'opérateur strict exprime lui aussi une séquence, mais selon l'ordonnancement
donné.
Pour représenter la variabilité sur la vue dynamique, nous nous focalisons sur les deux
opérateurs Alt et Opt pour spécifier des choix de comportements qui doivent être effectués
par un concepteur. En effet, pour représenter un point de variation, nous utilisons un frame de
type référence pour référencer le sous-diagramme de séquence comportant les variantes (Cf.
Figure 4-16.b). Les variantes sont modélisées aussi par des références inclues dans les
opérateurs utilisés. Les variantes de type « Alternative » et « Ensemble d’alternatives » sont
des opérandes de l’opérateur Alt (Cf. Figure 4-16.c). Les variantes de type « Option » sont des
opérandes de l’opérateur Opt (Cf. Figure 4-16.d). Enfin, les variantes de type « Alternative
optionnelle » sont des opérandes de l’opérateur Alt inclus dans l’opérateur Opt (Cf. Figure
4-16.e). Une variante donnée est représentée dans un sous-diagramme de séquence de type
« sd » (Cf. Figure 4-16.f).
Dans la vue dynamique, nous n’utilisons aucun stéréotype et nous ne distinguons pas les types
de variation par l’utilisation de cardinalités car cette contrainte est déjà modélisée dans les
vues précédentes. Le type de variation est obtenu par application du mécanisme de traçabilité
de la variabilité exprimée.
Chapitre 4 : Ingénierie de composant métier processus supportant la variabilité 135
Min : x <<include>>
Max : y <<Variant>>
V1
<<include>> <<include>>
<<include>>
<<Variant>>
UseCase <<Variation>>
Acteur Vi
PV ......
<<Variant>>
Vn
c) Règles de réduction
- Si aucune variante n’est choisie dans la vue métier, le frame de référence est supprimé ainsi
que le sous-diagramme de séquence référencé par le frame.
- Si au moins une variante est choisie, l’ensemble des frames de référence des variantes non
sélectionnées est supprimé. Les sous-diagrammes de séquence référencés par ces frames sont
aussi supprimés.
+ Si la variation est de type « Alternative » ou « Alternative optionnelle », la variante choisie
devient obligatoire en supprimant les opérateurs utilisés.
- Après la réduction des variantes, les lignes de vie qui n’envoient et qui ne reçoivent aucun
message sont supprimées.
<<include>>
<<Variation>> <<Variant>>
<<include>> AllocationAv ecRéserv ation Vérif icationRéserv ation
<<include>>
Allocation Création Allocation
Allocation <<include>> <<include>>
Manager
min : 1 <<Variant>>
SuppressionRessource
max : 1
<<Variation>>
Modif icationEtatRessource <<include>>
<<Variant>>
MiseàJourRessource
<<include>>
<<Variation>> <<Variant>>
<<include>> AllocationAv ecRéserv ation Vérif icationRéserv ation
<<include>>
Allocation Création Allocation
Allocation <<include>> <<include>>
Manager
min : 1 <<Variant>>
SuppressionRessource
max : 1
<<Variation>>
Modif icationEtatRessource <<include>>
<<Variant>>
MiseàJourRessource
Figure 4-18 : Exemple de diagrammes de séquence inclus dans la vue dynamique du CMP
« Gestion Allocation Ressource »
3.5.1 Description
La vue structurelle d’un CMP permet d’identifier les concepts encapsulés par le CMP sous
forme de classes, leurs associations avec multiplicité et leurs attributs.
Pour modéliser cette vue, nous adoptons le modèle conceptuel Symphony présenté dans le
deuxième chapitre (§1.3.3). La construction de cette vue est fortement couplée avec les vues
fonctionnelle et dynamique car elle représente les structures de données manipulées par le
comportement du CMP et correspondant à des fonctionnalités du composant. Cette phase
inclut cinq étapes (Cf. Figure 4-19) :
− Spécification de la cartographie du fragment fixe : il s’agit de l’élaboration de la
cartographie de la vue structurelle fixe, incluant les composants (CMP / CME) participants.
− Spécification de la cartographie des fragments variables : il s’agit de l’élaboration de la
cartographie de chaque variante, incluant les composants participants.
140 Chapitre 4 : Ingénierie de composant métier processus supportant la variabilité
[Variantes?]
CME dans la vue dynamique. Enfin, les classes « Rôle » sont obtenues à partir des messages
émis du CMP / CME à d’autres CME (Cf. Figure 4-20.b).
Variabilité fonctionnelle (Figure 4-20.a)
min : x
max : y
<<Variant>>
V1
Acteur <<Variation>>
PV
<<Variant>>
Vi
....
<<Fragment Structurel>>
Vi
<<Partie>> <<utilise>>
CMP_Partie
c) Règles de réduction
La réduction de la vue structurelle consiste en la suppression des fragments non sélectionnés
qui eux-mêmes correspondent aux cas d’utilisation, donc aux activités, non sélectionnés. Les
fragments choisis sont fusionnés avec le fragment structurel fixe pour former une vue
structurelle qui respecte le modèle Symphony. Le fragment qui résulte de cette opération
comporte l’union des propriétés de l’ensemble des fragments fusionnés. Ainsi, il comporte les
attributs, les méthodes, les classes « Maître », les classes « Partie », les classes « Interface » et
les classes « Rôle » de ces fragments.
<<Fragment Structurel>>
GestionAllocationRessource
<<Maître>>
<<Interface>>
GestionAllocationRessource <<Rôle>>
Service GestionAllocationRessource
DemandeAlloc
<<réalise>> DemandeAllocation() / CodeDmd : Int
DemandeAllocation()
TraitementDemandeAllocation()
TraitementDemandeAllocation()
CréationAllocation(C, R)
CréationAllocation(C, R)
IdentifierClt(Clt) <<Rôle>>
IdentifierRess(Ress) AutorisClt
LierDmdAllocation(D) / CodeClient : Int
LierAllocation (A)()
VérifCodDmd(CodDmd)
<<Rôle>>
DispoRess
/ CodeRessource : Int
<<Fragment Structurel>>
VérificationRéservation
<<utilise>>
<<utilise>> <<Composant Métier Entité>>
Réservation
<<Rôle>>
<<Interface>> <<Maître>> ResClient
Service Réservation Réservation / CodeClient : int
CodeRes : int
IdentifierClt()
IdentifierRess() <<réalise>> IdentifierClt()
<<Rôle>>
IdentifierRess()
ResRessource
/ CodeRessource : int <<utilise>>
<<Fragment Structurel>>
GestionAllocationRessource
VérifRéservation
/ CodeRés : Int
Après avoir décrit le processus d’ingénierie d’un CMP, nous présentons dans la section
suivante le méta-modèle de la solution d’un CMP, exprimant ainsi la cohérence inter-vues du
développement d’un CMP.
CMP_BusinessView
+Node +Node
* * 1+T arget +Incoming* +Edge
ActivityNode ActivityEdge *
1+Source *+Edge
+Outcoming*
UML::CommonBehaviors::BasicBehaviors::
BehaviordClassifier
Classifier
Actor * 0..1
* *
ExtensionPoint +useCase 1 UseCase
*
1..*
+extensionLocation +extendedCase 1 1 1 1
+extension +addition +IncludingCase
*
+extend
* * * +include
Extend Include
*
Variation_UseCase Variant_UseCase
Min : int
Max : int
UML::Classes::Kernel::
DirectedRelationship
Formalisation en OCL
Context Include
inv: [Link] (‘Variant’)
implies
[Link] (‘Variation’)
148 Chapitre 4 : Ingénierie de composant métier processus supportant la variabilité
FragmentStructurel
+ModèleSymphony 1..*
ModèleSymphony
Type : DiagClasseUML
0..*
Classe-Interface 1..* 1
+Super
utilise 1
+Sous Attribut
Classe-Comportementale Classe-Structurelle
*
*
est composé de
Classe-Rôle
*
Classe-Partie Attribut-Local Attribut-Dérivé
*
Contexte Classe-Structurelle
inv: not [Link] (Classe-Rôle) implies [Link] -> not exists (a|[Link]
(Attribut-Dérivé))
de même pour la vue structurelle : chaque cas d'utilisation donne lieu à un fragment structurel
cohérent avec l'interaction définie auparavant.
0..1 *
Solution Behaviored_Classifier Behavior Package
0..1 *
0..1
1..* 1 Interaction
1 1 1
Action Include * UseCase StructuralFragment
* 1 1..* 1
<<Profil>>
Composant Métier
<<stereotype>> <<stereotype>>
Variant Composant Métier Processus
5 Conclusion
Dans ce chapitre, nous avons présenté nos propositions en termes de spécification d’un
processus d’ingénierie de CMP dont la solution est composée de quatre vues de
développement organisées autour de l'expression de la variabilité. L’ensemble des extensions
apportées aux concepts d’UML est donné sous forme d’un profil UML pour les composants
métier. Il nous faut désormais proposer des mécanismes d’organisation des CM dans une
bibliothèque de composants ainsi qu’un processus appelé « processus par la réutilisation »
capable d’utiliser des composants exprimés selon ce modèle. Ceci fait l'objet du chapitre
suivant.
Cha p it re 5 : M is e en œuv r e et
va lida tio n
Problème 1
Abstrait
1..*
Domaine Métier 1 1 1 1
1..*
Vue Métier Vue Fonctionnell e Vue Dynamique Vue Structurell e CMP
1..*
1 1 1..* 1..*
0..1
Di agramme Diagramme de Cas Diagramme de Fragment
Variation d'util isation
d'activités séquence Structurel
Système de CMP
Recherche du CMP
CMP: [Sélectionné]
Réduction du CMP
CMP : [Réduit]
Adaptation du CMP
CMP : [Adapté]
− Sélection des variantes : il s’agit de sélectionner les variantes de chaque point de variation à
l’aide de la documentation fournie pour chaque variante. Cette étape produit un modèle
des variantes choisies qui sert à enregistrer le choix du concepteur.
− Vérification des contraintes de dépendance : dans cette phase une vérification des
contraintes de dépendance est établie dans le but d’assurer une réduction cohérente. En
cas de conflit, une nouvelle sélection des variantes est exigée.
− Réduction du CMP : lors de cette étape, le CMP est réduit en conservant les variantes
enregistrées dans le modèle des variantes sélectionnées. La réduction est réalisée en
appliquant les règles que nous avons introduites dans les deux chapitres précédents. Le
concepteur effectue sa réduction à partir de la vue métier, les trois autres vues sont
automatiquement réduites en utilisant les mécanismes de traçabilité de la variabilité.
[Non]
Réduction du CMP
Cahier des
charges
générales
Exigences Exigences
fonctionnelles techniques
Étude préalable
Spécification
conceptuelle
des besoins Architecture
Spécification applicative
organisationnelle
des besoins
Architecture
Analyse technique
..
Maquettage
OM2
Conception
OM1
Implémentation
Intégration
Recette
Déploiement
Cahier des
charges
générales
Exigences Exigences
fonctionnelles techniques
Étude préalable
Spécification
conceptuelle
des besoins Architecture
Spécification applicative
Système de CMP organisationnelle
des besoins
Architecture
Recherche du CMP Analyse technique
[ Non ] Maquettage
CMP: [Sélectionné]
Conception
[ Oui ]
.. Implémentation
Réduction du CMP
OM2 Intégration
CMP : [Réduit]
OM1
Adaptation du CMP Recette
Déploiement
CMP : [Adapté]
Intégration du CMP
Processus d’imitation
Tableau 5-7 : Extrait de Cahier des charges de l’étude de cas « Gestion emprunt »
Chapitre 5 : Mise en œuvre et validation 163
DemandeEmprunt
RécupérationLivre
Modèle Métier
Adhérent
DemandeRenouvellement
RetourLivre
1. Demande d’emprunt
- Un adhérent doit faire une demande d’emprunt par le biais d’un formulaire
électronique
- Le bibliothécaire traite la demande en vérifiant la disponibilité du livre
- Si le livre est disponible, il informe l’adhérent de la possibilité de l’emprunt et lui
demande de passer le récupérer
2. Récupération livre
3. Demande de renouvellement
4. Retour livre
<<Variation>>
DemandeAllocationAbstraite
Réservation :
[Créée]
Client
« Annulation Réservation » min : 0
max : 1
<<Variation , Informatisée>>
AnnulationRéservation Exige : Traitement Avec
Réservation
Exclut : Traitement Sans
<<Variant , Informatisée>> Réservation
Annulation Réservation
Réservation :
[Annulée]
Chapitre 5 : Mise en œuvre et validation 165
Renouvellement :
Allocation :
RécupérationRessource min :0
max : 1
<<Variation , Informatisée>>
AllocationAvecRéservation
« Récupération
<<Variant , Informatisée>>
Ressource» VérificationRéservation
Exclut : Demande
Ressource : Exige : Restitution Renouvellement Directe, Ressource :
Ressource
[Allouée] Demande Renouvellement, [Supprimée]
Restitution Ressource
Ressource :
[Disponible]
Adaptation du CMP
Il s’agit essentiellement de renommer les propriétés du CMP réutilisé en se basant sur le
vocabulaire lié au domaine du PM en cours de développement. La vue métier réduite et
adaptée du CMP « Gestion Allocation Ressource » est illustrée dans la
Figure 5-7.
Adhérent Bibliothécaire
DemandeEmprunt :
<<Informatisée>>
CréationEmprunt
RécupérationLivre
« Récupération Livre »
Emprunt :
<<Informatisée>>
MiseàJourLivre
Livre :
[Emprunté]
DemandeRenouvellement : Emprunt :
« Restitution Livre »
RestitutionLivre
<<Informatisée>>
EnregistrementRetour Livre
Livre :
[Disponible]
La réutilisation est aussi essentielle pour diminuer le coût de développement, parce que
réutiliser prend moins de temps que de réinventer. Ainsi, la réutilisation peut réduire de
manière drastique les coûts de développement des produits et donc augmenter la productivité
de l’entreprise.
En revanche, le développement d'un composant réutilisable souffre d’un coût important car il
est nécessaire de :
3 Mise en œuvre
1 1
Rubrique >
Rubriques saisies > 1..*
1..*
Rubrique
Valeur de rubrique
*
1
1 1
Valeurs des champs > Champs >
1..* 1..* *
Valeur de champ Champ Type de champ
* Champ > 1 1
* Type >
L’objectif d’un ingénieur de SI dans AGAP est de rechercher et de sélectionner des CMP pour
modéliser et concevoir un SI. Ces activités s’appuient sur un ou plusieurs systèmes de CMP
disponibles et validés dans l’atelier AGAP. En revanche, lors de l’imitation des CMP, une phase
de réduction de la variabilité est nécessaire. Cette fonctionnalité n’étant pas prise en compte
dans la version actuelle d’AGAP, nous avons développé un nouveau module qui prend en
compte cette activité. Ce module est décrit dans la section suivante.
l’enchaînement des activités de la vue métier. Une fois les variantes sélectionnées, il déclenche
la réduction du CMP et peut par la suite extraire la solution réduite.
Déclencher la réduction
[Link]
Conforme à
Conforme à Conforme à
Modè[Link] Modè[Link]
Transformation
[Link]
Conforme à
Conforme à Conforme à
[Link] AllocRess_Ré[Link]
Transformation
Règle qui copie les variantes sélectionnées d’un point de variation. Cette règle fait appel à
deux autres règles « lazy rule » selon le nombre de variantes sélectionnées.
rule Copy_PV_SelectedVariant
{
from u:CMPE!VariationAction
do { if ([Link]())
thisModule. OneSelected(u);
if (not [Link]() and not [Link]())
thisModule. UptoOne(u);
}
}
--Règle de copie si une seule variante est sélectionnée
lazy rule OneSelected
{ from u:CMPE!VariationAction
to a:CMPS!Action
( name<-[Link](), inPartition<-[Link] )
}
--Règle de création d’un nœud de décision dans le cas de sélection de plusieurs variantes
lazy rule UptoOne
{ from u:CMPE!VariationAction
to uc:CMPS!Action
( name<-[Link](), inPartition<-[Link] ),
c:CMPS!Action ( name<-[Link](), inPartition<-[Link] ),
n:CMPS!DecisionNode ( name<-[Link], inPartition<-[Link] )
}
a) Modèle source
La Figure 5-16 illustre le modèle source « [Link] » utilisé comme entrée de l’activité de
réduction. Il est conforme au méta-modèle illustré dans la Figure 5-15. Ce modèle correspond
à la vue métier du CMP « Gestion Allocation Ressource ».
4 Expérimentations utilisateurs
second était de vérifier que la solution offerte par notre modèle de CMP correspondait bien au
critère de complétude que nous visions.
Pour ce faire, nous avons employé des mesures étalées sur les deux principaux axes de cette
thèse :
1) Axe processus de spécification des CMP
- Au niveau du processus (usage) : mesurer le guidage du processus, les difficultés
rencontrées et le fait que la représentation de la variabilité guide l’abstraction de PM
similaires issus de domaines différents.
- Au niveau de la notation de la variabilité (utilité, suffisance, complétude) : mesurer la
représentation de plusieurs types de variabilité, la représentation des dépendances
entre les variantes et le niveau de clarté de la représentation.
- Au niveau du CMP spécifié (utilisabilité) : mesurer si la spécification obtenue est lisible,
suffisamment générique et complète.
2) Axe processus de réutilisation des CMP
- Au niveau du processus : mesurer le guidage du processus, les difficultés rencontrées,
et le fait que la vue métier soit suffisante pour pouvoir choisir les variantes.
- Au niveau des règles de réduction : mesurer la pertinence, la suffisance et la
complétude.
- Au niveau du PM spécifié (utilisabilité) : mesurer le niveau de satisfaction et la
complétude de la spécification réduite obtenue.
4.3.2 Protocole
Dans le but de réaliser nos expérimentations, un protocole a été mis en place. Il est donné de
la manière suivante (Cf. Tableau 5-10) :
Chapitre 5 : Mise en œuvre et validation 177
Étape Description
Introduction − Situer le contexte général des expérimentations.
Prise de conscience de la − Entrée : distribuer trois fiches descriptives de PM
proximité thématique assez simples que les utilisateurs doivent
généraliser.
− Sortie : leur faire élaborer le diagramme d’activités
générique.
Introduction d’éléments − Entrée : leur donner des fiches descriptives de PM
variables similaires mais avec des parties variables.
− Sortie : regarder les adaptations (leur faire utiliser
Processus de spécification des CMP
deux feuilles).
Discussion − Animer une discussion sur leurs résultats. Mesurer
ici ce qui peut leur manquer pour généraliser les
différents PM. Leur faire imaginer les éléments qui
pourraient leur être utiles.
Introduction du concept de − Formation sur la variabilité (notion de points de
variabilité variation et variantes, types de variabilité, notations
proposées).
Utilisation du formalisme − Leur faire élaborer le diagramme d’activités avec le
proposé formalisme proposé.
Observation − Observer les différences entre la première et la
seconde version.
Présentation du résultat final − Présentation du CMP supportant la variabilité
résultant.
− Comparer avec le résultat des utilisateurs.
Évaluation − Questionnaire d’évaluation (Cf. Annexe C) sur les
éléments servant de guides méthodologiques
pendant le processus de spécification du CMP,
points forts et points faibles.
Introduction − Situer le contexte général des expérimentations.
− Formation sur la variabilité (notion de points de
Processus de réutilisation des CMP
de la variabilité
Généricité La spécification obtenue est suffisamment générique
Complétude La spécification obtenue est complète
Tableau 5-11 : Points à tester et hypothèses
b) Analyse des résultats
Analyse des pratiques
L’analyse des pratiques des sujets en matière de réutilisation, a révélé l’utilité de l’utilisation
de processus métier pour décrire certaines fonctionnalités dans un domaine particulier. Trois
sujets parmi sept ont l’habitude de réutiliser des processus métier. Ces trois sujets réutilisent
les CM dans le cadre de l’adaptation de modèles déjà conçus généralement en UML, pour
illustrer des cours ou faire des examens.
Analyse des données recueillies
L’analyse des données issues de l’expérimentation a donné lieu à des résultats illustrant la
répartition des opinions selon les différentes rubriques à tester. Nous synthétisons les opinions
selon les différentes hypothèses énoncées ci-dessous, et citons, entre « », certaines phrases
données par les utilisateurs.
1) Guidage du processus de spécification
L’opinion dominante (6/7 sujets) sur le guidage du processus de spécification concerne l’utilité
du processus, car il permet de vérifier si tous les besoins sont réalisés « utile pour vérifier si
toutes les spécifications ont été réalisées ». Les sujets ont tous déclaré que le processus est
bien guidé en ayant des étapes précises et primordiales. En revanche, le reproche adressé (1/7
sujets), concerne le fait que le processus est parfois trop détaillé « on trouve beaucoup
d’information dans le processus », ce qui exige une phase d’apprentissage avant son utilisation.
Dans ce sens, les fiches descriptives d’un processus métier ont été jugées utiles en présentant
un intérêt particulier pour le modèle organisationnel.
2) Notation de la variabilité
Concernant l’indicateur notation de la variabilité, les sujets ont déclaré que la notation
proposée permet de représenter l’ensemble des types « représentation de tous les types d’une
manière simple et claire ». Les sujets ont également mentionné que l’introduction de la
variabilité permet de mieux cerner les propriétés réutilisables ce qui favorise la réutilisation.
3) CMP spécifié
La lisibilité de la spécification obtenue a fait émerger un débat entre les sujets. La plupart
d’entre eux (5/7) a trouvé la spécification obtenue plutôt lisible hormis l’introduction de la
variabilité. Or, certains parmi eux (2/7) ont exprimé le contraire. Ces derniers ont initialement
proposé de représenter la variabilité séparément, mais après avoir vu le résultat obtenu en
appliquant correctement le processus de spécification, ils ont modifié leur point de vue en
signalant que si la granularité du modèle est importante, la spécification pourrait dans ce cas
être difficilement lisible.
D’un autre côté, la plupart des sujets (6/7) a déclaré la généricité et la complétude de la
spécification obtenue. Cependant, un sujet sur les sept participants, a indiqué qu’il lui
180 Chapitre 5 : Mise en œuvre et validation
manquait une phase de réutilisation du composant pour pourvoir bien juger la généricité et la
complétude du modèle.
c) Synthèse
D’une manière générale, les sujets pensent que le processus proposé permet de mieux guider
la représentation de la généricité et de la variabilité, identifiées au niveau de l’ensemble des
PM, d’une manière complète « elle permet de représenter facilement et de manière complète
la généricité et la variabilité dans des diagrammes d’activités, ce qui permet de mieux cerner
les propriétés réutilisables ». En revanche, des exemples illustrant nos propositions étaient
recommandés par les sujets à chaque utilisation d’un nouveau concept « lors de l’utilisation
d’un nouveau concept, il est préférable d’utiliser des exemples pour mieux appréhender la
méthode». Résultat qui se retrouve dans le besoin d’une phase d'apprentissage à la méthode
perçue par l’ensemble des sujets. La phase d’apprentissage déclarée est de quelques heures,
afin de comprendre les étapes du processus et la notation de la variabilité séparément de leur
usage. Le Tableau 5-12 résume les résultats de la première expérimentation.
Rubrique Points à Points forts Points faibles
tester
Guidage du - Utile / guidé / ayant des Parfois trop détaillé : phase
processus étapes précises et d’apprentissage exigée avant
Processus
primordiales toute utilisation (7/7)
- Fiche descriptive utile (7/7)
Utilité Favorise la réutilisation (3/7) ----
Suffisance Représentation de tous les ---
Notation de la types de variabilité (7/7)
variabilité Clarté Représentation d’une ---
manière simple et claire
(5/7)
Lisibilité Reste lisible si la granularité Peut être difficilement lisible si
du composant n’est pas le composant est complexe
CMP spécifié importante (6/7) (1/7)
Généricité Spécification générique (7/7) ---
Complétude Spécification complète (7/7) ---
Tableau 5-12 : Grille de synthèse de la première expérimentation
c) Synthèse
Selon les sujets, un CM est un bon support de réutilisation s’il est bien documenté (1/8) en
fournissant un exemple de réutilisation de ce CM. Cela peut aider à réduire l’incompréhension
du modèle abstrait « problème de terminologie, diagramme trop abstrait pour pouvoir
l’utiliser ». Le CM supportant la variabilité « favorise la communication (référence pour la
modélisation) », ce qui favorise la réutilisation et l’adaptation (1/8).
D’un autre côté, la méthode nécessite une phase d'apprentissage de quelques heures dans le
but de comprendre les étapes du processus et la notation de la variabilité séparément de leur
usage. Le Tableau 5-14 résume les résultats de la deuxième expérimentation.
Rubrique Points à tester Points forts Points faibles
Guidage de la vue Réduit la complexité lors de Difficulté d’adapter un
Processus de métier la réutilisation des PM CM générique (1/8).
réutilisation (1/8). Donne une idée sur Besoin de
la solution (1/8). documentation.
4.5 Synthèse
À l’issue des deux expérimentations, nous avons pu valider, d’un point de vue qualitatif,
certaines hypothèses que nous prétendions vérifier. Concernant le processus de spécification
de CMP, nos propositions ont été validées au niveau du guidage du processus ainsi que de la
notation proposée : « c’est un concept très intéressant du point de vue coût
d’implémentation », « c’est un sujet important pour gagner du temps, l’argent, surtout si les
composants de base sont prétestés ». Quant au processus de réutilisation du CMP, les
expérimentations ont montré une tendance vers la réutilisation de CMP assez génériques et
supportant la variabilité, en exigeant une bonne documentation de ceux-ci, ce qui est déjà
vérifié dans nos propositions. Toutefois, nous avons pu aussi constater certaines limites de la
réutilisation, un exemple de ces limites concerne la complexité des besoins et du cahier des
charges d’un SI : « si le cahier des charges est compliqué et précis, il faut s’inspirer plutôt que
de réutiliser ».
5 Conclusion
l’ingénieur des SI pour imiter un CMP. Ce processus a été par la suite intégré dans le cycle de
vie d’une méthode de développement basée composants, en l’occurrence la méthode
Symphony. L’ensemble de ces mécanismes est mis en œuvre par l’utilisation d’outils supports.
Enfin, nous avons présenté les résultats d’expérimentations utilisateurs réalisées dans le but
d’évaluer nos propositions.
Cha p it re 6 : Co nc lus i o n et
Pers p ec t i v es
Les propositions présentées dans le cadre de cette thèse apportent des réponses à plusieurs
problématiques de recherche dans le domaine de la réutilisation de composants métier. Ces
résultats sont les suivants.
1. Une réutilisation de CM de type processus
Dans les différentes approches antérieures, l’information réutilisable encapsulée dans un CM
était souvent limitée à une information de type entité. Nous avons montré que la réutilisation
de CM de type processus s’avère plus pertinente qu’une simple réutilisation de CM entité.
2. Un modèle de CM de portée conceptuelle, encapsulant des besoins fonctionnels
Des CMP décrits selon ce modèle, constituent de véritables productions capitalisables et
réutilisables dans le cycle de conception d'un SI à base de composants ; ils sont
technologiquement neutres et n’évoluent qu’en fonction de l’évolution des besoins auxquels
ils répondent.
3. Une spécification complète et variable d’un CMP
D’une part, la modélisation multi-vues de la solution d’un CMP apporte une bonne qualité de
conception, par une spécification complète matérialisée par quatre vues de développement :
vue métier, vue fonctionnelle, vue dynamique et vue structurelle. D’autre part, la variabilité
introduite permet aux CMP d’avoir la capacité de répondre aux besoins variables des SI.
4. Un processus de développement de CMP, dédié aux ingénieurs de composants
Nos propositions procurent aux concepteurs de CMP un processus dédié à l’ingénierie des
CMP multi-vues supportant la variabilité. Ce processus fournit un guide méthodologique pour
la spécification de CMP supportant la variabilité, tout en permettant de maintenir la traçabilité
de la variabilité dans les quatre vues du développement du CMP. De telles spécifications ne
sont utiles que si elles sont organisées dans un environnement dédié à la réutilisation. C’est
dans ce but que nous avons proposé des mécanismes d’organisation des CMP en proposant un
formalisme de documentation de ceux-ci.
5. Un processus de réutilisation d’un CMP, dédié aux ingénieurs de SI
Ce processus assiste l’ingénieur des SI lors de l’imitation d’un CMP. Pour illustrer la pertinence
de ce processus, nous l’avons intégré dans le cycle de vie d’une méthode de développement
en utilisant la méthode Symphony comme référence.
Pour évaluer nos propositions, nous avons développé un environnement support à nos
propositions. En outre, nous avons effectué des expérimentations utilisateurs qui nous ont
aidés à mesurer l’usage du modèle de CMP ainsi que le guidage des processus proposés.
2 Perspectives
Les propositions présentées dans cette thèse peuvent être améliorées à plusieurs niveaux, tant
sur l’axe de l'approfondissement des travaux réalisés que sur celui de l’élargissement du
domaine de la recherche.
188 Chapitre 6 : Conclusion et Perspectives
Pour définir un domaine métier, il est nécessaire de définir sa frontière. Or, cette frontière
n’est pas souvent facile à délimiter. Ceci peut être dû à l'inexpérience de l'analyste du
domaine, au manque de la maturité du domaine ou encore à la nature de certains domaines
qui utilisent ou fournissent des services à d'autres domaines.
La gestion de l’évolution du CMP en assurant l’intégrité de sa solution reste un challenge et un
sujet de recherche ouvert.
A nnex es
Annexe A. Étude de cas « Gestion Allocation Ressource » 193
1. Étude préalable
Liste des PM utilisés
Ressource PM SI
Livre PM1 : Gestion Emprunt Livre Bibliothèque
Voiture PM2 : Gestion Allocation Voiture Agence de voiture
Chambre PM3 : Gestion Allocation Chambre d’Hôtel Hôtel
Billet d’avion PM4 : Gestion Allocation Billet d’Avion Compagnie aérienne
Billet de spectacle PM5 : Gestion Allocation Billet Spectacle Agence artistique
a) Identification du PM réutilisable
PM 1 : Gestion Emprunt Livre
DemandeEmpruntLivre
RécupérationLivre
Modèle métier
Abonné
DemandeRenouvellement
RestitutionLivre
Modèle organisationnel
Abonné Bibliothécaire
<<Informatisée>> <<Informatisée>>
Demande Traitement
« Demande Emprunt Livre » EmpruntLivre Demande
DemandeLivre :
RécupérationLivre <<Informatisée>>
Création Emprunt
« Récupération Livre »
Emprunt :
Livre :
[Emprunté]
<<Informatisée>> <<Informatisée>>
Demande MiseàJour
Renouvellement Emprunt
« Demande Renouvellement »
Demande Emprunt :
Renouvellement :
RestitutionLivre <<Informatisée>>
Enregistrement
RetourLivre
« Restitution Livre »
Livre :
[Disponible]
Annexe A. Étude de cas « Gestion Allocation Ressource » 195
DemandeLocationVoiture
Annulation Réservation
Modèle métier
Client RécupérationVoiture
Demande Renouvellement
RestitutionVoiture
Modèle organisationnel
Client Agent
<<Informatisée>> <<Informatisée>>
« Demande Location Demande Création
LocationVoiture Réservation
Voiture »
DemandeVoiture : Réservation :
« Récupération Voiture »
Récupération Voiture <<Informatisée>>
Création Contrat
Voiture : Contrat :
[Louée]
<<Informatisée>> <<Informatisée>>
Demande MiseàJour
Renouvellement Contrat
« Demande Renouvellement »
Demande
Renouvellement : Contrat :
Voiture :
[Disponible]
Annexe A. Étude de cas « Gestion Allocation Ressource » 197
DemandeChambreDirecte
DemandeAllocationChambre
AnnulationRéservation
Modèle métier
Client OccupationChambre
DemandeProlongationSéjour
LibérationChambre
Modèle organisationnel
<<Informatisée>> <<Informatisée>>
Demande Allocation Création
Chambre Réservation
« Demande Allocation
Chambre »
DemandeChambre :
Réservation :
[Créée]
Chambre : Séjour :
[Occupée]
<<Informatisée>>
CréationDemande
Prolongation
Demande Prolongation Séjour
« Demande Prolongation
<<Informatisée>>
Séjour » Demande MiseàJour Séjour
Prolongation :
Séjour :
Chambre :
[Disponible]
Annexe A. Étude de cas « Gestion Allocation Ressource » 199
DemandeBilletAvion
Modèle métier
Client
RetraitBillet
- Un client (acteur principal) émet une demande d’achat d’un billet d’avion à une
agence de voyage Lowcost en remplissant un formulaire électronique.
<<Informatisée>> <<Informatisée>>
« Demande Billet Avion » Demande Billet Traitement Demande
Avion
DemandeBillet : Réservation :
Retrait Billet
<<Informatisée>>
Création Billet
« Retrait Billet »
Billet :
200 Annexe A. Étude de cas « Gestion Allocation Ressource »
DemandeTicketSpectacle
Modèle métier
Client
RetraitTicket
DemandeTicket :
Retrait Ticket
<<Informatisée>>
Création Ticket
« Retrait Ticket »
Ticket :
m in : 1
m ax : 2
<<Variant>>
Dem ande Allocation Directe
<<Variation>>
<<Variant>>
Demande Allocation Abstraite
Dem ande Allocation
m in : 0
m ax : 1
<<Variation>> <<Variant>>
AnnulationRéservation Annulation Réservation
<<Variant>>
Demande Renouvellement Direct
<<Variation>>
Demande Renouvellement Abs trait
min : 0
max : 1 <<Variant>>
Demande Renouvellement
<<include>>
<<Variation>> <<Variant>>
Res titutionRessource Restitution Ressource
Scénario variable
- Variation : Demande Allocation abstraite
• Variante : Demande Allocation Directe
- Le client (acteur principal) se présente directement pour
demander sa ressource.
- L’Allocation Manager (acteur secondaire) crée la demande
d’allocation.
• Variante : Demande Allocation
- Le client crée la demande d’allocation via un formulaire
électronique.
Variation : Traitement Demande Allocation
Scénario L’Allocation Manager traite la demande :
1. Identifie le client par le biais du code demande.
2. Vérifie la disponibilité de la ressource.
• Variante : Traitement Avec Réservation
- Crée une réservation et communique au client le code de
réservation.
• Variante : Traitement Sans Réservation
- Confirme au client la disponibilité de la ressource à la date
demandée.
- Variation : Annulation Réservation
• Variante : Annulation Réservation
Annexe A. Étude de cas « Gestion Allocation Ressource » 203
PV 3 : Annulation Min : 0
Option V 31 : Annulation Réservation
Réservation Max : 1
Contraintes de dépendances
V 11 V 12 V 21 V 22 V 31 V 41 V 51 V 52 V 61 V 62 V 71
V 11
V 12
V 21 Exige
V 22 Exclut Exclut
V 31 Exige Exclut
V 41 Exige Exclut
V 51 Exige
V 52 Exclut Exclut Exclut
V 61 Exige Exclut
V 62 Exige Exclut
V 71 Exige Exclut
Description du PM générique
2. Vue Métier « Demande Allocation Abstraite »
<<Variation>>
DemandeAllocationAbstraite
Réservation :
[Créée]
Annexe A. Étude de cas « Gestion Allocation Ressource » 205
Client
« Annulation Réservation » min : 0
max : 1
<<Variation , Informatisée>>
AnnulationRéservation Exige : Traitement Avec
Réservation
Exclut : Traitement Sans
<<Variant , Informatisée>> Réservation
Annulation Réservation
Réservation :
[Annulée]
« Récupération
Ressource»
Client Allocation Manager
RécupérationRessource min :0
max : 1
<<Variation , Informatisée>>
AllocationAvecRéservation
<<Variant , Informatisée>>
VérificationRéservation
Exclut : Demande
Ressource : Exige : Restitution Renouvellement Directe, Ressource :
Ressource
[Allouée] Demande Renouvellement, [Supprimée]
Restitution Ressource
Abstrait »
<<Variant , Informatisée>> <<Variant , Manuelle>>
Demande Renouvellement Demande Renouvellement <<Informatisée>>
Direct DemandeRenouvellement
Exige : MiseàJourRessource
Exclut : SuppressionRessource
<<Informatisée>
MiseàJour Allocation
Renouvellement :
Allocation :
206 Annexe A. Étude de cas « Gestion Allocation Ressource »
Ressource :
[Disponible]
3. Vue fonctionnelle
min : 0
max : 1
<<include>>
<<Variation>>
<<Variant>>
Annulation Réservation min : 0
Client AnnulationRéservation
max : 2
<<include>>
min :1 <<Variant>>
max : 2 DemandeRenouvellement
<<include>> <<include>>
<<Variant>> <<Variation>>
Demande Allocation DemandeRenouvellement Abstrait
<<include>>
<<Variant>> <<include>>
<<Variation>>
DemandeRenouvellement
Demande Allocation Abstraite
MiseàJourAllocation
<<Variant>>
Demande Allocation
min : 1
max : 1
<<Variant>>
TraitementAvecRéservation
<<Variation>>
TraitementDemandeAllocation <<Variant>>
TraitementSansRéservation
min : 0
max : 1 <<include>>
<<include>>
Allocation
Création Allocation
min : 1
max : 1 <<include>> <<Variant>>
<<include>> SuppressionRessource
Allocation
Manager <<include>>
<<Variation>> <<Variant>>
ModificationEtatRessource MiseàJourRessource
min : 0
max : 1
<<include>>
<<Variant>>
<<Variation>>
EnregistrementRetourRessource
RestitutionRessource
Annexe A. Étude de cas « Gestion Allocation Ressource » 207
4. Vue Dynamique
208 Annexe A. Étude de cas « Gestion Allocation Ressource »
Annexe A. Étude de cas « Gestion Allocation Ressource » 209
210 Annexe A. Étude de cas « Gestion Allocation Ressource »
Annexe A. Étude de cas « Gestion Allocation Ressource » 211
212 Annexe A. Étude de cas « Gestion Allocation Ressource »
Annexe A. Étude de cas « Gestion Allocation Ressource » 213
214 Annexe A. Étude de cas « Gestion Allocation Ressource »
5. Vue structurelle
b) Fragment structurel fixe
<<Fragment Structurel>>
GestionAllocationRessource
<<Maître>>
<<Interface>>
GestionAllocationRessource <<Rôle>>
Service GestionAllocationRessource
DemandeAlloc
<<réalise>> DemandeAllocation() / CodeDmd : Int
DemandeAllocation()
TraitementDemandeAllocation()
TraitementDemandeAllocation()
CréationAllocation(C, R)
CréationAllocation(C, R)
IdentifierClt(Clt) <<Rôle>>
IdentifierRess(Ress) AutorisClt
LierDmdAllocation(D) / CodeClient : Int
LierAllocation (A)()
VérifCodDmd(CodDmd)
<<Rôle>>
DispoRess
/ CodeRessource : Int
<<Fragment Structurel>>
TraitementAvecRéservation
<<Interface>> <<Maître>>
Service Ressource Ressource
<<Composant Métier Entité>> <<Rôle>>
CodeRessource
Client RessourceRes
AjoutRéservation(Res)
<<Maître>> VérifierDispoRess() AjoutRéservation(Res) / CodeRes : int
<<réalise>>
<<Interface>> Client LierRéservation(Res)
Service Client CodeClient : int <<Rôle>> VérifierDispoRess()
ClientRes
AjoutRéservation(Res) AjoutRéservation(Res) / CodeRes : int
VérifierAutorisAll() LierRéservation(Res)
VérifierAutorisAll()
<<réalise>>
<<utilise>>
<<utilise>>
216 Annexe A. Étude de cas « Gestion Allocation Ressource »
<<Fragment Structurel>>
TraitementSansRéservation
<<Rôle>> <<utilise>>
ResClient
/ CodeClient
<<Fragment Structurel>>
AnnulationRéservation
<<Fragment Structurel>>
VérificationRéservation
<<utilise>>
<<utilise>> <<Composant Métier Entité>>
Réservation
<<Rôle>>
<<Interface>> <<Maître>> ResClient
Service Réservation Réservation / CodeClient : int
CodeRes : int
IdentifierClt()
IdentifierRess() <<réalise>> IdentifierClt()
<<Rôle>>
IdentifierRess()
ResRessource
/ CodeRessource : int <<utilise>>
Annexe A. Étude de cas « Gestion Allocation Ressource » 217
<<Fragment Structurel>>
SuppressisonRessource
Demande Renouv èlement
<<utilise>>
<<Fragment Structurel>>
MiseàJourRessource
Demande Renouv èlement
<<Composant Métier Entité>>
Allocation
<<Maître>>
<<Interface>> <<Rôle>>
Allocation
Service Allocation AllRessource
CodeAll : int
/ CodeAll : int
<<réalise>> LierRessource(R)
<<utilise>>
<<Fragment Structurel>>
Demande Renouvellement
<<Composant Métier Processus>>
<<utilise>>
218 Annexe A. Étude de cas « Gestion Allocation Ressource »
<<Fragment Structurel>>
EnregistrementRetourRessource
<<Interface>> <<Maître>>
<<Rôle>>
Service GestionAllocationRessource
RestRess
GestionAllocationRessource
CodeAllocation : int
RestitutionRessource()
RestitutionRessource() VérifierCodAll(CodAll)
<<réalise>>
<<utilise>>
<<utilise>>
<<Composant Métier Entité>> <<Composant Métier Entité>>
Client Ressource
<<Maître>> <<Maître>>
<<Interface>> <<Interface>> Ressource
Client
Service Client Service Ressource
CodeClient : int CodeRessource : int
<<réalise>>
<<réalise>>
MiseàJourl(A) MiseàJourl(A) MiseàJourl(A)
MiseàJourl(A)
Annexe B. Code ATL des transformations 219
------------------------------------------------------------------------------------------------------------------------------------------
Helpers
------------------------------------------------------------------------------------------------------------------------------------------
-- Attributs des variantes de la solution
helper def: selectionVariant:
Set(CMPE!VariantAction) = CMPE![Link]()->collect(e|[Link]);
-- Attributs de l’expérience 1
helper def: selection1:
Set(String) = Set{'CreationDemandeAlloc',’TraitementSansReservation',
'MAJRessource','CreationDemandeAllocation'};
-- Attributs de l’expérience 2
helper def: selection2:
Set(String) = Set{'CreationDemandeAlloc','CreationDemandeAllocation',
'TraitementAvecReservation','VerificationReservation','MAJRessource'};
--helper isnotPVV
-- Retourne vrai si l'action en cours est fixe
helper context CMPE!Action
def : isnotPVV():
Boolean = if (not [Link](CMPE!VariationAction) and not
[Link](CMPE!VariantAction))
then true
else false
endif;
--helper singleVariant
-- Retourne vrai si la variation choisie possède une seule variante sélectionnée
helper context CMPE!VariationAction
220 Annexe B. Code ATL des transformations
def:singleVariant():
Boolean = self.V->select (e|[Link]())->size()=1;
--helper doubleVariant
-- Retourne vrai si la variation choisie possède plus d’une seule variante sélectionnée
helper context CMPE!VariationAction
def:doubleVariant():
Boolean = self.V->select (e|[Link]())->size()>1;
--helper isMatchedN
-- copie les controlFlow si la source est : nœud initial, variante sélectionnée, action fixe et si la
destination est un nœud final
helper context CMPE!ControlFlow
def:isMatchedN():
-- pour le nœud initial
Boolean = if ([Link](CMPE!InitialNode))
then true
-- pour le nœud final ayant une variante sélectionnée
else if ([Link](CMPE!FinalNode)
and [Link]())
then true
-- pour les variantes sélectionnées
else if ([Link](CMPE!VariantAction)
and [Link]())
then true
-- pour les actions fixes
else if ([Link](CMPE!Action)
and [Link]())
then true
else false
endif
endif
endif
endif;
--helper isMatchedPV
-- copie de controlFlow si la source est une variation ayant deux variantes sélectionnées sinon
isMatchedN
helper context CMPE!ControlFlow
def:isMatchedPV():
Boolean = if ([Link](CMPE!VariationAction))
then if ([Link]()
and [Link]())
then true
else false
endif
else [Link]()
endif;
-- helper isMatcheObject
-- copie les ObjectFlow si la source est : ObjetcNode, variante sélectionnée ou action fixe et si la
destination est un nœud final
helper context CMPE!ObjectFlow
def:isMatchedObject():
Boolean =
-- pour les objectNode
if ([Link](CMPE!ObjectNode))
Annexe B. Code ATL des transformations 221
then false
-- pour les actions fixes
else if (not [Link](CMPE!VariationAction)
and not [Link](CMPE!VariantAction))
then true
--pour les variantes sélectionnées
else if ([Link](CMPE!VariantAction)
and [Link]())
then true
-- pour les points de variations
else if
([Link](CMPE!VariationAction))
then false
else false
endif
endif
endif
endif;
-- helper isMatche
-- copie les Edges selon la nature
helper context CMPE!Edge
def:isMatched():
Boolean = if ([Link](CMPE!ControlFlow))
then [Link]()
else if ([Link](CMPE!ObjectFlow))
then [Link]()
else false
endif
endif;
------------------------------------------------------------------------------------------------------------------------------------------
Règles
------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------Règles d’appel-----------------------------------------------------------
),
--Action2
c:CMPS!Action
(
name<-[Link](),
inPartition<-[Link]
),
--Point de decision
n:CMPS!DecisionNode
(
name<-[Link],
inPartition<-[Link]
)
}
}
--Recopie du nœud initial de la solution
rule copie_Noeud_Initial
{
from u:CMPE!InitialNode
to
debut:CMPS!InitialNode
(
name<-[Link],
inPartition <- [Link]
)
}
do {
if ([Link]())
[Link](u);
if ([Link]())
[Link](u);
}
}
Pratiques
Prénom : Date :
1. Vous utilisez les processus métier ou les diagrammes d’activités UML ...
|__| 1. Très souvent
|__| 2. Souvent
|__| 3. Parfois
|__| 4. Jamais
3. Est-ce que vous avez l'habitude de réutiliser des processus métier (diagramme
d’activités) que vous avez conçus ?
|__| 1. Très souvent
|__| 2. Souvent
|__| 3. Parfois
|__| 4. Jamais
7. Au niveau de la description du modèle réutilisable, quels sont les éléments de base dont
vous avez besoin pour pouvoir le réutiliser ?
8. Pour accéder à un modèle réutilisable, quels sont les éléments de base dont vous avez
besoin ?
Concepteurs
Prénom : Date :
1. Globalement, qu'avez vous pensé de la réutilisation des processus métier ?
2. Lors de cet exercice, quelles sont les difficultés que vous avez rencontrées ?
12. En ce qui concerne la représentation des dépendances entre les parties variables
(exige/exclut), vous diriez qu’elle est ...
|__| 1. Tout à fait complète
|__| 2. Plutôt complète
|__| 3. Plutôt pas complète
|__| 4. Pas du tout complète
|__| 5. Sans opinion
13. Si vous la jugez incomplète que manque-t-il ?
14. Toujours pour la représentation des dépendances entre les parties variables, vous diriez
qu’elle est ...
|__| 1. Tout à fait claire
|__| 2. Plutôt claire
|__| 3. Plutôt pas claire
|__| 4. Pas du tout claire
|__| 5. Sans opinion
15. Les fiches descriptives d’un processus métier qui vous ont été distribuées ont été ...
|__| 1. Très utiles
|__| 2. Plutôt utiles
228 Annexe C. Questionnaires des expérimentations
27. pourquoi ?
3. Utilisateurs / Ingénieurs de SI
L’objectif de ce questionnaire est d’évaluer et de mesurer le comportement des sujets quant à
l’usage du modèle de CMP pour la conception d’un SI.
Utilisateurs
Prénom : Date :
1. Globalement, qu'avez vous pensé de la réutilisation des composants métier ?
2. Lors de cet exercice, quelles sont les difficultés que vous avez rencontrées ?
Bibl io g ra phi e
A
Ambler S.W., “Process Patterns: building Large Scale Systems
[Ambler, 1998] using Object Technology”, SIGS Books, Cambridge University
Press, Décembre, 1998.
André J., “Moving From Merise to Schlaer and Mellor”, SIG-
[André, 1994]
Publication vol. 3, 1994.
Andro T., Chauvet J.-M., « Objets métier », Eyrolles, Paris, 232
[Andro et al., 1998]
pp., 1998.
Arnaud N., « Fiabiliser la réutilisation des patrons par une
approche orientée complétude, variabilité et généricité des
[Arnaud, 2008]
spécifications», Thèse de doctorat, Université Joseph Fourrier -
Grenoble 1, Octobre, 2008.
The Atlas Transformation Language (ATL),
[ATLAS, 2009] [Link] [Link], dernière
consultation Juin 2009.
B
Bachmann F., Bass L., “Managing variability in software
[Bachmann et al., 2001] architecture”, ACM SIGSOFT Software Engineering Notes,
Volume 26, n°3, 2001.
Bachmann F., Goedicke M., Leite J., Nord R., Pohl K., Ramesh B.
and Vilbig A., “A Meta-model for Representing Variability in
[Bachmann et al., 2003]
Product Family Development”, 5th International Workshop, PFE
2003, Siena, Italy, Novembre 4-6, 2003.
Bashroush R., Spence I., Kilpatrick P., Brown TJ., Gillan C., “A
Multiple Views Model for Variability Management in Software
[Bashroush et al., 2008] Product Lines”, Second international workshop on variability
Modelling of Software Intensive System (VaMoS’08), Essen,
Germany, Janvier, 2008.
Bass L., Buhman C., Comella-Dorda S., Long F., Robert J., Seacord
[Bass et al., 2000] R., Wallnau K., “Volume I: Market Assessment of Component-
Based Software Engineering”, Carnegie Mellon University,
234 Bibliographie
C
Casanave C., “Business Object Architectures and standards”,
[Casanave, 1996]
Data Access Corporation, Miami, USA, 1996.
D
David P.C., Ledoux T., « Une approche par aspects pour le
[David et al., 2006] développement de composants Fractal adaptatifs », L’Objet,
vol. 12, no 2-3 (210 p.), 2006.
D’Souza D., Wills A., “Objects, Components and Frameworks with
[D'Souza et al., 1998] UML: The Catalysis Approach”, Addison Wesley, Reading, MA,
1998.
Dumas M., Reichert M., Shan M. (Eds.), “Business Process
[Dumas et al., 2008] Management”, 6th International Conference, BPM 2008, Milan,
Italy, September 2-4, 2008.
E
[Eclipse, 2009] [Link], dernière consultation Juin 2009.
Ewald T., “Overview of COM+, in Component-Based Software
[Ewald, 2001] Engineering: Putting the Pieces Together”, Addison-Wesley,
2001.
F
Favre J. M., Estublier J., Blayfornarino M., « L'ingénierie dirigée
[Favre et al., 2006]
par les modèles, au-delà du MDA », Lavoisier, 2006.
Finkelstein A., “Re-use of formatted requirements specifications”,
[Finkelstein, 1988]
Software Eng. J., pp. 186-197, Septembre 1988.
Frasincar F., Houben G.J., “Hypermedia Presentation Adaptation
on the Semantic Web”, Proceedings of the Adaptive Hypermedia
[Frasincar et al., 2002]
and Adaptive Web-Based Systems Second International
Conference, (AH’02), vol. 2347, pp. 133-142, 2002.
G
Griss M.L., “Product Line Architectures, in Component-Based
[Griss, 2001] Software Engineering”, G.T. Heineman and W.L. Councill, Editors,
Addison-Wesley, pp. 405-419, 2001.
[Grosz et al., 96] Grosz G., Si-Said S. et Rolland C., « MENTOR : un environnement
pour l'ingénierie des méthodes et des besoins », INFORSID,
236 Bibliographie
H
Hachani S., “Prise en compte de la personnalisation dans les
[Hachani, 2009] méthodes de conception de SI”, Master 2 Recherche, Université
Joseph Fourier –Grenoble, 2009.
Harsu M., “A survey on domain engineering”, Institute of
[Harsu, 2002] Software Systems, Tampere University of Technology, Décembre,
2002.
Hassine I., « Spécification et formalisation des démarches de
développement a base de composants métier : la démarche
[Hassine, 2005]
Symphony”, Thèse de doctorat, Institut National Polytechnique
de Grenoble, Grenoble, 2005.
Heineman G., Councill W., “Component-Based Software
[Heineman et al., 2001] Engineering: Putting the Pieces Together”, Addison-Wesley,
2001.
Hernandez N., « Ontologie de domaine pour la modélisation du
[Hernandez, 2005] contexte en recherche d’information », Thèse de doctorat,
Université Paul Sabatier de Toulouse, Décembre, 2005.
[Herzum et al., 2000] Herzum P., Sims O., “Business Component Factory: a
Comprehensive Overview of Component-Based Development for
the Enterprise”, Wiley Computer Publishing, 1999.
I
Site Internet IBM Rational, logiciel d’évaluation RUP, www-
[IBM, 2009] [Link]/software/awdtools/rup/, dernière consultation
janvier 2009.
[Link]
[IBM, 2006]
sca/, 2006.
Inria model transformation language, http ://[Link],
[INRIA, 2005]
2005.
OpenEmbeDD home: Model Driven Engineering open-source
[INRIA, 2009] platform for Real-Time & Embedded systems,
[Link] home_html, 2009.
J
Bibliographie 237
Jacob I., Krivine J.P., Monclar F.R., « De LISA à ELICO, des langages
pour le développement de systèmes d'assistance à l'opérateur,
[Jacob et al., 200] « Ingénierie des connaissances, évolution récentes et nouveaux
défis », Charlet J., Zacklad M., Kassel G. and Bourigault D.
coordinators, Eyrolles, 2000.
Jacobson I., Griss M., and Jonsson P., “Software Reuse:
[Jacobson et al., 1997] Architecture Process and Organization for business Success”,
ACM Press New York, 1997.
Jacobson I., Booch G., Rumbaugh J., “The Unified Software
[Jacobson et al., 1999] Development Process”, Addison-Wesley Object Technology
Series, 1999.
Jouault, F, Bézivin, J. « KM3: a DSL for Metamodel Specification ».
[Jouault et al., 2006] In proc. of 8th FMOODS, LNCS 4037, Bologna, Italy, pp 171-
[Link] C., Interfaces hommemachine, Paris, Hermès, 2006.
K
Kang K., Cohen S., Hess J., Novak W., Peterson S., “Feature-
Oriented Domain Analysis (FODA) feasibility study”, Technical
[Kang et al., 1990]
report CMU/SEI-90-TR-21, Software Engineering Institute,
Carnegie Mellon University, 1990.
Kang K.C., Kim S., Lee J., Kim K., Shin E., Huh M., “FORM: A
[Kang et al., 1998] Feature-Oriented Reuse Method with Domain-Specific Reference
Architectures”, Annals of Software Engineering 5, 143-168, 1998.
L
[Larvet, 1994] Larvet P., « Analyse des systèmes : de l’approche fonctionnelle à
l’approche objet », InterEditions, 1994.
238 Bibliographie
M
Maiden N. A. M., Sutcliffe A. G., “Exploiting reusable
[Maiden et al., 1992] specifications through analogy”, Commun of the ACM, vol. 35,
no. 4, pp. 55-64, Avril, 1992.
Maccari A. and Tuvinen A.P., “System family architectures :
[Maccari et al., 2000] Current challenges at nokia”, F. van der Linden, editor, IW-SAPF,
volume LNCS, pages 107–115. Springer, 2000.
Maccari A., and Heie A., “Managing infinite variability”, Jilles van
Gurp and Jan Bosch, editors, Software Variability Management
[Maccari et al., 2003] Workshop, number IWI preprint 2003-7-01, pages 28–34.
Research institute of Mathematics and Computing Science of the
university of Groningen, 2003.
Morley C., Hugues J., Leblanc B., « UML pour l’analyse d’un
[Morley et al., 2000] système d’information : le cahier des charges du maître
d’ouvrage », Dunod, 2000.
Muller P.A., « Modélisation objet avec UML », Eyrolles,
[Muller, 1998]
Décembre, 1998.
Mineau G.W., Godin R., “Automatic structuring of knowledge
[Mineau et al., 1995] bases by conceptual clustering”, IEEE Transactions (Data and
Knowledge Engeering, 7 (5), pp.824-829, 1995.
N
[Neighbors, 1984] Neighbors J. M., “The Draco approach to constructing software
from reusable components”, lEEE Trans. on Soflware Engineering,
Bibliographie 239
O
Occello A., Pinna-Déry A-M, Riveill M., “Capitalizing Adaptation
Safety: a Service oriented Approach”, Third International
[Occello et al., 2006] Workshop on Coordination and Adaptation Techniques for
Software Entities (in conjunction with ECOOP'06) (WCAT06),
pp.71-79, Nantes, France, Juillet, 2006.
P
Pohl K., Bockle G., Linden F.V.D., “Software Product Line
[Pohl et al., 2005] Engineering: Foundations, Principles, and Techniques”, Springer-
Verlag Berlin Heidelberg, 2005.
R
Ramadour P., « Modèles et langage pour la conception et la
[Ramadour, 2001] manipulation de composants réutilisables de domaine », Thèse
de Doctorat, Université d’Aix-Marseille III, 2001.
Razavian M., Khosravi R., “Modeling Variability in Business
Process Models Using UML”, Fifth International Conference on
[Razavian et al., 2008]
Information Technology: New Generations, Las Vegas, Nevada
April 7-9, 2008.
[Redolfi et al., 2005] Redolfi G., Spagnoli L., Hemesath P., Melo Bastos R., Blois M.,
Cristal R.M., Espindola A., “A Reference Model for Reusable
240 Bibliographie
S
Saidi R., Fredj M., Front A., Mouline S., « Variabilité dans les
composants métiers multivues », Revue RTSI-ISI : Revue des
[Saidi et al., 2009a] Sciences et Technologies de l'Information - Ingénierie des
Systèmes d'Information, éditeur Hermès-Lavoisier, numéro
14/2009, PP. 61-86.
Saidi R., Front A., Rieu D., Fredj M., Mouline S., “Component-
Based Development : Extension with Business Component
[Saidi et al., 2009b] Reuse", The third IEEE International Conference on Research
Challenges in Information Science (RCIS), 22- 24 Avril, Fès, Maroc,
2009.
Saidi R., Fredj M., Mouline S., Front A., Rieu D., « Spécification de
composants métier : une approche par expression de variabilité
[Saidi et al., 2008a]
multi-vue », XXVIème Congrès INFORSID, 27-30 Mai,
Fontainebleau, France, 2008.
Saidi R., Front A., Rieu D., Fredj M., Mouline S., “From a Business
Component to a Functional Component using a Multi-View
Variability Modelling”, MoDISE-EUS’2008 workshop in
[Saidi et al., 2008b] conjunction with The 20th International Conference on Advanced
Information Systems Engineering (CaiSE'08), 16-17 Juin,
Montpellier, France, 2008, CEUR Workshop Proceedings, ISSN
1613-0073, online [Link]/Vol-341/.
Saidi R., Fredj M., Mouline S., Front A., Rieu D., “Variability
Modelling for Business Component Customization”, The IEEE
[Saidi et al., 2008c]
Symposium on Computers and Communications (ISCC'08), 6 - 9
Juillet, Marrakech, Maroc, 2008.
Saidi R., Arnaud N., Rieu D., Fredj M., “Multi-View Variability
[Saidi et al., 2007a] Modelling for Business Component Reuse”, The Second IEEE
International Conference on Digital Information Management
Bibliographie 241
T
Tastet L., « AGAP, un Atelier de Gestion et d’Application de
[Tastet, 2004] Patrons », mémoire d’ingénieur CNAM en Informatique, Mars
2004.
V
[VanDerMaβen et al., Van der Maβen T., Lichter H., “Modeling variability by UML use
2002] case diagrams”, International Workshop on Requirements
242 Bibliographie
W
Wang N., Schmidt D. C., O’Ryan C., “Overview of the CORBA
Component Model, in Component-Based Software Engineering –
[Wang et al., 2001]
Putting the Pieces Together”, Heineman G.T. and Council W. T.
coordinators, Addison-Wesley, 2001.
Z
Ziadi T., « Manipulation de Lignes de Produits en UML », Thèse de
[Ziadi, 2004]
doctorat, Université de Rennes 1, Décembre, 2004.
Résumé
Les Systèmes d’Information (SI) de même domaine d'activité gèrent de nombreux concepts similaires.
Ces concepts peuvent être analysés et généralisés dans des abstractions informatiques qui seront
réutilisées lors de nouveaux développements. De telles abstractions sont appelées Composants Métier
(CM). Cependant, il est souvent difficile d’expliciter des critères clairs de réutilisation, en particulier la
manière dont on peut identifier, spécifier, organiser et en grande partie automatiser la réutilisation de
ces CM. Les contributions de cette thèse adressent cette problématique et s’articulent autour de trois
principaux résultats.
La première contribution concerne un modèle de CM de nature processus appelé « CMP ». Ce modèle
est centré sur les propriétés fonctionnelles des composants. L’accent est mis sur la complétude et la
variabilité de la solution exprimée sous la forme de quatre vues complémentaires intégrant des points
de variation. Le travail réalisé sur les mécanismes de spécification de la variabilité a abouti à un profil
UML pouvant être utilisé pour modéliser non seulement des processus réutilisables mais aussi des
processus flexibles. Une deuxième contribution s’inscrit dans le cadre de la proposition d’un processus
permettant la spécification d’un CMP selon le modèle proposé. Dans ce processus, nous définissons un
ensemble de règles de construction, de traduction et de cohérence qui assurent la traçabilité des
artefacts produits tout au long du cycle de développement. Une troisième contribution concerne la
proposition de directives qui assistent l’ingénieur de SI lors de la réutilisation de CMP. L’accent est
particulièrement mis sur la proposition d’un formalisme de documentation et de classification de CMP
validé dans le cadre d’un environnement de stockage de composants. Nous proposons également un
processus d’imitation intégré à la méthode de développement Symphony et permettant de tirer partie
de la spécification d’un CMP lors de la conception d’un SI.
L’ensemble des propositions est accompagné d’outils et d’expérimentations utilisateurs servant de
supports de validation et de mise en œuvre des travaux réalisés.
Mots-clefs
Composant Métier Processus, Réutilisation, Variabilité, Complétude, UML, Système d’Information
Title
Design and usage of process business components for information systems
Abstract
Information Systems (IS) with the same business domain manage similar concepts. These concepts can
be analyzed and generalized in abstractions reused in new developments. Such abstractions are called
Business Components (BC). However, it is often difficult to express criteria of reuse, particularly how to
identify, specify, organize and largely automate the reuse of the BC. The contributions of this thesis
address this issue and focus on three main results.
The first contribution concerns a process BC model called “PBC”. This model focuses on the functional
properties of components. Emphasis is placed on the completeness and the variability of the solution
expressed in the form of four complementary views incorporating variation points. Variability
integration has led to an UML profile that can be used to model reusable and flexible processes. The
second contribution proposes a specification process of a PBC according to the proposed model. In this
process, we propose a set of rules for construction, translation and consistency to ensure the
traceability of artifacts produced throughout the cycle of development. The third contribution is related
to a set of guidelines to assist the IS engineer at the PBC reuse. Emphasis is placed on the proposal of
the documentation and the classification of PBC validated in a component storage environment. We
also propose an imitation process incorporated into the Symphony method to take advantage of the
specification of a PBC in the design of an IS. All proposals are accompanied by tools and experiments
used as supports of validation and implementation of the achieved works.
Keywords
Process Business Component, Reuse, Variability, Completeness, UML, Information System