Buscar

Aula 3 - Modelos de Ciclo de Vida de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

MODELO DE
MATURIDADE
DE SOFTWARE
Introdução
Esta aula tem como tema central apresentar aos alunos os principais
modelos de ciclo de vida utilizados no mercado, seus conceitos,
características e aplicações.
Os modelos de ciclo de vida de software surgiram pela necessidade de
termos um conjunto de etapas a serem seguidas para que um este produto
pudesse ser desenvolvido.
Com um modelo bem definido e estabelecido, é mais fácil para que todos na
organização possam seguir as mesmas etapas e saber em que fase se
encontra o desenvolvimento do software.
Objetivo:
1. Apresentar o conceito de ciclo de vida de software e alguns
modelos, como: cascata, v, incremental, evolutivo, iterativo e
incremental;
2. Discutir os modelos Rad, prototipação, espiral e Rup.
Ciclo de vida de software
por que precisamos utilizar um modelo de ciclo de vida para desenvolver
software?
Ciclo de vida de software
Porque ele define:
• A estrutura e a filosofia utilizadas obrigatoriamente em um
processo de desenvolvimento de software;
• As diferentes fases na existência deste produto;
• Os princípios e diretrizes que guiarão a realização destas fases.
Precisamos entender também que a adoção de um ciclo de vida não é
suficiente para guiar e controlar um projeto de software na prática.
Atenção
As seguintes características devem ser levadas em consideração durante a vida de um
produto de software:
•Organização das atividades do processo;
•Recursos humanos, hardware e software;
•Procedimentos de operação;
•Políticas de desenvolvimento e restrições;
•Tipos de software.
Ou seja, precisamos conhecer bem a equipe de desenvolvimento e entender quais são as 
suas habilidades e quais as ferramentas disponíveis na organização, dentre outras 
características.
Ciclo de vida de software
Um ciclo de vida possui algumas características básicas que são comuns a todos
os modelos, tais como:
• Descrever as principais fases do desenvolvimento;
• Definir as principais atividades a serem realizadas durante cada uma das
fases;
• Especificar os produtos de cada uma das fases, além dos insumos necessários
 para o início delas;
• Fornecer um framework sobre o qual as atividades necessárias podem ser
mapeadas.
Ciclo de vida de software
Principais modelos de ciclo de vida de software
Existem vários modelos de ciclo de vida disponíveis no mercado; entretanto,
vamos discutir os principais modelos utilizados nas organizações, que são:
• Cascata
• V
• Incremental
• Evolutivo
• Iterativo e incremental.
Ciclo de vida de software
Modelo cascata
• Modelo mais antigo e o mais amplamente usado na engenharia de software
• modelado em função do ciclo da engenharia convencional.
• Também conhecido como modelo clássico ou sequencial linear.
Abordagem:
• Sistemática;
• Sequencial.
Ciclo de vida de software
Modelo cascata
Sendo adequado em situações nas quais os requisitos são bem entendidos, e o
gerente do projeto confia na capacidade da equipe de desenvolver utilizando o
processo.
A ideia da cascata nasceu das etapas que possuem este formato, sendo
executadas sequencialmente e podendo retornar a uma etapa anterior.
Entretanto, o retorno a uma etapa anterior deve ser muito bem analisado
quanto à sua viabilidade financeira e técnica.
Ciclo de vida de software
Atenção
Esse modelo apresenta as seguintes vantagens:
• A fase única de requisitos leva à especificação antes do projeto e ao projeto antes da codificação;
• O uso de revisões ao fim de cada fase permite o envolvimento do usuário;
• O modelo permite que se imponha umcontrole de configuração;
• Cada passo serve como uma base aprovada e documentada para o passo seguinte. E possui as
seguintes desvantagens:
• O fluxo sequencial que o modelo propõe geralmente não é seguido em projetos reais;
• Requisitos devem ser estabelecidos de maneira completa, correta e clara no início de um projeto;
• 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;
• Ao final do projeto, é necessário um grande esforço de integração e testes.
Ciclo de vida de software
Modelo V
Assim como o modelo cascata, o modelo V é sequencial; isto significa que cada
 fase precisa ser completada antes que a próxima se inicie. Os testes são muito
 mais enfatizados nesse modelo do que no modelo cascata. Os procedimentos
de teste são desenvolvidos desde cedo no ciclo de vida, antes da
implementação.
Ciclo de vida de software
Modelo V
Ciclo de vida de software
Modelo incremental
Neste modelo, as necessidades do usuário são segmentadas em uma série
incremental de produtos. O processo se repete até que um produto completo
seja produzido, e a segmentação das necessidades é realizada antes do
desenvolvimento da primeira versão. A ideia desse modelo condiz com o
propósito de aumentar pouco a pouco o software.
O modelo incremental deve ser adotado quando os requisitos são conhecidos
no início do desenvolvimento e há a necessidade de entrega de um produto
funcional em pouco tempo. Deve notar que, a cada incremento, é produzida
uma versão operacional do software.
Ciclo de vida de software
Modelo incremental
Ciclo de vida de software
Atenção
Esse modelo apresenta as seguintes vantagens:
• Menor custo e menos tempo são necessários para a entrega da primeira versão;
• Riscos associados ao desenvolvimento de incrementos são menores devido ao seu
tamanho reduzido;
• Número de mudanças nos requisitos pode diminuir devido ao curto tempo de
desenvolvimento da primeira versão.
E possui as seguintes desvantagens:
• Se os requisitos não são tão estáveis ou completos quanto se esperava, alguns
incrementos podem ser retirados de uso e retrabalhados;
• O gerenciamento de custo, cronograma e configuração são mais complexos.
Modelo evolutivo
Neste modelo, as versões parciais são desenvolvidas para
atender aos requisitos conhecidos inicialmente. A primeira
versão é usada para refinar os requisitos para uma segunda
versão e, a partir do conhecimento sobre os requisitos obtido
com o uso, continua-se o desenvolvimento, evoluindo o
produto.
Ciclo de vida de software
Modelo evolutivo
Esse modelo apresenta as seguintes vantagens:
• É adequado quando os requisitos não podem ser completamente
especificados no início do desenvolvimento;
• O uso do sistema pode aumentar o conhecimento sobre o produto
e, consequentemente, melhorar os requisitos.
E possui as seguintes desvantagens:
• Necessária uma forte gerência de custo, cronograma e 
configuração;
• Usuários podem não entender a natureza da abordagem e se
decepcionarem quando os resultados não são satisfatórios.
Ciclo de vida de software
O fundamento deste modelo é dividir o desenvolvimento do software em
pequenos ciclos, considerando um pequeno conjunto de necessidades do
cliente final para que estes ciclos sejam executados.
Os ciclos dizem respeito a pequenos modelos cascatas que são executados para
contemplar as necessidades do usuário. Dessa forma, precisamos dividir as
necessidades dos clientes finais em partes e definir um grau de importância
para cada uma delas.
Ciclo de vida de software
Modelo iterativo e incremental
Modelos de ciclo de vida mais utilizados
Nesta parte do curso, discutiremos mais alguns modelos de ciclo de vida que
são muito utilizados no mercado, que são: RAD (Rapid Application
Development), prototipação, espiral e RUP (Rational Unified Process).
Ciclo de vida de software
O modelo RAD (Rapid Application Development) é sequencial linear
que enfatiza o desenvolvimento rápido de um software. Essa “alta
velocidade” é conseguida através de uma abordagem de construção
baseada em várias equipes que trabalham paralelamente enquanto o
produto é dividido em módulos. Geralmente, um projeto de software
que utiliza RAD tem duração de 60 a 90 dias.
Ele pode ser utilizado quando os requisitos são bem definidose estão
estabilizados, o escopo do sistema é restrito, e a aplicação pode ser
modularizada.
Ciclo de vida de software
O modelo RAD
Atenção
Esse modelo apresenta as seguintes vantagens:
• O ciclo de desenvolvimento é extremamente curto;
• Maior distribuição de tarefas entre as equipes.
E possui as seguintes desvantagens:
• Requer recursos humanos suficientes para criar um número
• adequado de equipes em projetos grandes e escaláveis;
• Requer um comprometimento entre desenvolvedores e clientes;
• Não é apropriado quando os riscos são grandes;
• Não é apropriado quando o sistema precisa interagir com outros sistemas.
Ciclo de vida de software
O modelo RAD
Um protótipo é uma versão preliminar do produto final, o software. É uma técnica que deve ser
utilizada para explorar (elicitar) as necessidades do cliente final, principalmente quando eles são
vagos ou indefinidos. Os usuários podem fazer experiências com o protótipo, conhecendo mais
sobre o software que será disponibilizado futuramente.
É uma versão inicial de um software que pode ser utilizado para determinar a viabilidade técnica,
de custo e de cronograma de um projeto.
Deve haver uma forte interação com o usuário para que as suas necessidades sejam rapidamente
projetadas e implementadas na construção e validação do protótipo, de acordo com etapas
descritas na figura seguinte.
Ciclo de vida de software
Prototipação
Atenção
Ele possui as seguintes vantagens:
• Um protótipo deve ser submetido a uma avaliação, geralmente feita pelo
cliente;
• O fato de o cliente poder interagir com um protótipo ajuda a cristalizar suas
necessidades funcionais e de desempenho;
• Os desenvolvedores podem implementar os requisitos baseado no feedback
do usuário.
Ciclo de vida de software
Prototipação
Atenção
E apresenta os seguintes riscos na sua utilização:
• Clientes imaginam que a maior parte do trabalho já foi feita;
• Protótipo pode crescer de maneira não planejada, tornando-se 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.
Ciclo de vida de software
Prototipação
Modelo espiral
Esse modelo possui as melhores características do ciclo de vida clássico e da
prototipação, acrescentando um elemento muito importante: a análise de risco.
Além disso, assume que o desenvolvimento acontece em ciclos e possui as
seguintes fases: planejamento, análise de riscos, engenharia e avaliação. Um
software passa repetidamente por essas fases em iterações (chamadas espirais
nesse modelo). A cada passagem na espiral, é realizada a análise de risco para
avaliar a continuidade ou não do desenvolvimento do software.
Ciclo de vida de software
Rational Unified Process (RUP)
O RUP (Rational Unified Process) é um processo proprietário de
engenharia de software desenvolvido pela Rational Software,
atualmente subsidiária da IBM, e possui um framework de processo
que pode ser adaptado e estendido.
Ele usa o paradigma orientado a objetos, juntamente com a notação
UML (Unified Modeling Language) para a documentação do software.
MODELO DE MATURIDADE DE SOFTWARE
Ciclo de vida de software
Rational Unified Process (RUP)
Esse modelo está organizado em disciplinas, nas quais são
distribuídas tarefas e responsabilidades para que sejam gerados
produtos de software de cada uma destas tarefas, conhecidas como
artefatos de software.
O ciclo de vida é dividido em fases sequenciais, as quais, por sua vez,
são divididas em iterações, que são planejadas em número, duração
e objetivos, como pode ser observado na figura.
Ciclo de vida de software
Rational Unified Process (RUP)
Ciclo de vida de software
As etapas do modelo são descritas abaixo:
Concepção:
Entender os requisitos gerais e determinar o escopo do esforço de
desenvolvimento.
Elaboração (Inicialização):
Planejar as atividades e recursos necessários e especificar as características e
projeto da arquitetura.
Ciclo de vida de software
Rational Unified Process (RUP)
Construção:
Construir o produto e evoluir a visão, arquitetura e planos até que o material
esteja pronto para entrega.
Transição:
Garantir que o sistema tenha o nível correto de qualidade para atingir os 
objetivos, além de realizar correções, treinamento de usuários, ajustes e adição
de elementos que estavam faltando. Posteriormente, o produto final é produzido
e entregue.
Ciclo de vida de software
Rational Unified Process (RUP)
Atenção
Esse modelo possui as seguintes vantagens:
• Permite e encoraja o feedback do usuário, elicitando os requisitos reais do sistema;
• Inconsistências entre requisitos, projeto e implementação podem ser detectados
rapidamente;
• Divisão da carga de trabalho por todo o ciclo de vida;
• Compartilhamento de lições aprendidas, melhorando continuamente o processo;
• Evidências concretas do andamento do projeto podem ser oferecidas durante todo o
ciclo de vida.
Ciclo de vida de software
Rational Unified Process (RUP)
Exercícios de fixação
Questão 1
Fonte: FUNRIO 2013 – MPOG Analista de Tecnologia da Informação
Considere o seguinte problema encontrado em projetos de desenvolvimento de software:
projetos reais raramente seguem um fluxo sequencial. Apesar de um modelo linear poder
acomodar a iteração, ele o faz indiretamente. Como resultado, as modificações podem causar
confusão à medida que a equipe de projeto prossegue. Esse é um dos problemas que são
algumas vezes encontrados quando é aplicado o modelo de desenvolvimento:
a) Em cascata
b) Iterativo e incremental
c) Iterativo
d) Incremental
e) Evolutivo
MODELO DE MATURIDADE DE SOFTWARE
Questão 2
Fonte: FCC 2013 – AL-RN Analista Legislativo – Analista de Sistemas
O primeiro modelo de desenvolvimento de software a ser publicado foi derivado de processos
mais gerais da engenharia de sistemas. Por causa do encadeamento entre uma fase e outra,
esse processo é conhecido como modelo em cascata ou ciclo de vida de software. Dentre seus
principais estágios, encontram-se a análise e definição de requisitos, o projeto de sistema
e software e:
a) Análise de recursos e software
b) Desenvolvimento incremental
c) Geração de relatórios de teste
d) Pesquisa e testes
e) Implementação e teste unitário
MODELO DE MATURIDADE DE SOFTWARE
Questão 3
Fonte: FUMARC 2012 – TJ-MG Oficial Judiciário – Assistente Técnico de Sistemas
Em relação aos modelos de processos de software, pode-se dizer que os modelos incremental e
evolucionário possuem características iterativas. Assinale a alternativa que melhor descreve um
modelo de produção de software iterativo.
a) Os incrementos de um software são entregues ao cliente de uma só vez.
b) Um modelo de produção de software iterativo é composto pelas fases de análise de
requisitos, projeto, implementação, testes (validação), integração e manutenção de
software.
c) A abordagem iterativa possibilita desenvolver um sistema de software de
forma incremental, que permite ao desenvolvedor tirar vantagem daquilo que foi aprendido
durante a fase inicial de desenvolvimento de uma versão do sistema. O aprendizado ocorre
simultaneamente tanto para o desenvolvedor quanto para o usuário do sistema.
d) Os incrementos de um software são entregues ao cliente somente duas vezes.
e) Um modelo de produção de software iterativo é composto pelas fases de análise de
requisitos, projeto e implementação.
Questão 4
Em relação aos ciclos de vida do software, o desenvolvimento de sistemas por meio de ciclo de
vida iterativos garante ao sistema:
a) Atualização contínua
b) Legalidade
c) Segurança
d) Legibilidade
e) Utilização mínima de recursos
Questão 5
Fonte: CESPE 2010 – Detran-ES – Analista de Sistemas
Quando um aplicativo de software desenvolvido em uma organização atinge, no fim do seu ciclo
de vida, a fase denominada aposentadoria, descontinuação ou fim devida, todos os dados por ele
manipulados podem ser descartados.
f) Verdadeiro
g) Falso
Questão 6
A prototipação representa uma técnica poderosa para o desenvolvimento de sistemas, mais
especificamente do software. Sobre as funções desempenhadas por um protótipo, é correto afirmar
que ele:
a) Permite avaliar o desempenho geral da equipe de desenvolvimento de
software.
b) Não permite que sejam realizados testes, visando verificar o
funcionamento do sistema final, ainda que sejam avaliações parciais.
c) É inteiramente descartado, não sendo aproveitada nenhuma parte do código de software no
sistema final entregue ao cliente.
d) Não possibilita avaliar a qualidade do software produzido.
e) Pode auxiliar na validação de requisitos do sistema, bem como propiciar a inserção de novos
requisitos ainda não identificados.
Questão 7
Fonte: FCC 2012 – TST – Analista Judiciário – Analista de Sistemas
O ciclo de vida de um sistema especifica todas as fases de desenvolvimento, desde sua concepção
até o processo de manutenção e declínio. No que diz respeito ao desenvolvimento de software,
existem alguns processos conhecidos. Um destes processos, possui característica iterativa e
incremental, inicia cada fase do projeto realizando um planejamento prévio, realiza a execução da
fase, verifica o progresso e os resultados da fase (riscos, lições aprendidas) e incrementa novos
objetivos para a fase seguinte, seguindo para a próxima iteração. O modelo de software em questão
é o:
a) Espiral
b) Cascata
c) Prototipação
d) RAD
e) Evolutivo
Questão 8
Observe um modelo de ciclo de vida para desenvolvimento de sistemas. Nessa abordagem, o
desenvolvimento do produto de software é dividido em ciclos, sendo identificadas, em cada ciclo, as
fases de análise, projeto, implementação e testes. Esse modelo é conhecido como ciclo de vida:
a) Por prototipação em cascata
b) Por estágios em módulos
c) Iterativo e incremental
d) Evolutivo e procedural
e) Iterativo e evolutivo
Questão 9
Fonte: IADES 2010 – CFA Analista de Sistemas
Para a engenharia de software, o modelo espiral foi desenvolvido acrescentando-se novos elementos
às melhores características de outros modelos. Segundo o modelo espiral, a determinação dos 
objetivos, alternativas e restrições está relacionada à atividade de:
a) Análise de risco
b) Planejamento
c) Engenharia
d) Avaliação feita pelo cliente
e) Feedback do cliente
Questão 10
No que se refere aos modelos de desenvolvimento e ciclos de vida, julgue a
afirmativa que se segue. No modelo iterativo, divide-se o desenvolvimento em iterações. A cada
iteração, podem ser acrescentadas novas funcionalidades ao software. Uma iteração parte do estado no
qual se encontravam os artefatos ao término da iteração anterior e resulta em um incremento. Uma
iteração pode ter disciplinas como captura de requisitos, análise, projeto, implementação e teste.
a) Verdadeiro
b) Falso
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40

Continue navegando