Upload
doantuyen
View
214
Download
0
Embed Size (px)
Citation preview
11 de maio de 2006 Fundamentos de Engenharia de Software - PPGIA
1
Comparação entre MetodologiasRational Unified Process (RUP)
eeXtreme Programming(XP)
Fundamentos de Engenharia de Software PPGIA
Carlos G. Vasco, Marcelo H. Vithoft, Paulo R. Estante
Design and programming are human activities; forget that and all is lost. Bjarne Stroustrup, 1991
11 de maio de 2006 Fundamentos de Engenharia de Software - PPGIA
2
Introdução
Sucesso projeto = planejamento + escolha metodologia adequadaPlanejamento- escolha do processo de acordo com recursos disponíveis.
Metodologias� Tradicional (waterfall)- etapas seqüências. Grande esforço em especificar e definir arquitetura.
� Cíclica (RUP e XP)- ciclos reduzem riscos quando ocorrem alterações de requisitos ou funcionalidades.
Cíclica divide-se em:� Iterativas- forma incremental, a cada iteração nova parte, aprendizado da equipe. Iteração meses.
� Ágeis- redução riscos, a cada iterações liberada uma versão com restrições. Foca aspectos humanos. Iteração semanas.
11 de maio de 2006 Fundamentos de Engenharia de Software - PPGIA
3
RUP
Objetivo: Processo busca disciplinar atribuições de tarefas e responsabilidades
Guia para produção de SW onde o desenvolvimento iterativo auxilia no refinamento e redução de riscos.
Valores:-Projeto baseado em casos de uso (base)-Faz-se aderência do processo-Suportado por ferramentas
Elementos primários:-Papéis (quem está fazendo o que)-Artefatos (o que é produzido)-Atividades (como o trabalho é conduzido)-Workflows (quando uma tarefa é conduzida)
11 de maio de 2006 Fundamentos de Engenharia de Software - PPGIA
4
RUP Arquitetura
Executadas durante todo projeto (intensidade variada). 4 fases definidas
Iterações, várias dentro de uma fase.
Aspecto dinâmico
Ciclos, fases, iterações e milestones.
Aspecto estático
Atividades
Disciplinas
Artefatos
Papéis
11 de maio de 2006 Fundamentos de Engenharia de Software - PPGIA
5
XP
Objetivo: Processo estressa trabalho em equipe, feedback e a comunicação
Elemento chave é iteração. Principal tarefa codificação.Atender demanda em cenários onde os requisitos não estão claros ou são voláteis.
Valores:-Comunicação-Feedback-Simplicidade-Coragem
Atividades:-Codificação-Teste-Escuta-Projeto
Papéis:-Programador-Cliente (membro da
equipe!)-Testador-Tracker(feedback)-Líder(Couch)
11 de maio de 2006 Fundamentos de Engenharia de Software - PPGIA
6
XP Arquitetura
6 fases
11 de maio de 2006 Fundamentos de Engenharia de Software - PPGIA
7
XP
Porque XP é designada como ágil? Iterações freqüentes.
Principal tarefa
11 de maio de 2006 Fundamentos de Engenharia de Software - PPGIA
8
Comparativo
Análise inicial indica que RUP/XP possuem mesma estrutura (baseadas iterações, orientadas a cliente e definição de papéis)
Formas de análise mais detalhadas:• Quantitativa (necessário 2 projetos em paralelo, custo elevado)Itens mensuráveis, papéis, artefatos, esforço, etc.
• Qualitativa (avaliação por framework, mais barata) FrameWork- conjunto de questões extendidas para domínio específico.
Zachman´s, 6 categorias: o que, como, onde, quem, quando e porque (foco em funções e processos)
Checkland´s Client Actor Transformation World OwnerEnvironment (foco em indivíduos)
11 de maio de 2006 Fundamentos de Engenharia de Software - PPGIA
9
Comparativo (questões)
� O que (what)?
RUP- evoluiu junto UML. Grandes projetos. Tool comercial(Rational/IBM)
XP- método leve para times pequenos e médios. Tool freeware.
� Porque (why)? 3 perpectivas (vantagens/desvantagens)
Técnica-RUP pacote ferramentas/docs. XP simplicidade(livre tool)
Financeira-RUP licença tool, suporte IBM. XP porque pagar tool?Social- mesma linha da discussão comercial vs freeware
� Quando/Onde (when/where)?
Tempo- RUP 4 fases seqüenciais, é 1 ciclo de desenv., gera 1 versão SW. XP foca código produzido (independente tempo)
Localização- RUP aplica-se melhor a projetos com grande distribuição (comunicação baseada em artefatos). XP comunicação oral (pouca documentação) dificuldade com distribuição.
11 de maio de 2006 Fundamentos de Engenharia de Software - PPGIA
10
Comparativo (questões)
� Como (how)?
Extensão- RUP grande coleção de docs, papéis, descrições, atividades. “pesado” . XP “leve” poucos papéis, poucos docs.
Flexibilidade- 2 dizem ser, RUP pelo tayloring e XP mudanças baseadas em feedback.
Drivers- RUP (casos de uso) descrições são implementadas, integradas e testadas. XP (projeto baseado em teste) casos de teste criados antes do código. Estórias para guiar o que deve ser implementado.
Planejamento- Completo não pode ser feito em detalhes. RUP mudanças contínuas. XP somente o futuro muito próximo.
� Quem (who)?
XP- foca no desenvolvedor individual (poder ao nível técnico), time(programação par, cliente faz parte equipe).
RUP- enfâse em papéis (tayloring), documentação (necessário motivar equipe para criá-la e mantê-la)
11 de maio de 2006 Fundamentos de Engenharia de Software - PPGIA
11
Comparação
Artefatos (Modelos, códigos, etc)
Adquiridas IBM
Análise detalhada,Milestones
49 30
Uso em grandes projetos (Distribuição Geográfica)
Oral, Cartões de Estória
Não especifica, porém háSoftwares Livre para XP
Maior esforço em produzir o software
647
Restrito as projetos “locais”
Comunicação /Documentação
Ferramentas
Planejamento
Fases / Disciplinas /
Papéis
Magnitude de Projetos
RUP XP
11 de maio de 2006 Fundamentos de Engenharia de Software - PPGIA
12
Conclusão
Apesar de metodologias iterativas, muitas palavras chaves e valores parecidos, são diferentes.
RUP- larga descrição processo, artefatos, papéis, atividades...XP- extressa valores e princípios, foca na liberdade e simplicidade.É possível paralelo com Windows (comercial) e Linux(freeware).
Qual atende melhor?� Necessário mais estudos de caráter qualitativos e quantitativos.
11 de maio de 2006 Fundamentos de Engenharia de Software - PPGIA
13
Referências
• Smith, J. (2003) "A Comparison of the IBM Rational Unified Process and eXtreme Programming", IBM Whitepaper, ftp://ftp.software.ibm.com/software/rational/web/whitepapers/2003/TP167.pdf, Abril.
• Abrahamsson, P., Salo, O., Ronkainen, J. and Warsta J. (2002) "Agile Software Development Methods: Review and Analysis", Espoo 2002, VTT Publications 478.
• Beck, K. and Fowler, M. (2000) "Planning Extreme Programming", Addison Wesley, 1a edição.
• Kruchten, P. (2000) "The Rational Unified Process – An Introduction", Addison-Wesley 2a edição.
• Luiz, R. (2005) “Obtendo Qualidade de Software com o RUP”, TCC, Universidade de Uberaba.
• Runeson, P. and Greberg, P. (2004) "Extreme Programming and Rational Unified Process – Contrasts or Synonyms?", Lund University, Sweden.