Do que trata o artigo

O principal objetivo deste artigo é apresentar os principais conceitos que definem o Processo Unificado Aberto (Open UP), uma metodologia ágil de desenvolvimento de software, adaptada pela equipe da Fundação Eclipse a partir do Processo Unificado Rational (RUP), cedido pela IBM Rational para a fundação em questão.


Para que serve

As metodologias ágeis de desenvolvimento de software surgiram a partir da necessidade de equipes de pequeno e médio porte organizarem seus processos de desenvolvimento de software sem se prender às metodologias pesadas e burocráticas. As metodologias ágeis são pragmáticas e focam na natureza colaborativa do processo de desenvolvimento de software, não se prendendo ao uso sistemático de ferramentas de apoio ao desenvolvimento. Dentre elas, podemos citar XP, SCRUM, DSDM, FDD, dentre outras, além é claro, do próprio Processo Unificado Aberto.

Em que situação o tema é útil

Não é necessário citar que a aplicação de processos de engenharia de software no desenvolvimento de software sempre foi, é e sempre será uma pedra no caminho dos desenvolvedores. Se você perguntar a 10 desenvolvedores de software, 9 responderão que não aplicam metodologia pois as consideram desnecessárias ou ineficientes, considerando principalmente a grande quantidade de documentos que são gerados por esses processos. As metodologias ágeis buscam sanar esse tipo de problema, oferecendo processos simples e rápidos. Independentemente da empresa, equipes de pequeno e médio porte, em geral, tendem a se comportar melhor quando trabalham sob as luzes de uma metodologia ágil.

Resumo do DevMan

O Processo Unificado Aberto é um dos mais novos processos ágeis de desenvolvimento de software, tendo surgido em 2006. Consiste basicamente em um “framework” customizável e de fácil compreensão, sendo indicado principalmente para equipes de pequeno porte e que necessitam de um mínimo de processo controlado no desenvolvimento. O Processo Unificado Aberto tem seu conceito de processo centrado em Produtos de Trabalho, Atividades, Papéis e Processo, como veremos a seguir.

A Fundação Eclipse é uma comunidade “Open Source” cujos projetos estão focados na construção de uma plataforma aberta e extensível para o desenvolvimento de software, buscando atender a todo o ciclo de vida tradicional do desenvolvimento. O Projeto Eclipse nasceu originalmente da IBM® em 2001 e a Fundação Eclipse foi criada em 2004, mantendo seu vínculo estreito com a IBM® até hoje.

Em 2006, os membros da Fundação Eclipse sentiram a necessidade de agregar à sua plataforma uma metodologia de desenvolvimento de software. Para tal, recorrem mais uma vez à IBM e a mesma libera o Processo Unificado Rational (RUP) para que os membros da Fundação Eclipse possam customizá-lo. Nasce assim o processo de desenvolvimento de software Processo Unificado Aberto, ou Open UP.

O projeto visual do Open UP é muito similar ao projeto visual do RUP, ou seja, uma página HTML que oferece os principais conceitos e guias para o desenvolvimento de software utilizando o processo. Além disso, a Fundação Eclipse disponibilizou o EPF Composer, uma ferramenta específica para a customização do seu processo.

Nota: EPF é a sigla para “Eclipse Process Framework”, uma estrutura de processos de desenvolvimento de software criada pela Fundação Eclipse, focada em Processos Ágeis e que engloba o Processo Unificado Aberto (Open UP), Extreme Programming (XP) e o Processo Ágil Scrum.

O Open UP, por si só, é um Processo Unificado leve que aplica as abordagens iterativa e incremental em um ciclo de vida estruturado, aplicando uma filosofia ágil e pragmática, que foca na natureza colaborativa do desenvolvimento de software.

O Open UP é um processo de desenvolvimento de software livre de ferramentas e de baixo formalismo que pode ser estendido a uma variada gama de tipos de projetos e não apenas desenvolvimento de software.

Esse artigo está estruturado em três partes, a saber:

• Parte 1: Introdução – Apresentação do Processo Unificado Aberto e dos principais conceitos de sua estruturação;

• Parte 2: Conceitos Básicos de Processo – Apresentação da organização processual do Processo Unificado Aberto, ou seja, como se desenvolvem as ações inerentes ao processo de desenvolvimento de software;

• Parte 3: Princípios do Processo Unificado Aberto – Apresentação dos princípios que compõem os pilares do processo de desenvolvimento do Open UP, com forte ênfase nas ações colaborativas.

A Estrutura do Open UP

O Open UP é um processo de desenvolvimento de software iterativo e incremental, estruturado em três camadas distintas, como é possível observar na Figura 1.

Figura 1. Estrutura do Open UP [OPENUP2006]

A Primeira Camada trata do Ciclo de Vida de Projeto (camada mais inferior) e organiza o processo de desenvolvimento como um todo. Da mesma forma que o RUP, o Open UP organiza seu processo em quatro fases de desenvolvimento, onde em cada fase são agregados valores distintos ao produto em desenvolvimento:

1. Iniciação- fase em que se enfatiza o processo de análise de negócios e análise de requisitos do negócio em questão, dando uma ênfase menor à arquitetura e implementação;

2. Elaboração- fase em que se enfatiza o processo de desenvolvimento da análise arquitetural da solução proposta;

3. Construção- fase em que se enfatiza o processo de implementação da solução proposta, bem como testes e integração;

4. Transição- fase em que se enfatiza o processo de implantação do produto, com importante foco na realização de testes e reconfiguração necessária do sistema, além de foco no processo de treinamento do usuário e conversão dos dados legados.

É importante destacar que o Processo Unificado, de forma geral, prega como uma boa prática de desenvolvimento que os principais riscos para o projeto sejam atacados logo no início do processo de desenvolvimento. Dessa forma, o risco de falha do projeto é decrementado, enquanto que o valor agregado ao produto é incrementado na mesma proporção da evolução do projeto.

Cada uma das fases do Open UP é encerrada quando a equipe atinge um determinado marco. Caso um marco não seja atingido ao término da iteração final da fase, uma nova iteração deverá ser definida para concluir o processo.

...
Quer ler esse conteúdo completo? Tenha acesso completo