Baixe o app para aproveitar ainda mais
Prévia do material em texto
Cascata Adequado em situações nas quais os requisitos são bem entendidos e gerente do projeto confia na capacidade da equipe de desenvolver utilizando o processo. FasesFases:: • Análise e definição de requisitos • Projeto de sistema e software • Implementação e teste de unidade • Integração e teste de sistema • Operação e manutenção VantagensVantagens: • Cada passo serve como uma base aprovada e documentada para o passo seguinte • Toda fase do projeto pode ser cuidadosamente planejada • Responsabilidades podem ser claramente definidas • Existência de marcos ao fim de cada fase DesvantagemDesvantagem • O fluxo sequencial geralmente não é seguido em projetos reais • Difícil avaliar o progresso verdadeiro do projeto durante as primeiras fases • Uma versão executável do software só fica disponível numa etapa avançada do desenvolvimento Protótipo Objetivo :Objetivo : • Entender os requisitos do sistema • O protótipo concentra-se na verificação dos pontos pouco entendidos do sistema Vantagens:Vantagens: • O fato de o cliente poder interagir com um protótipo ajuda a balancear suas necessidades funcionais e de desempenho • Os desenvolvedores podem implementar os requisitos baseado no feedback do usuário • A experiência adquirida no desenvolvimento do protótipo vai ser de extrema utilidade nas etapas posteriores do desenvolvimento do sistema DesvantagensDesvantagens: • Clientes imaginam que a maior parte do trabalho já foi feita • Protótipo pode crescer de maneira não planejada, se tornando um incremento funcional • Protótipo pode ter um desempenho melhor do que um incremento funcional, pois não implementa toda a funcionalidade, causando frustração aos clientes quando o sistema completo é entregue Iteração de processo: • Pode ser aplicada a qualquer um dos modelos de processo • Idéia de melhorar (ou refinar) pouco a pouco o sistema (iterações) Em cada iteração a equipe de desenvolvimento: • Identifica e especifica os requisitos relevantes • Cria um projeto utilizando a arquitetura escolhida como guia • Implementa o projeto em componentes • Verifica se esses componentes satisfazem os requisitos Entrega incremental (ver caderno) • Em cada passo, o sistema é estendido com mais funcionalidades • Idéia de aumentar pouco-a-pouco o âmbito do sistema • Ao invés de entregar o sistema como uma única entrega, o desenvolvimento e a entrega são separados em incrementos, sendo que cada incremento fornece parte da funcionalidade solicitada • Os requisitos de usuário são priorizados e os requisitos de prioridade mais alta são incluídos nos incrementos iniciais VantagensVantagens - Menor custo e menos tempo são necessários para se entregar a primeira versão DesvantagensDesvantagens - O gerenciamento de custo, cronograma é mais complexo Cada volta na espiral representa uma fase do processo de software. Esse modelo combina prevenção e tolerância a mudanças, assume que mudanças são um resultado de riscos de projeto e inclui atividades explícitas de gerenciamento de riscos para sua redução. Definição de objetivos: Definição de objetivos: Objetivos específicos para essa fase do projeto são definidos; restrições ao processo e ao produto são identificadas, e um plano de gerenciamento detalhado é elaborado; os riscos do projeto são identificados. Podem ser planejadas estratégias alternativas em função desses riscos. Avaliação e redução de riscos:Avaliação e redução de riscos: Para cada um dos riscos identificados do projeto, é feita uma análise detalhada. Medidas para redução do risco são tomadas. Por exemplo, se houver risco de os requisitos serem inadequados, um protótipo de sistema pode ser desenvolvido. Desenvolvimento e validação: Após a avaliação dos riscos, é selecionado um modelo de desenvolvimento para o sistema. Por exemplo, a prototipação descartável pode ser a melhor abordagem de desenvolvimento de interface de usuário se os riscos forem dominantes. Se os riscos de segurança forem a principal consideração, o desenvolvimento baseado em transformações formais pode ser o processo mais adequado, e assim por diante. Se o principal risco identificado for a integração de subsistemas, o modelo em cascata pode ser a melhor opção. Planejamento:Planejamento: O projeto é revisado, e uma decisão é tomada a respeito da continuidade do modelo com mais uma volta da espiral. Caso se decida pela continuidade, planos são elaborados para a próxima fase do projeto. A principal diferença entre o modelo espiral e outros modelos de processo de software é seu reconhecimento explícito do risco. Um ciclo da espiral começa com a definição de objetivos, como desempenho e funcionalidade. Em seguida, são enumeradas formas alternativas de atingir tais objetivos e de lidar com as restrições de cada um deles. Cada alternativa é avaliada em função de cada objetivo, e as fontes de risco do projeto são identificadas. O próximo passo é resolver esses riscos por meio de atividades de coleta de informações, como análise mais detalhada, prototipação e simulação. VantagensVantagens: • O modelo em espiral permite que ao longo de cada iteração se obtenham versões do sistema cada vez mais completas, recorrendo à prototipagem para reduzir os riscos • Este tipo de modelo permite a abordagem do refinamento seguido pelo modelo em cascata, mas que incorpora um enquadramento iterativo que reflete, de uma forma bastante realística, o processo de desenvolvimento DesvantagensDesvantagens: • Pode ser difícil convencer grandes clientes de que a abordagem evolutiva é controlável • A abordagem deste tipo de modelo exige considerável experiência na avaliação dos riscos • Gerenciamento de custo e prazo do projeto complexo Scrum • Scrum é um processo para construir software incrementalmente em ambientes complexos, onde os requisitos não são claros ou mudam com muita frequência (considera antecipadamente a existência do caos) • A metodologia é baseada em princípios como: equipes pequenas, requisitos pouco estáveis ou desconhecidos, e iterações curtas para promover visibilidade para o desenvolvimento. Cerimônias scrum: Cerimônias scrum: • Moderadas pelo Scrum Master • Devem ter seu tempo reduzido à medida que o time e a organização amadurecem os valores e os processos Sprint Planning:Sprint Planning: • Reunião de planejamento da sprint • PO explica a meta e resume o product backlog • Time faz as estimativas • Time seleciona as estórias para a sprint • Deve dar ao time informações suficientes para que eles possam trabalhar na sprint Sprint Backlog:Sprint Backlog: • Consiste nas tarefas que o time executa para transformar itens do Backlog do Produto em um incremento “pronto” • O Backlog da Sprint é todo trabalho que o Time identifica como necessário para alcançar a meta da Sprint • Somente o Time pode mudar o seu conteúdo ou as suas estimativas • O Backlog da Sprint é um retrato em tempo real altamente visível do trabalho que o Time planeja efetuar durante a Sprint, e ele pertence unicamente ao Time Daily Scrum:Daily Scrum: • Melhora a comunicação • Identifica e remove impedimentos para o desenvolvimento • Melhora o nível de conhecimento de todos acerca do projeto: compartilhamento do conhecimento • O que você fez ontem, o que irá fazer hoje, tem alguma coisa te atrapalhando? Sprint ReviewSprint Review: • A equipe apresenta os resultados obtidos durante o Sprint • Normalmente assume a forma de uma demonstração de novas funcionalidades XP • A equipe XP e os clientes trabalham juntos para definir um plano que determina as estórias que serão desenvolvidas primeiro levando em consideração valores e riscos • Depois que o primeiro incremento é entregue, a equipe XP calcula a velocidade doprojeto = número de estórias implementadas } A programação é feita em pares (Um digita, outro revisa, redução de bugs, disseminação do conhecimento...): • Isso fornece um mecanismo de solução de problemas e de garantia de qualidade em tempo real • Uma pessoa pensa nos detalhes do código enquanto a outra garante as normas de codificação e que o código gerado vai se encaixar no resto do sistema Papeis: Cliente: É ele que escreve as estórias, avalia as novas funcionalidades entregues, dá feedback rapidamente, solicita ou aprova mudanças Desenvolvedores: Constroem o sistema. Coach: Desenvolvedor experiente, identifica as habilidades da equipe, lembra as regras de XP, eventualmente faz programação em pares, seu papel diminui com o tempo.
Compartilhar