RUP – Rational Unified Process

RUP_Logo_01

RUP ou Processo Unificado de Desenvolvimento da Rational é uma metodologia. Pode ser entendido também como conjunto de atividades a serem realizadas para produzir ou evoluir um software.

Objetivo
Tem como principal objetivo atender as necessidades dos usuários e garantir uma produção de softwares de alta qualidade, cumprindo um cronograma e um orçamento previsível.

uml_logo

Utilizado para apoiar o desenvolvimento orientado a objetos, fornecendo uma forma sistemática para se obter vantagens no uso da UML.

Pode ser encontrado também como um software fornecido pela Rational Software.  RUP download.

download (1)

Em 2003 foi adquirido pela IBM, tendo a Rational Software Corporation como sua criadora.

Principais características:

  • Baseado em boas práticas de desenvolvimento;
  • Framework para processos;
  • Iterativo e Incremental;
  • Guiado por Use Cases que são usados durante todo o processo de desenvolvimento;
  • Baseado na arquitetura do sistema, pois a arquitetura guia o projeto e implementação das diversas partes do sistema para se conseguir as 5 visões;
    imagen11
  • Centrado na arquitetura;
  • Utiliza UML para especificar, modelar e documentar artefatos de um sistema. Para implementação em Java ou outra linguagem de programação OO;
  • Definição de métodos onde se define como as coisas deverão ser feitas.
  • Definição de prioridades onde se define quando as coisas de vem ser realizadas, descrevendo metas de desenvolvimento a serem alcançadas.
  • É bem definido e estruturado – define claramente que é responsável pelo que, como as coisas devem ser feitas e quando fazê-las, provê uma estrutura bem definida para: ciclo de vida de um projeto, articulando claramente os marcos ;

Fases
A organização do desenvolvimento de software é definida pelo RUP definindo quatro fases, sendo INICIALIZAÇÃO, ELABORAÇÃO com 2 sub-fases, CONSTRUÇÃO com 4 sub-fases E TRANSIÇÃO com 2 sub-fases.

images (3)

As fases citadas tratam questões como questões como levantamento de requisitos, análise, implementação, teste e implantação do software. Estas questões têm maior ou menor no desenvolvimento de software dependendo da fase do desenvolvimento Veja alguns detalhes de cada fase a seguir:

  • Fase de Criação – Neste momento são estabelecidos o escopo e viabilidade econômica do projeto;
  • Fase de Elaboração – São analisados e eliminados os principais riscos e defines-se uma arquitetura estável.
  • Fase de Construção – Concluí-se o desenvolvimento do projeto,desenvolve-se o código fonte e design do aplicativo. Também nesta fase o software é testado a fim para conferir se o objetivo do projeto foi cumprido.
  • Fase de Transição – Nesta fase faz-se o ajuste fino, onde os ajustes finais podem ser baseados em feedback, usabilidade ou problemas de instalação.

As fases e disciplinas são exibidas no gráfico de baleias abaixo:

graficoRUP (1)

Disciplinas de Engenharia

São seis as disciplinas:

  • Modelagem de Negócios;
  • Requisitos;
  • Análise e Projeto (“Design”);
  • Implementação;
  • Teste;
  • Implantação.

Disciplinas de Apoio

As disciplinas de apoio/suporte são:

  • Ambiente;
  • Configuração e Gerência de Mudança;
  • Gerência de Projeto.

Conceitos chave da metodologia

  • Linguagem padrão;
  • Ferramentas de apoio;
  • Equipes treinadas;
  • Fases e Iterações;
  • Modelos;
  • Guias e Padrões;
  • Fluxo de Atividades;
  • Atividades – Unidade de trabalho composta de: objetivos, passos, entradas e saídas, responsável, guias e padrões;
  • Artefatos – Resultantes das atividades, possuem modelos para indicar como devem ser feitos e padronizar os formatos dos documentos;
  • Responsáveis(papéis e perfis, não pessoas) – Gerente, Analista, Desenvolvedor, Testador, Documentador…

