Concept: Key Capabilities of the Unified Method Architecture (UMA)
The Unified Method Architecture (UMA) is a process engineering meta-model that defines schema and terminology for representing methods consisting of method content and processes.
Main Description

The Unified Method Architecture (UMA) meta-model has been developed as a unification of different method and process engineering languages such as the SPEM extension to the UML for software process engineering, the languages used for RUP v2003, Unified Process, IBM Global Services Method, as well as IBM Rational Summit Ascendant. As such it provides concepts and capabilities from all of these source models unifying them in a consistent way, but still allowing to express each of these source methods with their specific characteristics.  This concept provides you with a general overview to UMA capabilities.

Separation of Method Content and Process

UMA provides a clear separation of Method Content definitions from its application in Processes. This is accomplished by separately defining

  • reusable core Method Content, in the form of general content descriptions such as Roles, Task, Work Products and Guidance
  • project-type specific applications of Method Content in context in the form of process descriptions that reference Method Content

Method Content provides step-by-step explanations of how specific development goals are achieved independent of the placement of these steps within a development lifecycle. Processes take these Method Content elements and organize them into a sequence that can be customized to specific types of projects. For example, a software development project that develops an application from scratch performs development steps similar to a project that extends an existing software system. However, the two projects will perform similar steps at different points in time with a different emphasis and perhaps individual variations.

Content Reuse

UMA allows each Process to reference common Method Content from a common Method Content pool. Because of these references, changes in the Method Contents will automatically be reflected in all Processes using it. However, UMA still allows overwriting certain method-related content within a Process as well as defining individual process-specific relationships for each Process Element (such as adding an additional input Work Product to a Task, renaming a Role, or removing Steps that should not be performed from a Task).

Process Families

UMA's goal is to not only support the representation of one specific development process or the maintenance of several unrelated processes, but to provide process engineers with a tool set to consistently and effectively manage whole families of related Processes. UMA realizes this by defining the concepts of Capability Patterns and Delivery Processes as well as specific reuse relationships between these type of processes.  These concepts allow a process engineer to maintain consistent families of Delivery Processes that are project type specific and are variations of the same base Method Content and Capability Patterns. The result is different variants of specific processes built up by dynamically reusing the same Method Content and Patterns, but applied with different levels of detail and scale; for example, Process variants for small versus large scale development projects.

Multiple Lifecycles

A general method architecture must support different varieties and even combinations of lifecycle models for process definitions. These include Waterfall, Iterative, Incremental, Evolutionary, and so on. The UMA meta-model is designed to accommodate multiple approaches. It provides a rich set of concepts and customization attributes for specifying temporal semantics for Process Elements such as phases, iterations, dependencies, ongoing or event-driven work, etc.

Flexible Extensibility and Plug-in Mechanisms

UMA's Method Plug-Ins provide a unique way of customizing Method Content and Processes without directly modifying the original content. Instead, they just described the differences (additions referred to as contributions and replacements) relative to the original. This Plug-in concept allows users to easily upgrade to newer versions of Method Content without losing their customizations.

Multiple Process 'Views'

UMA defines multiple and consistently maintained views on processes. These views allow process engineers to approach process authoring based on their personal preferences. A process engineer can choose to define their Processes with a focus on any of the following:

  • Work Breakdown - this is a work-centric view which defines Tasks associated with a particular high-level Activity
  • Work Product Usage - this is a results-based view which defines the state of certain Deliverables and Artifacts at various points in the process
  • Team Allocation - this is a responsibility-based view which defines needed Roles and their work product responsibilities

UMA provides consistency between all these views, because they are all based on one integrated object structure. Changes in one view will immediately be reflected in the other views.

Reusable process patterns

UMA's Capability Patterns are reusable building blocks for creating new development Processes. Selecting and applying a Capability Pattern can be done in one of two flexible ways:

  • A pattern can be applied in a sophisticated copy and modify operation, which allows the process engineer to individually customize the pattern's content to his needs during the pattern application.
  • A pattern can be applied via dynamic binding. This unique new way of reusing process knowledge allows commonly reoccurring Activities to be factored out into patterns which can then be applied over and over again in a Process. When the pattern is being revised or updated, all changes will automatically be reflected in all Processes that applied that pattern.