SlideShare ist ein Scribd-Unternehmen logo
1 von 68
Downloaden Sie, um offline zu lesen
Modelos de PDS
PROF.ª ME. CRISTIANE FIDELIX
Modelo de Desenvolvimento de Software
2
Modelo de Desenvolvimento de Software:
Há um bom tempo, vem se tentando encontrar um processo ou metodologia
previsível e repetível que melhore a produtividade e qualidade. Vários modelos
foram idealizados com o intuito de “organizar” o processo, podendo assim
redundar em mais eficiência e menor custo para o mesmo.
Escopo
https://www.youtube.com/watch?v=jAN1330de-s&feature=emb_rel_pause
Modelos de Desenvolvimento de Software:
 Cascata
 Interativo
 Incremental
 RAD
 Espiral
 Prototipação
 Modelos Ágeis: Scrum e XP
 Processo Unificado: RUP
 Clean Room e Praxis, Crystal e TDD
CASCATA
CASCATA
 Cascata ou Waterfall
 Criado em 1966 e formalizado em 1970
 É um dos mais simples e conhecidos modelos para o
desenvolvimento de Software
 O Desenvolvimento de um estágio deve terminar antes de começar
o próximo
Uma vez definido não se volta mais nas etapas
SISTEMÁTICO e SEQUÊNCIAL ( Linear)
CASCATA
CASCATA
 O sistema só é entregue ao usuário depois que os desenvolvedores
observarem um resultado satisfatório na fase de VERIFICAÇÃO, com
certo grau de confiança.
 Mesmo assim o software ainda poderá sofrer alterações,
principalmente para correção e falhas que só os usuários conseguem
detectar no dia a dia e também para mais bem adaptá-los ao
ambiente ou ainda problemas de desempenho.
Se houver transformações no negócio da empresa, também será
preciso realizar mudanças.
VANTAGEM
 Simples e fácil de implementar e agir
 Requer Documentação em todas as fases
Oferece uma maneira de tornar o processo, mais visível fixando
pontos específicos para escrita de relatórios
DESVANTAGEM
Logo no início é difícil de estabelecer todos os requisitos
( Podendo ter a propagação de erros durante as fases do processo)
 Uma versão executável do software só fica pronto em uma etapa
avançada do desenvolvimento
Não há simulações, protótipos. O cliente só terá uma ideia após o
término do projeto.
DESVANTAGEM
Não acomoda engenharia Reversa, ou seja, não é possível voltar
para corrigir erros anteriores
Para utilizar este modelo, os requisitos de negócio devem estar
bem compreendidos desde o início do projeto. O que na maioria das
vezes não é a realidade.
Dificuldade de acomodação das mudanças depois que o projeto
está em andamento
Projetos reais raramente seguem o fluxo sequencial
CASCATA COM RETROALIMENTAÇÃO
 Modelo que permite que você retorne as fases anteriores e a
superposição das fases
Prevê manutenção
 DESVANTAGEM: dependendo da quantidade de revisões ao
processo pode se tornar difícil o Gerenciamento.
Questão:
O Modelo Cascata ainda é muito utilizado nos dias atuais e
representa a estrutura base para os demais modelos.
Qual das opções a seguir é uma característica deste modelo?
a) É um processo interativo.
b) É indicado para projetos longos.
c) O produto é visto somente ao final.
d) É indicado para os projetos com requisitos mal definidos.
e) Nenhuma das alternativas.
INCREMENTAL
INCREMENTAL
Divide o desenvolvimento de software em incrementos (que são
partes do sistema) que “independem” uns dos outros.
Cada sequência linear produz uma parte do software. O processo
se repete até que o produto esteja completo.
Em cada incremento ocorre todo o ciclo de desenvolvimento de
software
INCREMENTAL
 O incremento inicial é chamado de núcleo do produto. Isto quer
dizer que os requisitos básicos devem ser satisfeitos logo no início do
projeto.
 São implementados os requisitos básicos, sem detalhes
Em seguida o produto é avaliado pelo usuário, para detecção de
problemas iniciais, os quais já podem ser corrigidos.
Processo incremental:
Modelo aumenta no âmbito do sistema, na criação de novas versões para
modelo proposto
Quando utilizar:
Para sistemas que podem ser divididos em módulos.
Para sistemas com muitas alterações de requisitos.
Quando o usuário necessita utilizar uma parte do produto antes do
final de um projeto.
Quando há um prazo de entrega que não pode ser modificado.
Vantagem
 Possibilidade de definir melhor os requisitos que muitas vezes não
ficam muito claro no início do projeto
 Entregas parciais facilitam a validação do cliente
(assim com uma construção de um sistema menor é muito menos arriscado do que o
desenvolvimento de um sistema de grande porte)
 Feedback constante aumenta a qualidade
 Cada incremento é uma parte de software utilizável
 Aumento de performace , pois são mínimas chances de mudanças
bruscas nos requisitos e em tempo de desenvolvimento
DESVANTAGEM
 Cliente pode não aceitar a divisão em módulos
Questão:
Um dos ciclos de vida da Engenharia de Software bastante utilizado é o Modelo Incremental.
Assinale a alternativa correta com relação à característica desse ciclo.
a) O processo é representado por uma espiral de atividades, cada contorno da espiral representa uma fase do
processo.
b) Direciona para o reuso de software, com componentes desenvolvidos ou de mercado, com a redução no tempo
do ciclo de desenvolvimento.
c) Divide o projeto em "construções", com a entrega de várias partes, cada uma com uma funcionalidade requerida.
d) Modelo mais antigo, mais utilizado, baseado na engenharia convencional.
e) Modelo que possui uma abordagem sistemática, sequencial ao desenvolvimento do software.
INTERATIVO
ESTRUTURA INTERATIVA = AUMENTA POUCO A POUCO
 Cada interação é desenvolvida uma versão usável
 Foi criado com nas vantagens e limitações dos modelos Cascata
Processo interativo
 Modelo se baseia na ideia de melhoramentos ou refinamentos aos
poucos. Seleção de uma parte do projeto, onde o grupo identifica,
especifica, implementa e testes a iteração. Se atender as
especificações, a equipe passa para a próxima iteração
Processo interativo
Um processo iterativo é aquele que faz progresso através de tentativas sucessivas de
refinamento.
 Por exemplo, uma equipe de desenvolvimento faz sua primeira tentativa para
construção de um software, porém, existem pontos de informação falhos ou
incompletos em algumas (talvez muitas) partes. A equipe de forma iterativa refina
essas partes até que o produto atinja o ônus de satisfatório. Com cada iteração, o
software é melhorado através da adição de mais e mais detalhes.
Vídeo 1:
https://www.youtube.com/watch?v=A5xWN3i1aUE
https://www.youtube.com/watch?v=-SVZ9eBqIyY
Exemplo 1:
 Em uma primeira iteração, temos que codificar uma tela de
relatórios que suporte apenas o tipo mais simples para exibição.
 Na segunda iteração, podemos adicionar critérios de pesquisa
para ampliar o leque de opções no relatório.
 Finalmente, em uma terceira iteração, poderíamos adicionar
gráficos para explanar visualmente o relatório.
Exemplo 2:
 Vamos supor a construção de um e-commerce.
 Consideremos primeiro a forma iterativa e ignoremos a
forma incremental.
 A equipe iria construir um pouco de cada parte do e-commerce,
como gerenciador de produtos, consulta de produtos, relatório,
checkout, etc.
 A equipe, então, iria rever todas as partes de novo, fazendo
novas melhorias. Dessa forma, temos um processo
puramente iterativo, pois todo o e-commerce está ficando cada
vez melhor.
Vídeo 2:
https://www.youtube.com/watch?v=q6_Pq5zByME
Questão:
Hoje, a maioria das empresas de software tendem a utilizar modelos de desenvolvimento de software iterativos, em contraposição a
modelos mais antigos, como o modelo cascata. Sobre a comparação entre os modelos iterativo e cascata, pode-se afirmar que:
A) O modelo cascata é muito utilizado em conjunto com metodologias ágeis de desenvolvimento, por permitir um
feedback constante do cliente, em contraponto ao modelo iterativo, que permite um contato maior com o cliente
somente nos períodos de teste.
B) A principal característica do modelo cascata é a repetição (daí o nome cascata) de processos como análise.
desenvolvimento e testes, enquanto um modelo iterativo de desenvolvimento evita alterações repetitivas no projeto.
C) Um modelo iterativo permite entregas periódicas, antecipando problemas de integração logo no início do desenvolvimento, enquanto um modelo
cascata adiaria as questões que seriam levantadas num período de integração.
D) O modelo cascata e o modelo iterativo foram gerados a partir de definições da UML.
E) A vantagem principal do modelo iterativo sobre o cascata é a não existência de uma etapa de análise, o que permite que o software possa ser
concluído em menor tempo.
RAD (Rapid Application Development)
É um modelo incremental porém enfatiza o processo de
desenvolvimento curto (em média de 60 a 90 dias).
Construção baseada em componentes.
Pode ser dividido entre as várias equipes RAD e, ao final, integrada
para formar o todo.
RAD (Rapid Application Development)
Vantagem
 Divisão de tarefas entre equipes
 Desenvolvimento rápido, com prazos curtos
 Usa a prototipação interativa e viva
Aumento do reuso do código.
Maior envolvimento do usuário/cliente
Menos custos, exceto em grandes projetos
Desvantagem
 Não indicado para projetos grandes e complexos
 Não aplicado a projetos com alto risco técnico.
Quando utilizar:
As restrições de tempo devem ser (em média de 60-90 dias).
Se a aplicação de software pode ser modularizada e cada função
principal possa ser completada em menos de 3 meses.
Cada função principal pode ser tratada por uma equipe distinta e,
depois, integrada para formar um todo.
Questão:
Os modelos de ciclo de vida de desenvolvimento de software Incremental e RAD são
semelhantes em sua estrutura. Assinale a alternativa que indica uma dessas semelhanças:
a) Usam a prototipação.
b) Divide o software em partes menores.
c) Utiliza os componentes.
d) Não melhora a qualidade.
e)São testados só ao final de todo o projeto.
Atividade: 1)
Considere que um Analista de Sistemas e sua equipe trabalham utilizando o ciclo de vida
clássico de software. Na etapa atual eles estão descrevendo as tarefas técnicas a serem
conduzidas no desenvolvimento, levantando os riscos prováveis, os recursos que serão
necessários, os produtos de trabalho a serem produzidos, bem como definindo um
cronograma de trabalho. A equipe está na fase de :
a) Modelagem.
b) Construção.
c) Implantação.
d) Planejamento.
2)
Das seguintes informações sobre modelos de ciclos de vida de desenvolvimento de software, é
INCORRETO afirmar:
a) O modelo de processo iterativo é aquele que faz progresso através de tentativas sucessivas de refinamento.
b) O modelo de ciclo de vida RAD não indicado para projetos grandes e complexos.
c) No modelo de ciclo de vida em cascata, as etapas acontecem de maneira sequencial.
d) O modelo de ciclo de vida em cascata permite somente no final da fase uma versão do
software no cliente.
e) O modelo de processo incremental uma das desvantagens é que o cliente pode não aceitar a divisão do projeto
em módulos.
3)
Sobre modelos de ciclo de vida de sistemas, é INCORRETO afirmar:
a) O tradicional modelo cascata está caindo em desuso devido a diversos fatores, entre eles a pouca adaptabilidade
do modelo às constantes mudanças que ocorrem no contexto dos sistemas a ser implementado.
b) O tradicional modelo cascata está caindo em desuso por causa da grande distância de tempo entre o término da
análise e a disponibilização do software.
c) O modelo iterativo incremental propõe uma nova filosofia de organização do ciclo de vida dos sistemas. Os
tradicionais conceitos de ciclo de vida em cascata foram abandonados devido a essa revolucionária maneira de
desenvolver sistemas.
d) O modelo iterativo incremental define um divisão do processo de desenvolvimento (iterações), divisão de tarefas
entre equipes isto torna o desenvolvimento mais lento com prazos longos.
4)
A figura abaixo ilustra o paradigma do ciclo de vida clássico da Engenharia de Software que é
composto de seis atividades.
Observe que estão faltando duas atividades. As duas atividades que completam, na ordem
correta, a sequência acima são:
4)
A) Análise, teste e Levantamento de Requisitos
B) Teste, Análise e Levantamento de Requisitos
C) Levantamento de Requisitos, Análise e Teste
D) Comunicação, Planejamento e Teste
E) Modelagem de Dados, Comunicação e Testes
5)
O modelo de processo de desenvolvimento de software incremental que enfatiza um ciclo de desenvolvimento
extremamente curto, que compreende as fases de modelagem do negócio, modelagem dos dados, modelagem do processo,
geração da aplicação, além de teste e entrega, e que o desenvolvimento é conseguido pelo uso de construção baseada em
componentes, é conhecido como modelo:
a) sequencial linear
b) RAD (Rapid Application Development)
c) Iterativo
d) Incremental
e) Cascata
No RPG cada participante assume o papel de um personagem,
sendo o funcionamento similar a um teatro.
A Engenharia de Software pode ser definida de forma
simplificada como “uma abordagem sistemática e disciplinada
para o desenvolvimento de software”. (PRESSMAN, 2006).
SE-RPG
é um jogo baseado em papéis (RPG – Role-Playing Game).
Através da simulação do ambiente de uma empresa fictícia
de desenvolvimento de software, o jogo procura ensinar ao
jogador alguns conceitos de Gerenciamento de Projetos de
Software, sendo considerado, após a avaliação, um jogo
desafiador e 3 motivador
Etapas:
Jogo:
http://www.inf.ufsc.br/~fabiane.benitti/serpg/
ESPIRAL
ESPIRAL
É um framework de processo de software dirigido a riscos (o modelo em espiral)
foi proposto por Boehm (1988).
O processo de software é representado como uma espiral, e não como uma
sequência de atividades com alguns retornos de uma para outra.
ESPIRAL
Engloba a natureza interativa do Modelo de Prototipação com os aspectos do
Modelo Cascata e de análise de riscos.
Cada loop representa uma fase do processo de software.
Onde cada loop pode estar relacionado à viabilidade do sistema.
O próximo loop, à definição de requisitos.
O próximo, ao projeto e assim por diante.
A cada ciclo são produzidas versões cada vez mais completas do software.
O MODELO POSSUI 4 QUADRANTES:
Determinação dos objetivos, alternativas e restrições: os objetivos específicos para a etapa
são identificados e alternativas para realizar os objetivos e restrições são encontradas;
Análise das alternativas e identificação e/ou resolução de riscos: os riscos principais são
identificados, analisados e buscam-se meios para reduzir esses riscos;
Desenvolvimento da engenharia e validação da versão corrente do produto: um modelo
apropriado para o desenvolvimento é escolhido, o qual pode ser qualquer um dos modelos de
ciclo de vida;
Avaliar e planejar para próxima fase: o projeto é revisto e o próximo ciclo da espiral é
planejado.
ESPIRAL
Cada volta na espiral representa uma fase do processo de software. Dessa
forma, a volta mais interna pode preocupar-se com a viabilidade do sistema; o
ciclo seguinte, com a definição de requisitos, o seguinte. Com o projeto do
sistema, e assim por diante.
O modelo em espiral combina prevenção e tolerância a mudanças, assume que
mudanças são um resultado de risco de projeto e inclui atividades explícitas de
gerenciamento de riscos para sua redução.
Quando utilizar:
Para softwares de grande porte.
Para softwares que possuem riscos no seu desenvolvimento.
Com o uso de prototipação, tem-se melhor conhecimento de
requisitos do sistema.
Vantagem
Primeiro modelo a incluir a análise de riscos
Permite uma maior interação com o cliente.
DESVANTAGEM
 Difícil convencer o cliente que uma abordagem “evolutiva” é
melhor
Modelo relativamente novo e não é amplamente usado
Exige experiência na avaliação de riscos e no uso do modelo
(experiência na determinação de RISCOS)
PROTOTIPAÇÃO
PROTOTIPAÇÃO
 É um modelo evolucionário que pode ser usado por qualquer dos demais
modelos.
 Que permite visualizar como o sistema ficará quando estiver pronto.
PROTOTIPAÇÃO
 Consiste na montagem de um sistema EXPERIMENTAL para uma avaliação
PRÉVIA dos usuários finais
O PROTÓTIPO É UMA VERSÃO FUNCIONAL
DO SISTEMA OU PARTE DO SISTEMA
 Serve como mecanismo para identificar os requisitos
PROTOTIPAÇÃO
É um modelo evolucionário.
Pode ser usado por qualquer dos demais modelos.
Utilizado para identificar e validar os requisitos.
Permite visualizar como o sistema ficará quando estiver pronto.
IMPORTÂNCIA
 Para validar todas as ideias antes da etapa de desenvolvimento do projeto,
para assim evitar erros maiores (e mais caros) no futuro.
A prototipagem é a quarta e última fase do processo
de Design Thinking e tem como função validar as ideias
geradas na fase anterior.
Quando utilizar:
 Quando os requisitos estão mal definidos ou difíceis de serem
compreendidos.
 Um meio de redução de risco, ao permitir que o usuário visualize
como vai ficar antes de estar pronto.
 Pode ser usado em qualquer tipo de sistema na fase de captura
dos requisitos. Depois, pode continuar com outros modelos ao
decorrer de desenvolvimento.
Vantagens:
 Reduz o número de mudanças
 Aumenta a qualidade
 Pode reduzir o tempo de desenvolvimento
Interação rápida, altamente dinâmica
Sem desperdício
Desvantagens:
O cliente acha que o produto está pronto
O projetista pode incorporar as soluções inadequadas
Questão:
Usando o modelo ____________, o sistema é desenvolvido em ciclos, sendo que os primeiros ciclos podem não conter todas as
atividades. O produto resultante de um primeiro ciclo pode ser uma especificação do produto ou um estudo de viabilidade. Os
ciclos subsequentes podem ser protótipos, chegando progressivamente a versões operacionais do software, até se obter o produto
completo. Modelos podem ser úteis para ajudar a levantar e validar requisitos, mas pode ocorrer de os clientes e usuários só terem
uma verdadeira dimensão do que está sendo construído se forem colocados diante do sistema. Nestes casos, o uso da
__________________ é fundamental.
As expressões que completam corretamente os espaços em branco, respectivamente, são:
•A
A. espiral, prototipação.
B. cascata, prototipação.
C. XP, conversa com os clientes.
D. espiral, cascata.
E. incremental, prototipação.
Questão:
No desenvolvimento de software em espiral (Boehm), cada loop está dividido em quatro setores. NÃO se
trata da denominação de um destes setores:
A. Definição de objetivos
B. Avaliação e Redução de Riscos
C. Desenvolvimento da engenharia e validação
D. Planejamento
E. Manutenção
Questão:
Considere as seguintes afirmações sobre Prototipação:
I - A prototipação é comumente utilizada como uma técnica que auxilia os interessados, quando os requisitos estão obscuros, a compreender melhor o
que está para ser construído, auxiliando a Engenharia de Requisitos.
II - Um protótipo é uma versão inicial de um sistema de software, usado para demonstrar conceitos, experimentar opções de projeto e descobrir mais
sobre o problema e suas possíveis soluções para apresentar aos stakeholders.
III - Protótipos devem ser executáveis para serem úteis já em funcionamento. Deve-se evitar o desenvolvimento de Wireframes (protótipos) em papel
de interface de usuário, embora seja mais fácil de ser construída.
Quais alternativa está correta?
A. Apenas I.
B. Apenas I e II.
C. Apenas II e III.
D. Todas estão corretas.
E. Todas estão erradas.
QUESTÕES
1) Quais as vantagens em usar o modelo Espiral com relação ao modelo Cascata?
2) Cite as vantagens e desvantagens da Prototipagem.
3) Em que momento a Prototipagem pode ser utilizada no modelo Espiral?
Vídeos:
Protótipo de Papel:
https://www.youtube.com/watch?v=zBvG34eEyG8
O que é um Wireframe:
https://www.youtube.com/watch?time_continue=1&v=INPlcg_BsGc
Exemplos:
https://www.youtube.com/watch?time_continue=5&v=E2xMbxsPTNc
https://www.youtube.com/watch?time_continue=8&v=y20E3qBmHpg
Referência para leitura
SOMMERVILLE, Ian. Engenharia de Software, 8 ed. São Paulo: Pearson
Addison-Wesley, 2007.
68

Weitere ähnliche Inhalte

Was ist angesagt?

Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
Sérgio Souza Costa
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de software
elliando dias
 

Was ist angesagt? (20)

Exemplos de User Stories
Exemplos de User StoriesExemplos de User Stories
Exemplos de User Stories
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Modelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de SoftwareModelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de Software
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1
 
Mpsbr
MpsbrMpsbr
Mpsbr
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Criação de tabelas com HTML
Criação de tabelas com HTMLCriação de tabelas com HTML
Criação de tabelas com HTML
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeis
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Ferramentas Case - fase de análise e projeto
Ferramentas Case - fase de análise e projetoFerramentas Case - fase de análise e projeto
Ferramentas Case - fase de análise e projeto
 
Metodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de SoftwareMetodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de Software
 
Modelos de ciclo de vida de software
Modelos de ciclo de vida de softwareModelos de ciclo de vida de software
Modelos de ciclo de vida de software
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitos
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de software
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 

Ähnlich wie Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix

T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascata
wilsonguns
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
erysonsi
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
erysonsi
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
erysonsi
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de Software
Robson Silva Espig
 
Aula 2 modelo de processo de software1
Aula 2   modelo de processo de software1Aula 2   modelo de processo de software1
Aula 2 modelo de processo de software1
Tiago Vizoto
 

Ähnlich wie Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix (20)

T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascata
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
vantagens e desvantagens do ciclo de vida de software
vantagens e desvantagens do ciclo de vida de softwarevantagens e desvantagens do ciclo de vida de software
vantagens e desvantagens do ciclo de vida de software
 
Processos de software
Processos de softwareProcessos de software
Processos de software
 
Aula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptxAula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptx
 
Modelo cascata
Modelo cascataModelo cascata
Modelo cascata
 
Processo de software individual
Processo de software individualProcesso de software individual
Processo de software individual
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdfO_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
 
Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de Software
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
 
Aula 2 modelo de processo de software1
Aula 2   modelo de processo de software1Aula 2   modelo de processo de software1
Aula 2 modelo de processo de software1
 

Mehr von Cris Fidelix

Estudo de caso 1 - Prática de BD - Prof. Cristiane Fidelix
Estudo de caso 1 - Prática de BD - Prof. Cristiane FidelixEstudo de caso 1 - Prática de BD - Prof. Cristiane Fidelix
Estudo de caso 1 - Prática de BD - Prof. Cristiane Fidelix
Cris Fidelix
 

Mehr von Cris Fidelix (20)

Alguns combinados C#
Alguns combinados C#Alguns combinados C#
Alguns combinados C#
 
Estudo de caso 1 - Prática de BD - Prof. Cristiane Fidelix
Estudo de caso 1 - Prática de BD - Prof. Cristiane FidelixEstudo de caso 1 - Prática de BD - Prof. Cristiane Fidelix
Estudo de caso 1 - Prática de BD - Prof. Cristiane Fidelix
 
Tecnologia e Sistemas de Informação ERP,CRM,SCM e E-business
Tecnologia e Sistemas de Informação  ERP,CRM,SCM e E-businessTecnologia e Sistemas de Informação  ERP,CRM,SCM e E-business
Tecnologia e Sistemas de Informação ERP,CRM,SCM e E-business
 
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
 
