Buscar

Aula02 Modelos Processo 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 87 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 87 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 87 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

Modelos de Processo de Modelos de Processo de 
SoftwareSoftware
Profa. Ellen Francine
(francine@icmc.usp.br)
Processo de Software
 Fases Genéricas
MANUTENÇÃOMANUTENÇÃO
Entendimento 
Modificação 
Revalidação
CONSTRUÇÃOCONSTRUÇÃO
SOFTWARE PRODUTOSOFTWARE PRODUTO
Projeto 
Codificação 
Teste
DEFINIÇÃODEFINIÇÃO
Análise de Sistema
Planejamento do Projeto
 Análise de Requisitos
• Gerenciamento de 
Configuração 
• Acompanhamento 
e Controle do 
Projeto
• Aplicação de 
Métricas
• Gerenciamento de 
Risco
• Gerenciamento de 
Reusabilidade
• Atividades de SQA
• Documentação
Modelos de Processo de SoftwareModelos de Processo de SoftwareModelos de Processo de SoftwareModelos de Processo de Software
Um Processo de Software 
com Qualidade
PROCESSO DE PROCESSO DE 
SOFTWARESOFTWARE
eficiente
controlado
definido
medido
gerenciado
Modelos de Processo de Software
 Existem vários modelos de processo de 
software.
– Paradigmas de Engenharia de SoftwareParadigmas de Engenharia de Software.
Genéricos, abstrações do processo.
– Usados para explicar diferentes abordagens 
para o desenvolvimento de software.
Tentativa de colocar ordem em uma 
atividade inerentemente caótica.
Tópicos da Aula
 Modelos de Processo de Software
– Cascata
– Prototipação
– RAD
– Evolutivos
 Incremental
Espiral
Componentes
– Métodos Formais
– Técnicas de Quarta Geração
– …
O Modelo Cascata
 Modelo mais antigo e mais amplamente 
utilizado da Engenharia de Software.
– Paradigma do Ciclo de Vida ClássicoParadigma do Ciclo de Vida Clássico.
– Modelo Seqüencial LinearModelo Seqüencial Linear.
 Sugere uma abordagem sistemática 
seqüencial para o desenvolvimento de 
software.
– Tem início em nível de sistema e avança ao longo 
da análise, projeto, codificação, teste e 
manutenção.
O Modelo Cascata
 Modelado em função do ciclo 
convencional de engenharia.
– O resultado de uma fase constitui-se na 
entrada de outra.
Engenharia 
de Sistemas
Análise de 
Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
O Modelo Cascata
Engenharia 
de Sistemas
Análise de 
Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
 Engenharia de SistemasEngenharia de Sistemas
– Estabelecimento de requisitos para todos os todos os 
elementos do sistemaelementos do sistema e atribuição de um 
subconjunto desses requisitos para o software.
 Visão essencial quando o software deve fazer interface 
com outros elementos (hardware, pessoas, banco de 
dados, etc.).
– Coleta de requisitos em nível do sistemasistema, com uma 
pequena quantidade de projetoprojeto e análiseanálise de alto 
nível. 
O Modelo Cascata
Engenharia 
de Sistemas
Análise de 
Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
 Análise de Requisitos de SoftwareAnálise de Requisitos de Software
– O processo de coleta dos requisitos é
intensificado e concentrado especificamente no 
software.
– Para entender a natureza do programa a ser 
construído:
Deve-se compreender o domínio da informaçãodomínio da informação do 
software, a funçãofunção, o desempenhodesempenho e a interfaceinterface exigidos.
– Os requisitos (do sistema e do software) são 
documentadosdocumentados e revistosrevistos com o cliente.
O Modelo Cascata
Engenharia 
de Sistemas
Análise de 
Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
 ProjetoProjeto
– Tradução dos requisitos do software para
um conjunto de representaçõesrepresentações que podem ser 
avaliadas quanto à qualidade, antes que a
codificação se inicie.
– Concentra-se em quatro atributos distintos do 
programa: estrutura de dadosestrutura de dados, arquitetura doarquitetura do
softwaresoftware, representações da interfacerepresentações da interface e detalhes detalhes 
procedimentaisprocedimentais. 
– Assim como os requisitos, o projeto deve ser 
documentado e torna-se parte da configuração de 
software.
O Modelo Cascata
Engenharia 
de Sistemas
Análise de 
Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
 Codificação (Geração de Código)Codificação (Geração de Código)
– Tradução das representações do projeto para uma 
linguagem de programação, resultando em 
instruções executáveis pelo computador.
 Se o projeto for executado detalhadamente, a codificação 
pode ser executada mecanicamente.
O Modelo Cascata
Engenharia 
de Sistemas
Análise de 
Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
 TestesTestes
– Concentram-se nos aspectos lógicos internosaspectos lógicos internos do 
software, garantindo que todas as instruções 
tenham sido testadas.
– Concentram-se nos aspectos funcionais externosaspectos funcionais externos a 
fim de descobrir erros e garantir que as entradas 
definidas produzam resultados reais que estejam 
em conformidade com os resultados esperados.
O Modelo Cascata
 Modelado em função do ciclo 
convencional de engenharia.
– O resultado de uma fase constitui-se na 
entrada de outra.
Engenharia 
de Sistemas
Análise de 
Requisitos 
Projeto 
Codificação 
Testes 
Manutenção
 ManutençãoManutenção
– Provavelmente o software deverá sofrer mudanças 
depois que for entregue ao cliente.
– Causas das mudanças:
ErrosErros.
Adaptação do software para acomodaracomodar mudanças
em seu ambiente externo.
Exigência do cliente para melhoramentosmelhoramentos funcionais e de 
desempenho.
– Reaplica cada uma das fases precedentes a um 
programa existente.
Modelo Cascata: Problemas
 Projetos reais raramente seguem o fluxo seqüencial 
que o modelo propõe.
 Modificações podem causar confusão à medida que o 
projeto prossegue.
 É difícil para o cliente estabelecer explicitamente 
todos os requisitos logo no início do projeto.
 Dificuldade do modelo em acomodar a incerteza natural 
que existe no começo do projeto.
Modelo Cascata: Problemas
 O cliente deve ter paciência. Uma versão 
executável do software só fica disponível em uma 
etapa avançada do desenvolvimento.
 Um erro grosseiro pode ser desastroso, se não for 
detectado até que o programa executável seja revisto.
Embora o Embora o Modelo CascataModelo Cascata tenha tenha 
fragilidades, ele é fragilidades, ele é 
significativamente melhor do que significativamente melhor do que 
uma abordagem casual ao uma abordagem casual ao 
desenvolvimento de software.desenvolvimento de software. 
Embora o Embora o Modelo CascataModelo Cascata tenha tenha 
fragilidades, ele é fragilidades, ele é 
significativamente melhor do que significativamente melhor do que 
uma abordagem casual ao uma abordagem casual ao 
desenvolvimento de software.desenvolvimento de software. 
O Modelo Cascata
 ContribuiçõesContribuições importantes do modelo ao 
processo de desenvolvimento de software:
– Produz um padrãopadrão no qual os métodos para 
análise, projeto, codificação, testes e manutenção 
podem ser situados.
– Impõe disciplinadisciplina, planejamentoplanejamento e gerenciamentogerenciamento.
– A implementação do produto deve ser postergadapostergada 
até que os objetivos tenham sido completamente 
entendidos.
O Modelo de Prototipação
 Possibilita que o desenvolvedor crie um 
modelo (protótipoprotótipo) do software que deve ser 
construído.
O objetivo é entender os requisitos do requisitos do 
usuáriousuário e, assim, obter uma melhor definição 
dos requisitos do sistema.
– Apropriado para quando o cliente não definiu 
detalhadamente os requisitos.
O Modelo de Prototipação
Obter Requisitos Obter Requisitos 
Elaborar Projeto RápidoElaborar Projeto Rápido
ConstruirProtótipoConstruir Protótipo
Avaliar ProtótipoAvaliar Protótipo
Refinar ProtótipoRefinar Protótipo
O Modelo de Prototipação
Obter Requisitos Obter Requisitos 
Elaborar Projeto RápidoElaborar Projeto Rápido
Construir ProtótipoConstruir Protótipo
Avaliar ProtótipoAvaliar Protótipo
Refinar ProtótipoRefinar Protótipo
 Obtenção dos RequisitosObtenção dos Requisitos
– Desenvolvedor e cliente:
 Definem os objetivos gerais do software.
Identificam quais requisitos são conhecidos.
Identificam as áreas que necessitam de 
definições adicionais. 
O Modelo de Prototipação
Obter Requisitos Obter Requisitos 
Elaborar Projeto RápidoElaborar Projeto Rápido
Construir ProtótipoConstruir Protótipo
Avaliar ProtótipoAvaliar Protótipo
Refinar ProtótipoRefinar Protótipo
 Projeto RápidoProjeto Rápido
– Representação dos aspectos do software 
que são visíveis ao usuário.
Abordagens de entrada.
Formatos de saída.
O Modelo de Prototipação
Obter Requisitos Obter Requisitos 
Elaborar Projeto RápidoElaborar Projeto Rápido
Construir ProtótipoConstruir Protótipo
Avaliar ProtótipoAvaliar Protótipo
Refinar ProtótipoRefinar Protótipo
 Construção do ProtótipoConstrução do Protótipo
– Implementação rápida do protótipo. 
O Modelo de Prototipação
Obter Requisitos Obter Requisitos 
Elaborar Projeto RápidoElaborar Projeto Rápido
Construir ProtótipoConstruir Protótipo
Avaliar ProtótipoAvaliar Protótipo
Refinar ProtótipoRefinar Protótipo
 Avaliação do ProtótipoAvaliação do Protótipo
– Cliente e desenvolvedor avaliam o 
protótipo. 
O Modelo de Prototipação
Obter Requisitos Obter Requisitos 
Elaborar Projeto RápidoElaborar Projeto Rápido
Construir ProtótipoConstruir Protótipo
Avaliar ProtótipoAvaliar Protótipo
Refinar ProtótipoRefinar Protótipo
 Refinamento do ProtótipoRefinamento do Protótipo
