terça-feira, 2 de fevereiro de 2010

Processo Unificado - PU (Unified Process)


Seguindo na linha de abordagens de conceitos importantes para a busca da Qualidade no processo de desenvolvimento de software, gostaria de lhes apresentar um padrão de processo de desenvolvimento amplamente aplicado chamado Processo Unificado (PU), em inglês Unified Process.

O PU surgiu como um processo iterativo/evolutivo popular para o desenvolvimento de software, visando a construção de sistemas orientado a objetos. (LARMAN, 2007).

O PU é um framework customizável e passível de adaptações. Inclusive, outros padrões comercias existentes usam como base o PU, contemplando apenas alguns refinamentos, dentre eles: Rational Unified Process (RUP da IBM), Agile Unified Process (AUP) e o Enterprise Unified Processo (EUP).

Conforme mencionado, o PU é um processo iterativo/incremental. Processos com estas características consistem em realizar o desenvolvimento organizado em uma série de miniprojetos curtos, de duração fixa (por exemplo, 4 semanas) chamados de iterações. O produto resultante de cada iteração é um sistema parcial, executável, testável e funcional. Cada iteração inclui suas próprias atividades de análise de requisitos, projetos, implementação e testes. Assim, o sistema vai sendo complementado a cada iteração e cresce incrementalmente, de forma evolutiva (LARMAN, 2007).

Um projeto PU organiza o trabalho e as iterações em quatro fases principais:

- Iniciação: visão aproximada, casos de negócio, escopo e estimativas vagas;

- Elaboração: visão refinada, implementação iterativa da arquitetura central, resolução dos riscos elevados, identificação da maioria dos requisitos e do escopo e estimativas mais realistas;

- Construção: implementação iterativa dos elementos restantes de menor risco e mais fáceis e preparação para a implantação;

Na FIGURA 1 é possível verificar este ciclo de desenvolvimento de forma gráfica.


FIGURA 1 – Ciclo de Desenvolvimento do PU

O PU também é dividido em disciplinas que consistem nas atividades a serem executados em cada fase do processo de desenvolvimento. Em cada disciplina são elaborados artefatos cuja concepção garante o devido andamento do processo de desenvolvimento. A seguir são apresentadas as disciplinas do PU:

- Modelagem de Negócio: desenvolve-se o Modelo de Domínio, para visualizar conceitos importantes no domínio da aplicação;

- Requisitos: são criados os modelos de Caso de Uso (UC) e Especificação Suplementar (SER) para captar requisitos funcionais e não funcionais;

- Projeto: é criado o Modelo de Projeto para vislumbrar os objetivos do software;

- Implementação: codificação, construção do sistema;

- Testes: consiste em realizar a verificação do funcionamento da implementação realizada, de acordo com o modelo de UC elaborado;

- Desdobramentos: implantação do sistema;

- Gestão de Configuração e Mudança: aplicação de padrões de código-fonte, preparação de scripts de mudanças em base de dados;

- Gestão de Projetos: atualização dos checkpoints, dos cronogramas, da comunicação aos stakeholders;

- Ambiente: estabelecimento do instrumental e a personalização do processo para um projeto, ou seja, a preparação do ambiente do processo e das ferramentas necessárias.


FIGURA 2 – Disciplinas do PU

Em próximas postagens pretendo abordar mais informações referentes ao uso de processos de software, principalmente o que tange o Agile Unified Process (AUP) que está tornando-se cada vez mais necessária num ambiente de fábrica de software.

Cordialmente,

Marcelo Schumacher
http://isosoftware.blogspot.com

Bibliografia:

LARMAN, Craig. Utilizando UMLe Padrões: Uma introdução à análise e ao projeto orientados 
a objetos e ao desenvolvimento iterativo. Porto Alegre: Bookman, 2007;

2 comentários: