TWiki home XP > XP > RUPeXP (r1.1 vs. r1.7) XP webs:
Main | TWiki | Sandbox | Portugues
XP . { Bugzilla Últimas atualizações Busca Registro Sobre o TWiki }
 <<O>>  Difference Topic RUPeXP (r1.7 - 09 Nov 2004 - LeonardoNoleto)
Line: 1 312 to 1 313
Added:
>
>
META FILEATTACHMENT apresentacao_XPeRUP_09-11-04.sxi attr="" comment="Apresentação" date="1100033285" path="apresentacao_XPeRUP_09-11-04.sxi" size="19715" user="LeonardoNoleto" version="1.1"
META FILEATTACHMENT apresentacao_XPeRUP_09-11-04.pdf attr="" comment="" date="1100033300" path="apresentacao_XPeRUP_09-11-04.pdf" size="144203" user="LeonardoNoleto" version="1.1"

 <<O>>  Difference Topic RUPeXP (r1.6 - 07 Nov 2004 - LeonardoNoleto)
Line: 1 250 to 1 250
Changed:
<
<
Comparativo de quantidade de erros e tempo de desenvolvimento para as duas metologias    
>
>
Comparativo de quantidade de erros e tempo de desenvolvimento para as duas metologias
Line: 265 to 265
Changed:
<
<
LOC, quantidade de erros e índice de erros por linha de código        
Metodologia Linhas de códigos Quantidades de erros Erros/Linha de código Erros/Linha de código(%)
RUP 1433 12 0.008 0.837%
XP 1695 21 0.01 1.23%
>
>
LOC, quantidade de erros e índice de erros por linha de código
Metodologia Linhas de códigos Quantidades de erros Erros/Linha de código Erros/Linha de código(%)
RUP 1433 5 0.003 0.349%
XP 1695 22 0.01 1.30%
Line: 270 to 271
Added:
>
>
Comparativo da quantidade de erros e tempo de desenvolvimento para as duas metodologias
Metodologia Quantidade erros Tempo em horas Erros/hora
XP 9 3.9 1.93
RUP 4 4.67 1.03

Durante as atividades do desenvolvedores de XP no 2º ciclo foram registrados 9 erros e nas atividades de RUP 4, perfazendo um índice de 1.93 e 1.03 erros por hora de desenvolvimento, respectivamente. As atividades de desenvolvimento do 2º ciclo foram para alterar o software, corrigindo os incidentes encontrados durante a fase de testes do 1º ciclo.

Conclusão

No tocante ao tempo total necessário para o desenvolvimento, testes e entrega do produto de software, utilizando-se cada uma das metodologias observou-se que a metodologia RUP e XP apresentaram resultados praticamente equivalentes, sendo 39 e 40 horas respectivamente. A justificativa para estes resultados está no fato que mesmo dedicando um tempo considerável na metodologia RUP para a modelagem documentação, atividades que não se aplicam ao XP, a atividade de criação de scripts de testes no XP fizeram com que o resultado final fosse praticamente idêntico.

Em relação à ocorrência de erros, notou-se que nas etapas de projeto e implementação do 1º ciclo, o grupo de XP apresentou 42% a mais que o grupo de RUP. Mesmo tendo a vantagem que o custo de um erro detectado nestas fases ser inferior ao que detectado pela equipe de testes ou até mesmo no cliente, o que chama atenção é o fato da quantidade de erros produzidos pela equipe XP. Estes dados poderiam ser vistos por uma outra ótica, que devido aos scripts de testes feitos pelos desenvolvedores XP antes da implementação definitiva a quantidade de erros detectados nesta etapa seria maior que a do RUP, mas esta visão não se confirmou devido estas proporções de erros terem se mantido na etapa dos testes de aceitação realizados pela equipe de testes.

Comparando-se a aplicação das duas metodologias, identificou-se que a XP obteve um maior custo/benefício, tendo como base que os esforços de tempo necessário para o desenvolvimento e teste foram praticamente os mesmos e produziram um resultado final de menor qualidade, devido aos erros serem em maior quantidade que no RUP. Uma prova disso é a quantidade de erros por linhas de código. Além da equipe RUP conseguir um código mais enxuto, com menor número de linhas, o índice de erros por linha obtido por eles foi aproximadamente três vezes menor se comparado ao da equipe de XP.

Não é prudente e nem possível efetuar uma conclusão genérica, e sim, afirmar que neste caso, sob estas condições de parâmetros variáveis e escopo apresentado do projeto, obteve-se melhor resultado com a aplicação das técnicas e práticas sugeridas pelo RUP.

Line: 283 to 303
Changed:
<
<
>
>


 <<O>>  Difference Topic RUPeXP (r1.5 - 04 Nov 2004 - LeonardoNoleto)
Line: 1 40 to 1 40
Changed:
<
<
Neste trabalho iremos abordar duas das metodologia de desenvolvimento de software que atualmente estão em voga entre os profissionais de engenharia de software, o RUP (Rational Unified Process) e a XP ( Extreme Programming). A primeira integra o grupo das metodologias denominadas “peso-pesado” e aproveita a experiência e conceitos da Linguagem UML (Unified Model Language, Linguagem de Modelagem Unificada), enquanto a segunda encabeça o grupo das metodologias ágeis, também denominadas metodologias “peso-leve”.
>
>
Neste trabalho iremos abordar duas das metodologia de desenvolvimento de software que atualmente estão em voga entre os profissionais de engenharia de software, o RUP (Rational Unified Process) e a XP ( Extreme Programming). A primeira integra o grupo das metodologias denominadas “peso-pesado” e aproveita a experiência e conceitos da Linguagem UML (Unified Model Language, Linguagem de Modelagem Unificada), enquanto a segunda encabeça o grupo das metodologias ágeis, também denominadas metodologias “peso-leve”.
Line: 53 to 53
Changed:
<
<
  • Programming – Simple design (projeto simples), testing (testes), refactoring(reconstrução), coding standars(código padrão)
>
>
  • Programming – Simple design (projeto simples), testing (testes), refactoring(reconstrução), coding standars(código padrão)
Line: 55 to 55
Changed:
<
<
  • Team – Collective ownership (código coletivo), continuous integration (integração continua), metaphor (metáfora), pair programming (programação em par), small releases (versões pequenas)
>
>
  • Team – Collective ownership (código coletivo), continuous integration (integração continua), metaphor (metáfora), pair programming (programação em par), small releases (versões pequenas)
Line: 57 to 57
Changed:
<
<
  • Process – On-site customer (cliente no local), testing (testes), small releases (versões pequenas), planning game (planejamento do jogo)
>
>
  • Process – On-site customer (cliente no local), testing (testes), small releases (versões pequenas), planning game (planejamento do jogo)
Line: 63 to 63
Changed:
<
<
RUP surgiu em 1998, apesar disso contempla em suas origens idéias e experiências vividas nos últimos trinta anos, em especial abordagens seguidas na Ericson onde trabalhou Ivar Jacobson, que mais tarde juntamente com Grady Booch e James Rumbaugh, denominados de “três amigos”, começaram as iniciativas para unificação das metodologia desenvolvidas desde 1981 na Rational. O resultado foi o Rational Objectory Process que a partir de 1998 passou-se a chamar Rational Unified Process.
>
>
RUP surgiu em 1998, apesar disso contempla em suas origens idéias e experiências vividas nos últimos trinta anos, em especial abordagens seguidas na Ericson onde trabalhou Ivar Jacobson, que mais tarde juntamente com Grady Booch e James Rumbaugh, denominados de “três amigos”, começaram as iniciativas para unificação das metodologia desenvolvidas desde 1981 na Rational. O resultado foi o Rational Objectory Process que a partir de 1998 passou-se a chamar Rational Unified Process.
Line: 103 to 103
Changed:
<
<
*Esta experiência foi retirada da dissertação de mestrado de Marcos Leandro Nonemacher, intitulada “Comparação e avaliação entre o processo RUP de desenvolvimento de software e a metodologia Extreme Programming”, submetido à Universidade Federal de Santa Catarina para obtenção do grau de Mestre em Ciência da Computação.
>
>
*Esta experiência foi retirada da dissertação de mestrado de Marcos Leandro Nonemacher, intitulada “Comparação e avaliação entre o processo RUP de desenvolvimento de software e a metodologia Extreme Programming”, submetido à Universidade Federal de Santa Catarina para obtenção do grau de Mestre em Ciência da Computação.
Line: 179 to 179
Changed:
<
<

Coleta do dados (Continua)

>
>

Coleta do dados

Durante o desenvolvimento das atividades dos dois grupos, a pessoa do apoio efetuava os registros dos erros conforme aconteciam.

Esses erros foram categorizados conforme a Tabela abaixo.(HUMPHREY, Watts S. - A Discipline for Software Enginnering).

10 Documentação 10.1 - Comentários
    10.2 - Mensagens
20 Sintaxe 20.1 - Escrita
    20.2 - Pontuação
    20.3 - Tipos
    20.4 - Formato das instruções
30 Pacote 30.1 - Gerenciamento mudança
    30.2 - Bibliotecas de programas
    30.3 - Controle de versão
40 Associação 40.1 - Declaração
    40.2 - Nomes duplicados
    40.3 - Escopo
    40.4 - Limites
50 Interface 50.1 - Chamadas de procedimentos e referências
    50.2 - I/O
    50.3 - Formatos
60 Checagem 60.1 - Mensagens de erros
    60.2 - Verificação inadequada
70 *Dados 70.1 - Estruturas
    70.2 - Conteúdos
80 Funções 80.1 - Lógica
    80.2 - Ponteiros
    80.3 - Loops
    80.4 - Recursividade
    80.5 - Computação
    80.6 - Defeitos de funções
90 Sistema 90.1 - Configuração
    90.2 - Tempo
    90.3 - Memória
100 Ambiente 100.1 - Projeto
    100.2 - Compilação
    100.3 - Teste
    100.4 - Outros problemas de suporte de sistemas

Tabela de erros do grupo de XP

Sintaxe (total 11)
20.1 - Escrita (4)
20.3 - Tipos (1)
20.4 - Formato das instruções (6)
Associação (total 2 )
40.1 - Declaração(2)
Funções (total 8 )*
80.1 - Lógica(8)
Total Geral : 21

Tabela de erros do grupo RUP

Sintaxe (total 2)
20.4 - Formato das instruções (2)
Interface (total 4 )
50.1 - Chamadas de procedimentos e referências(3)
50.3 - Formatos(1)
Funções (total 6 )*
80.1 - Lógica(6)
Total Geral : 12

Tempo de desenvolvimento dos grupos (em minutos)
XP -> 2160
RUP -> 2115

Comparativo de quantidade de erros e tempo de desenvolvimento para as duas metologias    
Metodologia Quantidade Erros Tempo em horas Erros/hora
XP 21 36 0.61
RUP 12 35.25 0.34

É perceptível que o tempo de desenvolvimento das equipes foi quase equivalente, porém a quantiadade de erros encontrados na etapa para as equipes foi diferente, registrou-se um diferença de 9 erros a mais para a equipe XP.

Análise dos erros por linha de código(LOC)

Esta métrica conta todas todas as linhas de código executável, ignorando comentários no software desenvolvido.

A contagem das linhas do código fonte foi feita a partir do Software Visual Source Safe 6.0.

Atráves dos dados obtidos com contagem das linhas e os dados obtidos na análise anterior foi gerada a seguinte tabela:

LOC, quantidade de erros e índice de erros por linha de código        
Metodologia Linhas de códigos Quantidades de erros Erros/Linha de código Erros/Linha de código(%)
RUP 1433 12 0.008 0.837%
XP 1695 21 0.01 1.23%
Line: 189 to 278
Changed:
<
<
NONEMACHER, Marcos Leandro - “Comparação e avaliação entre o processo RUP de desenvolvimento de software e a metodologia Extreme Programming”, submetido à Universidade Federal de Santa Catarina para obtenção do grau de Mestre em Ciência da Computação.
>
>
NONEMACHER, Marcos Leandro - “Comparação e avaliação entre o processo RUP de desenvolvimento de software e a metodologia Extreme Programming”, submetido à Universidade Federal de Santa Catarina para obtenção do grau de Mestre em Ciência da Computação.

 <<O>>  Difference Topic RUPeXP (r1.4 - 04 Nov 2004 - LeonardoNoleto)
