Concept: Principales fonctions de l'architecture UMA
L'architecture UMA (Unified Method Architecture) est un métamodèle d'ingénierie de processus qui définit un schéma et une terminologie permettant de représenter des méthodes composées de contenus de méthode et de processus.
Description principale

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.