Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Resumo Abstract
Atualmente, existem vários estudos relacionados à área de Currently, there are several studies related to the area of
metodologias desenvolvedoras de software, principalmente software development methodologies, especially when
quando se fala de RUP e XP. Esses dois métodos são speaking of RUP and XP. These two methods are recent,
recentes, o primeiro é um refinamento de metodologias the first is a refinement of object-oriented methodologies,
orientadas a objetos, contendo suas técnicas e práticas, já o containing his techniques and practices, since XP is
XP é considerado uma metodologia ágil, visando o código considered an agile methodology, targeting the main
como atividade principal. Para a melhor escolha de uma activity code. To the best choice of one of these methods, a
dessas metodologias, foi elaborado um estudo com as study was undertaken with the best of each one, so that
melhores práticas de cada uma, para que futuros artefatos future software artifacts can be developed using the best
de software possam ser desenvolvidos utilizando o melhor method, in less time and with less cost. In the case of
método, em menos tempo e com o menor custo. No caso do eXtreme Programming, we will use the practices already
eXtreme Programming, utilizaremos as práticas, já na used in the RUP methodology are its phases and activities.
metodologia RUP são utilizadas suas fases e atividades. O The article will present the main characteristics of these
artigo irá apresentar as principais características dessas duas two approaches, making a connection between its most
metodologias, fazendo uma relação entre seus pontos mais relevant and the results that these methods can achieve
relevantes e os resultados que esses métodos conseguem when properly used in the process of software production.
alcançar quando bem empregadas no processo de produção Comparing these two methodologies, the article shows the
de software. Comparando essas duas metodologias, o artigo project types for which each is indicated. This can help the
mostra os tipos de projeto para que cada uma delas é developer understand group each type of project, and
indicada. Isso pode ajudar o grupo desenvolvedor a evaluate what is the best methodology to be used. This
entender melhor cada tipo de projeto, e avaliar qual é a article aims to clarify what is the most appropriate
melhor metodologia a ser utilizada. Este artigo visa methodology for projects that are made according to its
esclarecer qual é a metodologia mais indicada para que features and specifications.
projetos sejam feitos de acordo com suas funcionalidades e
especificações. Keywords: RUP, XP, methodologies, best practices.
1 Objetivo
Palavras-chave: RUP, XP, metodologias, melhores
práticas. Abordar as principais características das
metodologias de desenvolvimento de software
1
RUP (Rational Unified Process) e XP (eXtreme baseado em orientação a objeto, por volta de
Programming). Fazendo uma comparação dessas 1990, surgiram vários métodos trazendo esse tipo
características, definindo para a melhor de desenvolvimento. Os modelos de processos
metodologia para cada tipo de projeto. Este de software voltados a orientação a objeto
artigo foi elaborado com pesquisas em outros apresentam como característica criar e manter
artigos, teses e livros que abordam comparações modelos, e por ter uma documentação detalhada
entre essas duas metodologias. No capitulo 2, foi em todas as fases do seu desenvolvimento.
apresentado conceitos sobre os processos de Segundo Moreira 2007, essas metodologias são
desenvolvimento de software. Na seção 3 e 4, denominadas rigorosas porque apresentam muito
são descritas as características das metodologias rigor em suas premissas e propostas, além da
rigorosas e ágeis, respectivamente, incluindo grande quantidade de papeis, documentos,
seus processos de desenvolvimento. No capitulo atividades e pessoas em sua implementação, por
5, é apresentado a comparação dessas duas isso, também são conhecidas como metodologias
metodologias. Por fim, na seção 6, estão as pesadas. Nessas metodologias, o emprego de
considerações finais. tantas pessoas mostra que boa parte do tempo
elas estão ocupadas com atividades que não estão
2 Processos de desenvolvimento diretamente ligadas ao desenvolvimento do
de software projeto.
Segundo Nonemacher 2003, os processos de
desenvolvimento de software foram criados para
3.1 Rational Unified Process - RUP
representar as atividades envolvidas na produção
Segundo Nonemacher 2003, o Rational Unified
de software em alto nível. Existem várias
Process (RUP) é a concretização da utilização do
metodologias de desenvolvimento de software,
Unified Process feita pela Rational. A Rational é
cada uma delas apresenta atividades e níveis de
uma organização que resultou da junção de três
detalhes diferentes. Um mesmo artefato pode ser
dos grandes protagonistas dos métodos de
produzido de diversas formas, mas alguns
análise, concepção e desenvolvimento orientado
processos são mais indicados para aplicações
aos objetos. Foi efetuado um esforço das várias
especificas. Caso seja aplicado um método
notações e fases dos processos defendidos por
ineficiente, isso pode comprometer a
Grady Booch, James Rumbaugh e Ivar Jacobson,
funcionalidade e qualidade do artefato de
tendo convergido numa abordagem comum, que
software.
dá origem a uma ferramenta comercial que usa
2
em 1998, chamada RUP 5.0, sendo gerado da Rose, Rational RequisitePro, Rational ClearCase,
evolução de projetos anteriores. Rational ClearQuest, Rational Suite TestStudio.
Segundo Moreira 2007, o RUP é uma
metodologia de desenvolvimento de software
3.1.1 Elementos do RUP
que utiliza técnicas comerciais para que o
Segundo Vasco 2007 (et al.), a organização do
produto seja gerado com mais qualidade. Tem
modelo do RUP é baseada nos elementos
como principal objetivo garantir que o produto
essenciais, definidos como estruturais e de
desenvolvido tenha um alto grau de qualidade,
comportamento. Esses elementos podem criar
respeitando os requisitos do cliente, com prazos e
um conjunto de pacotes componentes de
custos determinados.
processo, eles definem o modelo de processo. No
RUP, as atividades são realizadas por papeis, ou
melhor, pessoas e grupos assumem determinados 3.1.2 Dimensões dos processos
papeis no projeto. Os artefatos são produtos de Segundo Nonemacher 2003, os processos no
trabalho do processo. RUP podem ser divididos em duas dimensões: a
Um tipo de elementos existente no RUP, que primeira dimensão apresenta os aspectos
complementa os elementos principais com dinâmicos e sua ordenação, ciclos, fases,
orientações adicionais sobre o processo é iterações, entre outros itens. Já a segunda
definido como atividades de suporte. Não dimensão mostra aspectos estáticos, descrevendo
apresentam terminologia em UML, portanto não atividades, artefatos, participantes e os fluxos do
são elementos de processo. O RUP apresenta trabalho.
algumas perspectivas típicas:
3
funcionalidades e da arquitetura a ser Requisitos (Requirements): descreve o
implementado; que o sistema deve fazer, sendo elo de ligação e
Construção: Implementação do código. concordância entre o programador e o cliente.
Em grandes projetos essa fase é dividida em Análise e Design (Analysis and Design):
várias iterações, para que sejam resolvidos em mostra como a implementação será realizada,
partes menores, mais fáceis de gerenciar; tem como resultado o desenho e a análise de
Transição: o artefato é entregue ao modelo.
cliente. Pode haver treinamento para futuros Implementação (Implementation): define
usuários e avaliação do produto. a organização do código;
Com a divisão do RUP em fases, isso acaba Testes (Test): verificam a integridade
permitindo que cada etapa será desenvolvida entre os objetos, e entre todos os componentes do
através da repetição de todo o ciclo, para que software, garante que todos os requisitos tenham
todos os detalhes do projeto sejam somados para sido implementados, e que os defeitos foram
gerar o produto final. identificados antes da instalação do software.
Segundo Moreira 2007, o RUP também pode ser Implantação (Deployment): disponibiliza
utilizado em projetos de pequeno e médio porte, o sistema para seus usuários finais, tem como
tanto no desenvolvimento quanto manutenção. atividades o lançamento externo, distribuição,
Para que isso possa ser possível, algumas das instalação e suporte aos usuários.
fases seriam eliminadas, diminuindo a Os fluxos de trabalho de suporte possuem
documentação, deixando o RUP mais informal. atividades que acontecem ao decorrer do projeto,
e contribuem com o sucesso do produto final. As
4
Ambiente (Enviroment): é o termo usado desenvolver e implantar o sistema, como, por
para todos os itens de que o projeto precisa para exemplo, ferramentas, processo e templates.
Segundo Vasco 2007 (et al.), um papel é a Gerente de Projeto, Gerente de Controle de
5
identificar requisitos com mais facilidade; - Qualidade de processo: qualidade dentro
descobrindo os riscos de melhor forma. do projeto de desenvolvimento.
Visually Model Software (Modelar Segundo Flower 2005, o RUP sendo aplicado
importante que documentação excessiva; de ação com base nos artefatos de revisão e
importante que negociação do contrato; projeto flexível, diminui os custos das possíveis
mudanças. O código é como um índice de
Reagir a mudanças é mais importante
progresso de projeto. O ciclo de vida do XP é
que seguir um plano.
dividido em seis fases:
Um dos objetivos dessa metodologia é eliminar
Exploração: cliente escreve cartões com
pontos fracos, como o analise de riscos, sem
estórias, contendo funcionalidades para a
que isso as deixem com características de
primeira versão;
metodologias pesadas.
Planejamento: definição da prioridade
entre as estórias junto com os clientes. Nessa
4.1 Extreme Programming fase os programadores definem o esforço e
Segundo Soares, o XP é uma metodologia para cronograma para cada estória;
equipes pequenas e médias, e projetos com Iterações: divisão em diversas fases ate
requisitos vagos e voláteis. Os requisitos são a 1º versão ser completada. Na 1º iteração é
apresentados pelos clientes em documentos criado o sistema com sua arquitetura, nas
chamados de estórias (stories). Após a próximas iterações serão adicionados as
compreensão das estórias, a equipe planeja as funcionalidades estabelecidas desse sistema;
tarefas necessárias para a implementação das Validação: testes extensivos e
estórias. Essas tarefas são realizadas por papeis, validações de software são realizados;
cada papel é responsável por determinados Manutenção: após a 1º versão, existem
artefatos. Os artefatos são produtos do outras funcionalidades a ser adicionadas ao
processo. Segundo Flower 2005, o XP não sistema;
possui pré-requisitos para obter certificação do Morte: não havendo mais estórias a ser
CMM. implementadas e cliente estando satisfeito com
o código, o desenvolvimento chega ao final.
7
Figura 2 - Fases do XP
8
“Big Boss”: responsável pelo projeto, - Metáfora (Metaphor): analogia que facilita o
toma as decisões, mantêm comunicação com a entendimento da equipe em relação ao projeto;
equipe para diagnosticar problemas ou falhas - Código padrão (Coding standards): o código
no processo. escrito segue um padrão da equipe;
- 40 horas por semana (40-hour week): a
semana de trabalho deve possuir 40 horas
4.1.3 Praticas do XP
semanais;
As praticas do XP são uma de suas forças. Elas
- Programação em par (Pair programming):
se apóiam mutuamente, já que individualmente
desenvolvimento em pares, melhorando a
mostram falhas. Segundo Nonemacher 2003, as
qualidade do código e design;
praticas do XP são divididas em três categorias:
- Versões pequenas (small releases): colocar
Programação em funcionamento um sistema simples,
- Projeto simples (Simple design): simplicidade liberando novas versões em ciclos curtos;
no projeto, removendo complexidades Processos
desnecessárias; - Cliente presente (On-site customer): incluir o
- Testes (Testing): testes de unidade devem ser cliente na equipe para que ele responda
executados desde o inicio ao final de cada perguntas e defina prioridades referentes ao
funcionalidade adicionada; projeto que devem ser implementadas;
- Reconstrução (Refactoring): melhoria do - Testes (Testing): testes de unidade devem ser
código sem alterar seu resultado; executados desde o inicio ao final de cada
- Código padrão (Coding standards): o código funcionalidade adicionada;
escrito segue um padrão da equipe; - Versões pequenas (small releases): implantar
Equipe um sistema simples, liberando novas versões
- Propriedade coletiva (Collective ownership): em ciclos curtos;
o código pertence a equipe, sendo assim, - Planejamento do jogo (Planning game):
qualquer dupla de programadores pode alterar o determina o escopo da próxima versão,
código; combinando estimativas técnicas com
- Integração continua (Continuous integration): prioridades do negocio.
integrar e atualizar versões dos projetos
periodicamente;
9
diferenças no que se diz respeito a forma e Boss”, mas não distingue as funções, sendo que
freqüência que os artefatos de software são um programador pode atuar em outro papel.
gerados, volume de papeis, entre outros.
5.4 Ferramentas
Segundo Vasco 2007 (et al.), o RUP utiliza
5.1 Divisão de tempo softwares da IBM como ferramenta, como o
Cada fase do RUP possui um grande numero de Rational Rose. O XP não utiliza nenhuma
iterações, produzindo ao final delas uma nova ferramenta especifica no seu processo, mas
versão de software. No XP o item relacionado existem ferramentas livres como o XPlanner e
ao tempo é o código produzido. O tempo é Junit.
gasto com as iterações do RUP é o mesmo
gasto nas versões do XP.
5.5 Código
Segundo Vasco 2007 (et al.), o RUP divide o
5.2 Artefatos código em subsistemas, cada subsistema tem
Segundo Nonemacher 2003, artefato é uma membros responsáveis pela sua execução. No
informação que pode ser produzida, modificada XP, o código é tratado coletivamente, qualquer
ou usada por um processo. No RUP, a programador que encontrar um erro ou trecho a
comunicação é feita através de artefato. Já no ser otimizado, pode alterar o código.
XP, a comunicação é baseada em comunicação
oral, direta, podendo aLumentar o risco do
5.6 Certificações
projeto.
Segundo Moreira 2007, as certificações
existem para garantir o conhecimento nessas
5.3 Atividades e papeis metodologias. Atesta quem está em
Segundo Vasco 2007 (et al.), cada atividade do conformidade com as requisitos, normas ou
RUP é considerado como um trabalho realizado regulamentos. O Rational Unified Process
por um papel, utilizando artefatos de entrada v2003 Certification test é a certificação base do
para gerar artefatos de saída. Os papeis RUP. Já no XP, não existe uma unidade
utilizados no RUP (descritos no item 3.1.3) certificadora.
estão agrupados em suas atividades. O XP
apresenta como atividades a produção de
5.7 Diretivas de projeto
código, testes, listening e design. Com isso,
Segundo Vasco 2007 (et al.), o RUP se baseia
define sete papeis: Programador, Cliente,
em casos de uso. No XP, o projeto é baseado
Testador, Tracker, Técnico, Consultor e o “Big
em testes. O projeto é guiado por estórias do
10
cliente, mostrando aos programadores o que 6 Considerações Finais
deve ser implementado. As estórias utilizadas
As metodologias de desenvolvimento de
no XP mais simples se comparadas com os
software Rational Unified Process e eXtreme
casos de uso usados no RUP. Nenhuma duas
Programming buscam em suas praticas e
das metodologias indicam planejamento de
processos reduzir custos e aumentar a
detalhes. O RUP indica modificações continua
qualidade do software produzido. Tanto o RUP
dos planos, o XP planeja os detalhes só no
como o XP buscam alcançar estes objetivos,
futuro.
mas de formas diferentes, implementando de
Prática ou conceito RUP XP formas diferentes. De forma geral, o XP é mais
Iterativo e incremental Sim Sim indicado para equipes pequenas, e projetos com
requisitos voláteis ou que mudem com
Voltado para a arquitetura Sim Não
freqüência. Sua ênfase está na comunicação,
Voltado para a validação Não Sim
restringindo sua aplicação em projetos distantes
Desenvolvedor/cliente Não Sim geograficamente. As atividades são dividas em
Desenvolvedor/gerente Sim Não papeis, mas não são muito específicos, já que
Desenvolvedor/suporte Sim Sim os envolvidos no projeto podem mudar de
função. O RUP possui uma boa definição de
Gerenciamento de Risco Sim Sim
suas atividades. A estruturação do RUP
Qualidade de código Não Sim
baseada na utilização de softwares permite que
Pré – requisitos CMM Sim Não o RUP seja usado em projetos grandes,
Equipes grandes Sim Não podendo atingir longas distancias com um
Equipes pequenas Não Sim custo adicional na gerencia do projeto, item que
seria injustificável em pequenas equipes.Além
Projetos complexos Sim Não
disso, essas metodologias apresentam em
Casos de uso Sim Sim
comum o envolvimento com o cliente,
Tabela 1: Comparativo entre RUP e XP.
iterações, testes contínuos e flexibilidade.
Com a analise da tabela abaixo (tabela 1),
Contudo, seria mais indicado para projetos
podemos concluir que, enquanto o RUP tem
menores a utilização do XP, e o uso do RUP
foco em projetos complexos, onde se fazem
para projetos maiores, devido sua maior
necessárias especificações maiores do projeto.
complexidade de requisitos, comunicação e
O XP tem seu foco em projetos mais simples,
documentação.
onde a burocracia caracterizam perda de tempo.
11
7 Referências bibliográficas L.F.A. Integração de UP, RUP e XP na
definição de um processo de desenvolvimento
de software. Cornélio Procópio, p.12.
FLOWER, H. UML essencial: um breve guia
para a linguagem-padrão de modelagem de
objetos. 3ª ed. Artmed.Porto Alegre, 2005. OKTABA. H.; PIATTINI. M. Software
MOREIRA, A. M. Metodologias de
desenvolvimento: um comparativo entre VASCO C. G.; VITHOFT M. H.; ESTANTE
eXtreme Programming e Rational Unified. São P. R. C. Comparação entre Metodologias RUP
Paulo. 12 p. e XP. Curitiba, p.8.