Line: 1 45 to 1 45
Changed:
<
<
Extreme Programming usa times integrados de programadores, clientes, e gerentes para desenvolver software d alta qualidade em velocidade alta. Reúne também um conjunto de práticas de desenvolvimento de software já testadas, que estimuladas a sinergia entre elas gerarão vastas melhorias em produtividade global e satisfação do cliente. (HAYES, 2001)
>
>
Extreme Programming usa times integrados de programadores, clientes, e gerentes para desenvolver software d alta qualidade em velocidade alta. Reúne também um conjunto de práticas de desenvolvimento de software já testadas, que estimuladas a sinergia entre elas gerarão vastas melhorias em produtividade global e satisfação do cliente.
Line: 47 to 47
Changed:
<
<
Extreme Programming é uma disciplina de desenvolvimento de software baseada nos valores simplicidade, comunicação, realimentação, e coragem. Trabalha reunindo o time inteiro na presença de práticas simples, através do feedback permite a equipe ver onde ela está e afinar as práticas para situações únicas. (JEFRIES, 2002).
>
>
Extreme Programming é uma disciplina de desenvolvimento de software baseada nos valores simplicidade, comunicação, realimentação, e coragem. Trabalha reunindo o time inteiro na presença de práticas simples, através do feedback permite a equipe ver onde ela está e afinar as práticas para situações únicas.
Line: 67 to 67
Changed:
<
<
O RUP é um processo configurável pois um único processo não é satisfatório para todo o desenvolvimento de software. O processo unificado ajusta-se tanto para pequenas equipes de desenvolvimento quanto para grandes organizações. CONTINUAR
>
>
O RUP é um processo configurável pois um único processo não é satisfatório para todo o desenvolvimento de software. O processo unificado ajusta-se tanto para pequenas equipes de desenvolvimento quanto para grandes organizações.

O Rational Unified Process, reúne muitas das melhores práticas em desenvolvimento de software moderno e coloca a disposição dos projetos e organizações. São elas:

  • Desenvolvimento iterativo de software - esta prática sugere uma aproximação iterativa e incremental da construção do software. Permite a compreensão crescente do problema por refinamentos sucessivos.

  • Gerenciamento de requisitos - nesta prática o RUP descreve como extrair, organizar e documentar funcionalidades exigidas. São utilizadas nesta etapa a noção de caso de uso e cenários para capturar exigências funcionais.

  • Arquitetura baseada em componentes - descreve como projetar uma arquitetura elástica e flexível, que acomode mudanças e seja intuitivamente compreensível, promovendo efetivamente a reutilização de software.

  • Modelagem visual do software - o processo mostra visualmente como o modelo de software captura a estrutura e o comportamento das arquiteturas e componentes. Isto permite esconder os detalhes e escrever código usando blocos gráficos.

  • Verificação da qualidade de software - nesta etapa deve ser revisada a qualidade com respeito as exigências baseadas em confiabilidade, funcionalidade, desempenho d aplicação e desempenho de sistema.

  • Controle de mudanças do software - o processo descreve como controlar, rastrear e monitorar as mudanças, permitindo o sucesso do desenvolvimento da iteração.

A arquitetura do RUP apresenta-se dividida em duas dimensões, as quais refletem as duas visões em que um sistema pode ser descrito: componentes dinâmicos e componentes estáticos.

Componentes dinâmicos

Tem por dimensão o aspecto temporal e representa em termos de ciclos, fases, interações e marcos(milestones). De acordo com o RUP as fases constituem os ciclos de vida do software, sendo cada ciclo responsável por uma versão nova do produto. Estas fases são:

    • Concepção (Inception) : nesta fase será estabelecido um visão global para o sistema e a delimitação do ãmbito de projeto.
    • Elaboração (Elaboration): analise do domínio do problema, especificação das funcionalidades e o desenho da arquitetura.
    • Construção (Construction): nesta fase são desenvolvidos os componentes e as características da aplicação.
    • Transição (Transition): o propósito desta fase é disponibilizar o produto de software para a comunidade de usuário.

Componentes estáticos

Nesta dimensão são focados os aspectos estáticos do processo, descreve os termos das atividades, artefatos, participantes do processo e o fluxo de trabalho (workflow). Tem o propósito de descrever quem está fazendo o que, como e quando. O RUP é representado usando quatro elementos para modelagem: equipe, atividades, artefatos e fluxo de trabalho.


 <<O>>  Difference Topic RUPeXP (r1.3 - 03 Nov 2004 - LeonardoNoleto)
Line: 1 3 to 1 3
Changed:
<
<
-- LeonardoNoleto - 14 Sep 2004
>
>
LeonardoNoleto
Line: 5 to 5
Changed:
<
<
Motivação básica : aproveitar o mercado de pessoas que já conhecem RUP para introduzir técnicas de XP.
>
>

Motivação básica : acompanhar etapa por etapa o desenvolvimento de um componente de software utilizando a metodologioa RUP e XP.
Line: 8 to 8
Deleted:
<
<
O estudo comparativo deverá permitir o uso permutado dos pontos fortes dos dois processos aplicando xp ao rup e rup a xp.
Line: 10 to 10
Changed:
<
<
Mas o que é Rational Unified Process (RUP)
>
>

Line: 12 to 12
Changed:
<
<
O Rational Unified Process (RUP) é uma metodologia completa criada pela Rational para viabilizar que grandes projetos de software sejam bem sucedidos. O RUP é na verdade um produto composto de material de referência na forma de páginas HTML, descrevendo toda a metodologia.Fonte: http://www.rational.com
>
>
TOC: No TOC in "XP.RUPeXP"
Line: 13 to 14
Added:
>
>

Introdução

Line: 15 to 16
Deleted:
<
<

Line: 17 to 18
Changed:
<
<
Premissas principais da XP
>
>
Durante as décadas de 60, 70 e 80 a preocupação e os desafios eram em aumentar o poder de processamento e armazenamento do hardware, barateando também os seus custos. A partir da década de 90 mudou-se o foco das atenções para a elevação da qualidade e redução dos custos de um outro componente de sistemas baseado em computador: o software.
Line: 19 to 19
Deleted:
<
<
*melhorar a comunicação
Line: 21 to 21
Changed:
<
<
*buscar a simplicidade
>
>

Processos de desenvolvimento de software

Line: 23 to 23
Changed:
<
<
*obter feedback constante sobre o andamento
>
>
O processo de desenvolvimento de software ou ciclo de vida de um software, é a execução de um conjunto de atividades associadas, cujo resultado final é um produto de software. Estas atividades normalmente são realizadas por um engenheiro de software. São quatro as atividades principais em todos os processos de software, sendo elas:
Line: 25 to 25
Changed:
<
<
*proceder com coragem
>
>
  • Especificação de software(Software Specification) : As funcionalidades e as restrições de operações devem ser definidas;
Line: 27 to 27
Changed:
<
<
A Comunicação, a Simplicidade, o Feedback e a Coragem são então os "valores" apregoados pela "filosofia XP".
>
>
  • Desenvolvimento de software(Software development) : As especificações reunidas do software devem ser produzidas;
Line: 28 to 29
Added:
>
>
  • Validação do software(Software validation): O software deve ser testado e asegurado que é exatamente o que o cliente quer;
  • Evolução do software(Software evolution) : O Software deve reunir as mudanças que o cliente irá precisar.
Line: 30 to 31
Deleted:
<
<
Premissas básicas do RUP
Line: 32 to 32
Deleted:
<
<
*uso de iterações para evitar o impacto de mudanças no projeto,
Line: 34 to 34
Changed:
<
<
*gerenciamento de mudanças e
>
>
Diferentes processos de software organizam as atividades de desenvolvimento de diferentes formas e em diferentes níveis de detalhe. Dependendo da organização podem ser usados processos distintos para o mesmo tipo de produto, no entanto alguns processos são mais eficazes para alguns tipos de aplicação. Se um processo de desenvolvimento inadequado for usado provavelmente reduzirá a qualidade ou as funcionalidades do produto de software.
Line: 36 to 36
Changed:
<
<
*abordagens dos pontos de maior risco o mais cedo possível.
>
>
Desta forma, com o objetivo de simplificar a descrição dos processos de software são usados os modelos de processos de software que os apresentam sobre um ótica em particular.
Line: 37 to 38
Added:
>
>
Uma série de diferentes modelos de ciclos de vida de software foram propostos, cada um exibindo potencialidades e fragilidades, mas todos tendo uma série de fases genéricas em comum.
Line: 39 to 40
Changed:
<
<

