Desenvolvimento dirigido por Funcionalidades(FDD), Desenvolvimento de Software Enxuto(LSD) e Processo Unificado Agil (AUP) José Cláudio Moretti Junior - GRR20093177 Será apresentado os conceitos de desenvolvimento ágil.
Desenvolvimento dirigido por funcionalidades (FDD) É um modelo prático para modelagem em orientação a objetos. É descrito como um processo adaptavel e agil, que pode ser aplicado em projetos de software moderados ou maiores.* No contexto de FDD, uma feature pode ser descrita como uma função da necessidade do cliente que pode ser implementada em uma semana ou menos.* *Pressman, software engineering 6th edition (adaptação)
Vantagens do FDD Por cada feature ser pequena, coletar os requisitos se torna mais fácil, pois estes podem ser melhor descritos, e durante a revisão, se torna mais fácil encontrar ambiguiações e erros. Features podem ser organizadas de forma hierarquica; Menor custo humano, dado que cada feature pode ser desenvolvida de maneira independente, e ser lançada em média a cada 2 semanas. Como cada feature é algo reduzido, inspeccionar erros em seu design ou em seu código é uma tarefa mais fácil (menor custo de tempo)
Desvantagens do FDD Questionamento sobre efetividade/aplicabilidade do FDD. Não existe um consenso do tamanho que cada feature deve ter. Manutenção.
Desenvolvimento de Software Enxuto (LSD) É uma adaptação da fabricação enxuta para engenharia de Software. Os pontos-chave do fabricação enxuta são: Qualidade total imediata - ir em busca do "zero defeito", e detecção e solução dos problemas em sua origem. Minimização do desperdício - eliminação de todas as atividades que não têm valor agregado e redes de segurança, otimização do uso dos recursos escassos (capital, pessoas e espaço). Melhoria contínua - redução de custos, melhoria da qualidade, aumento da produtividade e compartilhamento da informação
Processos "pull" - os produtos são retirados pelo cliente final, e não empurrados para o fim da cadeia de produção. Flexibilidade - produzir rapidamente diferentes lotes de grande variedade de produtos, sem comprometer a eficiência devido a volumes menores de produção. Construção e manutenção de uma relação a longo prazo com os fornecedores tomando acordos para compartilhar o risco, os custos e a informação.
Explicando os principios LSD Os principios LSD podem ser adaptados a modelagem de software. Ex: Eliminar desperdicios pode ser: -Não adicionar funções e dispositivos estranhos -Avaliar o impacto do custo e do cronograma de cada requesito solicitado recentemente. entre outros.
Processo Unificado Ágil (AUP) -Adota uma filosofia "Serial para o que é amplo" e "iterativa para o que é particular". -Adota uma camada serial, para que todos na equipe possam visualizar o fluxo do processo geral do projeto, porem dentro de cada camada, itera para se alcançar a agilidade e para entregar incrementos do software significativos para o usuario
Modelagem: Os modelos devem ser "suficientemente bons e adequados" para que a equipe possa prosseguir de maneira ágil. Implementação: Os modelos são traduzidos para o código-fonte. Teste: A equipe projeta e executa uma série de testes para descobrir erros e assegurar que o código-forte se ajuste aos requisitos Aplicação:Se foca na entrega em um incrimento de software e coleta de feedback dos usuarios finais.
Referências PRESSMAN. Roger S. Software Engineering, A practitioner's approach 6th Edition, 2005 PRESSMAN. Roger S. Software Engineering, A practitioner's approach 7th Edition, 2011 Wikipédia, Lean manufacturing http://pt.wikipedia.org/wiki/lean_manufacturing Heptagon, Tecnologia da informação http://www.heptagon.com.br/fdd Wikipedia, Feature-driven Development http://en.wikipedia.org/wiki/feature-driven_development