Avaliação Experimental de Técnicas Ágeis de Desenvolvimento Lucas dos Santos Lima Andrés Ignácio Martínez Menéndez (orientador) Universidade Federal de Sergipe Julho de 2011
Plano de Apresentação Introdução Referencial teórico -Processo de Software -Modelo de Processo de Software -Metodologias Tradicionais -Metodologias Ágeis Trabalho proposto Resultados parciais atingidos Principais desafios do trabalho Cronograma Bibliografia
Introdução Motivação Crise do software Processos burocráticos Métodos claros e adaptáveis Menos orientação ao documento, mais orientação ao código Eficiência dos métodos ágeis Motivação pessoal
Referencial Teórico Processo de Software Definição Desenvolvimento conjunto de atividades realizadas por pessoas cujo objetivo é desenvolvimento ou evolução de software e sua documentação Definição Desenvolvimento Manutenção
Referencial Teórico Modelo de Processo de Software Para tornar o desenvolvimento de software uma atividade menos caótica, surgiram os Modelos de Processo de Software, que visam organizar o desenvolvi- mento utilizando as técnicas e métodos descritos acima. É uma representação abstrata de um Processo de Software. Cada modelo representa um processo a partir de uma perspectiva particular.
Referencial Teórico Cascata ou Clássico é um modelo de desenvolvimento de software seqüencial no qual o desenvolvimento é visto como um fluir constante para frente
Referencial Teórico Prototipagem
Referencial Teórico Evolucionário Incremental
Referencial Teórico Evolucionário Espiral
Referencial Teórico Metodologias Tradicionais Mainframes e Terminais Burros Acesso Limitado Alto Custo de Alteração/Correção Processo Rigoroso O foco principal das metodologias tradicionais é a previsibilidade dos requisitos do sistema, que traz a grande vantagem de tornar os projetos completamente planejados, facilitando a gerência do mesmo, mantendo sempre uma linha, caracterizando o processo como bastante rigoroso
Referencial Teórico RUP (Rational Unified Process) Processo pesado, preferencialmente aplicado em grandes equipes
Referencial Teórico Metodologias Ágeis Refinar métodos Iterativos Tradicionais; Ênfase nas pessoas; Cliente próximo ao processo; Iterações curtas; Testes automatizados; Equipes pequenas; Antes de falar dos métodos ágeis vai ser necessário dizer que os métodos tradicionais têm falhado na tentativa de fazer softwares. Por isso veio a motivação de criar métodos menos burocráticos e mais centrados nas pessoas
Referencial Teórico Impedimentos Burocracia como requisito; Maturidade; Nível técnico da equipe; Medo;
Referencial Teórico Manifesto Ágil (2001) Indivíduos e interação mais que processos e ferramentas; Software em funcionamento mais que documentação abrangente; Colaboração com o cliente mais que negociação de contratos; Responder a mudanças mais que seguir um plano;
Referencial Teórico Mitos e Concepções Erradas Abomina documentação; Não precisamos de processos nem de ferramentas; Não há disciplina; Não há plano a seguir; Uma metodologia ágil vai resolver o problema de nossa empresa;
Referencial Teórico Maiores Vantagens Iterações curtas; Diminuição dos custos de comunicação; Levar em consideração que as coisas vão mudar ao longo do caminho
Referencial Teórico Algumas práticas são boas de qualquer jeito: Testes automatizados; Integração contínua; Iterações curtas;
Referencial Teórico Scrum Não vai caber comparação com XP. Tem que dizer isso na hora da banca. Vamos fazer com Scrum porque você já conhece ao invés do XP.
Trabalho Proposto Avaliação Experimental de Técnicas Ágeis de Desenvolvimento Por que adotar o Agile? Quando é aplicável? Como aplicá-lo?
Trabalho Proposto Metodologia Bibliográfico Prático Experimental
Resultados Parciais Atingidos Levantamento bibliográfico Escrita dos capítulos teóricos do trabalho Escolha de um projeto piloto e uma equipe de desenvolvimento
Principais Desafios do Trabalho Projetos disponíveis; Evitar nebulosidade nos objetivos; Evitar problemas de comunicação; Manter o projeto dentro do prazo; Perda de recursos essenciais durante o andamento do projeto; Usar a criatividade;
Cronograma
Cronograma
Bibliografia SOMMERVILLE, Ian. Engenharia de software. 8. ed. São Paulo, SP: Pearson, 2007 PRESSMAN, Roger S. Engenharia de software. São Paulo, SP: Makron Books, 2007 KRUCHTEN, P., “The Rational Unified Process, An Introduction”, 2nd Edition, Addison-Wesley, 2000 OLIVEIRA, S. R. B, ROCHA, T. A., VASCONCELOS, A. M. L., “Adequação de Processos para Fábricas de Software”, Anais do Simpósio Internacional de Melhoria de Processos de Software – SIMPROS 2004, São Paulo, 2004.
Dúvidas?