Buscar

ESW Ciclo de Vida Cascata, Prot, Espiral e Incremental

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Engenharia de Software
Profa. Priscila Facciolli
1
Tópicos
1- Elementos da Engenharia de SW;
2- O que é ciclo de vida de SW;
3- Ciclo de Vida Clássico - Cascata;
4- Ciclo de Vida Prototipação;
5- Ciclo de Vida Espiral.
6- Ciclo de Vida Incremental.
	
2
Conjunto de etapas que envolve
métodos
ferramentas 
procedimentos 
Essas etapas são conhecidas como componentes de CICLO DE VIDA DE SOFTWARE
ou Processo de Software
Engenharia de Software 
Descrevem como um software deve ser
desenvolvido. 
Basicamente definem a ordem global das
atividades envolvidas em um contexto de
projeto de software e propõe uma
estratégia de desenvolvimento que pode
ser aplicada a um determinado contexto
de projeto de software.
Ciclos de Vida de Software 
Para escolha de um Ciclo de Vida de Software:
Atentaremos para:
natureza do projeto e da aplicação;
métodos e ferramentas a serem usados;
controles e produtos que precisam ser entregues.
Ciclos de Vida de Software 
Tipos de Ciclos de Vida de SW:
Waterfall (cascata) 
Evolucionário: Espiral, Prototipação 
Incremental 
RAD 
Codifica-remenda 
Baseado em Componentes, 
Baseado em Métodos Formais 
 Processo Unificado 
RUP 
Praxis 
Cleanroom (Sala Limpa) 
Iconix 
Desenvolvimento Ágil
Diferenças entre os Ciclos de Vida de Software 
Enfoque dado pelo modelo.
 	Por exemplo, no Modelo Cascata o enfoque é dado na documentação e no Modelo Espiral o enfoque é dado nos riscos; 
Estratégia de desenvolvimento.
	Define a disposição das atividades que deverão ser executadas para atingir um objetivo em um contexto de projeto de desenvolvimento de software. 
	Ex.: Linear (uma atividade após a outra) como no ciclo de vida Cascata puro ou iterativa (um conjunto de atividades é repetida várias vezes até atingir o seu objetivo) como nos modelos incrementais. 
	Em Paralelo, como a prototipação, ou reunir as características de modelos de ciclo de vida lineares e iterativos. 
 
Ciclo de Vida Clássico (Cascata)
Modelo mais antigo e o mais amplamente usado da engenharia de software;
Modelado em função do ciclo da engenharia convencional;
Requer uma abordagem sistemática, Seqüencial ao desenvolvimento de software
Ciclo de Vida Clássico (Cascata)
Consiste na execução das atividades de desenvolvimento de software em uma seqüência ordenada. 
Desta forma, a passagem para determinada atividade exige como critério a finalização da atividade imediatamente anterior.
Engenharia de Sistemas
Análise de Requisitos 
Projeto 
Codificação 
Testes 
Manutenção 
Cascata
Atividades do Ciclo de Vida Clássico/Cascata
ANÁLISE E ENGENHARIA DE SISTEMAS
  envolve a coleta de requisitos em nível do sistema, pequena quantidade de projeto e análise de alto nível 
Engenharia de Sistemas
Análise de Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
  visão essencial quando o software deve fazer interface com outros elementos (hardware, pessoas e banco de dados)
Atividades do Ciclo de Vida Clássico/Cascata
ANÁLISE DE REQUISITOS DE SOFTWARE
  processo de coleta dos requisitos é intensificado e concentrado especificamente no software
  deve-se compreender o domínio da informação, a função, desempenho e interfaces exigidos
  os requisitos (para o sistema e para o software) são documentados e revistos com o cliente
Engenharia de Sistemas
Análise de Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
Atividades do Ciclo de Vida Clássico/Cascata
PROJETO
 tradução dos requisitos do software para um conjunto de representações que podem ser avaliadas quanto à qualidade, antes que a codificação se inicie
  se concentra em 4 atributos do programa: 
 Estrutura de Dados, 
 Arquitetura de Software, 
 Detalhes Procedimentais e 
 Caracterização de Interfaces
Engenharia de Sistemas
Análise de Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
Atividades do Ciclo de Vida Clássico/Cascata
CODIFICAÇÃO
  tradução das representações do projeto para uma linguagem “artificial” resultando em instruções executáveis pelo computador
Engenharia de Sistemas
Análise de Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
Atividades do Ciclo de Vida Clássico/Cascata
TESTES
Concentram-se:
  nos aspectos lógicos internos do software, garantindo que todas as instruções tenham sido testadas 
  nos aspectos funcionais externos, para descobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados.
Engenharia de Sistemas
Análise de Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
Atividades do Ciclo de Vida Clássico/Cascata
MANUTENÇÃO
 o software deverá sofrer mudanças depois que for entregue ao cliente 
 
Engenharia de Sistemas
Análise de Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
  causas das mudanças: erros, adaptação do software para acomodar mudanças em seu ambiente externo e exigência do cliente para acréscimos funcionais e de desempenho
Vantagens no Ciclo de Vida Clássico (Cascata)
É empregado quando se domina o tipo de software que se construirá;
Domínio nas tecnologias envolvidas (métodos, técnicas e ferramentas)
Desvantagens com o Ciclo de Vida Clássico / Cascata
Projetos reais raramente seguem o fluxo seqüencial que o modelo propõe;
 Logo no início é difícil estabelecer explicitamente todos os requisitos;
O cliente deve ter paciência. Uma versão executável do software só fica disponível numa etapa avançada do desenvolvimento
Desvantagens com o Ciclo de Vida Clássico
Pode não permitir a visão real do processo em andamento;
 
Cria dois universos, um universo se refere ao processo em andamento e o outro universo se refere às mudanças que deveriam ser aplicadas ao produto, mas não as são pelo fato do modelo não incorporar em sua dinâmica a revisão de etapas já concluídas durante o seu andamento;
 
3. Não é possível mensurar. O fato de normalmente não permitir uma visão real do processo também implica em uma visão irreal para a aplicação de métricas. Atividades não concluídas são rotuladas como concluídas. 
 Embora o Ciclo de Vida Clássico tenha fragilidades, ele é significativamente melhor do que uma abordagem casual ao desenvolvimento de software
 Clássico / Cascata (comentários)
 Prototipação
Processo que possibilita que o desenvolvedor crie um modelo do software que deve ser construído;
 Idealmente, o modelo (protótipo) serve como um mecanismo para identificar os requisitos de software;
Apropriado para quando o cliente definiu um conjunto de objetivos gerais para o software, mas não identificou requisitos de entrada, processamento e saída com detalhes.
 Tipos de Prototipação
Prototipação Evolutiva;
Prototipação Incremental;
Prototipação Rápida Descartável.
fim
início
construção produto
refinamento protótipo
avaliação protótipo
construção protótipo
projeto rápido
obtenção dos requisitos
 Prototipação Evolutiva
Atividades da Prototipação Evolutiva
Obtenção dos Requisitos: desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos são conhecidos e as áreas que necessitam de definições adicionais
Projeto Rápido: representação dos aspectos do software que são visíveis ao usuário (abordagens de entrada e formatos de saída)
fim
início
construção produto
refinamento protótipo
avaliação protótipo
construção protótipo
projeto rápido
obtenção dos requisitos
Construção Protótipo: implementação do projeto rápido
Avaliação do Protótipo: cliente e desenvolvedor avaliam o protótipo 
Atividades da Prototipação Evolutiva
fim
início
construção produto
refinamento protótipo
avaliação protótipo
construção protótipo
projeto rápido
obtenção dos requisitos
Refinamento dos Requisitos: cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido. 
 Ocorre neste ponto um processo de iteração que pode conduzir a 1a. atividade até que as necessidades do cliente sejam satisfeitas e o desenvolvedor compreenda