– Cliente e desenvolvedor refinam os 
requisitos do software a ser desenvolvido. 
O Modelo de Prototipação
Obter Requisitos Obter Requisitos 
Elaborar Projeto RápidoElaborar Projeto Rápido
Construir ProtótipoConstruir Protótipo
Avaliar ProtótipoAvaliar Protótipo
Refinar ProtótipoRefinar Protótipo
CONSTRUÇÃO CONSTRUÇÃO 
DO PRODUTODO PRODUTO
 Construção do ProdutoConstrução do Produto
– Identificados os requisitos, o protótipo deve 
ser descartadodescartado e a versão de produção deve 
ser construída considerando os critérios de critérios de 
qualidadequalidade. 
Prototipação: Problemas
O cliente não sabe que o software que ele vê 
nãonão considerou, durante o desenvolvimento:
– Qualidade global.
– Manutenibilidade a longo prazo.
O desenvolvedor freqüentemente faz uma 
implementação comprometidaimplementação comprometida.
– Utilizando o que está disponível com o objetivo de 
produzir rapidamente um protótipo.
O Modelo de Prototipação
 Ainda que possam ocorrer problemas, a 
prototipação é um ciclo de vida eficiente.
 Definir as regras do jogo logo no começo.Definir as regras do jogo logo no começo.
– O cliente e o desenvolvedor devem concordar que 
o protótipo será construído para servir como um 
mecanismo para definição dos requisitosmecanismo para definição dos requisitos.
Deve ser descartadodescartado (ao menos em parte).
O software real é submetido à engenharia visando à 
qualidadequalidade e à manutenibilidademanutenibilidade.
O Modelo RAD
RAD (Rapid Application Development)
é um modelo seqüencial linear que enfatiza 
um ciclociclo de desenvolvimento extremamente 
curtocurto.
 Trata-se de uma adaptação de “alta 
velocidade” do modelo seqüencial linearmodelo seqüencial linear.
O Modelo RAD
 A abordagem engloba as seguintes 
fases:
1. Modelagem do Negócio
2. Modelagem dos Dados
3. Modelagem do Processo
4. Geração da Aplicação
5. Teste e Modificação
O Modelo RAD
Modelagem do 
Negócio
Modelagem dos 
Dados
Modelagem do 
Processo
Geração da 
Aplicação
Teste e
Modificação
Equipe #1 Modelagem do Negócio
Modelagem dos 
Dados
Modelagem do 
Processo
Geração da 
Aplicação
Teste e 
Modificação
Equipe #2 Modelagem 
do Negócio
Modelagem 
dos Dados
Modelagem 
do Processo
Geração da 
Aplicação
Teste e 
Modificação
Equipe #3
60 a 90 dias
O Modelo RAD
1- Modelagem do Negócio
O fluxo de informação entre as funções de funções de 
negócionegócio é modelado de modo que responda as 
seguintes questões: 
– Que informação direciona o processo de negócio? 
– Que informação é gerada? 
– Quem a gera?
– Para onde vai a informação?
– Quem a processa?
O Modelo RAD
2- Modelagem dos Dados
 O fluxo de informação definido como parte da fase de 
modelagem dos negócios é refinado em um conjunto 
de objetos de dadosobjetos de dados necessários para apoiar os 
negócios.
 As característicascaracterísticas (atributos) de cada objeto são 
identificadas e o relacionamentorelacionamento entre esses objetos é 
definido.
O Modelo RAD
A abordagem RAD engloba as 
seguintes fases:
– Modelagem do Negócio
– Modelagem dos Dados
– Modelagem do Processo
– Geração da Aplicação
– Teste e Modificação
3- Modelagem do Processo
 Os objetos de dados definidos na fase de modelagem 
dos dados são transformados para obter o fluxo de 
informação necessário para implementar uma função 
de negócio.
 As descrições de processamento são criadas 
adicionando, modificando, excluindo ou recuperando 
objetos de dados.
O Modelo RAD
4- Geração da Aplicação
 RAD assume o uso de técnicas de 4ª geração 
(ferramentas automatizadas para facilitar a construção 
do software).
– Delphi, Visual Basic, Asp.net, etc.
 O processo RAD trabalha para reutilizar componentes 
de programa existentes (quando possível) ou criar 
componentes reutilizáveis.
O Modelo RAD
5- Teste e Modificação
 Como o processo RAD enfatiza a reutilização, 
muitos dos componentes do programa já foram 
testados.
– Isso reduz o tempo de teste global. 
– Entretanto… os novos componentes devem ser testados e 
todas as interfaces devem ser exaustivamente exercitadas. 
O Modelo RAD
 Se uma aplicação de negócio puder ser 
modularizadamodularizada, de modo que possibilite que 
cada função principal seja completada em 
um curto prazocurto prazo (por ex: 30 a 90 dias), ela é 
candidata ao RAD.
– Cada função principal pode ser tratada por uma 
equipe RAD distinta e depois integrada para 
formar o todo.
Modelo RAD: Problemas
 Para projetos grandes (mas escaláveis), RAD 