Benefícios

  • Qualidade de software;
  • Produtividade no desenvolvimento, operação e manutenção de software;
  • Permite ao profissional controle sobre o desenvolvimento dentro de custos, prazos e níveis de qualidade desejados;

Como alcançar os benefícios citados?

Deve ficar claro que os benefícios não vêm de imediado, é necessário treinamento adequado, adaptação da metodologia ao contexto no qual será utilizada, apoio especializado para as equipes de desenvolvimento e tempo para absorção da metodologia.

Vantagens

  • Processo robusto e bem definido com a geração de artefatos importantes;
  • Os maiores riscos são atacados primeiro, diminuindo as chances de fracasso do projeto.

Desvantagens

  • Complexo e trabalhoso para projetos de pequeno porte;
  • Exige experiência da equipe.

Elementos

São cinco os elementos principais do RUP:

  • Papéis – Ex: Analista de Sistema,Projetista,Projetista de Teste;
  • Atividades – Ex: Planejar, encontrar casos de uso, rever projeto;
  • Artefatos – É um pedaço de informação/produto produzidos durante o desenvolvimento de um projeto, podendo ser modificado ou utilizado em um processo utilizados como entrada de atividades e produzidos como saída.
  • Fluxos de Trabalho – Podem ser representados por diagramas de sequência, colaboração e de atividades, são três tipos: fluxos de trabalho principais associados a cada disciplina, fluxos de trabalho detalhe para detalhar cada fluxo principal e planos de iteração que mostram como a iteração devera ser executada;
  • Disciplinas – É uma coleção de atividades relacionadas que fazem parte de um contexto em um projeto.

RUP possui conceito semelhante ao XP (eXtreme Programming) onde só é produzido aquilo que é realmente útil e necessário e o plano de desenvolvimento é atualizado durante todo o processo de desenvolvimento de software.

itil

Conclusão

Nesta pesquisa sobre RUP pude concluir que o mesmo pode ser é uma boa opção para aumento de produtividade, qualidade de software, melhorias na manutenção, testes, controle de entrega e com fases e papeis muito definidos. Para projetos de pequeno porte pode não ser muito vantajoso por ser mais burocrático e trabalho. Em resumo o RUP pode ser entendido como um conjunto de metodologias da Engenharia de software utilizando um pouco de cada uma afim de garantir qualidade no desenvolvimento.

Obtenha maiores informações sobre o assunto em http://www-01.ibm.com/software/rational/rup/.

Sobre o Autor:

 fotoazulCarl Edwin Antonio Nascimento é especialista formando em MBA em Desenvolvimento de Software Web pela UNIP, Analista de Sistemas formado pela Faculdade Anhanguera.

Cursou Formação Java Avançado – Laboratório Web com JSF2 com CDI na Caelum–SP em 2013, cursou também Formação Java e AWB(JSF) pela infoSERVER. Seu primeiro contato

com programação na Microcamp onde se formou como Web Design Developer 2008.

Atualmente é Analista Programador Java em uma empresa de Monitoramento e Rastreamento, trabalhou também como Programador pela consultoria InfoSERVER prestando serviço para o Banco
Bradesco 2010-2012 e ministrou aulas como professor de informática 2010–2011.

 

Referências:

http://www.webopedia.com/TERM/R/RUP.html

http://www.infoescola.com/engenharia-de-software/rup/

http://www.inf.ufpr.br/silvia/ESNovo/SweES/pdf/RUPAl.pdf

http://pt.wikipedia.org/wiki/IBM_Rational_Unified_Process

http://www.angusyoung.org/arquivos/artigos/trabalho_rup.pdf

http://www.cin.ufpe.br/~if717/slides/3-visao-geral-do-rup.pdf

http://tec4rup.wordpress.com/2010/05/26/vantagens-e-desvantagens-do-rup/

http://tec4rup.wordpress.com/2010/05/26/disciplinas/

http://javafree.uol.com.br/artigo/871455/Obtendo-Qualidade-de-Software-com-o-RUP.html

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s