Conceito: Capacidades Principais da UMA (Unified Method Architecture)
A UMA (Unified Method Architecture) é um metamodelo de engenharia que define esquema e terminologia, para representar métodos que consistem no conteúdo e em processos do método.
Descrição Principal

O metamodelo da UMA (Unified Method Architecture) foi desenvolvido como uma unificação idiomas de engenharia de método e de processo diferentes, como por exemplo a extensão SPEM para a UML para engenharia de processo de software, os idiomas utilizados para RUP v2003, Unified Process, IBM Global Services Method, bem como IBM Rational Summit Ascendant. Como tal, fornece conceitos e capacidades de todos os modelos de origem, unificando-os de forma consistente, porém, permitindo ainda expressar cada um desses métodos de origem com suas características específicas.   Esse conceito fornece uma visão geral para capacidades da UMA.

Separação de Conteúdo do Método e Processo

A UMA fornece uma separação clara de definições de Conteúdo do Método de seu aplicativo em Processos. Isso é realizado definindo separadamente

  • o Conteúdo do Método de núcleo reutilizável, em forma de descrições de conteúdos gerais, como por exemplo aplicativos
  • específicos de tipo de projeto de Funções, Tarefa, Produtos de Trabalho e Guidance do Conteúdo do Método no contexto em forma de descrições de processo que fazem referência ao Conteúdo do Método

O Conteúdo do Método fornece explicações etapa por etapa, descrevendo como metas de desenvolvimento específicas são atingidas, independentemente do posicionamento dessas etapas dentro de um ciclo de vida de desenvolvimento. Os processos obtêm esses elementos de Conteúdo do Método e os organiza em uma seqüência que pode ser customizada para tipos específicos de projetos. Por exemplo, um projeto de desenvolvimento de software que desenvolve um aplicativo a partir do zero, desempenha etapas de desenvolvimento semelhantes a um projeto que estende um sistema de software existente. No entanto, os dois projetos desempenharão etapas semelhantes em horários específicos com uma ênfase diferente e, talvez, variações individuais.

Reutilização de Conteúdo

A UMA permite que cada Processo faça referência de Conteúdo do Método comum a partir de um conjunto de Conteúdos do Métodos comuns. Em decorrência dessas referências, as alterações nos Conteúdos dos Métodos serão automaticamente refletidas em todos os Processos que as utilizam. No entanto, a UMA ainda permite sobrescrever determinado conteúdo relacionado ao método dentro de um Processo, bem como definir relacionamentos específicos do processo individual para cada Elemento do Processo (como por exemplo, incluir um Produto de Trabalho de entrada adicional em uma Tarefa, renomeando uma Função ou removendo as Etapas que não devem ser desempenhadas a partir de uma Tarefa).

Famílias de Processos

A meta da UMA não é apenas suportar a representação de um processo de desenvolvimento específico ou a manutenção de vários processos não relacionados, mas fornecer aos engenheiros do processo um conjunto de ferramentas para gerenciar de forma consistente e efetiva, todas as famílias de Processos relacionados. A UMA realiza isso, definindo os conceitos de Padrões de Capacidade e Processos de Entrega, bem como relacionamentos de reutilização específicos entres esses tipos de processos.   Esses conceitos permitem a um engenheiro de processo, manter famílias consistentes de Processos de Entrega que são específicos do tipo de projeto e são variações do mesmo Conteúdo do Método e Padrões de Capacidade de base. O resultado são variantes diferentes de processos específicos construídos pela reutilização dinâmica do mesmo Conteúdo do Método e Padrões, mas aplicadas com diferentes níveis de detalhes e escala; por exemplo, variantes de Processo para projetos de desenvolvimento de escala pequena versus grande.

Múltiplos Ciclos de Vida

Uma arquitetura de método geral deve suportar variedades diferentes e até combinações de modelos de ciclos de vida para definições de processos. Incluem Em Cascata, Repetitivo, Incremental, Evolutivo e assim por diante. O metamodelo da UMA é projetado para acomodar várias abordagens. Fornece um rico conjunto de conceitos e atributos de customização para especificação de semânticas temporais para Elementos do Processo, como por exemplo fases, iterações, dependências, trabalho em andamento ou orientado por evento e assim por diante.

Mecanismos de Extensibilidade e Plug-in Flexíveis

Os Plug-Ins de Método da UMA fornecem uma única forma de customizar o Conteúdo do Método e Processos, sem modificar diretamente o conteúdo original. Em vez disso, eles apenas descreveram as diferenças (inclusões mencionadas como contribuições e substituições) relativas ao original. Esse conceito de Plug-in permite aos usuários fazer upgrade facilmente para versões recentes do Conteúdo do Método, sem perder suas customizações.

Múltiplas 'Visualizações' do Processo

A UMA define múltiplas visualizações e consistentemente mantidas em processos. Essas visualizações permitem aos engenheiros do processo, abordar a autoria do processo com base em suas preferências pessoais. Um engenheiro de processo pode optar por definir seus Processos com foco em qualquer um dos seguintes itens:

  • Interrupção de Trabalho - essa é uma visualização central de trabalho, a qual define as Tarefas associadas a uma Atividade de alto nível específica
  • Uso do Produto de Trabalho - essa é uma visualização baseada em resultados, a qual define o estado de certos Distribuíveis e Artefatos em vários pontos no processo
  • Alocação de Team - essa é uma visualização baseada em responsabilidade, a qual define as Funções necessárias e suas responsabilidades do produto de trabalho

A UMA oferece consistência entre todas essas visualizações, porque todas são baseadas em uma estrutura de objeto integrada. As alterações em uma visualização serão imediatamente refletidas em outras visualizações.

Padrões Reutilizáveis do Processo

Os Padrões de Capacidades da UMA são blocos de construção reutilizáveis para criação de novos Processos de desenvolvimento. A seleção e a aplicação de um Padrão de Capacidade podem ser feitas de uma das duas formas flexíveis:

  • Um padrão pode ser aplicado em uma operação de cópia e modificação sofisticada, a qual permite ao engenheiro do processo customizar individualmente o conteúdo do padrão para suas necessidades, durante o aplicativo padrão.
  • Um padrão pode ser aplicado por meio de ligação dinâmica. Essa nova forma exclusiva de reutilização de conhecimento de processo, geralmente permite a recorrência de Atividades a serem fatoradas em padrões, os quais podem ser aplicados repetidamente em um Processo. Quando o padrão estiver sendo revisado ou atualizado, todas as alterações serão automaticamente refletidas em todos os Processos que aplicaram esse padrão.