Componentes dos Sistemas de Informação - Proª Cristiane fidelix
Componentes dos Sistemas de Informação - Proª Cristiane fidelixComponentes dos Sistemas de Informação - Proª Cristiane fidelix
Componentes dos Sistemas de Informação - Proª Cristiane fidelix
 
Tipos de Sistema de Informação - Prof.ª Cristiane Fidelix
Tipos de Sistema de Informação - Prof.ª Cristiane FidelixTipos de Sistema de Informação - Prof.ª Cristiane Fidelix
Tipos de Sistema de Informação - Prof.ª Cristiane Fidelix
 
Fundamentos em Tecnologia da Informação - Prof.ª Cristiane Fidelix
Fundamentos em Tecnologia da Informação - Prof.ª Cristiane FidelixFundamentos em Tecnologia da Informação - Prof.ª Cristiane Fidelix
Fundamentos em Tecnologia da Informação - Prof.ª Cristiane Fidelix
 
Componentes dos Sistemas de Informação
Componentes dos Sistemas de InformaçãoComponentes dos Sistemas de Informação
Componentes dos Sistemas de Informação
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
 
Apresentação de Tecnologia da Informação - Prof.ª Cristiane Fidelix
Apresentação de Tecnologia da Informação - Prof.ª Cristiane FidelixApresentação de Tecnologia da Informação - Prof.ª Cristiane Fidelix
Apresentação de Tecnologia da Informação - Prof.ª Cristiane Fidelix
 
Carreiras TI - Gestão da Tecnologia da Informação
Carreiras TI -  Gestão da Tecnologia da InformaçãoCarreiras TI -  Gestão da Tecnologia da Informação
Carreiras TI - Gestão da Tecnologia da Informação
 
Apresentação de Tecnologia da Informação - Prof.ª Cristiane Fidelix
Apresentação de Tecnologia da Informação - Prof.ª Cristiane FidelixApresentação de Tecnologia da Informação - Prof.ª Cristiane Fidelix
Apresentação de Tecnologia da Informação - Prof.ª Cristiane Fidelix
 
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane FidelixApresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
 
Cases 3 - Java - Prof.ª Cristiane Fidelix
Cases 3 - Java - Prof.ª Cristiane FidelixCases 3 - Java - Prof.ª Cristiane Fidelix
Cases 3 - Java - Prof.ª Cristiane Fidelix
 
Cases 2 - Aula de Java - Prof.ª Cristiane Fidelix
Cases 2 - Aula de Java - Prof.ª Cristiane FidelixCases 2 - Aula de Java - Prof.ª Cristiane Fidelix
Cases 2 - Aula de Java - Prof.ª Cristiane Fidelix
 
Aula 2 - Java Prof.ª Cristiane Fidelix
Aula 2 - Java  Prof.ª Cristiane FidelixAula 2 - Java  Prof.ª Cristiane Fidelix
Aula 2 - Java Prof.ª Cristiane Fidelix
 
Cases 1 - Java -Prof.ª Cristiane Fidelix
Cases 1 - Java -Prof.ª Cristiane FidelixCases 1 - Java -Prof.ª Cristiane Fidelix
Cases 1 - Java -Prof.ª Cristiane Fidelix
 
Aula 3 - Java Prof.ª Cristiane Fidelix
Aula 3 -  Java Prof.ª Cristiane FidelixAula 3 -  Java Prof.ª Cristiane Fidelix
Aula 3 - Java Prof.ª Cristiane Fidelix
 
Aula 2 - Java Prof.ª Cristiane Fidelix
Aula 2 - Java  Prof.ª Cristiane FidelixAula 2 - Java  Prof.ª Cristiane Fidelix
Aula 2 - Java Prof.ª Cristiane Fidelix
 