Links que estou pesquisando... por enquanto
>
>
Neste trabalho iremos abordar duas das metodologia de desenvolvimento de software que atualmente estão em voga entre os profissionais de engenharia de software, o RUP (Rational Unified Process) e a XP ( Extreme Programming). A primeira integra o grupo das metodologias denominadas “peso-pesado” e aproveita a experiência e conceitos da Linguagem UML (Unified Model Language, Linguagem de Modelagem Unificada), enquanto a segunda encabeça o grupo das metodologias ágeis, também denominadas metodologias “peso-leve”.

Um pouco de XP

Extreme Programming usa times integrados de programadores, clientes, e gerentes para desenvolver software d alta qualidade em velocidade alta. Reúne também um conjunto de práticas de desenvolvimento de software já testadas, que estimuladas a sinergia entre elas gerarão vastas melhorias em produtividade global e satisfação do cliente. (HAYES, 2001)

Extreme Programming é uma disciplina de desenvolvimento de software baseada nos valores simplicidade, comunicação, realimentação, e coragem. Trabalha reunindo o time inteiro na presença de práticas simples, através do feedback permite a equipe ver onde ela está e afinar as práticas para situações únicas. (JEFRIES, 2002).

As raízes da XP estão na comunidade Smalltalk com a colaboração íntima de Kent Beck, criador da XP, e Ward Cunningham, no final da década de 1980. No início dos anos 90 os dois refinaram suas práticas em numerosos projetos, estendendo o desenvolvimento de software adaptável e orientado a pessoas.

As doze práticas promovidas pela XP se forem examinadas individualmente apresentarão falhas, mas uma das forças da XP é que as praticas se combinam de um modo mútuo apoiando-se. Juntas as práticas conduzem a um complexo, comportamento emergente. Cada prática tem sua função para manter o custo de mudança baixo. De acordo com Kent Beck as 12 práticas ão mapeadas em três categorias, a primeira englobando as práticas de programação, a segunda a práticas orientadas para a equipe e a terceira contempla os processos através dos quais a equipe de programação relaciona-se com o cliente. As práticas estão divididas nas categorias da seguinte forma:

  • Programming – Simple design (projeto simples), testing (testes), refactoring(reconstrução), coding standars(código padrão)

  • Team – Collective ownership (código coletivo), continuous integration (integração continua), metaphor (metáfora), pair programming (programação em par), small releases (versões pequenas)

  • Process – On-site customer (cliente no local), testing (testes), small releases (versões pequenas), planning game (planejamento do jogo)

Um pouco de RUP

RUP surgiu em 1998, apesar disso contempla em suas origens idéias e experiências vividas nos últimos trinta anos, em especial abordagens seguidas na Ericson onde trabalhou Ivar Jacobson, que mais tarde juntamente com Grady Booch e James Rumbaugh, denominados de “três amigos”, começaram as iniciativas para unificação das metodologia desenvolvidas desde 1981 na Rational. O resultado foi o Rational Objectory Process que a partir de 1998 passou-se a chamar Rational Unified Process.

O Rational Unified Process é um processo de engenharia de software, que procura disciplinar a atribuições de tarefas e responsabilidades dentro de uma estrutura de desenvolvimento de software. Sua meta principal é garantir a produção de software com alta qualidade satisfazendo as necessidades dos seus usuários, dentro de um cronograma e orçamento previsível. (RATIONAL SOFTWARE CORPORATION, 2002)

O RUP é um processo configurável pois um único processo não é satisfatório para todo o desenvolvimento de software. O processo unificado ajusta-se tanto para pequenas equipes de desenvolvimento quanto para grandes organizações. CONTINUAR

Desenvolvimento de um componente de software utilizando XP e RUP.

*Esta experiência foi retirada da dissertação de mestrado de Marcos Leandro Nonemacher, intitulada “Comparação e avaliação entre o processo RUP de desenvolvimento de software e a metodologia Extreme Programming”, submetido à Universidade Federal de Santa Catarina para obtenção do grau de Mestre em Ciência da Computação.