o que precisa ser feito.
Atividades da Prototipação Evolutiva
fim
início
construção produto
refinamento protótipo
avaliação protótipo
construção protótipo
projeto rápido
obtenção dos requisitos
Construção Produto: identificados os requisitos, o protótipo deve ser descartado e a versão de produção deve ser construída considerando os critérios de qualidade. 
Atividades da Prototipação Evolutiva
fim
início
construção produto
refinamento protótipo
avaliação protótipo
construção protótipo
projeto rápido
obtenção dos requisitos
Problemas com a Prototipação Evolutiva
Cliente não sabe que o software que ele vê não considerou, durante o desenvolvimento, a qualidade global e a manutenibilidade a longo prazo. Não aceita bem a idéia que a versão final do software vai ser construída e "força" a utilização do protótipo como produto final.
Problemas com a Prototipação Evolutiva
Dsenvolvedor freqüentemente faz uma implementação comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um protótipo. 
Depois de um tempo ele familiariza com essas escolhas, e esquece que elas não são apropriadas para o produto final.
Prototipação Incremental
A prototipação incremental também é conhecida como Entrega por estágio, adota o desenvolvimento por estágios.
Os requisitos mais importantes são desenvolvidos primeiro e os demais são acrescentados em outras versões;
Ao final de cada estágio, uma versão operável é entregue e incrementada aos demais estágios.
Prototipação Incremental
Vantagens da Prototipação Incremental
Redução de riscos;
Maior visibilidade sobre o processo;
Problemas podem ser descobertos logo no início;
Auxilia na estimativa de tempo do projeto;
Desvantagens na Prototipação Incremental
Exigência de grande esforço na atualização da documentação;
 Planejamento de estágios anteriores bem feitos;
Prototipação Rápida Descartável
 Descarta, não usa protótipos;
Vantagens e Desvantagens: Prototipação Rápida Descartável
Vantagens: 
Redução de riscos;
Maior conhecimento dos requisitos;
Maior participação do cliente.
Desvantagens:
Testes insuficientes;
Implementação muito rápida e utilização do protótipo como versão final do software.
Ainda que possam ocorrer problemas, a prototipação
é um ciclo de vida eficiente  
A chave é definir-se as regras do jogo logo no
começo  
O cliente e o desenvolvedor devem ambos
concordam que o protótipo seja construído para
servir como um mecanismo a fim de definir os
requisitos  
 Prototipação (comentários)
Ciclo de Vida em Espiral
 Engloba as melhores características do ciclo de vida Clássico e da Prototipação, adicionando um novo elemento: a Análise de Risco
 Segue a abordagem de passos sistemáticos do Ciclo de Vida Clássico incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real
 Usa a Prototipação, em qualquer etapa da evolução do produto, como mecanismo de redução de riscos
Ciclo de Vida em Espiral
 Cada giro na espiral (iniciando a partir do centro e avançando para fora) representa uma nova fase do processo;
Esse processo evolutivo permite que novas versões sejam construídas progressivamente.
Espiral
Atividades do Ciclo de Vida em Espiral
Comunicação com o Cliente: define as tarefas necessárias para manter a comunicação entre o desenvolvedor e o cliente.
Planejamento: define recursos, prazos, objetivos, alternativas e restrições.
Análise de Risco: análise das alternativas e identificação / resolução dos riscos técnicos e operacionais.
avaliação do cliente
engenharia
análise dos riscos
planejamento
Atividades do Ciclo de Vida em Espiral
Construção: define tarefas necessárias para construir, testar, instalar e fornecer apoio ao usuário. 
Avaliação do Cliente: Avaliação das representações do software criadas durante o estágio de engenharia e implementadas durante o estágio de instalação.
avaliação do cliente
engenharia
análise dos riscos
planejamento
É, atualmente, a abordagem mais realística para o desenvolvimento de software em grande escala.
Usa uma abordagem que capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva. 
Pode ser difícil convencer os clientes que uma abordagem "evolutiva" é controlável
Exige considerável experiência na determinação de riscos e depende dessa experiência para ter sucesso
 Espiral (comentários)
Quanto mais tempo e recursos forem destinados, ou seja, quanto mais iterações na espiral, menor serão os riscos sobre o projeto;
Execução de atividades de verificação presentes ao final de cada iteração que permitem um melhor controle gerencial sobre o projeto;
 Espiral - Vantagens
 o modelo é relativamente novo e não tem sido amplamente usado
Demorará muitos anos até que a eficácia desse modelo possa ser determinada com certeza absoluta.
 Espiral (comentários)
Nesse modelo o sistema é entregue por partes,
módulos.
Nesse caso o cliente solicita o desenvolvimento de um
grande sistema e determina a ordem de prioridades
para às entregas, como exemplo poderíamos dizer que
uma empresa possui vários departamentos, entre eles
o financeiro, segundo a especificação do cliente ele
deseja que esse departamento seja o primeiro a operar
com o sistema.
 Incremental
 Incremental
Vantagem:
Subdivisão da equipe que não precisa estar totalmente
presente em todas as fases realizadas, os recursos podem
ser alocados em outros projetos e só convocados para este
projeto quando necessário.
 Incremental – Vantagem 
 Exercícios

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais