quinta-feira, 8 de setembro de 2011

Introdução ao RUP

O que é RUP?
O RUP, abreviação de Rational Unified Process (ou Processo Unificado Racional), é um processo de engenharia de software criado pela Rational Software Corporation e adquirida posteriormente pela IBM em 2003. Ele oferece uma abordagem baseada em disciplinas para atribuir tarefas e responsabilidades dentro de uma organização de desenvolvimento. Sua meta é garantir a produção de software de alta qualidade que atenda às necessidades dos usuários dentro de um cronograma e de um orçamento previsíveis.
 

Assim, o RUP mostra como o sistema será construído na fase de implementação, gerando o modelo do projeto e, opcionalmente, o modelo de análise que é utilizado para garantir a robustez. O RUP define perfeitamente quem é responsável pelo que, como as coisas deverão ser feitas e quando devem ser realizadas, descrevendo todas as metas de desenvolvimento especificamente para que sejam alcançadas.  

O RUP utiliza a Linguagem Unificada de Modelagem UML para especificar, modelar e documentar artefatos. A UML é um padrão definido pelo OMG e ter se tornado o padrão empresarial para a modelagem orientada a objetos. Por ser flexível e configurável, o RUP pode ser utilizado em projetos de pequeno, médio e grande porte.
 

A arquitetura básica do RUP se divide em duas dimensões (figura 01):

Figura 01


Horizontal: Representam o tempo de vida de um projeto, os aspectos do ciclo de vida do processo de engenharia de um sistema, de acordo com o decorrer do projeto. Essa dimensão demonstra o aspecto dinâmico do processo, suas fases, iterações e milestones.

Vertical: Representam os grupos de atividades lógicas que são realizadas durante o decorrer do tempo. Essa dimensão demonstra o aspecto estático do processo, que será composto por disciplinas, atividades, fluxos, artefatos e papéis.

O RUP incorpora as melhores práticas de desenvolvimento de software de acordo com as causas de sucesso apontadas pela indústria de software:
1) Desenvolvimento iterativo;
2) Gerenciamento de requisitos;
3) Arquitetura baseada em componentes;
4) Modelo visual de software;
5) Verificação contínua da qualidade de software;
6) Controle de mudança de software;

Desenvolvimento Interativo e Incremental

O RUP trata o desenvolvimento de software de uma maneira iterativa e incremental, ou seja, substitui o modelo clássico de desenvolvimento em cascata para uma abordagem um pouco mais dinâmica, dividida em iterações, onde, dentro de cada iteração, teremos a execução de cada uma de suas Disciplinas (figura 02), em proporção de acordo com a Fase do projeto.

Figura 02


Arquitetura e Casos de Uso

Em sua essência, dizemos que o RUP é “centrado na arquitetura” e “dirigido por casos de uso”. Isso significa que, para o RUP, os aspectos mais importantes do desenvolvimento de softwares (ou seja, os aspectos relacionados aos maiores riscos de um projeto de desenvolvimento) estão intimamente ligados à arquitetura, visto que ele mesmo define arquitetura como “tudo o que sobra quando você não pode mais tirar nada mais do sistema, mas ainda continua entendendo-o e explicando como ele funciona”. Sendo assim, devemos então tratar como centro (core) do nosso desenvolvimento, nossos requisitos arquiteturais do projeto.
Além disso, quando dizemos que o RUP é dirigido por casos de uso, mostramos que para solucionarmos um problema (o grande e único motivo para a criação de um sistema), devemos primeiro entender da melhor forma possível esse problema, dividi-lo e organizá-lo de uma maneira que todos os envolvidos no projeto de construção desse sistema (todos os stakeholders) possam compreender a situação. Para realizar essas atividades, o RUP encontra na UML a solução: Use Cases e seus atores.

Fases

O RUP organiza o desenvolvimento de software em quatro fases, onde são tratadas questões sobre planejamento, levantamento de requisitos, análise, implementação, teste e implantação do software. Cada fase tem um papel fundamental para que o objetivo seja cumprido, distribuídos entre vários profissionais como o Analista de sistema, Projetista, Projetista de testes, entre outros.

Fase de Concepção / Iniciação: Esta fase do RUP abrange as tarefas de comunicação com o cliente e planejamento. É feito um plano de projeto avaliando os possíveis riscos, as estimativas de custo e prazos, estabelecendo as prioridades, levantamento dos requisitos do sistema e preliminarmente analisá-lo. Assim, haverá uma anuência das partes interessadas na definição do escopo do projeto, onde são examinados os objetivos para se decidir sobre a continuidade do desenvolvimento.

Fase de Elaboração: Abrange a Modelagem do modelo genérico do processo. O objetivo desta fase é analisar de forma mais detalhada a análise do domínio do problema, revisando os riscos que o projeto pode sofrer e a arquitetura do projeto começa a ter sua forma básica. Indagações como “O plano do projeto é confiável?”, “Os custos são admissíveis?” são esclarecidas nesta etapa.

Fase de Construção: Desenvolve ou Adquire os componentes de Software. O principal objetivo desta fase é a construção do sistema de software, com foco no desenvolvimento de componentes e outros recursos do sistema. É na fase de Construção que a maior parte de codificação ocorre.

Fase de Transição: Abrange a entrega do software ao usuário e a fase de testes. O objetivo desta fase é disponibilizar o sistema, tornando-o disponível e compreendido pelo usuário final. As atividades desta fase incluem o treinamento dos usuários finais e também a realização de testes da versão beta do sistema visando garantir que o mesmo possua o nível adequado de qualidade.



Referências Bibliográficas:  

http://www.guiafar.com.br/portal/index.php?option=com_content&view=article&id=108%3Arup&catid=43%3Atecnologia-da-informacao&Itemid=169&lang=pt 
http://www.wthreex.com/rup/portugues/index.htm http://www.infoescola.com/engenharia-de-software/rup/
http://www.baguete.com.br/artigos/731/adilson-taub-junior/04/11/2009/rational-unified-process-rup