• Aucun résultat trouvé

Problématique de l’ingénierie pour la réutilisation de procédés

CHAPITRE I. ÉTAT DE L’ART

II. RÉUTILISATION DE PROCÉDÉS

II.1. Problématique de l’ingénierie pour la réutilisation de procédés

L’objectif de l’ingénierie pour la réutilisation de procédés est de développer des méthodes supportant la production des connaissances de procédé réutilisables. La problématique de l’ingénierie pour la réutilisation de procédés concerne trois facettes :

(i) l’identification des connaissances candidates à la réutilisation;

(ii) leur représentation sous forme d’artéfacts réutilisables ;

(iii) leur organisation au sein de systèmes de réutilisation.

Dans la suite, nous analysons ces facettes et identifions leurs valeurs possibles.

Base de connaissances

de procédé

Un procédé Concepteur de

connaissance Concepteur de procédé Identifier des connaissances réutilisables de procédés Représenter des connaissances de procédé Organiser des connaissances de procédé Sélectionner des connaissances de procédé à réutiliser Appliquer des connaissances réutilisables

Ingénierie pour la réutilisation

II.1.1. Identification des connaissances de procédé

Différents types d’informations réutilisables de procédés sont identifiés et discutés dans plusieurs travaux [Basili91][Arbaoui96][Kellner96][Hollenbach96][Groenewegen96]

[Jørgensen00][Neu03]. Ces informations sont considérées comme des connaissances de procédé1.

Nous proposons deux attributs pour caractériser les connaissances de procédé : la nature de la connaissance et la couverture de la connaissance.

Nature d’une connaissance de procédé

Les connaissances de procédé sont des savoirs et des savoir-faire acquis pendant la définition de procédés. Elle englobe des résultats de définition de procédé, et des expériences sur la définition de procédé. Nous distinguons donc deux formes de nature de connaissance de procédé :

ƒ Connaissances de procédé de développement : Ces sont des connaissances relatives à la conception et à la production de produits logiciels. Ce type de connaissance est inclus dans les résultats de la définition de procédés c’est-à-dire les procédés logiciels eux-mêmes. De telles connaissances concernent la spécification des éléments de procédé (c.f. I.2), la définition du contenu et de la réalisation de ces éléments (par exemple la décomposition d’un produit, les actions d’une tâche), et des relations entre eux (par exemple l’ordre d’exécution des tâches, les relations d’impact entre produits).

Parmi les travaux les plus connus qui décrivent la connaissance de procédé de développement, on peut citer les modèles de développement comme Spiral [Boehm88], VMethode [SFB501], et Unified Process [Jacobson99], les normes ISO12207[ISO95], PSS-05[Mazz94], le modèle de maturité CMMI [CMMI02].

ƒ Connaissances de modélisation de procédés : Ces sont des connaissances relatives à la définition de procédés[Rupprecht00]. Plus concrètement, ce sont des expériences accumulées durant la modélisation de procédés. Elles reflètent les solutions techniques ou méthodologiques pour décrire les procédés. Ces connaissances seront très utiles si elles peuvent être identifiées, formalisées, structurées et mises à la disposition des concepteurs de procédé.

Dans ce type de connaissance, on peut trouver par exemple des méta-procédés (comme PRISM[Madhavji90], PERFECT[Birk97]), des solutions de description de procédés (par exemple les Workflow Patterns [v.d.Aalst03]) ou des solutions d’organisation et de structuration de procédé (par exemple [Harrison96][Malone03][Penker00]).

Couverture d’une connaissance de procédé

La couverture d’une connaissance correspond aux domaines dans lesquels sa réutilisation est possible, voire pertinente. Nous distinguons trois types de couverture de connaissance pour les procédés :

ƒ Dépendante d’un projet : Les connaissances ayant cette couverture ne sont réutilisables, telles quelles, que pour un nombre restreint de projets ayant un ensemble commun de caractéristiques, notamment les produits.

Par exemple, la connaissance de procédé pour produire les logiciels impliqués dans l’équipement aéronautique d’Airbus est dépendante d’un projet.

ƒ Dépendante d’un domaine : Les connaissances ayant cette couverture sont réutilisables au sein des procédés d’un même domaine, quel que soit leurs produits spécifiques.

Par exemple, la procédure de révision d’artéfacts logiciels peut s’appliquer dans tous les procédés logiciels sur des produits différents ; les démarches de vente d’un produit peuvent être appliquées pour vendre un produit quelconque.

ƒ Indépendante du domaine : Les connaissances ayant cette couverture peuvent être réutilisées au sein de n’importe quel procédé, quel que soit son domaine. Ce sont des connaissances de procédé génériques.

Par exemple, une solution pour synchroniser des activités parallèles peut être employée aussi bien pour organiser un procédé logiciel qu’un procédé métier.

II.1.2. Représentation des connaissances de procédé réutilisables

Une fois les connaissances utiles identifiées, il faut trouver un moyen pour les représenter sous une forme réutilisable.

La modélisation de procédés a pour rôle principal d’expliciter les connaissances en développement (c.f. I). Quant aux connaissances relatives à la définition de procédés, elles sont généralement représentées de façon informelle sous forme de conseils ou de guidages (comme dans [Coplien94][Foote95][Malone03]).

Sur la base des besoins attendus d’un formalisme de description de procédés (c.f. I.3.1) et de la caractérisation présentée ci-avant (c.f. II.1.1), nous identifions ci-dessous les attributs importants d’une représentation favorisant la réutilisation de procédés :

Expressivité

Cet attribut caractérise la capacité de représentation de la connaissance de procédé d’un formalisme. Nous distinguons deux niveaux d’expressivité selon que l’on considère :

ƒ Les éléments de procédé : un formalisme à ce niveau permet de représenter les éléments de procédé et leurs relations.

ƒ Les éléments de procédé réutilisables : un formalisme à ce niveau permet de représenter non seulement les éléments de procédé, mais aussi les éléments réutilisables ainsi que la manière de les réutiliser (appliquer) dans la description de procédés.

Modularité

La représentation modulaire de connaissances rend leur application flexible et sélective. Elle permet la définition de procédés par l’assemblage de fragments de procédé existants. En considérant cet attribut, un formalisme peut avoir l’une des valeurs suivantes :

ƒ Absence de mécanisme de modularisation : le formalisme ne supporte pas la modularité. ƒ Existence d’un mécanisme de modularisation : le formalisme supporte la modularité.

Abstraction

Cet attribut a pour but d’indiquer si un formalisme permet de représenter les connaissances de diverses couvertures pour promouvoir la réutilisation de procédés. Les valeurs possibles de cet attribut sont :

ƒ Un niveau d’abstraction : le formalisme supporte la représentation de procédés à un seul niveau d’abstraction.

ƒ Plusieurs niveaux d’abstraction : le formalisme supporte la représentation de procédés à différents niveaux d’abstraction.

Standardisation de la représentation

La compréhensibilité d’un formalisme dépend du type d’interface et du degré de standardisation de concepts et de notations utilisées (c.f. I.3.1). Dans le cas de connaissances réutilisables, l’aspect standardisation de la représentation est important pour faciliter la communication des connaissances représentées. Les valeurs associées à cet attribut sont ainsi : ƒ Non-standardisée : les concepts et les notations du formalisme sont spécifiques.

ƒ Standardisée : le formalisme utilise des concepts et des notations standardisés.

Formalisation

Le degré de formalisation d’un formalisme est important dans le cas des connaissances réutilisables car il conditionne le développement d’outils de réutilisation de procédés. Nous retenons les valeurs classiquement adoptées pour cette formalisation :

ƒ Informelle : le formalisme est intuitivement défini.

ƒ Semi-formelle : le formalisme dispose d’une syntaxe formelle.

ƒ Formelle : le formalisme dispose d’une syntaxe formelle et d’une sémantique formelle.

II.1.3. Organisation des connaissances de procédé réutilisables

Pour faciliter la sélection, l’adaptation et l’application de connaissances réutilisables, une approche de réutilisation devra fournir une solution pour d’un côté, modulariser les connaissances, de l’autre établir les liens entre les modules de connaissance.

Nous proposons donc les deux attributs suivants pour caractériser cette facette :

Type d’encapsulation de modules de connaissance

Cet attribut caractérise le type d’encapsulation des connaissances capturées. Nous distinguons deux types de conteneur de connaissances de procédé réutilisables :

ƒ Composant de procédé : un composant de procédé encapsule une connaissance de développement en utilisant le principe de la boîte-noire (black-box). Il fournit donc un fragment de procédé autonome sans montrer son contenu. Aucune connaissance de guidage n’est généralement associée au composant pour expliquer son utilisation. On peut citer certains travaux sur les composants de procédé comme [Avrilionis96][Lindquist97] [Bergner98][TranDT01].

ƒ Patron de procédé : un patron de procédé capitalise la connaissance de procédé en utilisant le principe de la boîte-blanche (white-box) pour apporter une guidage méthodologique à la définition de procédé. Il décrit explicitement la connaissance capturée ainsi que la manière de l’appliquer. Les patrons de procédé sont étudiés dans des travaux comme [Buschmann96][Ambler98][Vasconcelos98][Firesmith01].

Structuration des connaissances

Cet attribut caractérise l’organisation d’un ensemble de connaissances réutilisables pour faciliter la sélection des connaissances à réutiliser. Nous distinguons deux approches pour organiser les connaissances :

ƒ Bibliothèque de connaissances : les entités réutilisables sont stockées dans une structure indicée qui permet de regrouper les connaissances selon leur sujet. C’est le cas des approches basées sur Experience Factory [Basili94] ou [Henninger98][CMMI02].

ƒ Carte de connaissances : les relations entre différentes entités réutilisables sont explicitement définies. Grâce à ces relations, une carte des connaissances peut être établie pour faciliter la navigation dans les connaissances. Parmi les travaux adoptant cette approche, on peut citer [Ambler98][Conte02][Deneckere01][Firesmith01] .