Kürzlich hochgeladen

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Kürzlich hochgeladen (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix

  • 1. Modelos de PDS PROF.ª ME. CRISTIANE FIDELIX
  • 3. Modelo de Desenvolvimento de Software: Há um bom tempo, vem se tentando encontrar um processo ou metodologia previsível e repetível que melhore a produtividade e qualidade. Vários modelos foram idealizados com o intuito de “organizar” o processo, podendo assim redundar em mais eficiência e menor custo para o mesmo.
  • 5. Modelos de Desenvolvimento de Software:  Cascata  Interativo  Incremental  RAD  Espiral  Prototipação  Modelos Ágeis: Scrum e XP  Processo Unificado: RUP  Clean Room e Praxis, Crystal e TDD
  • 7. CASCATA  Cascata ou Waterfall  Criado em 1966 e formalizado em 1970  É um dos mais simples e conhecidos modelos para o desenvolvimento de Software  O Desenvolvimento de um estágio deve terminar antes de começar o próximo Uma vez definido não se volta mais nas etapas SISTEMÁTICO e SEQUÊNCIAL ( Linear)
  • 9. CASCATA  O sistema só é entregue ao usuário depois que os desenvolvedores observarem um resultado satisfatório na fase de VERIFICAÇÃO, com certo grau de confiança.  Mesmo assim o software ainda poderá sofrer alterações, principalmente para correção e falhas que só os usuários conseguem detectar no dia a dia e também para mais bem adaptá-los ao ambiente ou ainda problemas de desempenho. Se houver transformações no negócio da empresa, também será preciso realizar mudanças.
  • 10. VANTAGEM  Simples e fácil de implementar e agir  Requer Documentação em todas as fases Oferece uma maneira de tornar o processo, mais visível fixando pontos específicos para escrita de relatórios
  • 11. DESVANTAGEM Logo no início é difícil de estabelecer todos os requisitos ( Podendo ter a propagação de erros durante as fases do processo)  Uma versão executável do software só fica pronto em uma etapa avançada do desenvolvimento Não há simulações, protótipos. O cliente só terá uma ideia após o término do projeto.
  • 12. DESVANTAGEM Não acomoda engenharia Reversa, ou seja, não é possível voltar para corrigir erros anteriores Para utilizar este modelo, os requisitos de negócio devem estar bem compreendidos desde o início do projeto. O que na maioria das vezes não é a realidade. Dificuldade de acomodação das mudanças depois que o projeto está em andamento Projetos reais raramente seguem o fluxo sequencial
  • 13. CASCATA COM RETROALIMENTAÇÃO  Modelo que permite que você retorne as fases anteriores e a superposição das fases Prevê manutenção  DESVANTAGEM: dependendo da quantidade de revisões ao processo pode se tornar difícil o Gerenciamento.
  • 14. Questão: O Modelo Cascata ainda é muito utilizado nos dias atuais e representa a estrutura base para os demais modelos. Qual das opções a seguir é uma característica deste modelo? a) É um processo interativo. b) É indicado para projetos longos. c) O produto é visto somente ao final. d) É indicado para os projetos com requisitos mal definidos. e) Nenhuma das alternativas.
  • 16. INCREMENTAL Divide o desenvolvimento de software em incrementos (que são partes do sistema) que “independem” uns dos outros. Cada sequência linear produz uma parte do software. O processo se repete até que o produto esteja completo. Em cada incremento ocorre todo o ciclo de desenvolvimento de software
  • 17. INCREMENTAL  O incremento inicial é chamado de núcleo do produto. Isto quer dizer que os requisitos básicos devem ser satisfeitos logo no início do projeto.  São implementados os requisitos básicos, sem detalhes Em seguida o produto é avaliado pelo usuário, para detecção de problemas iniciais, os quais já podem ser corrigidos.
  • 18. Processo incremental: Modelo aumenta no âmbito do sistema, na criação de novas versões para modelo proposto
  • 19. Quando utilizar: Para sistemas que podem ser divididos em módulos. Para sistemas com muitas alterações de requisitos. Quando o usuário necessita utilizar uma parte do produto antes do final de um projeto. Quando há um prazo de entrega que não pode ser modificado.
  • 20. Vantagem  Possibilidade de definir melhor os requisitos que muitas vezes não ficam muito claro no início do projeto  Entregas parciais facilitam a validação do cliente (assim com uma construção de um sistema menor é muito menos arriscado do que o desenvolvimento de um sistema de grande porte)  Feedback constante aumenta a qualidade  Cada incremento é uma parte de software utilizável  Aumento de performace , pois são mínimas chances de mudanças bruscas nos requisitos e em tempo de desenvolvimento
  • 21. DESVANTAGEM  Cliente pode não aceitar a divisão em módulos
  • 22. Questão: Um dos ciclos de vida da Engenharia de Software bastante utilizado é o Modelo Incremental. Assinale a alternativa correta com relação à característica desse ciclo. a) O processo é representado por uma espiral de atividades, cada contorno da espiral representa uma fase do processo. b) Direciona para o reuso de software, com componentes desenvolvidos ou de mercado, com a redução no tempo do ciclo de desenvolvimento. c) Divide o projeto em "construções", com a entrega de várias partes, cada uma com uma funcionalidade requerida. d) Modelo mais antigo, mais utilizado, baseado na engenharia convencional. e) Modelo que possui uma abordagem sistemática, sequencial ao desenvolvimento do software.
  • 23. INTERATIVO ESTRUTURA INTERATIVA = AUMENTA POUCO A POUCO  Cada interação é desenvolvida uma versão usável  Foi criado com nas vantagens e limitações dos modelos Cascata
  • 24. Processo interativo  Modelo se baseia na ideia de melhoramentos ou refinamentos aos poucos. Seleção de uma parte do projeto, onde o grupo identifica, especifica, implementa e testes a iteração. Se atender as especificações, a equipe passa para a próxima iteração
  • 25. Processo interativo Um processo iterativo é aquele que faz progresso através de tentativas sucessivas de refinamento.  Por exemplo, uma equipe de desenvolvimento faz sua primeira tentativa para construção de um software, porém, existem pontos de informação falhos ou incompletos em algumas (talvez muitas) partes. A equipe de forma iterativa refina essas partes até que o produto atinja o ônus de satisfatório. Com cada iteração, o software é melhorado através da adição de mais e mais detalhes.
  • 27. Exemplo 1:  Em uma primeira iteração, temos que codificar uma tela de relatórios que suporte apenas o tipo mais simples para exibição.  Na segunda iteração, podemos adicionar critérios de pesquisa para ampliar o leque de opções no relatório.  Finalmente, em uma terceira iteração, poderíamos adicionar gráficos para explanar visualmente o relatório.
  • 28. Exemplo 2:  Vamos supor a construção de um e-commerce.  Consideremos primeiro a forma iterativa e ignoremos a forma incremental.  A equipe iria construir um pouco de cada parte do e-commerce, como gerenciador de produtos, consulta de produtos, relatório, checkout, etc.  A equipe, então, iria rever todas as partes de novo, fazendo novas melhorias. Dessa forma, temos um processo puramente iterativo, pois todo o e-commerce está ficando cada vez melhor.
  • 30. Questão: Hoje, a maioria das empresas de software tendem a utilizar modelos de desenvolvimento de software iterativos, em contraposição a modelos mais antigos, como o modelo cascata. Sobre a comparação entre os modelos iterativo e cascata, pode-se afirmar que: A) O modelo cascata é muito utilizado em conjunto com metodologias ágeis de desenvolvimento, por permitir um feedback constante do cliente, em contraponto ao modelo iterativo, que permite um contato maior com o cliente somente nos períodos de teste. B) A principal característica do modelo cascata é a repetição (daí o nome cascata) de processos como análise. desenvolvimento e testes, enquanto um modelo iterativo de desenvolvimento evita alterações repetitivas no projeto. C) Um modelo iterativo permite entregas periódicas, antecipando problemas de integração logo no início do desenvolvimento, enquanto um modelo cascata adiaria as questões que seriam levantadas num período de integração. D) O modelo cascata e o modelo iterativo foram gerados a partir de definições da UML. E) A vantagem principal do modelo iterativo sobre o cascata é a não existência de uma etapa de análise, o que permite que o software possa ser concluído em menor tempo.
  • 31. RAD (Rapid Application Development) É um modelo incremental porém enfatiza o processo de desenvolvimento curto (em média de 60 a 90 dias). Construção baseada em componentes. Pode ser dividido entre as várias equipes RAD e, ao final, integrada para formar o todo.
  • 32. RAD (Rapid Application Development)
  • 33. Vantagem  Divisão de tarefas entre equipes  Desenvolvimento rápido, com prazos curtos  Usa a prototipação interativa e viva Aumento do reuso do código. Maior envolvimento do usuário/cliente Menos custos, exceto em grandes projetos
  • 34. Desvantagem  Não indicado para projetos grandes e complexos  Não aplicado a projetos com alto risco técnico.
  • 35. Quando utilizar: As restrições de tempo devem ser (em média de 60-90 dias). Se a aplicação de software pode ser modularizada e cada função principal possa ser completada em menos de 3 meses. Cada função principal pode ser tratada por uma equipe distinta e, depois, integrada para formar um todo.
  • 36. Questão: Os modelos de ciclo de vida de desenvolvimento de software Incremental e RAD são semelhantes em sua estrutura. Assinale a alternativa que indica uma dessas semelhanças: a) Usam a prototipação. b) Divide o software em partes menores. c) Utiliza os componentes. d) Não melhora a qualidade. e)São testados só ao final de todo o projeto.
  • 37. Atividade: 1) Considere que um Analista de Sistemas e sua equipe trabalham utilizando o ciclo de vida clássico de software. Na etapa atual eles estão descrevendo as tarefas técnicas a serem conduzidas no desenvolvimento, levantando os riscos prováveis, os recursos que serão necessários, os produtos de trabalho a serem produzidos, bem como definindo um cronograma de trabalho. A equipe está na fase de : a) Modelagem. b) Construção. c) Implantação. d) Planejamento.
  • 38. 2) Das seguintes informações sobre modelos de ciclos de vida de desenvolvimento de software, é INCORRETO afirmar: a) O modelo de processo iterativo é aquele que faz progresso através de tentativas sucessivas de refinamento. b) O modelo de ciclo de vida RAD não indicado para projetos grandes e complexos. c) No modelo de ciclo de vida em cascata, as etapas acontecem de maneira sequencial. d) O modelo de ciclo de vida em cascata permite somente no final da fase uma versão do software no cliente. e) O modelo de processo incremental uma das desvantagens é que o cliente pode não aceitar a divisão do projeto em módulos.
  • 39. 3) Sobre modelos de ciclo de vida de sistemas, é INCORRETO afirmar: a) O tradicional modelo cascata está caindo em desuso devido a diversos fatores, entre eles a pouca adaptabilidade do modelo às constantes mudanças que ocorrem no contexto dos sistemas a ser implementado. b) O tradicional modelo cascata está caindo em desuso por causa da grande distância de tempo entre o término da análise e a disponibilização do software. c) O modelo iterativo incremental propõe uma nova filosofia de organização do ciclo de vida dos sistemas. Os tradicionais conceitos de ciclo de vida em cascata foram abandonados devido a essa revolucionária maneira de desenvolver sistemas. d) O modelo iterativo incremental define um divisão do processo de desenvolvimento (iterações), divisão de tarefas entre equipes isto torna o desenvolvimento mais lento com prazos longos.
  • 40. 4) A figura abaixo ilustra o paradigma do ciclo de vida clássico da Engenharia de Software que é composto de seis atividades. Observe que estão faltando duas atividades. As duas atividades que completam, na ordem correta, a sequência acima são:
  • 41. 4) A) Análise, teste e Levantamento de Requisitos B) Teste, Análise e Levantamento de Requisitos C) Levantamento de Requisitos, Análise e Teste D) Comunicação, Planejamento e Teste E) Modelagem de Dados, Comunicação e Testes
  • 42. 5) O modelo de processo de desenvolvimento de software incremental que enfatiza um ciclo de desenvolvimento extremamente curto, que compreende as fases de modelagem do negócio, modelagem dos dados, modelagem do processo, geração da aplicação, além de teste e entrega, e que o desenvolvimento é conseguido pelo uso de construção baseada em componentes, é conhecido como modelo: a) sequencial linear b) RAD (Rapid Application Development) c) Iterativo d) Incremental e) Cascata
  • 43. No RPG cada participante assume o papel de um personagem, sendo o funcionamento similar a um teatro. A Engenharia de Software pode ser definida de forma simplificada como “uma abordagem sistemática e disciplinada para o desenvolvimento de software”. (PRESSMAN, 2006).
  • 44. SE-RPG é um jogo baseado em papéis (RPG – Role-Playing Game). Através da simulação do ambiente de uma empresa fictícia de desenvolvimento de software, o jogo procura ensinar ao jogador alguns conceitos de Gerenciamento de Projetos de Software, sendo considerado, após a avaliação, um jogo desafiador e 3 motivador
  • 48. ESPIRAL É um framework de processo de software dirigido a riscos (o modelo em espiral) foi proposto por Boehm (1988). O processo de software é representado como uma espiral, e não como uma sequência de atividades com alguns retornos de uma para outra.
  • 49. ESPIRAL Engloba a natureza interativa do Modelo de Prototipação com os aspectos do Modelo Cascata e de análise de riscos. Cada loop representa uma fase do processo de software. Onde cada loop pode estar relacionado à viabilidade do sistema. O próximo loop, à definição de requisitos. O próximo, ao projeto e assim por diante. A cada ciclo são produzidas versões cada vez mais completas do software.
  • 50. O MODELO POSSUI 4 QUADRANTES: Determinação dos objetivos, alternativas e restrições: os objetivos específicos para a etapa são identificados e alternativas para realizar os objetivos e restrições são encontradas; Análise das alternativas e identificação e/ou resolução de riscos: os riscos principais são identificados, analisados e buscam-se meios para reduzir esses riscos; Desenvolvimento da engenharia e validação da versão corrente do produto: um modelo apropriado para o desenvolvimento é escolhido, o qual pode ser qualquer um dos modelos de ciclo de vida; Avaliar e planejar para próxima fase: o projeto é revisto e o próximo ciclo da espiral é planejado.
  • 51.
  • 52. ESPIRAL Cada volta na espiral representa uma fase do processo de software. Dessa forma, a volta mais interna pode preocupar-se com a viabilidade do sistema; o ciclo seguinte, com a definição de requisitos, o seguinte. Com o projeto do sistema, e assim por diante. O modelo em espiral combina prevenção e tolerância a mudanças, assume que mudanças são um resultado de risco de projeto e inclui atividades explícitas de gerenciamento de riscos para sua redução.
  • 53. Quando utilizar: Para softwares de grande porte. Para softwares que possuem riscos no seu desenvolvimento. Com o uso de prototipação, tem-se melhor conhecimento de requisitos do sistema.
  • 54. Vantagem Primeiro modelo a incluir a análise de riscos Permite uma maior interação com o cliente.
  • 55. DESVANTAGEM  Difícil convencer o cliente que uma abordagem “evolutiva” é melhor Modelo relativamente novo e não é amplamente usado Exige experiência na avaliação de riscos e no uso do modelo (experiência na determinação de RISCOS)
  • 57. PROTOTIPAÇÃO  É um modelo evolucionário que pode ser usado por qualquer dos demais modelos.  Que permite visualizar como o sistema ficará quando estiver pronto.
  • 58. PROTOTIPAÇÃO  Consiste na montagem de um sistema EXPERIMENTAL para uma avaliação PRÉVIA dos usuários finais O PROTÓTIPO É UMA VERSÃO FUNCIONAL DO SISTEMA OU PARTE DO SISTEMA  Serve como mecanismo para identificar os requisitos
  • 59. PROTOTIPAÇÃO É um modelo evolucionário. Pode ser usado por qualquer dos demais modelos. Utilizado para identificar e validar os requisitos. Permite visualizar como o sistema ficará quando estiver pronto.
  • 60. IMPORTÂNCIA  Para validar todas as ideias antes da etapa de desenvolvimento do projeto, para assim evitar erros maiores (e mais caros) no futuro. A prototipagem é a quarta e última fase do processo de Design Thinking e tem como função validar as ideias geradas na fase anterior.
  • 61. Quando utilizar:  Quando os requisitos estão mal definidos ou difíceis de serem compreendidos.  Um meio de redução de risco, ao permitir que o usuário visualize como vai ficar antes de estar pronto.  Pode ser usado em qualquer tipo de sistema na fase de captura dos requisitos. Depois, pode continuar com outros modelos ao decorrer de desenvolvimento.
  • 62. Vantagens:  Reduz o número de mudanças  Aumenta a qualidade  Pode reduzir o tempo de desenvolvimento Interação rápida, altamente dinâmica Sem desperdício Desvantagens: O cliente acha que o produto está pronto O projetista pode incorporar as soluções inadequadas
  • 63. Questão: Usando o modelo ____________, o sistema é desenvolvido em ciclos, sendo que os primeiros ciclos podem não conter todas as atividades. O produto resultante de um primeiro ciclo pode ser uma especificação do produto ou um estudo de viabilidade. Os ciclos subsequentes podem ser protótipos, chegando progressivamente a versões operacionais do software, até se obter o produto completo. Modelos podem ser úteis para ajudar a levantar e validar requisitos, mas pode ocorrer de os clientes e usuários só terem uma verdadeira dimensão do que está sendo construído se forem colocados diante do sistema. Nestes casos, o uso da __________________ é fundamental. As expressões que completam corretamente os espaços em branco, respectivamente, são: •A A. espiral, prototipação. B. cascata, prototipação. C. XP, conversa com os clientes. D. espiral, cascata. E. incremental, prototipação.
  • 64. Questão: No desenvolvimento de software em espiral (Boehm), cada loop está dividido em quatro setores. NÃO se trata da denominação de um destes setores: A. Definição de objetivos B. Avaliação e Redução de Riscos C. Desenvolvimento da engenharia e validação D. Planejamento E. Manutenção
  • 65. Questão: Considere as seguintes afirmações sobre Prototipação: I - A prototipação é comumente utilizada como uma técnica que auxilia os interessados, quando os requisitos estão obscuros, a compreender melhor o que está para ser construído, auxiliando a Engenharia de Requisitos. II - Um protótipo é uma versão inicial de um sistema de software, usado para demonstrar conceitos, experimentar opções de projeto e descobrir mais sobre o problema e suas possíveis soluções para apresentar aos stakeholders. III - Protótipos devem ser executáveis para serem úteis já em funcionamento. Deve-se evitar o desenvolvimento de Wireframes (protótipos) em papel de interface de usuário, embora seja mais fácil de ser construída. Quais alternativa está correta? A. Apenas I. B. Apenas I e II. C. Apenas II e III. D. Todas estão corretas. E. Todas estão erradas.
  • 66. QUESTÕES 1) Quais as vantagens em usar o modelo Espiral com relação ao modelo Cascata? 2) Cite as vantagens e desvantagens da Prototipagem. 3) Em que momento a Prototipagem pode ser utilizada no modelo Espiral?
  • 67. Vídeos: Protótipo de Papel: https://www.youtube.com/watch?v=zBvG34eEyG8 O que é um Wireframe: https://www.youtube.com/watch?time_continue=1&v=INPlcg_BsGc Exemplos: https://www.youtube.com/watch?time_continue=5&v=E2xMbxsPTNc https://www.youtube.com/watch?time_continue=8&v=y20E3qBmHpg
  • 68. Referência para leitura SOMMERVILLE, Ian. Engenharia de Software, 8 ed. São Paulo: Pearson Addison-Wesley, 2007. 68