Escolar Documentos
Profissional Documentos
Cultura Documentos
Software
Engenharia de Software
Profa. Dra. Elisa Yumi Nakagawa
1o semestre de 2017
2
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
4
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
5
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
6
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,
sequencial ao desenvolvimento de
software
Ø o resultado de uma fase se constitui na
entrada da outra
7
O Modelo Cascata
Engenharia de
Sistemas
Análise de
Requisitos
Projeto
Codificação
Testes
Manutenção
8
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)
9
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
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
11
O Modelo Cascata
Engenharia deCodificação
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
12
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
Manutenção
descobrir erros e garantir que a entrada definida
produza resultados que concordem com os
esperados.
13
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
14
O Modelo Cascata
Ø Omodelo 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
17
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
18
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.
19
O Paradigma de Prototipação
para obtenção dos requisitos
Obter Requisitos
Construir Protótipo
Avaliar Protótipo
20
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
22
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
24
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
26
O Paradigma de Prototipação
para obtenção dos requisitos
Obter Requisitos
6- CONSTRUÇÃO PRODUTO:
identificados os requisitos, o
protótipo deve ser Elaborar
descartado e a Projeto Rápido
CONSTRUÇÃO
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
27
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
29
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
30
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.
31
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.
32
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
33
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
34
O Modelo RAD
Ø Nemtodos 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
35
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
36
Modelos Evolutivos de
Processo
Ø Existem
situações em que a engenharia
de software necessita de um modelo de
processo que possa acomodar um
produto que evolui com o tempo.
37
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
38
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
40
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 Final
Teste
42
O Modelo Incremental
Ø aversã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
Ø Estemodelo é importante quando é difícil
estabelecer a priori uma especificação
detalhada dos requisitos
43
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)
44
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
45
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
46
O pe r a -
espiral representa a na lys is
P rot otyp e 2
P rot otyp e 3 ti ona l
pr ot oyp e
uma fase do R EV I EW
Risk
analysis P rot o-
ty pe 1
software O pe r a ti on 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
48
o próximo “loop”
está concentrado na R isk
analys is
definição dos Prot otyp e
requisitos do
sistema
S im ul ati ons, m ode ls, b en ch marks
SW
re qui re me nt s
D e ve lop me nt Re qui re me nt
pl an valid ati on
50
R isk
analys is
o “loop” um pouco
prototyp e 3
Inte grati on D e si gn
and t e st p lan V& V
51
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
construção do D e tail e d
de si gn
sistema
C ode
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
52
meramente exemplos R EV I EW
Risk
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
Ø a gerência decide como estruturar o
Li fe - c yc le pl an C onc e pt o f
O pe r a ti on S /W
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
COLOCAÇÃO DE R isk
a na lys is
REDUÇÃO DE
O pe r a -
OBJETIVOS a na lys is
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 E
Re qui r e me nt
va lid ati on
de si gn
pl an
VALIDAÇÃO
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
54
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
E VALIDAÇÃO
“loop” )
58
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
59
Comunicação
com Cliente
Engenharia
Avaliação do Cliente
Construção e Liberação
62
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
63
O Modelo de Montagem de
Componentes
Ø Utilizatecnologias 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.
64
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
65
O Modelo de Montagem de
identificar
Componentes
componentes
candidatas
procurar Planejamento
Construir a na
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
66
O Modelo de Montagem de
Componentes
Ø O modelo de montagem de componentes
conduz ao reúso 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
Ø esses resultados dependem da robustez da
biblioteca de componentes
67
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
68
Técnicas de 4 a 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
69
Técnicas de 4 a Geração
Obtenção dos
Requisitos
Estratégia do
“Projeto”
Implementação
usando 4GL
Testes
71
Técnicas de 4 a Geração
OBTENÇÃO DOS REQUISITOS:
Obtenção dos
• oRequisitos
cliente descreve os requisitos os quais são
traduzidosEstratégia
para um doprotótipo operacional
“Projeto”
• o cliente pode estar inseguro quanto aos
Implementação
requisitos usando 4GL
Testes
• o cliente pode ser incapaz de especificar as
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"
72
Técnicas de 4 a 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
usando 4GL
linguagem de quarta 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)
73
Técnicas de 4 a 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ção automática
usando 4GL de código .
Deve existir uma estrutura de dados comTestes
informações relevantes e que seja acessível
pela 4GL
74
Técnicas de 4 a 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.
75