Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula02 Modelos Processos
Aula02 Modelos Processos
Software
ENGENHARIA DE SOFTWARE
Modelos de Processo de
Software
Existem vários modelos de processo de
software (ou paradigmas de engenharia
de software)
Cada um representa uma tentativa de
colocar ordem em uma atividade
inerentemente caótica
5
Modelos de Processo de
Software
O Modelo Sequencial Linear
também chamado Modelo Cascata
O Modelo de Prototipação
O Modelo RAD (Rapid Application
Development)
Modelos Evolutivos de Processo de Software
O Modelo Incremental
O Modelo Espiral
O Modelo de Montagem de Componentes
O Modelo de Desenvolvimento Concorrente
Modelo de Métodos Formais
Técnicas de Quarta Geração
6
Modelos de Processo de
Software
O Modelo Sequencial Linear
também chamado Modelo Cascata
O Paradigma de Prototipação
O Modelo RAD (Rapid Application
Development)
Modelos Evolutivos de Processo de Software
O Modelo Incremental
O Modelo Espiral
O Modelo de Montagem de Componentes
O Modelo de Desenvolvimento Concorrente
Modelos de Métodos Formais
Técnicas de Quarta Geração
7
O Modelo Cascata
modelo mais antigo e o mais amplamente
usado da engenharia de software
modelado em função do ciclo da
engenharia convencional
requer uma abordagem sistemática,
seqüencial ao desenvolvimento de
software
o resultado de uma fase se constitui na
entrada da outra
8
O Modelo Cascata
Engenharia de
Sistemas
Análise de
Requisitos
Projeto
Codificação
Testes
Manutenção
9
O Modelo Cascata
Engenharia
Engenharia de de Sistemas / Informação e
Sistemas
Análise de Modelagem
Requisitos
envolve a coletaProjeto de requisitos em nível do
sistema, com uma pequena Codificação quantidade de
Manutenção
esta visão é essencial quando o software deve
fazer interface com outros elementos
(hardware, pessoas e banco de dados)
10
O Modelo Cascata
Análise de Requisitos de Software
o processo
Engenhariade
de coleta dos requisitos é
Sistemas
intensificadoAnálise
e concentrado
de especificamente no
Requisitos
software Projeto
Codificação
deve-se compreender o domínio da informação,
Testes
a função, desempenho e interfaces exigidos
Manutenção
os requisitos (para o sistema e para o software)
são documentados e revistos com o cliente
11
O Modelo Cascata
Engenharia de Projeto
Sistemas
tradução dos requisitos do software para um
Análise de
Requisitos
conjunto de representações
Projeto que podem ser
avaliadas quanto à qualidade,
Codificação antes que a
Manutenção
12
O Modelo Cascata
Codificação
Engenharia de
Sistemas
Análise de
tradução das representações do projeto para
Requisitos
Projeto
uma linguagem “artificial” resultando em
instruções executáveisCodificação
pelo computador
Testes
Manutenção
13
O Modelo Cascata
Testes
Engenharia de
Concentra-se:
Sistemas
Análise de
nos aspectos lógicos internos
Requisitos do software,
Projeto
garantindo que todas as instruções tenham sido
Codificação
testadas
Testes
nos aspectos funcionais externos, para descobrir
Manutenção
erros e garantir que a entrada definida produza
resultados que concordem com os esperados.
14
O Modelo Cascata
Manutenção
provavelmente
Engenharia de o software deverá sofrer
Sistemas
mudanças depois
Análise de que for entregue ao
cliente Requisitos Projeto
causas das mudanças:Codificaçãoerros, adaptação do
software para acomodar mudanças Testes em seu
ambiente externo e exigência doManutençãocliente
para acréscimos funcionais e de
desempenho
15
O Modelo Cascata
O modelo Cascata trouxe contribuições
importantes para o processo de
desenvolvimento de software:
Imposição de disciplina, planejamento e
gerenciamento
a implementação do produto deve ser
postergada até que os objetivos tenham sido
completamente entendidos
18
Modelos de Processo de
Software
O Modelo Sequencial Linear
também chamado Modelo Cascata
O Modelo de Prototipação
O Modelo RAD (Rapid Application
Development)
Modelos Evolutivos de Processo de Software
O Modelo Incremental
O Modelo Espiral
O Modelo de Montagem de Componentes
O Modelo de Desenvolvimento Concorrente
Modelos de Métodos Formais
Técnicas de Quarta Geração
19
O Modelo de Prototipação
o objetivo é entender os requisitos do
usuário e, assim, obter uma melhor
definição dos requisitos do sistema.
possibilita que o desenvolvedor crie um
modelo (protótipo)do software que deve
ser construído
apropriado para quando o cliente não
definiu detalhadamente os requisitos.
20
O Paradigma de Prototipação
para obtenção dos requisitos
Obter Requisitos
Construir Protótipo
Avaliar Protótipo
21
O Paradigma de Prototipação
para obtenção dos requisitos
O Paradigma de Prototipação
para obtenção dos requisitos
Obter Requisitos
2- PROJETO RÁPIDO:
Elaborar Projeto Rápido
representação dos aspectos do
Refinamento do Protótipo
software que são visíveis ao
usuário (abordagens de entrada
e formatos de saída)
Construir Protótipo
Avaliar Protótipo
23
O Paradigma de Prototipação
para obtenção dos requisitos
Obter Requisitos
O Paradigma de Prototipação
para obtenção dos requisitos
Obter Requisitos
4- AVALIAÇÃO DO PROTÓTIPO:
cliente e desenvolvedor Construir
avaliamProtótipo
o
Avaliar Protótipo
protótipo
25
O Paradigma de Prototipação
para obtenção dos requisitos
Obter Requisitos
O Paradigma de Prototipação
para obtenção dos requisitos
Obter Requisitos
Construir Protótipo
Avaliar Protótipo
27
O Paradigma de Prototipação
para obtenção dos requisitos
Obter Requisitos
6- CONSTRUÇÃO PRODUTO:
identificados os requisitos, o
Elaborar Projeto Rápido
protótipo
CONSTRUÇÃO deve ser descartado ea
Refinamento
versão
DO dedoprodução
PRODUTO Protótipo deve ser
construída considerando os
critérios de qualidade.
Construir Protótipo
Avaliar Protótipo
28
Comentários sobre o
Paradigma de Prototipação
ainda que possam ocorrer problemas, a
prototipação é um ciclo de vida eficiente.
a chave é definir-se as regras do jogo
logo no começo.
o cliente e o desenvolvedor devem
ambos concordar que o protótipo seja
construído para servir como um
mecanismo a fim de definir os requisitos
30
Modelos de Processo de
Software
O Modelo Sequencial Linear
também chamado Modelo Cascata
O Paradigma de Prototipação
O Modelo RAD (Rapid Application
Development)
Modelos Evolutivos de Processo de Software
O Modelo Incremental
O Modelo Espiral
O Modelo de Montagem de Componentes
O Modelo de Desenvolvimento Concorrente
Modelos de Métodos Formais
Técnicas de Quarta Geração
31
O Modelo RAD
RAD ( Rapid Application Development) é
um modelo sequencial linear que enfatiza
um ciclo de desenvolvimento
extremamente curto
O desenvolvimento rápido é obtido
usando uma abordagem de construção
baseada em componentes.
32
O Modelo RAD
Os requisitos devem ser bem entendidos
e o alcance do projeto restrito
O modelo RAD é usado principalmente
para aplicações de sistema de
informação
Cada função principal pode ser
direcionada para uma equipe RAD
separada e então integrada para formar o
todo.
33
O Modelo RAD
Equipe #3
Equipe #1 Equipe #2 Modelagem
do Negócio
Modelagem Modelagem Modelagem
do Negócio do Negócio dos Dados
Modelagem Modelagem
Modelagem dos Dados do Processo
dos Dados Modelagem Geração da
Aplicação
do Processo
Modelagem Teste e
Geração da
do Processo Aplicação
Modificação
Geração da Teste e
Aplicação Modificação
Teste e
60 a 90 dias Modificação
34
O Modelo RAD
Desvantagens:
Exige recursos humanos suficientes para
todas as equipes
Exige que desenvolvedores e clientes
estejam comprometidos com as atividades
de “fogo-rápido” a fim de terminar o projeto
num prazo curto
35
O Modelo RAD
Nem todos os tipos de aplicação são
apropriadas para o RAD:
Deve ser possível a modularização efetiva
da aplicação
se alto desempenho é uma característica e o
desempenho é obtido sintonizando as
interfaces dos componentes do sistema, a
abordagem RAD pode não funcionar
36
Modelos de Processo de
Software
O Modelo Sequencial Linear
também chamado Modelo Cascata
O Paradigma de Prototipação
O Modelo RAD (Rapid Application
Development)
Modelos Evolutivos de Processo de Software
O Modelo Incremental
O Modelo Espiral
O Modelo de Montagem de Componentes
O Modelo de Desenvolvimento Concorrente
Modelos de Métodos Formais
Técnicas de Quarta Geração
37
Modelos Evolutivos de
Processo
Modelos Evolutivos de
Processo
quando os requisitos de produto e de
negócio mudam conforme o
desenvolvimento procede
quando uma data de entrega apertada
(mercado) - impossível a conclusão de
um produto completo
quando um conjunto de requisitos
importantes é bem conhecido, porém os
detalhes ainda devem ser definidos
39
Modelos Evolutivos de
Processo
Modelos de Processo de
Software
O Modelo Sequencial Linear
também chamado Modelo Cascata
O Paradigma de Prototipação
O Modelo RAD (Rapid Application
Development)
Modelos Evolutivos de Processo de Software
O Modelo Incremental
O Modelo Espiral
O Modelo de Montagem de Componentes
O Modelo de Desenvolvimento Concorrente
Modelos de Métodos Formais
Técnicas de Quarta Geração
41
O Modelo Incremental
O Modelo Incremental
Versão Inicial
Análise Projeto
Descrição Engenharia de
sistemas/informação Versões
Descrição
geral Descrição
Intermediárias
geral
geral
Codificação
Versão
Teste Final
43
O Modelo Incremental
a versão inicial é frequentemente o
núcleo do produto (a parte mais
importante)
a evolução acontece quando novas
características são adicionadas à medida
que são sugeridas pelo usuário
Este modelo é importante quando é difícil
estabelecer a priori uma especificação
detalhada dos requisitos
44
O Modelo Incremental
o modelo incremental é mais apropriado
para sistemas pequenos
As novas versões podem ser planejadas
de modo que os riscos técnicos possam
ser administrados (Ex. disponibilidade de
determinado hardware)
45
Modelos de Processo de
Software
O Modelo Sequencial Linear
também chamado Modelo Cascata
O Modelo de Prototipação
O Modelo RAD (Rapid Application
Development)
Modelos Evolutivos de Processo de Software
O Modelo Incremental
O Modelo Espiral
O Modelo de Montagem de Componentes
O Modelo de Desenvolvimento Concorrente
Modelos de Métodos Formais
Técnicas de Quarta Geração
46
O Modelo Espiral
O modelo espiral acopla a natureza
iterativa da prototipação com os aspectos
controlados e sistemáticos do modelo
cascata.
O modelo espiral é dividido em uma série
de atividades de trabalho ou regiões de
tarefa.
Existem tipicamente de 3 a 6 regiões de
tarefa
47
a na lys is O pe r a -
espiral representa P rot otyp e 2
P rot otyp e 3 ti ona l
pr ot oyp e
Risk
uma fase do R EV I EW analysis P rot o-
ty pe 1
O pe r a ti on
software S /W
re qui r e me nt s P rod uc t
D e ta il e d
de si gn
Re qui r e me nt de si gn
D e ve lop me nt
pl an va lid ati on C ode
D e si gn U ni t t es t
I nte gr a ti on
a nd t e st p la n V& V I nte gr ati on
A c c ep ta nc e te st
PLANEJAR PRÓXIMA FASE te st
S e rv ic e DESENVOLVER, VERIFICAR O
PRODUTO NO PRÓXIMO NÍVEL
49
o próximo “loop”
está concentrado na R isk
analys is
definição dos Prot otyp e
requisitos do
S im ul ati ons, m ode ls, b en ch marks
sistema
SW
re qui re me nt s
D e ve lop me nt Re qui re me nt
pl an valid ati on
51
R isk
analys is
prototyp e 3
o “loop” um pouco
mais externo está
si m ul ati ons, m ode ls, b en ch marks
concentrado no
projeto do sistema Prod uc t
de si gn
Inte grati on D e si gn
and t e st p lan V& V
52
Ope ra-
ti onal
prot oyp e
um “loop” ainda
mais externo está S im ul ati ons, m ode ls, b en ch marks
concentrado na
D e tail e d
construção do de si gn
C ode
sistema U ni t t es t
Inte gr ati on
A c c ep tanc e te st
S e rv ic e te st
53
O Cada
Modelo
“loop”Espiral
do espiral (com 4 regiões)
é dividido em 4
setores
DETERMINAR OBJETIVOS, AVALIAR ALTERNATIVAS
ALTERNATIVAS E IDENTIFICAR, RESOLVER RISCOS
RESTRIÇÕES R isk
a na lys is
R isk AVALIAÇÃO E
a na lys is
COLOCAÇÃO DE R isk
REDUÇÃO DE
a na lys is O pe r a -
OBJETIVOS RISCOS
P rot otyp e 3 ti ona l
P rot otyp e 2 pr ot oyp e
Risk
R EV I EW analysis P rot o-
ty pe 1
Re qui r e me nt s pl a n S im ul ati ons, m ode ls, b en ch ma r ks
Li fe - c yc le pl an C onc e pt o f
O pe r a ti on S /W
re qui r e me nt s P rod uc t
de si gn D e ta il e d
PLANEJAMENTO
D e ve lop me nt DESENVOLVIMENTO
Re qui r e me nt
va lid ati on
de si gn
pl an C ode
D e si gn
E VALIDAÇÃO
U ni t t es t
I nte gr a ti on
a nd t e st p la n V& V I nte gr ati on
A c c ep ta nc e te st
PLANEJAR PRÓXIMA FASE te st
S e rv ic e DESENVOLVER, VERIFICAR O
PRODUTO NO PRÓXIMO NÍVEL
55
AVALIAÇÃO E
COLOCAÇÃO DE REDUÇÃO DE
OBJETIVOS RISCOS
AVALIAÇÃO E
COLOCAÇÃO DE REDUÇÃO DE
OBJETIVOS RISCOS
o projeto é revisto e é tomada
uma decisão de continuidade
se é decidido continuar, são
projetados planos para a próxima
DESENVOLVIMENTO
PLANEJAMENTO
fase do projeto (próximo “loop”
E VALIDAÇÃO
)
59
O Modelo Espiral
engloba as melhores características do ciclo
de vida Clássico e da Prototipação,
adicionando um novo elemento: a Análise de
Risco
segue a abordagem de passos sistemáti-cos
do Ciclo de Vida Clássico incorporando-os
numa estrutura iterativa que reflete mais
realisticamente o mundo real
usa a Prototipação, em qualquer etapa da
evolução do produto, como mecanismo de
redução de riscos
60
Comunicação
com Cliente
Engenharia
Avaliação do Cliente
Construção e Liberação
63
O Modelo Espiral
adiciona um novo elemento: a Análise de Risco
usa a Prototipação, em qualquer etapa da
evolução do produto, como mecanismo de
redução de riscos
exige considerável experiência na
determinação de riscos e depende dessa
experiência para ter sucesso
o modelo é relativamente novo e não tem sido
amplamente usado.
64
Modelos de Processo de
Software
O Modelo Sequencial Linear
também chamado Modelo Cascata
O Modelo de Prototipação
O Modelo RAD (Rapid Application
Development)
Modelos Evolutivos de Processo de Software
O Modelo Incremental
O Modelo Espiral
O Modelo de Montagem de Componentes
O Modelo de Desenvolvimento Concorrente
Modelos de Métodos Formais
Técnicas de Quarta Geração
65
O Modelo de Montagem de
Componentes
Utiliza tecnologias orientadas a objeto
Quando projetadas e implementadas
apropriadamente as classes orientadas a
objeto são reutilizáveis em diferentes
aplicações e arquiteturas de sistema
O modelo de montagem de componentes
incorpora muitas das características do
modelo espiral.
66
O Modelo de Montagem de
Componentes
Planejamento
Análise de Riscos
Comunicação
com Cliente
Avaliação do Cliente
Engenharia
Construção e Liberação
67
O Modelo de
identificar
Montagem de
Componentes
componentes
candidatas
Construir a na
procurar Planejamento
componentes iteração do
na biblioteca sistema Análise de Riscos
extrair
Comunicação colocar os
componentes
com Cliente novos
se disponíveis componentes
na biblioteca
construir os
componentes
não
Avaliação do Cliente
disponíveis
Engenharia
Construção e Liberação
68
O Modelo de Montagem de
Componentes
O modelo de montagem de componentes
conduz ao reuso do software
a reusabilidade fornece uma série de
benefícios:
redução de 70% no tempo de desenvolvimento
redução de 84% no custo do projeto
índice de produtividade de 26.2 (normal da
indústria é de 16.9)
esses resultados dependem da robustez da
biblioteca de componentes
69
Modelos de Processo de
Software
O Modelo Sequencial Linear
também chamado Modelo Cascata
O Modelo de Prototipação
O Modelo RAD (Rapid Application
Development)
Modelos Evolutivos de Processo de Software
O Modelo Incremental
O Modelo Espiral
O Modelo de Montagem de Componentes
O Modelo de Desenvolvimento Concorrente
Modelos de Métodos Formais
Técnicas de Quarta Geração
70
Técnicas de 4a Geração
Concentra-se na capacidade de se
especificar o software a uma máquina em
um nível que esteja próximo à linguagem
natural
Engloba um conjunto de ferramentas de
software que possibilitam que:
o sistema seja especificado em uma
linguagem de alto nível e
o código fonte seja gerado automaticamente
a partir dessas especificações
71
Técnicas de 4a Geração
Obtenção dos
Requisitos
Estratégia do
“Projeto”
Implementação
usando 4GL
Testes
73
Técnicas de 4a Geração
OBTENÇÃO DOS REQUISITOS:
Obtenção dos
• oRequisitos
cliente descreve os requisitos os quais são
traduzidosEstratégia
para um protótipo
do operacional
“Projeto”
• o cliente pode estar inseguro quanto aos
Implementação
requisitos usando 4GL
• o cliente pode ser incapaz de especificar asTestes
informações de um modo que uma ferramenta
4GL possa consumir
• as 4GLs atuais não são sofisticadas
suficientemente para acomodar a verdadeira
"linguagem natural"
74
Técnicas de 4a Geração
ESTRATÉGIA
Obtenção dos DO "PROJETO":
Requisitos
• Para pequenas aplicações é possível mover-
Estratégia do
se do passo de Obtenção dos Requisitos
“Projeto”
Implementação usando uma
para o passo de Implementação
linguagem de quartausando 4GL
geração
Testes
• Para grandes projetos é necessário
desenvolver uma estratégia de projeto. De
outro modo ocorrerão os mesmos problemas
encontrados quando se usa abordagem
convencional (baixa qualidade)
75
Técnicas de 4a Geração
Obtenção dos
Requisitos
IMPLEMENTAÇÃO USANDO 4GL :
Estratégia do
“Projeto”
Os resultados desejados são representados de
Implementação
modo que haja geraçãousando
automática
4GL de código .
Deve existir uma estrutura de dados com Testes
informações relevantes e que seja acessível
pela 4GL
76
Técnicas de 4a Geração
Obtenção dos
Requisitos
Estratégia do
“Projeto”
Implementação
usando 4GL
TESTES: Testes
O desenvolvedor deve efetuar testes e
desenvolver uma documentação significativa.
O software desenvolvido deve ser construído
de maneira que a manutenção possa ser
efetuada prontamente.
77