Desenvolvimento

Ξ 3 comentários

RUP – Primeiros Passos

publicado por Rafael Peria de Sene

Rational Unified Process (RUP) é um processo de engenharia de software que fornece uma abordagem disciplinada para assumir tarefas e responsabilidades dentro de uma organização de desenvolvimento, cujo objetivo é assegurar a produção de software de alta qualidade dentro de prazos e orçamentos previsíveis (Kruchten 2003, pág. 14). Derivado dos trabalhos sobre UML e do Processo Unificado de Desenvolvimento de Software, ele traz elementos de todos os modelos genéricos de processo, apoia a iteração e ilustra boas práticas de especificação e projeto (Sommervillie 2007, pág. 54). Ele captura seis das melhores práticas no desenvolvimento de software de forma satisfatória para uma grande faixa de projetos e organizações (Krutchten 2003, pág. 14). As melhores práticas abordadas são as seguintes (Sommerville 2007, pág. 56):

1. Desenvolver o software iterativamente: planejar os incrementos de software com base nas prioridades do cliente e desenvolver e entregar o mais cedo possível às características de sistema de maior prioridade no processo de desenvolvimento.

2. Gerenciar Requisitos: documentar explicitamente os requisitos do cliente e manter acompanhamento das mudanças desses requisitos. Analisar o impacto das mudanças no sistema antes de aceitá-las.

3. Usar arquiteturas baseadas em componentes: Estruturar a arquitetura do sistema com componentes, reduzindo a quantidade de software a ser desenvolvido e, consequentemente, reduzir custos e riscos.

4. Modelar software visualmente: usar modelos gráficos de UML para apresentar as visões estática e dinâmica do software.

5. Verificar a qualidade do software: garantir que o software atenda aos padrões de qualidade da organização.

6. Controlar as mudanças do software: gerenciar as mudanças do software, usando um sistema de gerenciamento de mudanças, procedimentos e ferramentas de gerenciamento de configuração.

O RUP é um modelo constituído por quatro fases do processo de software, relacionadas mais estritamente aos negócios do que a assuntos técnicos (Sommerville 2007, pág. 54). As quatro fases do RUP são descritas abaixo:

1. Concepção: o objetivo desta fase é estabelecer um business case[2] para o sistema. Devem ser identificadas todas as entidades externas (pessoas e sistemas) que irão interagir com o sistema em desenvolvimento e definir essas interações. Essas informações são utilizadas para avaliar a contribuição do novo sistema para o negócio.

2. Elaboração: os objetivos desta fase são desenvolver um entendimento do domínio do problema, estabelecer um framework[3] de arquitetura para o sistema, desenvolver o plano de projeto e identificar seus principais riscos. Ao final desta fase deve-se ter um modelo de requisitos para o sistema (os casos de uso da UML são especificados), uma descrição de arquitetura e um plano de desenvolvimento do software.

3. Construção: está fase está essencialmente relacionada ao projeto, programação e teste do sistema. As partes do sistema são desenvolvidas paralelamente e integradas durante esta fase. Ao final deve-se ter um sistema de software em funcionamento e a documentação associada pronta para ser liberada para os usuários.

4. Transição: nesta fase, faz-se a transferência do sistema da comunidade de desenvolvimento para a comunidade de usuários, com a entrada do sistema em funcionamento no ambiente real. Esta é uma atividade ignorada na maioria dos modelos de processo de software, pois é onerosa e às vezes problemática. Ao final desta fase, deve-se ter um sistema de software documentado, funcionando corretamente em seu ambiente operacional.

Cada uma das fases descritas acima pode ser realizada de forma iterativa, com os resultados desenvolvidos incrementalmente.

As atividades que ocorrem durante o processo de desenvolvimento são chamadas de workflows. Existem seis workflows principais, exibidos na Tabela 1.

Workflow


Descrição

Modelagem de NegóciosOs processos de negócio são modelados usando casos de uso de negócios.

Requisitos

Os agentes que interagem com o sistema são identificados e os casos de uso são desenvolvidos para modelar os requisitos do sistema.

Análise e Projeto

Um modelo de projeto é criado e documentado usando modelos de arquitetura, modelos de componente, modelos de objetos e modelos de sequencia.

Implementação

Os componentes de sistema são implementados e estruturados em subsistemas de implementação. A geração automática de código com base os modelos de projeto ajuda a acelerar esse processo.

Teste

O teste é um processo iterativo realizado em conjunto com a implementação. O teste de sistema segue o término da implementação.

Implantação

Uma versão do produto é criada, distribuída aos usuários e instalada no local de trabalho.

Gerenciamento de Configuração e Mudança

Este workflow de apoio gerencia mudanças no sistema.

Gerenciamento de Projetos

Este workflow de apoio gerencia o desenvolvimento do sistema.

Ambiente

Este workflow está relacionado à disponibilização de ferramentas apropriadas de software para a equipe de desenvolvimento.

Tabela 1 : Workflows no Rational Unified Process (Sommerville 2007, pág. 55)

Embora o RUP não seja um processo adequado a todos os tipos de desenvolvimento de software, ele representa uma nova geração de processos genéricos. A mais importante inovação é a separação de fases e workflows, e o reconhecimento de que a implantação de software no ambiente do usuário é parte do processo. As fases são dinâmicas e tem objetivos. Os workflows são estáticos e constituem atividades técnicas que não estão associadas a uma única fase, mas podem ser utilizados ao longo do desenvolvimento para atingir os objetivos de cada fase (Sommerville 2007, pág. 56).

Referências

Businesscase (2011), http://www.businesscase.com.br  acesso em 22/01/11.

Sommerville, I. (2007), Engenharia de Software, Oitava Edição, Pearson Addison-Wesley.

Larman, Craig. (2007), Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo,  Terceira Edição, Bookman.

Kruchten, Phillippe. (2003), Introdução ao RUP: Rational Unified Process, Primeira Edição, Ciência Moderna.


[1] UML é uma linguagem visual para especificar, construir e documentar os artefatos do sistema (Craig 2007, pág. 39).

[2] Business Case é uma forma de justificar o investimento para aprovar um projeto estratégico que agrega valor ao negócio da empresa (BusinessCase, 2011).

[3] Framework é uma estrutura genérica em um domínio específico que pode formar a base de uma família de aplicações. Os frameworks são geralmente implementados como um conjunto de classes concretas e abstratas, especializadas e instanciadas para criar uma aplicação (Sommerville 2007, pág. 527).

Autor

Bacharel em Ciência da Computação pela Universidade Federal de Alfenas. Desenvolvi durante a graduação pesquisas nas áreas de engenharia de software e processos de desenvolvimento de software. Tenho sólidos conhecimentos em processos de desenvolvimento de software (RUP e OpenUP), análise e coleta de requisitos, métodos ágeis de desenvolvimento (SCRUM e XP), programação utilizando as linguagens Java, C e SQL e modelagem de dados utilizando UML.

Rafael Peria de Sene

Comentários

3 Comments

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes