Le métamodèle d'architecture UMA a été développé pour harmoniser différents langages d'ingénierie de processus et
de méthodes tels que l'extension SPEM vers l'ingénierie de processus logiciel UML, les langages utilisés pour RUP
v2003, Unified Process, IBM Global Services Method, ainsi qu'IBM Rational Summit Ascendant. En tant que tel, il fournit
des concepts et des fonctions issus de tous ces modèles source, qu'il harmonise de façon cohérente, mais en permettant
toujours d'exprimer chacune de ces méthodes source avec ses caractéristiques spécifiques.Ce concept permet de disposer
d'une vue générale des fonctions de l'architecture UMA.
Distinction contenu de méthode/processus
L'architecture UMA fait clairement la distinction entre la définition du contenu de méthode et son application dans les
processus. Pour ce faire, il convient d'établir une distinction en définissant
-
le contenu de méthode principal réutilisable, sous la forme de descriptions générales de contenus tels que les
rôles, les tâches, les produits et les conseils
-
les applications de contenu de méthode spécifiques à un type de projet dans un contexte, sous la forme de
descriptions de processus faisant référence au contenu de méthode
Le contenu de méthode fournit des explications étape par étape sur la façon dont les objectifs de développement
spécifiques sont réalisés, quel que soit le positionnement de ces étapes au sein d'un cycle de vie. Les processus
utilisent ces éléments de contenu de méthode et les organisent en une séquence qui peut être personnalisée pour
certains types de projets. Par exemple, un projet de développement logiciel qui développe une application à partir de
rien effectue des étapes de développement similaires à celles d'un projet d'extension d'un système logiciel existant.
Cependant, les deux projets effectueront des étapes similaires à différents moments, en ne leur accordant pas la même
importance et éventuellement en introduisant quelques variations.
Réutilisation du contenu
L'architecture UMA permet à chaque processus de faire référence à un contenu de méthode classique à partir d'un groupe
de contenus de méthode classique. Du fait de ces références, les changements apportés aux contenus de méthode seront
automatiquement répercutés dans tous les processus qui les utilisent. Cependant, l'architecture UMA permet toujours
d'écraser certains contenus relatifs à la méthode dans un processus, ainsi que de définir des relations spécifiques au
processus pour chaque élément de processus (ajout d'une entrée dans un produit ou une tâche, modification du nom d'un
rôle, suppression d'étapes ne devant pas être effectuées par une tâche).
Familles de processus
L'objectif de l'architecture UMA n'est pas seulement de prendre en charge la représentation d'un processus de
développement spécifique ou la maintenance de plusieurs processus non associés, mais également de fournir aux
responsables de processus un ensemble d'outils leur permettant de gérer de manière cohérente et efficace des familles
entières de processus associés. L'architecture UMA y parvient en définissant les concepts de patterns de capacité
et de processus de livraison, ainsi que des relations de réutilisation spécifiques entre processus de ce type.Ces
concepts permettent à un responsable de processus de gérer des familles cohérentes de processus de livraison
spécifiques à chaque type de projet et qui sont des variantes des mêmes contenus de méthode et patterns de capacité de
base. On obtient alors différentes variantes de processus spécifiques générées en réutilisant de façon dynamique les
mêmes contenus de méthodes et patterns, mais en les appliquant à d'autres niveaux de détail et d'échelle ; par exemple,
les variantes de processus pour les petits projets de développement, opposées aux variantes pour les projets de
développement à grande échelle.
Cycles de vie multiples
Une architecture de méthode générale doit prendre en charge différents types, voire différentes associations de modèles
de cycles de vie pour les définitions de processus. Ceux-ci incluent les types suivants : en cascade, itératif,
incrémentiel, évolutif, etc. Le métamodèle de l'architecture UMA est conçu pour s'adapter à un grand nombre
d'approches. Il fournit un large spectre de concepts et d'attributs de personnalisation permettant de définir une
sémantique temporelle pour les éléments de processus tels que les phases, les itérations, les dépendances, le travail
en cours ou déclenché par un événement, etc.
Extensibilité flexible et mécanismes de plug-in
Les plug-ins de la méthode de l'architecture UMA proposent une manière originale de personnaliser le contenu de méthode
et les processus sans modifier directement le contenu d'origine. Ils ne font en fait que décrire les différences
(ajouts qu'on appelle contributions et remplacements) par rapport à l'original. Ce concept de plug-ins permet aux
utilisateurs de procéder facilement à la mise à niveau vers des versions plus récentes du contenu de méthode sans
perdre les personnalisations effectuées.
Vues de processus multiples
L'architecture UMA définit des vues multiples des processus, gérées de façon cohérente. Ces vues permettent aux
responsables de processus d'aborder la création de processus en utilisant leurs préférences personnelles. Un
responsable de processus peut choisir de définir les processus en accordant plus d'importance à l'une des vues
suivantes :
-
Répartition du travail - vue centrée sur le travail, qui définit les tâches associées à une activité de haut niveau
spécifique
-
Utilisation du produit - vue orientée sur les résultats, qui définit l'état de certains livrables et artefacts à
différents moments du processus
-
Attribution d'équipe - vue basée sur la responsabilité, qui définit les rôles nécessaires et leurs responsabilités
produit
L'architecture UMA permet de maintenir une cohérence entre toutes ces vues, du fait qu'elles sont toutes basées sur une
structure objet intégrée. Des changements effectués sur une vue seront immédiatement répercutés dans les autres vues.
Patterns de processus réutilisables
Les patterns de capacité de l'architecture UMA sont des éléments structurels réutilisables permettant de créer de
nouveaux processus de développement. La sélection et l'application d'un pattern de capacité peuvent s'effectuer des
deux façons suivantes :
-
Un pattern peut être appliqué dans une opération sophistiquée de copie et de modification, ce qui permet au
responsable de processus d'adapter le contenu du pattern à ses besoins au cours de son application.
-
Un pattern peut être appliqué par liaison dynamique. Cette manière nouvelle et originale de réutiliser les
connaissances sur le processus permet d'externaliser dans des patterns les activités qui se répètent souvent ; ces
patterns peuvent ensuite être appliqués indéfiniment dans un processus. Lors de la révision ou de la mise à jour du
pattern, tous les changements effectués seront automatiquement répercutés dans tous les processus ayant appliqué ce
pattern.
|