Processos de software
Atividades para especificar,
projetar, implementar e testar
sistemas de software
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
1
Processos de software
Uma Visão Genérica: 3 Fases



Definição - “o que”
• Engenharia do Sistema
• Planejamento do Projeto
• Análise de Requisitos
Desenvolvimento - “como”
• Projeto
• Geração do Código
• Teste
Manutenção
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
2
Processos de software
• Um processo de software é um método
para desenvolver ou produzir software.
• A pesquisa em processo de software lida
com métodos e tecnologias estimativas,
suporte e melhoria das atividades de
desenvolvimento de software.
• Define quem faz o que, quando e
como.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
3
Processos de software
O processo é o instrumento capaz
de responder a qualquer momento:
•
•
•
•
•
Profa. Maria Auxiliadora
O que é feito?
 Produto
Como é feito?
 Passos
Por quem é feito?  Agente
O que usa?
 Insumos
O que Produz?
 Resultados
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
4
Modelo de Processo de Software
Processo  deve incorporar uma estratégia
de desenvolvimento
definição do
problema
estado atual
desenvolvimento técnico
integração da
solução
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
5
Modelagem
• Modelagem é uma técnica de
engenharia aprovada e bem aceita
– modelos de arquitetura de casas e
de grandes prédios
– modelos matemáticos a fim de
analisar os efeitos de ventos e
tremores de terra --> causas
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
6
Modelos
Modelagem na Engenharia Civil
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
7
O que é um MODELO?
• Um modelo é uma simplificação da
realidade.
– Planos de detalhes, podem ser
estruturais (organização do
sistema) ou comportamentais
(dinâmica do sistema)
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
8
Modelos
• Modelos são construídos para permitir um
melhor entendimento sobre o sistema que
está sendo construído.
– especificar a estrutura e
comportamento
– guia para construção do sistema
–documentam as decisões tomadas
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
9
Objetivos da Modelagem
• Auxiliar no processo de produção 
produtos de alta qualidade, produzidos
mais rapidamente e a um custo cada vez
menor.
• Atributos: abstração, visibilidade,
especificação, construção, confiabilidade,
manutenibilidade, segurança,
documentação.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
10
Modelos de processo de software
• Abstração
– Melhor entendimento e maior
compreensão
• Visualização
– Visualização antecipada antes da
implementação
– Visões complementares do software
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
11
Modelos de processo de software
• Especificação
– Descrição precisa do que deve ser feito
• Construção
– Geração automática com ferramentas
baseadas em modelos
• Documentação
– Comunicação entre equipes na
diferentes fases do ciclo de vida
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
12
Objetivos da Modelagem
• Possibilitam:
– Ao gerente: controlar o processo de
desenvolvimento de sistemas de
software.
– Ao desenvolvedor: obter a base para
produzir, de maneira eficiente, software
que satisfaça os requisitos préestabelecidos.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
13
Modelos de processo de software
• Um conjunto de atividades fundamentais
exigida para desenvolver um sistema de
software
–Especificação.
–Projeto e implementação.
–Validação.
–Evolução.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
14
Modelo X Processo
• Um modelo é algo teórico, um
conjunto de possíveis ações.
• O processo deve determinar ações
práticas a serem realizadas pela
equipe como prazos definidos e
métricas para se avaliar como elas
estão sendo realizadas
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
15
Modelo X Processo
Modelo + Planejamento =
Processo
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
16
Processo de software
Estudo de
viabilidade
Levantamento
e análise de
requisitos
Especificação
de requisitos
Relatório
de viabilidade
Validação
de requisitos
Modelos
de sistemas
Requisitos do
usuário e do sistema
Documentação
de requisitos
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
17
Processo de software
• Processo de Engenharia de Requisitos
– Estudo de viabilidade
• Econômica – relação custo/benefício;
• Técnica – tecnologia e capacitação;
• Jurídica – aspectos legais.
– Levantamento e análise de requisitos
• Entrevista, observação, reuniões
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
18
Processo de software
– Especificação de requisitos
• Documento contendo os requisitos
do usuário e do sistema – funcionais
e não-funcionais
– Validação de requisitos
• Avaliação do documento de
requisitos –consistência e
integralidade.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
19
Modelos de processo de software
• Exemplos de modelos de processo:
–Workflow - sucessão de atividades
–Fluxo de Dados - fluxo de informação
–Papel/ação – representa os papéis das
pessoas e as atividades pelas quais elas
são responsáveis.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
20
Modelos de processo de software –
(paradigmas)
Uma estratégia de
desenvolvimento que englobe
processos, métodos e
ferramentas, e as fases de
desenvolvimento...
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
21
Modelos de processo de software –
(paradigmas)
• Modelo Sequencial Linear (ciclo de vida
clássico)
• Modelos Evolucionários
- Prototipação
- Incremental
- Espiral
- Métodos Ágeis
• Modelo de Métodos Formais
• Técnicas de 4a Geração
• Orientado a reuso
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
22
Modelo Sequencial Linear
(ciclo de vida clássico)
• Método sistemático e sequencial
• O resultado de uma fase se constitui
na entrada da outra.
• Cada fase é estruturada como um
conjunto de atividades que podem
ser executadas por pessoas
diferentes.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
23
Modelo Sequencial Linear
(ciclo de vida clássico)
Engenharia de
Sistemas
Análise / projeto de
sistema e de software
Implementação
e teste
Integração e
teste
Operação e
manutenção
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
24
Modelo Sequencial Linear
(ciclo de vida clássico)
• ENGENHARIA DE SISTEMAS
• envolve a coleta de requisitos em
nível do sistema, pequena quantidade
de projeto e análise de alto nível
• definir quais os requisitos do
produto de software, sem especificar
como esses requisitos serão obtidos.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
25
Modelo Sequencial Linear
(ciclo de vida clássico)
• ENGENHARIA DE SISTEMAS
• deve-se analisar os requisitos, recursos e
restrições para:
• apresentar soluções;
• estudar a viabilidade;
• planejar e gerenciar o
desenvolvimento a partir de estimativas
e análise de riscos que se utilizam de
métricas.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
26
Modelo Sequencial Linear
(ciclo de vida clássico)
• Estudo de viabilidade
• Analisar o problema em nível global
• Identificar soluções alternativas (custos
/ benefícios)
• Simulação do futuro processo de
desenvolvimento.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
27
Modelo Sequencial Linear
(ciclo de vida clássico)
• Estudo de viabilidade (cont)
Resultado  documentação contendo:
• Definição do problema
• Soluções alternativas, com os
benefícios esperados
• Fontes necessárias, custos e datas de
entrega para cada solução proposta.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
28
Modelo Sequencial Linear
(ciclo de vida clássico)
• Gerenciamento  Definição de políticas:
• Como produtos ou resultados
intermediários vão ser armazenados
acessados e modificados.
• Como versões diferentes de sistemas
são construídos.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
29
Modelo Sequencial Linear
(ciclo de vida clássico)
• Gerenciamento  (cont.)
• Quais autorizações são necessárias
para acessar os componentes de
entrada/saída do banco de dados do
sistema.
• Recursos que afetam o processo de
produção, particularmente com os
recursos humanos.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
30
Modelo Sequencial Linear
(ciclo de vida clássico)
• ANÁLISE DE REQUISITOS DE SOFTWARE
• processo de coleta dos requisitos é
intensificado e concentrado
especificamente no software.
• deve-se compreender o domínio da
informação, a função, desempenho e
interfaces exigidos.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
31
Modelo Sequencial Linear
(ciclo de vida clássico)
• ANÁLISE DE REQUISITOS DE SOFTWARE
• os requisitos (para o sistema e para o
software) são documentados e revistos com
o cliente.
Resultado  o contrato de desenvolvimento
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
32
Modelo Sequencial Linear
(ciclo de vida clássico)
• PROJETO
• É definida a solução do problema:
• Decomposição do produto
(subsistema, componentes etc).
• Representação das funções do
sistema em uma forma que possa ser
transformada em um ou mais
programas executáveis.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
33
Modelo Sequencial Linear
(ciclo de vida clássico)
• PROJETO
• Definição de “como” o produto deve
ser implementado.
• Dividido em:
• Projeto de alto nível – decomposição
lógica
• Projeto detalhado – decomposição
física.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
34
Modelo Sequencial Linear
(ciclo de vida clássico)
• PROJETO
• Concentra-se em:
• Estrutura de Dados;
• Arquitetura de Software;
• Detalhes Procedimentais e
• Caracterização de Interfaces.
Resultado  documentação de
especificação de projeto
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
35
Modelo Sequencial Linear
(ciclo de vida clássico)
• IMPLEMENTAÇÃO
• Tradução das representações do
projeto para uma linguagem “artificial”
resultando em instruções executáveis
pelo computador.
Resultado  coleção de programas
implementados e testados.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
36
Modelo Sequencial Linear
(ciclo de vida clássico)
• INTEGRAÇÃO
• Programas ou unidades de programas são
integrados e testados como sistema.
Programas ou unidades são integradas à
medida em que forem sendo desenvolvidos.
Resultado  produto pronto para ser
entregue ao cliente.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
37
Modelo Sequencial Linear
(ciclo de vida clássico)
• OPERAÇÃO
• Instalação e configuração
• Utilização – inicialmente operado
por um grupo de usuário
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
38
Modelo Sequencial Linear
(ciclo de vida clássico)
• MANUTENÇÃO
• Corretiva: correção de erros remanescentes
• Adaptativa: adaptação dos produtos às
mudanças novas versões e novas situações
de operação – hardware, sistemas
operacionais.
• Evolutiva: alteração dos requisitos e
manutenção da qualidade.
Resultado  produto em funcionamento.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
39
Modelo Sequencial Linear
(ciclo de vida clássico)
ETAPA
PERGUNTAS-CHAVES
Definição do Qual é o problema
problema
Estudo de
Há uma solução viável
viabilidade
Análise
CRITÉRIOS DE SAÍDA
Declaração da delimitação e objetivos.
Análise geral de custo/benefício
Alcance e objetivos do sistema.
Modelo lógico do sistema:
O que terá de ser feito
para resolver o problema?
Diagrama de Fluxo de Dados;
Diagrama de Entidade e Relacionamento
Diagrama de Transição de Estado;
Dicionário de Dados;
Especificação de Processos.
UML.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
40
Modelo Sequencial Linear
(ciclo de vida clássico)
ETAPA
Projeto
PERGUNTAS-CHAVES
Como o problema deve ser
resolvido?
Como o sistema deve ser
implementado?
CRITÉRIOS DE SAÍDA
Soluções Alternativas
Especificação de hard/soft;
Plano de implementação;
Plano de teste preliminares;
Procedimento de segurança;
Procedimento de auditoria.
Implementação Faça
Programas;
Plano de testes;
Procedimento de segurança;
Procedimento de auditoria.
Teste
Verificar o sistema
Testes do geral do sistema.
Manutenção
Modificar o sistema conforme Apoio continuado.
necessidade.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
41
Contribuições e problemas do ciclo
de vida clássico
• Contribuições
• Processo de desenvolvimento de software deve
ser sujeito à disciplina, planejamento e
gerenciamento.
• A implementação do produto deve ser
postergada até que os objetivos tenham sido
completamente entendidos.
• Deve ser utilizado quando os requisitos estão
bem claros no inicio do desenvolvimento.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
42
Contribuições e problemas do ciclo
de vida clássico
• Problema
• Rigidez
• Qualquer desvio é desencorajado
• Todo o planejamento é orientado para
a entrega do produto de software em
uma data única.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
43
Contribuições e problemas do ciclo
de vida clássico
• Problema (cont.)
• Processo de desenvolvimento pode ser
longo e a aplicação pode ser entregue
quando as necessidades do usuário já
tiverem sido alteradas.
• Projetos reais raramente seguem o
fluxo sequencial que o modelo propõe.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
44
Contribuições e problemas do ciclo
de vida clássico
• Problema (cont.)
• Logo no início é difícil estabelecer
explicitamente todos os requisitos. No
começo dos projetos sempre existe uma
incerteza natural.
• O cliente deve ter paciência. Uma versão
executável do software só fica disponível
numa etapa avançada do desenvolvimento
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
45
Modelo Evolucionário
• Abordagem baseada na idéia de
desenvolver uma implementação inicial,
expor o resultado ao comentário do
usuário e fazer seu aprimoramento por
meio de muitas versões.
• Especificação e desenvolvimento são
intercalados
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
46
Modelo Evolucionário
• Tipos:
–Desenvolvimento exploratório
–Protótipo descartável
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
47
Modelo evolucionário
(Desenvolvimento exploratório )
Atividades
concorrentes
Especificação
Descrição do
esboço
Desenvolvimento
Validação
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
Versão
inicial
Versão
intermediárias
Versão
final
48
Modelo evolucionário
(Desenvolvimento exploratório )
• Trabalhar junto com o cliente, a fim
de explorar seus requisitos e entregar
um sistema final.
• O desenvolvimento se inicia com as
partes do sistema que são mais bem
compreendidas.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
49
Modelo evolucionário
(Desenvolvimento exploratório )
• O sistema evolui com o acréscimo de
novas características à medida que elas
são propostas pelo cliente.
• Importante quando é difícil, ou mesmo
impossível, estabelecer uma
especificação detalhada dos requisitos do
sistema a priori.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
50
Modelo evolucionário
(Protótipo descartável)
Construir/Revisar
protótipo
Conversar com
o Cliente
Revisão e Teste
pelo Cliente
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
51
Modelo evolucionário
(Protótipo descartável)
• Obter os requisitos do cliente e, a partir
disso, desenvolver uma melhor definição
de requisitos para o sistema.
• Concentra em fazer experimentos com
partes dos requisitos que estejam mal
entendidos.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
52
Modelo evolucionário
(Protótipo descartável)
• Usuário define uma série de objetos para o
produto de software, mas não consegue
identificar detalhes de entrada, processamento
ou requisitos de saída.
• O desenvolvedor está incerto sobre a eficiência
de um algoritmo, a adaptação de um sistema
operacional ou ainda sobre a forma da
interação homem-máquina.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
53
PROTOTIPAÇÃO
Início
Fim
Coleta e
refinamento dos
requisitos
Engenharia do
produto
Projeto
rápido
Refinamento do
protótipo
Construção do
protótipo
Avaliação do
protótipo pelo
cliente
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
54
PROTOTIPAÇÃO
Início
COLETA DOS REQUISITOS:
Fim
Coleta e
refinamento dos
requisitos
Engenharia
do produto
Projeto
rápido
Refinamento
do protótipo
Avaliação do
protótipo
pelo cliente
Profa. Maria Auxiliadora
Construção
do
protótipo
desenvolvedor e
cliente definem os
objetivos gerais do
software, identificam
quais requisitos são
conhecidos e as áreas
que necessitam de
definições adicionais
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
55
PROTOTIPAÇÃO
Início
Fim
Coleta e
refinamento dos
requisitos
Engenharia
do produto
Projeto
rápido
Refinamento
do protótipo
Avaliação do
protótipo
pelo cliente
Profa. Maria Auxiliadora
Construção
do
protótipo
PROJETO RÁPIDO:
representação dos
aspectos do
software que são
visíveis ao usuário
(abordagens de
entrada e
formatos de saída)
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
56
PROTOTIPAÇÃO
Início
Fim
Coleta e
refinamento dos
requisitos
Engenharia
do produto
Projeto
rápido
Refinamento
do protótipo
Avaliação do
protótipo
pelo cliente
Profa. Maria Auxiliadora
Construção
do
protótipo
CONSTRUÇÃO
PROTÓTIPO:
Implementação
do projeto rápido
serve como o
“primeiro sistema”
- recomendado
que se jogue fora
futuramente
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
57
PROTOTIPAÇÃO
Início
Fim
Coleta e
refinamento dos
requisitos
Engenharia
do produto
Projeto
rápido
Refinamento
do protótipo
Avaliação do
protótipo
pelo cliente
Profa. Maria Auxiliadora
Construção
do
protótipo
AVALIAÇÃO DO
PROTÓTIPO:
Cliente e
desenvolvedor
avaliam o
protótipo
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
58
PROTOTIPAÇÃO
Início
Fim
Coleta e
refinamento dos
requisitos
Engenharia
do produto
Projeto
rápido
Refinamento
do protótipo
Avaliação do
protótipo
pelo cliente
Profa. Maria Auxiliadora
Construção
do
protótipo
REFINAMENTO DOS
REQUISITOS:
Cliente e
desenvolvedor
refinam os
requisitos do
software a ser
desenvolvido.
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
59
PROTOTIPAÇÃO
Início
Fim
Coleta e
refinamento dos
requisitos
Engenharia
do produto
Projeto
rápido
Refinamento
do protótipo
Avaliação do
protótipo
pelo cliente
Profa. Maria Auxiliadora
Construção
do
protótipo
CONSTRUÇÃO
PRODUTO:
identificados os
requisitos, o protótipo
deve ser descartado e a
versão de produção
deve ser construída
considerando os
critérios de qualidade.
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
60
Contribuições e problemas do modelo
evolutivo
Contribuições:
• Sistemas pequenos
• Útil quando os requisitos estão obscuros
• Especificação é construída gradativamente
• Possibilitam um rápido desenvolvimento
da aplicação
• Testes podem ser mais efetivos.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
61
Contribuições e problemas do modelo
evolutivo
Problemas:
• O processo não é visível
• Os sistemas são frequentemente malestruturados e mal-documentados
• Processo não é claro, dificuldade de
planejamento e gerenciamento
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
62
Contribuições e problemas do modelo
evolutivo
Problema (cont):
• Cliente não sabe que o software que ele vê,
não considerou, durante o desenvolvimento, a
qualidade global e a manutenibilidade a longo
prazo.
• Não aceita bem a idéia que a versão final do
software vai ser construída e “força” a
utilização do protótipo como produto final.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
63
Contribuições e problemas do modelo
evolutivo
• Problema (cont)
• Desenvolvedor frequentemente faz
uma implementação comprometida
(utilizando o que está disponível) com o
objetivo de produzir rapidamente um
protótipo.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
64
Modelo Incremental
incremento 1
Engenharia de Sistemas /
Informação
Projeto
Análise
incremento 2
Projeto
Análise
incremento 3
incremento 4
Profa. Maria Auxiliadora
Análise
Testes
Codificação
Projeto
Análise
Projeto
produto liberado
do incremento 1
Testes
Codificação
Codificação
Codificação
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
Testes
produto liberado
do incremento 2
produto liberado
do incremento 3
Testes
produto
liberado
do
incremento 4
65
Modelo Incremental
• Combina elementos do Modelo Linear
com a filosofia da Prototipação.
• Aplica sequências lineares numa
abordagem de “saltos” à medida que o
tempo progride.
• Cada sequência linear produz um
incremento do software (proc. de texto)
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
66
Modelo Incremental
• O processo se repete até que um produto
completo seja produzido.
• Difere da Prototipação, pois a cada
incremento produz uma versão
operacional do software.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
67
Vantagens do desenvolvimento
incremental
• Entrega acelerada dos serviços de cliente.
Cada incremento fornece a funcionalidade de mais
alta prioridade para o cliente.
• Engajamento do usuário com o sistema.
Os usuários têm de estar envolvidos no processo
de desenvolvimento, o que significa que o sistema
muito provavelmente atenderá aos seus requisitos,
e que os usuários estarão mais comprometidos
com ele.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
68
Problemas com desenvolvimento
incremental
• Problemas de gerenciamento
O progresso pode ser difícil de julgar e os
problemas, difíceis de serem encontrados, porque
não há documentação que mostre o que foi feito.
• Problemas contratuais
O contrato normal pode incluir uma especificação;
sem uma especificação, formulários diferentes de
contrato têm de ser usados.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
69
Problemas com desenvolvimento
incremental
• Problemas de validação
Sem uma especificação, contra o que o sistema
está sendo testado.
• Problemas de manutenção
Mudanças contínuas tendem a corromper a
estrutura do software, o que torna mais
dispendioso mudar e evoluir para atender aos
novos requisitos.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
70
Modelo espiral
(Boehm)
Planejamento
1
2
4
3
Avaliação do cliente
Profa. Maria Auxiliadora
Análise de
Risco
Engenharia
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
71
Modelo espiral
(Boehm)
• Desenvolvido para englobar as melhores
características do ciclo de vida clássico e
do paradigma evolutivo.
• São avaliados riscos explicitamente e são
solucionados ao longo do processo.
• Processo é representado como uma
espiral em lugar de ser representado
como uma sequência de atividades
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
72
Modelo espiral
(Boehm)
• Cada loop na espiral representa uma fase do
processo de software. Não existem fases fixas.
• Engloba as melhores características do ciclo de
vida Clássico como o da Prototipação,
adicionando um novo elemento: a ANÁLISE
DOS RISCOS
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
73
Modelo espirais
(Funcionamento)
• À medida que a volta na espiral acontece, versões
mais completas do software vão sendo
progressivamente construída.
• Durante a primeira volta, são definidos objetivos,
alternativas e restrições.
• Se a análise de risco indicar que há incerteza nos
requisitos, a prototipação pode ser usada para
auxiliar o desenvolvedor e o usuário.
• O usuário avalia o produto e faz sugestões de
modificações.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
74
Modelo Espiral
Planejamento
Coleta inicial dos requisitos e
planejamento do projeto
Análise de
risco
Planejamento baseado nos
comentários do cliente
Avaliação do cliente
Engenharia
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
75
Modelo Espiral
• São identificados objetivos específicos, tais como
desempenho e funcionalidade.
• São determinadas alternativas para atingir estes
objetivos.
• São identificadas restrições do processo e do
produto e é elaborado um relatório de gestão
detalhado.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
76
Modelo Espiral
Planejamento
Análise de
risco
Para cada risco do projeto identificado em
planejamento é levada a cabo uma análise
detalhada.
Decisão de prosseguir/não prosseguir
Avaliação do cliente
Engenharia
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
77
Modelo Espiral
Planejamento
Análise de
risco
Na direção de um sistema concluído
Protótipo de software inicial
Avaliação do cliente
Engenharia
Profa. Maria Auxiliadora
Sistema construído pela
engenharia
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
78
Modelo Espiral
• tarefas requeridas para
obter um feedback do
cliente baseado na
avaliação da
representação do
software criado durante a
fase de engenharia e
implementado durante a
fase de instalação
Profa. Maria Auxiliadora
Planejamento
Avaliação do
cliente
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
Análise de
risco
Engenharia
79
Modelo Espiral
• O projeto é revisado e a próxima fase da espiral
é planejada.
• Toma-se decisão sobre avançar para mais uma
volta na espiral.
• Se for para avançar são desenhados os planos
para a próxima fase do projeto.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
80
Desenvolvimento Rápido de Software
• Métodos ágeis
• Extreme programming
• Desenvolvimento rápido de aplicações
• Prototipação de software
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
81
Desenvolvimento Rápido de Software
• Devido à rápida mudança dos ambientes de
negócio, os negócios devem responder às novas
oportunidades e à competição.
• Isso requer software e desenvolvimento rápido, e a
entrega é, frequentemente, o requisito mais crítico
para sistemas de software.
• Os negócios podem estar dispostos a aceitar um
software de baixa qualidade se a entrega rápida e a
funcionalidade essencial for possível.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
82
Métodos Ágeis
• Movimento iniciado por programadores
experientes e consultores em desenvolvimento
de software.
• Objetivo: satisfazer o cliente entregando,
rapidamente e com frequência, sistemas com
algum valor.
• Os métodos ágeis são, provavelmente, os mais
adequados para sistemas de negócio de porte
pequeno/médio ou produtos para PC.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
83
Métodos Ágeis
• A insatisfação com os overheads envolvidos
nos métodos de projeto levou à criação dos
métodos ágeis. Esses métodos:
• Enfocam o código ao invés do projeto;
• São baseados na abordagem iterativa para
desenvolvimento de software;
• São destinados a entregar software de
trabalho e evoluí-lo rapidamente para
atender aos requisitos que se alteram.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
84
Princípios dos Métodos Ágeis
Envolvimento do cliente 
Seu papel é fornecer e priorizar novos
requisitos do sistema e avaliar as
iterações do sistema.Clientes devem
ser profundamente envolvidos no
processo de desenvolvimento.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
85
Princípios dos Métodos Ágeis
Entrega incremental 
O software é desenvolvido em
incrementos e o cliente especifica os
requisitos a serem incluídos em cada
incremento.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
86
Princípios dos Métodos Ágeis
Pessoas, não processo 
As habilidades da equipe de
desenvolvimento devem ser
reconhecidas e exploradas. Os
membros da equipe devem
desenvolver suas próprias maneiras
de trabalhar sem processos
prescritivos.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
87
Princípios dos Métodos Ágeis
Aceite as mudanças 
Projete o sistema para acomodar
mudanças.
Mantenha a simplicidade 
Elimine a complexidade do sistema.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
88
Problemas com Métodos Ágeis
• Difícil manter o interesse dos clientes
que estão envolvidos no processo.
• Os membros da equipe podem ser
inadequados para o intenso envolvimento
que caracteriza os métodos ágeis.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
89
Problemas com Métodos Ágeis
• A priorização de mudanças pode ser difícil
onde existem múltiplos stakeholders.
• A manutenção da simplicidade requer
trabalho extra.
• Problemas nos contratos.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
90
Extreme Programming
• É talvez o mais conhecido e mais
amplamente usado dos métodos ágeis.
• A extreme programming (XP) leva uma
abordagem “extrema” para
desenvolvimento iterativo.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
91
Extreme Programming
• Novas versões podem ser compiladas
várias vezes por dia. Os incrementos são
entregues para os clientes a cada 2
semanas.
• Todos os testes devem ser realizados
para cada nova versão.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
92
Os 4 valores de XP
• Comunicação
• Simplicidade
• Retorno (feedback)
• Coragem
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
93
Extreme Programming
A quem se destina
•
•
•
Grupos de 2 a 10 programadores
Projetos de 1 a 36 meses (calendário)
De 1000 a 250 000 linhas de código
• Papéis:
• Programadores foco central (sem
hierarquia)
• “Treinador” ou “Técnico” (coach)
• “Acompanhador” (tracker)
• Cliente
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
94
Extreme Programming
“Treinador” ou “Técnico” (coach)
• Em geral, o mais experiente do grupo.
Identifica quem é bom no que.
Comunica-se com outros gerentes e
diretoria.
• Concentra-se na execução e evolução
técnica do projeto.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
95
Extreme Programming
“Treinador” ou “Técnico” (coach)
• Eventualmente faz programação
pareada.
• Não desenha arquitetura, apenas chama
a atenção para oportunidades de
melhorias.
• Seu papel diminui à medida em que o
time fica mais maduro.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
96
Extreme Programming
Tracker (Acompanhador)
• Coleta estatísticas sobre o andamento do projeto.
Alguns exemplos:
• Número de histórias definidas e implementadas.
• Número de unit tests.
• Número de testes funcionais definidos e
funcionando.
• Número de classes, métodos, linhas de código
• Mantém histórico do progresso. Faz estimativas para
o futuro.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
97
Um Dia na Vida de um
Programador XP
• Escolhe uma história do cliente.
• Procura um par livre.
• Escolhe um computador para
programação pareada (pair programming).
• Seleciona uma tarefa claramente
relacionada a uma característica (feature)
desejada pelo cliente.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
98
O ciclo de release em XP
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
99
Práticas do Extreme Programming
Planejamento Incremental 
Registrados em cartões de histórias
Pequenos releases Conjunto
mínimo útil de funcionalidade é
desenvolvido.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
100
Práticas do Extreme Programming
Projeto simples 
Projeto suficiente para atender aos
requisitos atuais.
Desenvolvimento test-first 
Uso um framework automatizado.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
101
Práticas do Extreme Programming
Refactoring 
Espera-se que todos os
desenvolvedores recriem o código
continuamente.
Programação em pares 
Os desenvolvedores trabalham em pares.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
102
Práticas do Extreme Programming
Propriedade coletiva 
Os pares trabalham em todas as áreas
do sistema.
Integração contínua 
Tarefa concluída é automaticamente
integrada ao sistema.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
103
Práticas do Extreme Programming
Ritmo sustentável 
Não aceitar grande quantidade de
horas extras.
Cliente on-site 
Um usuário do sistema deve estar
disponível em tempo integral..
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
104
Cenários de requisitos
• Em um processo XP, os requisitos de usuários são
expressos como cenários ou histórias de usuários.
• Essas histórias são escritas em cartões, e a
equipe de desenvolvimento quebra-os em tarefas
de implementação. Essas tarefas são as bases das
estimativas de cronograma e de custo.
•O cliente escolhe as histórias para inclusão no
próximo release, baseado nas suas prioridades e
nas estimativas de cronograma.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
105
Cartão de estória para baixar
documentos
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
106
Programação Pareada
• Erro de um é detectado imediatamente
pelo outro (grande economia de tempo).
• Maior diversidade de idéias, técnicas,
algoritmos.
•Enquanto um escreve, o outro pensa em
contra exemplos, problemas de eficiência,
etc. (Vergonha de escrever código feio
(gambiarras) na frente do seu par).
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
107
Propriedade Coletiva do Código
• Padrões de estilo adotados pelo grupo
inteiro.
• O mais claro possível.
• XP não se baseia em documentações.
• Comentários sempre que necessários e
padronizados.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
108
Propriedade Coletiva do Código
• O código do XP pertence a todos.
• Todo código é integrado e testado depois
de algumas horas, um dia no máximo.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
109
XP e mudanças
• A sabedoria convencional na
engenharia de software é projetar para
mudança. Vale despender tempo e
esforço antecipando mudanças quando
isso reduz custos posteriores no ciclo de
vida.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
110
XP e mudanças
• O XP, contudo, mantém que isto não
vale a pena quando as mudanças não
podem ser confiavelmente previstas.
• Por outro lado, ele propõe melhorias
constantes de código (refactoring), para
tornar as mudanças mais fáceis quando
elas têm de ser implementadas.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
111
Quando XP Não Deve Ser
Experimentada?
• Quando o cliente não aceita as regras do
jogo.
• Quando o cliente quer uma especificação
detalhada do sistema antes de começar.
• Quando os programadores não estão
dispostos a seguir (todas) as regras.
• Se (quase) todos os programadores do time
não são experientes.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
112
Quando XP Não Deve Ser
Experimentada?
• Grupos grandes (>10 programadores).
• Quando feedback rápido não é possível:
• sistema demora 6h para compilar.
• testes demoram 12h para rodar.
• exigência de certificação que demora meses.
•Quando o custo de mudanças é essencialmente
exponencial.
•Quando não é possível realizar testes
(muito raro).
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
113
Modelo de Métodos Formais
Um modelo de sistema matemático é
transformado formalmente em uma
implementação
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
114
Modelo de Métodos Formais
• Compreende um conjunto de atividades
que determinam uma especificação
matemática para o software.
• A especificação de requisitos de software
é redefinida em uma especificação
formal detalhada, que é expressa em
uma notação matemática.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
115
Escolher um modelo de
desenvolvimento para o sistema
• Riscos na integração dos sub-sistemas 
Modelo Cascata
• Riscos significativos na interface com o
utilizador  Desenvolvimento evolutivo.
• Riscos de segurança 
Desenvolvimento Formal
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
116
Técnicas de 4a Geração
Obtenção dos Requisitos
Estratégia de “Projeto”
Implementação usando
4GL
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
Testes
117
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
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
118
Técnicas de 4a Geração
• O ambiente de desenvolvimento inclui as ferramentas:
• linguagens não procedimentais para
consulta de banco de dados
• geração de relatórios
• manipulação de dados
• interação e definição de telas
• geração de códigos
• capacidade gráfica de alto nível
• capacidade de planilhas eletrônicas
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
119
Atividades das
Técnicas de 4a Geração
Obtenção dos
Requisitos
Estratégia de “Projeto”
Implementação usando 4GL
Testes
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
120
Atividades das
Técnicas de 4a Geração
• OBTENÇÃO DOS REQUISITOS: o cliente
descreve os requisitos os quais são traduzidos
para um protó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 consumir
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
121
Atividades das
Técnicas de 4a Geração
Obtenção dos Requisitos
Estratégia de
“Projeto” Implementação usando 4GL
Testes
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
122
Atividades das
Técnicas de 4a Geração
• ESTRATÉGIA DE "PROJETO":
• para pequenas aplicações é possível mover-se do
passo de Obtenção dos Requisitos para o passo
de Implementação
• 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, manutenibilidade ruim, má aceitação
do cliente)
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
123
Atividades das
Técnicas de 4a Geração
Obtenção dos Requisitos
Estratégia de “Projeto”
Implementação
usando 4GL
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
Testes
124
Atividades das
Técnicas de 4a Geração
• IMPLEMENTAÇÃO USANDO 4GL:
– os resultados desejados são
representados de modo que haja geração
automática de código.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
125
Atividades das
Técnicas de 4a Geração
Obtenção dos Requisitos
Estratégia de “Projeto”
Implementação usando 4GL
Testes
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
126
Atividades das
Técnicas de 4a Geração
• TESTE:
• 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.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
127
Combinando Paradigmas
obtenção preliminar dos
requisitos
análise dos
requisitos
prototipação
projeto
prototipação
enésima interação
técnicas
4G
codificação
modelo espiral
técnicas
4G
modelo espiral:
enésima interação
técnicas 4G
testes
Sistema Completo
Manutenção
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE
- Engenharia de Software - 8° Edição
128
Download

Modelo Sequencial Linear