Metodologias para o desenvolvimento de software independente de seus processos
específicos buscam reduzir riscos e aumentar a qualidade do produto gerado. As
metodologias RUP e XP têm esse fim, pois apresentam mesmos valores como,
envolvimento do cliente, iterações, testes contínuos e flexibilidade. Porém busca-se esses
objetivos de forma diferente, através de implementações diferentes.
Segue alguma diferenças entre estas duas metodologias em relação a alocação de tempo e esforços, artefatos, atividades e papeis, ferramentas, responsabilidade do código e, diretivas do projeto:
Alocação de Tempo e Esforços
RUP segue 4 fases sequenciais (Inception, Elaboration, Construction e Transition) constituindo um ciclo de
desenvolvimento, produzindo uma nova versão de software. Em cada fase há um número
de iterações, as quatro fases têm seu foco em diferentes atividades, podendo ocorrer em
paralelo. A primeira fase, chamada de início foca o modelamento do negócio e a
definição dos requisitos. A fase de elaboração foca em projetar (design), a de construção
dá enfoque a implementação e aos testes e por fim a fase de transição onde a
implantação e o gerenciamento de modificações são verificados.
Já o aspecto tempo em XP é diretamente relacionado com código produzido. No
começo do projeto o foco é o núcleo do sistema, e após facilidades extras. Porém como
as liberações são definidas pelos clientes, os mesmos irão delimitar o tempo do projeto a
partir de seu grau de satisfação com o software recebido.
Artefatos
A comunicação dentro de um processo RUP é baseada em artefatos. Já em XP é
baseada em comunicação oral, direta, o que restringe o uso de XP em projetos com
grande distribuição geográfica.
A pouca evidência de artefatos do XP, com foco em estórias de usuário e código,
é visto como um fator que aumenta o risco do projeto, o conhecimento fica vinculado
aos desenvolvedores e ao código.
Atividades e Papéis
Ao compararmos as definições das atividades (disciplinas) e os papéis, temos que o RUP faz uma divisão de tarefas de forma específica, enquanto a divisão de papéis proposta pelo XP tem um caráter de “uso-geral”, sem atribuições específicas dentro das atividades.
RUP define uma atividade como sendo o trabalho realizado por um papel, usando
artefatos de entrada e produzindo artefatos de saída. Os papéis (total de 30) definem o
comportamento e as responsabilidades do individuo, estão agrupados em nove
disciplinas: Gerência de Projeto, Modelamento de Negócio, Requerimentos, Analise e Desenho, Implementação, Teste, Deployment, Configuração e Controle de Mudanças e Ambiente.
O XP apresenta apenas quatro atividades básicas: produção
de código, testes, listening (escutar o cliente), e desenho. E define sete papéis: Programador, Cliente, Testador, Tracker, Técnico, Consultor e “Big Boss”.
Ferramentas
O XP não especifica nenhuma ferramenta em específico para o processo, embora haja
ferramentas livres como o XPlanner e o Junit. Já o processo no RUP utiliza softwares,
como o Rational Rose, que devem ser adquiridos da própria IBM, juntamente com a
documentação.
Responsabilidade do Código
RUP trata o código (geralmente de sistemas grandes) em subsistemas, e para cada
subsistema existem membros responsáveis pelo mesmo.
Já o XP trata o código como coletivo, qualquer programador que encontre algum
problema, ou algum trecho que possa ser otimizado, tem permissão para fazê-lo. Isso
pode agilizar o processo no caso de um programador necessitar corrigir algum módulo
para interagir corretamente com o seu. Porém isso pode ser algo prejudicial, pois podem
ocorrer casos onde o código aparentemente incorreto teve um motivo para ser
estruturado da maneira que foi.
Diretivas de Projeto
RUP é baseado em casos de uso, as descrições do uso do sistema são continuamente
implementadas, integradas e testadas. Já o XP aplica o projeto baseado em teste, casos
de teste são implementados antes da escrita do código. XP possui estórias de usuário
para guiar o que deve ser implementado. Essas estórias são descrições mais simples se
comparadas aos casos de uso do RUP.
As duas metodologias indicam que o projeto completo não pode ser planejado
em detalhe. RUP indica modificação continua dos planos, enquanto o XP propõe
planejar em detalhes somente o futuro próximo.
Queria ter lido esta postagem antes de uma de minhas avaliações na disciplina Engenharia de Software, boa explanação de conceitos, parabéns pelo post.
ResponderExcluirObrigado Matheus.
ResponderExcluirObrigado Matheus.
ResponderExcluir