Esta experiência foi feita em uma empresa do Paraná composta de 8 desenvolvedores. Alguns membros da equipe foram divididos em dois grupos, o primeiro com a responsabilidade de desenvolver um componente de software utilizando XP e outro de desenvolver o mesmo componente utilizando RUP.

Quantidade de pessoas Papel Responsabilidade
1 Eng. De Software Analisar, projetar, implementar e testar os componentes de software, utilizando RUP
2 Eng. De Software Analisar, projetar, implementar e testar os componentes de software, utilizando XP
1 Administrador da base de dados Prover para os dois grupos de desenvolvedores as definições de tabelas, triggers e o modelo de banco de dados
1 Analista de negócios Fornecer para os dois grupos de desenvolvedores os requisitos do negócio, bem como suas definições
1 Testador Elaborar e executar os testes
1 Pessoa de apoio Coletar os dados e organizar os artefatos produzidos por cada etapa do desenvolvimento
1 Líder de projeto Acompanhar o andamento das atividades, planejar e alocar recursos

O componente de software que foi utilizado como base neste comparativo foi realmente solicitado por um cliente. Ambos os grupos, XP e RUP, partiram do mesmo ponto, ou seja, foram repassados aos engenheiros de software as regras de negócio, modelo de dados e os requisitos primários.

Modelagem do negócio

Controle das operações de débito, crédito e saldos de comissões de uma equipe de vendas.

O componente de software a ser desenvolvido terá a finalidade de permitir o usuário lançar valores de comissão para os vendedores cadastrados em um sistema já existente. Deverá ser considerado que já existe no sistema o recurso de cadastramento dos vendedores. O ciclo completo de desenvolvimento ficou dividido em 2 sub-ciclos ou duas iterações. No primeiro ciclo foram implementados os requisitos pelos desenvolvedores e efetuados os testes de aceitação pela equipe de XP, no segundo ciclo foram implementadas as correções pelos desenvolvedores dos erros detectados pela equipe de testes no primeiro ciclo, assim como os re-testes após as correções terem sido efetuadas.

Atividades do grupo de XP

As atividades do grupo de XP foram orientadas de acordo com as práticas recomendadas pela metodologia, as quais se dividem nas categorias de processos, programação e equipe.

Processos
Iniciaram o planejamento(planning game) fazendo definição incremental dos requisitos do sistema e a criação das user stories ( estórias de uso)
Presença constante e a interação com o cliente (representado pelo analista de negócios, client on-site)
Liberação de pequenas releases para avaliação (small releases)
As estórias de uso foram usadas como insumo para o processo de testes de aceitação, assim como a criação dos srips de teste (Testing)

Programação
Codificação em dupla (pair programming)
Padronização do código(coding standards), pois no revezamento dos desenvolvedores o código escrito por um, deveria ser entendido pelo outro de forma clara sem que nenhum dos dois precisasse justificar a parte desenvolvida
Desenvolvimento dos scripts de testes ou testes de unidade. Estes scripts eram alterados e executados cada vez que uma nova implementação era feita.
Codificação apenas das funcionalidades essenciais ao sistema, desta forma foi agregado simplicidade ao projeto do sistema(simple design)
Durante a codificação também se aplicou a prática de reconstrução de alguns códigos (refactoring)

Equipe
Código coletivo (colletive ownership), pois nenhum dos dois desenvolvedores se consideram pai do código
Integração continua, pois ao final de cada componente desenvolvido no sistema era integrado ao todo e executado todos os testes (continuous integration)
Testes de aceitação

Atividades do grupos de RUP

O grupo de RUP trabalhou paralelamente ao grupo XP no ciclo de vida do software, seguindo as fases de concepção (inception), elaboração (elaboration), construção (construction) e transição (transition), cada um com várias iterações. Dentro destas fases os processo também foram seguidos: os workflows de requisitos (requirements), análise e desenho (analysis and design), implementação (implementation) e testes (test).

Levantamento e detalhamento dos requisitos
Desenvolvimento de um documento contendo o objetivo geral e objetivo especifico.
Detalhamento ao máximo dos requisitos e as funcionalidades do sistema

Desenho e arquitetura
Definição dos atributos do sistema. (tempo de resposta, tolerância a falhas, plataformas utilizadas, etc)
Protótipo de interface do sistema, contendo todos os tipos de objetos e suas funcionalidades, assim com a imagem de cada uma das telas criadas como protótipo a serem aprovadas pelo cliente.
Desenvolvimento dos casos de uso do sistema(Rational Rose 98)
Detalhamento das especificações técnicas de codificação dos componentes do sistema.

Implementação
Implementados todos os componentes e especificações do sistema. Nesta fase o desenvolvedor criava e executava os testes unitários toda vez que um código era escrito e/ou modificado.
Os erros eram corrigidos assim que encontrados, fazendo com que o desenvolvedor implementasse o sistema de forma com que a função codificada fiasse disponível no menor tempo possível, e conseqüentemente iria se integrar as outras funções mais rapidamente

Testes
Teste unitário: era executado cada vez que uma nova alteração no código era feita
Teste de interação: verificar a integração das interfaces implementadas com relação as já desenvolvidas
Teste de sistema: teste de desempenhos e comportamento do sistema em relação ao tempo de transações
Teste de aceitação: testados todos os requisitos e funcionalidades criados no sistema, conforme documentação dos mesmos.

Coleta do dados (Continua)


Bibliografia

BECK, Kent. Programação eXtrema (XP) eXplicada: Acolha as mudanças. Porto Alegre: Bookman, 2004.

NONEMACHER, Marcos Leandro - “Comparação e avaliação entre o processo RUP de desenvolvimento de software e a metodologia Extreme Programming”, submetido à Universidade Federal de Santa Catarina para obtenção do grau de Mestre em Ciência da Computação.

PRESSMAN, R. S. Engenharia de Software, Makron Books, 1995.

RATIONAL SOFTWARE CORPORATION. Rational UInified Process http:://www.rational.com


 <<O>>  Difference Topic RUPeXP (r1.2 - 19 Oct 2004 - LeonardoNoleto)
Line: 1 48 to 1 49
Added:
>
>

http://www-106.ibm.com/developerworks/rational/library/content/RationalEdge/oct04/pollice/index.html


 <<O>>  Difference Topic RUPeXP (r1.1 - 14 Sep 2004 - LeonardoNoleto)
Line: 1 to 1
Added:
>
>
META TOPICPARENT ApresentacaoDeTrabalhos
-- LeonardoNoleto - 14 Sep 2004

Motivação básica : aproveitar o mercado de pessoas que já conhecem RUP para introduzir técnicas de XP.

No final deste artigo tentarei fazer um "merge" dos pontos forte das duas metodologias para desenvolver sistemas, ou seja, usarei tanto aspecetos da XP quanto do RUP. O estudo comparativo deverá permitir o uso permutado dos pontos fortes dos dois processos aplicando xp ao rup e rup a xp.

Mas o que é Rational Unified Process (RUP)

O Rational Unified Process (RUP) é uma metodologia completa criada pela Rational para viabilizar que grandes projetos de software sejam bem sucedidos. O RUP é na verdade um produto composto de material de referência na forma de páginas HTML, descrevendo toda a metodologia.Fonte: http://www.rational.com


Premissas principais da XP

*melhorar a comunicação

*buscar a simplicidade

*obter feedback constante sobre o andamento

*proceder com coragem

A Comunicação, a Simplicidade, o Feedback e a Coragem são então os "valores" apregoados pela "filosofia XP".

Premissas básicas do RUP

*uso de iterações para evitar o impacto de mudanças no projeto,

*gerenciamento de mudanças e

*abordagens dos pontos de maior risco o mais cedo possível.


Links que estou pesquisando... por enquanto

Ponto de vista da Rational sobre o XP

http://www.therationaledge.com/content/mar_01/f_xp_gp.html

http://www.therationaledge.com/content/apr_01/f_xp2_gp.html


Topic RUPeXP . { View | Diffs | r1.7 | > | r1.6 | > | r1.5 | More }
Revision r1.1 - 14 Sep 2004 - 22:33 - LeonardoNoleto
Revision r1.7 - 09 Nov 2004 - 20:50 - LeonardoNoleto
Copyright © 1999-2003 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding XP? Send feedback.