O documento descreve diferentes modelos de desenvolvimento de software, incluindo o modelo cascata, incremental e RAD. O modelo cascata é linear e sequencial, enquanto os modelos incremental e RAD dividem o projeto em incrementos/partes menores com entregas parciais ao cliente.
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.
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
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.
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.
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?