exige recursos humanosrecursos humanos suficientes para 
criar um número adequado de equipes.
 Exige que desenvolvedores e clientes 
estejam comprometidos com atividades atividades 
continuamente rápidascontinuamente rápidas, necessárias para 
obter um sistema completosistema completo em um período período 
muito curtomuito curto.
Modelo RAD: Problemas
 Nem todos os tipos de aplicação são 
apropriadas para o RAD. 
– Deve ser possível a modularização efetivamodularização efetiva 
da aplicação..
 Se o sistema não puder ser adequadamente 
modularizado, a construção dos componentes 
será problemática.
Modelo RAD: Problemas
Quando riscos técnicosriscos técnicos forem 
elevados, o RAD não é adequado. 
– A nova aplicação faz uso intenso de novas novas 
tecnologiastecnologias..
– O novo software exige um alto grau de 
interoperabilidadeinteroperabilidade com programas 
existentes.
Modelos Evolucionários 
(Evolutivos)
Existem situações em que a 
engenharia de software necessita de 
um modelo de processo que possa 
acomodar um produto que evolui com o evolui com o 
tempotempo.
Modelos Evolucionários 
(Evolutivos)
Requisitos de produtoproduto e de negócionegócio mudam 
conforme o desenvolvimento prossegue.
Requisitosbásicos são bem conhecidos, mas 
os detalhesdetalhes ainda devem ser definidos.
 Prazos reduzidosPrazos reduzidos de mercado tornam 
impossível a conclusão de um produto 
completo.
– Uma versão reduzidaversão reduzida pode ser elaborada face à 
competitividade ou às pressões do negócio.
 Modelo CascataModelo Cascata: desenvolvimento retilíneo.
– O sistema completo estará pronto depois que a 
seqüência linear for concluída.
 PrototipaçãoPrototipação: entendimento dos requisitos.
– Em geral, não é projetado para ajudar um sistema 
em produção.
Modelos Evolucionários 
(Evolutivos)
A natureza evolutiva do software A natureza evolutiva do software 
não é considerada.não é considerada. 
A natureza evolutiva do software A natureza evolutiva do software 
não é considerada.não é considerada. 
Modelos evolutivos são iterativositerativos.
– Possibilitam o desenvolvimento de versõesversões 
cada vez mais completas do software.
Modelo Incremental
Modelo Espiral
Modelo de Desenvolvimento Concorrente
Modelos Evolucionários 
(Evolutivos)
O Modelo Incremental
O Modelo Incremental combina:
– Elementos do Modelo Cascata (aplicado 
repetidamente).
– A filosofia iterativa da Prototipação.
O Modelo Incremental
 Objetivo: trabalhar junto ao cliente para 
descobrir seus requisitos, de maneira 
incremental, até que o produto final seja 
obtido.
– A evolução acontece quando novas 
características são adicionadasadicionadas à medida que 
são sugeridas pelo cliente.
O Modelo Incremental
Clientes identificam, em um esboço, as 
funções a serem fornecidas pelo 
sistema.
– Funções maismais e menosmenos importantes.
Definem-se estágios de entregaestágios de entrega.
– Cada estágio fornece um subconjuntosubconjunto das 
funcionalidades do sistema. 
IncrementoIncremento.
O Modelo Incremental
Os incrementosincrementos são elaborados 
utilizando-se o processo de 
desenvolvimento mais apropriado.
 Incrementos concluídos são entreguesentregues 
ao cliente e colocados em operaçãooperação.
Versões IdiáriasVersões Idiárias
Versões 
Intermediárias
O Modelo Incremental
Versão
Inicial
Versão
Inicial
Versões 
Intermediárias
Versão
Final
Versão
Final
Descrição 
geral
Descrição 
geral
Engenh
aria de 
Sistema
s
Engenh
aria de 
Sistema
s
Análise 
de 
Requisit
os 
Análise 
de 
Requisit
os 
Projeto Projeto 
Codifica
ção 
Codifica
ção 
Testes Testes 
O Modelo Incremental
 A versão inicial é frequentemente o núcleonúcleo do 
produto (a parte mais importante).
 A funcionalidade do sistema melhoramelhora a cada 
novo estágio que é entregue.
– Os incrementos são versões simplificadasversões simplificadas do 
produto final.
 Oferecem capacidadescapacidades que servem ao usuário.
Constituem uma plataforma para avaliaçãoavaliação.
O Modelo Incremental
 Importante quando é difícil estabelecer a 
priori uma especificação detalhadaespecificação detalhada dos 
requisitos.
Útil quando não há mão-de-obra mão-de-obra disponíveldisponível 
para uma implementação completa, dentro 
do prazo de entrega estabelecido.
Os incrementos podem ser planejados de 
modo que os riscos técnicosriscos técnicos possam ser 
gerenciadosgerenciados.
Modelo Incremental: Problemas
 Incrementos devem ser relativamente 
pequenospequenos e produzir alguma 
funcionalidadefuncionalidade para o sistema.
– Difícil mapear os requisitos do cliente 
dentro de incrementos de tamanho correto.
 Difícil identificar facilidades comunsfacilidades comuns, 
exigidas por todos os incrementos. 
Programação Extrema
(eXtreme Programming)
 EvoluçãoEvolução da abordagem incremental.
 (Kent Beck, 1999)
– Voltada para equipes de até 20 pessoas, 
engajadas no desenvolvimento de 
software cujos requisitos são vagosvagos ou se 
encontram em constante mudançaconstante mudança.
Programação Extrema
(eXtreme Programming)
– Desenvolvimento e entrega de incrementosincrementos de 
funcionalidade muito pequenos.
– EnvolvimentoEnvolvimento do cliente no processo.
– Constante melhoriamelhoria de código.
– Programação em paresem pares.
– 40 horas de trabalho.
– RefactoringRefactoring 
 Abordagem disciplinada para tornar o código de um 
software mais claro e de fácil manutenção, minimizando 
a probabilidade de inclusão de erros.
– Test firstTest first, code latercode later.
O Modelo Espiral
 O Modelo Espiral combina:
– A natureza iterativaiterativa da Prototipação.
– Os aspectos controladoscontrolados e sistemáticossistemáticos do 
Modelo Cascata.
 Fornece potencial para o desenvolvimento 
rápido de versões incrementaisversões incrementais do software.
Dividido em um certo número de atividades 
ou regiões de tarefaregiões de tarefa.
– Existem, tipicamente, de 3 a 6 regiões de tarefa.
O Modelo Espiral
 
Revisão
Determinar objetivos, 
alternativas e
restrições
Planejar próxima fase
Avaliar alternativas
Identificar,
resolver riscos
Desenvolver,
verificar produto no 
próximo nível
Plano de requisitos
Plano de ciclo de vida
Plano de
desenvolvimento
Integração
e plano de teste
Análise
de risco
Análise
de risco
Análise
de risco
Análise
de risco
Protó
tipo 1
Protótipo
2
Protótipo
3
Protótipo
Operacional
Simulação, modelos, benchmarks
Conceito de
operação
Validação de
requisito
Requisitos
de SW
Projeto
V & V
Projeto
do produto Projeto
detalhado
Código
Teste de
unidade
Teste de
integração
Teste de
aceitaçãoOperação
Cada Cada looploop na espiral na espiral 
representa umarepresenta uma fasefase do do 
processo de software.processo de software.
O Modelo Espiral
 
Revisão
Plano de requisitos
Plano de ciclo de vida
Análise
de risco
Protó
tipo 1
Conceito de
operação
O O looploop mais interno está mais interno está 
relacionado àrelacionado à viabilidadeviabilidade 
do sistema.do sistema.
O Modelo Espiral
 
Plano de
desenvolvimento
Análise
de risco
Protótipo
2
Simulação, modelos, benchmarks
Validação de
requisito
Requisitos
de SW
O próximo O próximo looploop está está 
concentrado na definição concentrado na definição 
dosdos requisitosrequisitos do do 
sistema.sistema.
O Modelo Espiral
 
Integração
e plano de teste
Análise
de risco
Protótipo
3
Simulação, modelos, benchmarks
Projeto
V & V
Projeto
do produto
O O looploop seguinte está seguinte está 
concentrado noconcentrado no projetoprojeto 
do sistema.do sistema.
O Modelo Espiral
 Análise
de risco
Protótipo
Operacional
Simulação, modelos, benchmarks
Projeto
detalhado
Código
Teste de
unidade
Teste de
integração
Teste de
aceitaçãoOperação
O O looploop ainda mais ainda mais 
externo está externo está 
concentrado naconcentrado na 
construçãoconstrução do sistema.do sistema.
O Modelo Espiral
 
Revisão
Determinar objetivos, 
alternativas e
restrições
Planejar próxima fase
Avaliar alternativas
Identificar,
resolver riscos
Desenvolver,
verificar produto no 
próximo nível
Plano de requisitos
Plano de ciclo de vida
Plano de
desenvolvimento
Integração
e plano de teste
Análise
de risco
Análise
de risco
Análise
de risco
Análise
de risco
Protó
tipo 1
Protótipo
2
Protótipo
3
Protótipo
Operacional
Simulação, modelos, benchmarks
Conceito de
operação
Validação de
requisito
Requisitos
de SW
Projeto
V & V
Projeto
do produto Projeto
detalhado
Código
Teste de
unidade
Teste de
integração
Teste de
aceitaçãoOperação
Definição dos Definição dos 
ObjetivosObjetivos 
Definição dos Definição dosObjetivosObjetivos 
Avaliação e Avaliação e 
Redução de RiscosRedução de Riscos 
Avaliação e Avaliação e 
Redução de RiscosRedução de Riscos 
PlanejamentoPlanejamentoPlanejamentoPlanejamento Desenvolvimento e Desenvolvimento e ValidaçãoValidação
Desenvolvimento e Desenvolvimento e 
ValidaçãoValidação
O Modelo Espiral
 
Revisão
Determinar objetivos, 
alternativas e
restrições
Planejar próxima fase
Avaliar alternativas
Identificar,
resolver riscos
Desenvolver,
verificar produto no 
próximo nível
Plano de requisitos
Plano de ciclo de vida
Plano de
desenvolvimento
Integração
e plano de teste
Análise
de risco
Análise
de risco
Análise
de risco
Análise
de risco
Protó
tipo 1
Protótipo
2
Protótipo
3
Protótipo
Operacional
Simulação, modelos, benchmarks
Conceito de
operação
Validação de
requisito
Requisitos
de SW
Projeto
V & V
Projeto
do produto Projeto
detalhado
Código
Teste de
unidade
Teste de
integração
Teste de
aceitaçãoOperação
Definição dos Definição dos 
ObjetivosObjetivos 
Definição dos Definição dos 
ObjetivosObjetivos 
– São definidos os objetivos específicosobjetivos específicos para cada 
fase do projeto.
– São identificadas restriçõesrestrições sobre o processo e o 
produto.
– É projetado um plano de gerenciamentoplano de gerenciamento detalhado.
– São identificados os riscos do projetoriscos do projeto e planejadas 
estratégias alternativasestratégias alternativas. 
O Modelo Espiral
 
Revisão
Determinar objetivos, 
alternativas e
restrições
Planejar próxima fase
Avaliar alternativas
Identificar,
resolver riscos
Desenvolver,
verificar produto no 
próximo nível
Plano de requisitos
Plano de ciclo de vida
Plano de
desenvolvimento
Integração
e plano de teste
Análise
de risco
Análise
de risco
Análise
de risco
Análise
de risco
Protó
tipo 1
Protótipo
2
Protótipo
3
Protótipo
Operacional
Simulação, modelos, benchmarks
Conceito de
operação
Validação de
requisito
Requisitos
de SW
Projeto
V & V
Projeto
do produto Projeto
detalhado
Código
Teste de
unidade
Teste de
integração
Teste de
aceitaçãoOperação
Avaliação e Avaliação e 
Redução de RiscosRedução de Riscos 
Avaliação e Avaliação e 
Redução de RiscosRedução de Riscos 
– É realizada uma análise detalhadaanálise detalhada para 
cada um dos riscos identificados.
– São tomadas providênciasprovidências para reduzir os 
riscos.
O Modelo Espiral
 
Revisão
Determinar objetivos, 
alternativas e
restrições
Planejar próxima fase
Avaliar alternativas
Identificar,
resolver riscos
Desenvolver,
verificar produto no 
próximo nível
Plano de requisitos
Plano de ciclo de vida
Plano de
desenvolvimento
Integração
e plano de teste
Análise
de risco
Análise
de risco
Análise
de risco
Análise
de risco
Protó
tipo 1
Protótipo
2
Protótipo
3
Protótipo
Operacional
Simulação, modelos, benchmarks
Conceito de
operação
Validação de
requisito
Requisitos
de SW
Projeto
V & V
Projeto
do produto Projeto
detalhado
Código
Teste de
unidade
Teste de
integração
Teste de
aceitaçãoOperação
Desenvolvimento e Desenvolvimento e 
ValidaçãoValidação
Desenvolvimento e Desenvolvimento e 
ValidaçãoValidação
– Depois da avaliação dos riscos, é 
escolhido um modelo de modelo de 
desenvolvimentodesenvolvimento para o sistema.
O Modelo Espiral
 
Revisão
Determinar objetivos, 
alternativas e
restrições
Planejar próxima fase
Avaliar alternativas
Identificar,
resolver riscos
Desenvolver,
verificar produto no 
próximo nível
Plano de requisitos
Plano de ciclo de vida
Plano de
desenvolvimento
Integração
e plano de teste
Análise
de risco
Análise
de risco
Análise
de risco
Análise
de risco
Protó
tipo 1
Protótipo
2
Protótipo
3
Protótipo
Operacional
Simulação, modelos, benchmarks
Conceito de
operação
Validação de
requisito
Requisitos
de SW
Projeto
V & V
Projeto
do produto Projeto
detalhado
Código
Teste de
unidade
Teste de
integração
Teste de
aceitaçãoOperação
PlanejamentoPlanejamentoPlanejamentoPlanejamento
– O projeto é revistorevisto e é tomada uma decisão 
sobre continuar com o próximo loop.
– Se a decisão for continuar, são traçados os 
planosplanos para a próxima fase do projeto.
O Modelo Espiral
 
Revisão
Determinar objetivos, 
alternativas e
restrições
Planejar próxima fase
Avaliar alternativas
Identificar,
resolver riscos
Desenvolver,
verificar produto no 
próximo nível
Plano de requisitos
Plano de ciclo de vida
Plano de
desenvolvimento
Integração
e plano de teste
Análise
de risco
Análise
de risco
Análise
de risco
Análise
de risco
Protó
tipo 1
Protótipo
2
Protótipo
3
Protótipo
Operacional
Simulação, modelos, benchmarks
Conceito de
operação
Validação de
requisito
Requisitos
de SW
Projeto
V & V
Projeto
do produto Projeto
detalhado
Código
Teste de
unidade
Teste de
integração
Teste de
aceitaçãoOperação
– Não existem fases fixasfases fixas no 
modelo.
– A gerênciagerência decide como 
estruturar o projeto em fases. 
O Modelo Espiral
 Engloba as melhores características do 
Modelo Cascata e da Prototipação, 
adicionando um novo elemento: a Análise de Análise de 
RiscosRiscos.
– RiscoRisco: algo que pode dar errado.
– Segue a abordagem de passos sistemáticos do 
Modelo Cascata, incorporando-os numa estrutura estrutura 
iterativaiterativa.
– Usa a Prototipação em qualquer etapa da evolução 
do produto, como mecanismo de reduçãoredução de 
riscos.
Modelo Espiral
 É, atualmente, a abordagem mais realística 
para o desenvolvimento de sistemas e 
software de grande portegrande porte.
 Exige a consideração direta dos riscos riscos 
técnicostécnicos em todos os estágios do projeto.
– Se aplicado adequadamente, pode reduzir os 
riscos antes que os mesmos fiquem 
problemáticos.
Modelo Espiral: Problemas
 Pode ser difícil convencerconvencer os clientes que 
uma abordagem evolutiva é controlável.
 Exige considerável experiênciaexperiência na 
determinação de riscos e depende dessa 
experiência para ter sucesso.
O Modelo de Montagem
de Componentes
 Incorpora características de tecnologias tecnologias 
orientadas a objetoorientadas a objeto no Modelo EspiralModelo Espiral. 
 É de natureza evolutiva demandando uma 
abordagem iterativa para a criação do software.
O modelo compõe aplicações a partir de 
componentes de software “empacotados”.
– Quando projetadas e implementadas apropriadamente, 
as classes são reutilizáveisreutilizáveis em diferentes aplicações e 
arquiteturas de sistema.
O Modelo de Montagem
de Componentes
 Planejamento
Análise de Riscos
Engenharia,
Construção e Liberação
Avaliação do Cliente
Comunicação 
com Cliente
Planejamento
Avaliação do Cliente
Comunicação 
com Cliente
Identificar 
componentes 
candidatos
Procurar 
componentes 
na biblioteca
Extrair 
componentes, 
se disponíveis
Construir os 
componentes 
não disponíveis
Colocar os 
novos 
componentes na 
biblioteca
Construir a na 
iteração do 
sistema
O Modelo de Montagem
de Componentes
 O modelo de montagem de componentes 
conduz ao reusoreuso do software.
 A reusabilidade pode fornecer uma série de 
benefícios:
– Redução no tempo de desenvolvimento.
– Redução no custo do projeto.
– Aumento no índice de produtividade.
 Tais benefícios dependem da robustez da bibliotecarobustez da biblioteca de 
componentes.
O Modelo de Métodos Formais
 Especificar, desenvolvere verificar um sistema pela aplicação 
de uma rigorosa notação matemáticarigorosa notação matemática. 
– Abrange um conjunto de atividades que levam à especificação especificação 
matemática formal matemática formal do software.
– Tem como base a transformação matemática formaltransformação matemática formal de uma 
especificação de sistema em um programa executável.
O Modelo de Métodos Formais
O Modelo de Métodos Formais
 No projeto...
– Base para a verificação do programaverificação do programa, 
permitindo que se descubram erros que 
poderiam passar despercebidos.
No desenvolvimento...
– AmbigüidadeAmbigüidade, não completitudenão completitude e 
inconsistênciainconsistência podem ser mais facilmente 
descobertas pela análise matemática.
O Modelo de Métodos Formais
 Abordagem particularmente adequada ao 
desenvolvimento de sistemas com rigorosas 
exigências de segurançasegurança, confiabilidadeconfiabilidade e 
garantiagarantia.
– Eletrônica de aeronaves.
– Controle de tráfego aéreo.
– Dispositivos médicos.
– Telecomunicações.
Modelo de Métodos Formais: 
Problemas
 Preocupações quanto à aplicabilidade em 
ambientes comerciais:
– O desenvolvimento é lentolento e dispendiosodispendioso.
– Requer treinamento extensivotreinamento extensivo.
– Difícil utilizar os modelos como um mecanismo de 
comunicaçãocomunicação.
Clientes despreparados tecnicamente.
Cleanroom (Sala Limpa)
 ExemploExemplo mais conhecido do processo de 
desenvolvimento formal.
– Desenvolvimento incrementalincremental do software.
– Cada estágio é desenvolvido e sua correção é 
demonstrada utilizando-se uma abordagem abordagem 
formalformal.
– O teste de sistema visa a medir a confiabilidadeconfiabilidade 
do sistema.
Conduzido como um experimento estatístico.
Técnicas de Quarta Geração
 Engloba um conjunto de ferramentas 
de software possibilitando que:
– O sistema seja especificado em uma 
linguagem de alto nívellinguagem de alto nível. 
– O código-fonte seja gerado 
automaticamenteautomaticamente a partir dessas 
especificações.
Técnicas de Quarta Geração
 Ferramentas de Apoio
– Linguagens não-procedimentais para:
Consulta de banco de dados (SQL).
Geração de relatórios (PostScript).
Manipulação de dados (XML).
 Interação e definição de telas (Delphi, Visual Basic).
 Geração de código.
– Capacidade gráfica de alto nível.
– Capacidade de disposição em planilhas.
– Geração automática de HTML e linguagens 
similares para criação de páginas Web. 
Técnicas de Quarta Geração
Obtenção dos 
Requisitos
Estratégia de 
“Projeto” 
Implementação 
usando 4GL 
Testes 
Técnicas de Quarta Geração
Obtenção dos 
Requisitos
Estratégia de 
“Projeto” 
Implementação 
usando 4GL 
Testes 
 Obtenção dos RequisitosObtenção dos Requisitos
– O cliente descreve os requisitos os quais são 
traduzidos para um protótipo operacionalprotótipo operacional.
O cliente pode estar inseguro quanto aos requisitos.
O cliente pode ser incapaz de especificar as informações 
de um modo que uma ferramenta 4GL possa ser utilizada.
As 4GLs atuais não são suficientemente sofisticadas para 
acomodar a verdadeira linguagem natural.
Obtenção dos 
Requisitos
Estratégia de 
“Projeto” 
Implementação 
usando 4GL 
Testes 
Técnicas de Quarta Geração
 Estratégia de “Projeto”Estratégia de “Projeto”
– Pequenas Aplicações
É possível mover-se do passo de Obtenção dos 
Requisitos para o passo de Implementação usando uma 
linguagem de quarta geração.
– Grandes Projetos
É necessário desenvolver uma estratégia de projetoestratégia de projeto.
De outro modo ocorrerão os mesmos problemas 
encontrados quando se usa abordagem convencional 
(baixa qualidade). 
Obtenção dos 
Requisitos
Estratégia de 
“Projeto” 
Implementação 
usando 4GL 
Testes 
Técnicas de Quarta Geração
 Implementação usando 4GLImplementação usando 4GL
– Os resultados desejados são representados de 
modo que haja geração automática de código.
– Deve existir uma estrutura de dados com 
informações relevantes e que seja acessível pela 
4GL.
Obtenção dos 
Requisitos
Estratégia de 
“Projeto” 
Implementação 
usando 4GL 
Testes 
Técnicas de Quarta Geração
 TestesTestes
– O desenvolvedor deve efetuar testes e desenvolver 
uma documentaçãodocumentação significativa.
– O software desenvolvido deve ser construído de 
maneira que a manutençãomanutenção possa ser efetuada 
prontamente.
Técnicas de Quarta Geração
 Proponentes
– Redução dramática no tempotempo de desenvolvimento 
do software.
Aumento de produtividadeprodutividade.
Oponentes
– As 4GL atuais não são mais fáceis de usar do que 
as linguagens de programação.
– O código-fonte produzido é ineficiente.
– A manutenibilidademanutenibilidade de sistemas usando técnicas 
4GT ainda é questionável.
Metodologias Ágeis
 SCRUMSCRUM
 Crystal/Clear
 FDDFDD (Feature Driven Development)
– Desenvolvimento Orientado a Funcionalidades
 DSDM DSDM (Dynamic Systems Development 
Method)
– Método Dinâmico de Desenvolvimento de Sistemas
 ASD ASD (Adaptive Software Development)
– Desenvolvimento Adaptável de Software
Metodologias Ágeis
 XPXP (eXtreme Programming)
Pragmatic ProgrammingPragmatic Programming
Open Source Software DevelopmentOpen Source Software Development
RUPRUP (Rational Unified Process)
Concluindo...
 Cascata, Prototipação, Evolutivos, Formais, Ágeis, ...
 Para escolha de um modelo de processo de softwaremodelo de processo de software:
– Natureza do projeto e da aplicação.
– Métodos e ferramentas a serem usados.
– Controles e produtos que precisam ser entregues.
 Não são mutuamente exclusivos e freqüentemente são usados em 
conjunto. 
	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
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46
	Slide 47
	Slide 48
	Slide 49
	Slide 50
	Slide 51
	Slide 52
	Slide 53
	Slide 54
	Slide 55
	Slide 56
	Slide 57
	Slide 58
	Slide 59
	Slide 60
	Slide 61
	Slide 62
	Slide 63
	Slide 64
	Slide 65
	Slide 66
	Slide 67
	Slide 68
	Slide 69
	Slide 70
	Slide 71
	Slide 72
	Slide 73
	Slide 74
	Slide 75
	Slide 76
	Slide 77
	Slide 78
	Slide 79
	Slide 80
	Slide 81
	Slide 82
	Slide 83
	Slide 84
	Slide 85
	Slide 86
	Slide 87

Outros materiais