Você está na página 1de 101

PROCESSOS DE SOFTWARE

Atividades para especificar,


projetar, implementar e testar
sistemas de software

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

Processos de software
Uma Viso Genrica: 3 Fases

Definio - o que
Engenharia do Sistema
Planejamento do Projeto
Anlise de Requisitos
Desenvolvimento - como
Projeto
Gerao do Cdigo
Teste
Manuteno

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

Processos de software

Um processo de software um
mtodo para desenvolver ou
produzir software.
Define quem faz o que,
quando e como.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

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 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

Modelo de Processo de Software


Processo deve incorporar uma estratgia
de desenvolvimento
definio do
problema

estado atual

desenvolvimento tcnico

integrao da
soluo
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

Modelagem
Modelagem uma tcnica de
engenharia aprovada e bem aceita
modelos de arquitetura de casas e
de grandes prdios
modelos matemticos a fim de
analisar os efeitos de ventos e
tremores de terra --> causas
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

Modelos

Modelagem na Engenharia Civil

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

Modelo X Processo
Um modelo algo terico, um
conjunto de possveis aes.
O processo deve determinar aes
prticas a serem realizadas pela
equipe como prazos definidos e
mtricas para se avaliar como elas
esto sendo realizadas
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

Modelo X Processo

Modelo + Planejamento =

Processo

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

Modelos de processo de software


Um conjunto de atividades fundamentais
exigida para desenvolver um sistema de
software

Especificao.
Projeto e implementao.
Validao.
Evoluo.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

10

Modelos de processo de software


Especificao - definio do qu o sistema deve
fazer;

Projeto e implementao - definio da


organizao do sistema e implementao do
sistema;

Validao - checagem de que o sistema faz o que


o cliente deseja;

Evoluo - evoluo em resposta as mudanas


nas necessidades do cliente.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

11

Processo de software
Estudo de
viabilidade

Levantamento
e anlise de
requisitos

Especificao
de requisitos

Relatrio
de viabilidade

Validao
de requisitos
Modelos
de sistemas
Requisitos do
usurio e do sistema
Documentao
de requisitos

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

12

Processo de software
Processo de Engenharia de Requisitos
Estudo de viabilidade
Econmica relao custo/benefcio;
Tcnica tecnologia e capacitao;
Jurdica aspectos legais.
Levantamento e anlise de requisitos
Entrevista, observao, reunies
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

13

Processo de software
Especificao de requisitos
Documento contendo os requisitos
do usurio e do sistema funcionais
e no-funcionais

Validao de requisitos
Avaliao do documento de
requisitos consistncia e
integralidade.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

14

Modelos de processo de software


Exemplos de modelos de processo:
Workflow - sucesso de atividades
Fluxo de Dados - fluxo de informao
Papel/ao representa os papis das
pessoas e as atividades pelas quais elas
so responsveis.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

15

Modelos de processo de software


(paradigmas)

Uma estratgia de
desenvolvimento que englobe
processos, mtodos e
ferramentas, e as fases de
desenvolvimento...
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

16

Modelos de processo de software


(paradigmas)
Modelo Sequencial Linear (ciclo de vida
clssico)
Modelos Evolucionrios
- Prototipao
- Incremental
- Espiral
- Mtodos geis
Modelo de Mtodos Formais
Tcnicas de 4a Gerao
Orientado a reso
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

17

Modelo Sequencial Linear


(ciclo de vida clssico)
Engenharia de
Sistemas
Anlise / projeto de
sistema e de software

Implementao
e teste
Integrao e
teste

Operao e
manuteno
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

18

Modelo Sequencial Linear


(ciclo de vida clssico)
ENGENHARIA DE SISTEMAS
envolve a coleta de requisitos em
nvel do sistema, pequena quantidade
de projeto e anlise de alto nvel
definir quais os requisitos do
produto de software, sem especificar
como esses requisitos sero obtidos.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

19

Modelo Sequencial Linear


(ciclo de vida clssico)
ENGENHARIA DE SISTEMAS
deve-se analisar os requisitos, recursos e
restries para:
apresentar solues;
estudar a viabilidade;
planejar e gerenciar o
desenvolvimento a partir de estimativas
e anlise de riscos que se utilizam de
mtricas.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

20

Modelo Sequencial Linear


(ciclo de vida clssico)
Estudo de viabilidade
Analisar o problema em nvel global
Identificar solues alternativas (custos
/ benefcios)
Simulao do futuro processo de
desenvolvimento.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

21

Modelo Sequencial Linear


(ciclo de vida clssico)
Estudo de viabilidade (cont)
Resultado documentao contendo:
Definio do problema
Solues alternativas, com os
benefcios esperados
Fontes necessrias, custos e datas de
entrega para cada soluo proposta.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

22

Modelo Sequencial Linear


(ciclo de vida clssico)
ANLISE DE REQUISITOS DE SOFTWARE
processo de coleta dos requisitos
intensificado e concentrado
especificamente no software.
deve-se compreender o domnio da
informao, a funo, desempenho e
interfaces exigidos.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

23

Modelo Sequencial Linear


(ciclo de vida clssico)
ANLISE DE REQUISITOS DE SOFTWARE
os requisitos (para o sistema e para o
software) so documentados e revistos com
o cliente.

Resultado o contrato de desenvolvimento


Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

24

Modelo Sequencial Linear


(ciclo de vida clssico)
PROJETO
Definio de como o produto deve
ser implementado.
Dividido em:
Projeto de alto nvel decomposio
lgica
Projeto detalhado decomposio
fsica.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

25

Modelo Sequencial Linear


(ciclo de vida clssico)
PROJETO
Concentra-se em:
Estrutura de Dados;
Arquitetura de Software;
Detalhes Procedimentais e
Caracterizao de Interfaces.
Resultado documentao de
especificao de projeto
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

26

Modelo Sequencial Linear


(ciclo de vida clssico)
IMPLEMENTAO
Traduo das representaes do
projeto para uma linguagem artificial
resultando em instrues executveis
pelo computador.
Resultado coleo de programas
implementados e testados.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

27

Modelo Sequencial Linear


(ciclo de vida clssico)
INTEGRAO
Programas ou unidades de programas so
integrados e testados como sistema.
Programas ou unidades so 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 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

28

Modelo Sequencial Linear


(ciclo de vida clssico)
OPERAO
Instalao e configurao
Utilizao inicialmente operado
por um grupo de usurio

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

29

Modelo Sequencial Linear


(ciclo de vida clssico)
MANUTENO

Corretiva: correo de erros remanescentes

Adaptativa: adaptao dos produtos s


mudanas novas verses e novas situaes
de operao hardware, sistemas
operacionais.
Evolutiva: alterao dos requisitos e
manuteno da qualidade.

Resultado produto em funcionamento.


Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

30

Modelo Sequencial Linear


(ciclo de vida clssico)
ETAPA

PERGUNTAS-CHAVES

Definio do Qual o problema


problema
Estudo de
H uma soluo vivel
viabilidade
Anlise

CRITRIOS DE SADA
Declarao da delimitao e objetivos.
Anlise geral de custo/benefcio
Alcance e objetivos do sistema.

Modelo lgico do sistema:


O que ter de ser feito
para resolver o problema?
Diagrama de Fluxo de Dados;
Diagrama de Entidade e Relacionamento
Diagrama de Transio de Estado;
Dicionrio de Dados;
Especificao de Processos.
UML.

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

31

Modelo Sequencial Linear


(ciclo de vida clssico)
ETAPA
Projeto

PERGUNTAS-CHAVES
Como o problema deve ser
resolvido?
Como o sistema deve ser
implementado?

CRITRIOS DE SADA
Solues Alternativas
Especificao de hard/soft;
Plano de implementao;
Plano de teste preliminares;
Procedimento de segurana;
Procedimento de auditoria.

Implementao Faa

Programas;
Plano de testes;
Procedimento de segurana;
Procedimento de auditoria.

Teste

Verificar o sistema

Testes do geral do sistema.

Manuteno

Modificar o sistema conforme Apoio continuado.


necessidade.

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

32

CONTRIBUIES DO
CICLO DE VIDA CLSSICO
Processo de desenvolvimento de
software deve ser sujeito disciplina,
planejamento e gerenciamento.
A implementao do produto deve ser
postergada at que os objetivos tenham
sido completamente entendidos.
Deve ser utilizado quando os requisitos
esto bem claros no inicio do
desenvolvimento.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

33

PROBLEMAS DO
CICLO DE VIDA CLSSICO

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 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

34

Modelo Evolucionrio
Abordagem baseada na idia de
desenvolver uma implementao inicial,
expor o resultado ao comentrio do
usurio e fazer seu aprimoramento por
meio de muitas verses.

Especificao e desenvolvimento so
intercalados
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

35

Modelo evolucionrio
(Desenvolvimento exploratrio )
Atividades
concorrentes

Especificao

Descrio do
esboo

Desenvolvimento

Validao

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

Verso
inicial
Verso
intermedirias

Verso
final

36

Modelo evolucionrio
(Desenvolvimento exploratrio )

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 so mais bem
compreendidas.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

37

Modelo evolucionrio
(Desenvolvimento exploratrio )

O sistema evolui com o acrscimo de


novas caractersticas medida que elas
so propostas pelo cliente.

Importante quando difcil, ou mesmo


impossvel, estabelecer uma
especificao detalhada dos requisitos do
sistema a priori.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

38

PROTOTIPAO
Incio
Fim
Coleta e
refinamento dos
requisitos
Engenharia do
produto

Projeto
rpido

Refinamento do
prottipo

Construo do
prottipo
Avaliao do
prottipo pelo
cliente

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

39

PROTOTIPAO
Incio

COLETA DOS REQUISITOS:

Fim
Coleta e
refinamento dos
requisitos

Engenharia
do produto

Projeto
rpido

Refinamento
do prottipo
Avaliao do
prottipo
pelo cliente

Profa. Maria Auxiliadora

Construo
do
prottipo

desenvolvedor e
cliente definem os
objetivos gerais do
software, identificam
quais requisitos so
conhecidos e as reas
que necessitam de
definies adicionais

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

40

PROTOTIPAO
Incio
Fim
Coleta e
refinamento dos
requisitos

Engenharia
do produto

Projeto
rpido

Refinamento
do prottipo
Avaliao do
prottipo
pelo cliente

Profa. Maria Auxiliadora

Construo
do
prottipo

PROJETO RPIDO:
representao dos
aspectos do
software que so
visveis ao usurio
(abordagens de
entrada e
formatos de sada)

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

41

PROTOTIPAO
Incio
Fim
Coleta e
refinamento dos
requisitos

Engenharia
do produto

Projeto
rpido

Refinamento
do prottipo
Avaliao do
prottipo
pelo cliente

Profa. Maria Auxiliadora

Construo
do
prottipo

CONSTRUO
PROTTIPO:
Implementao
do projeto rpido
serve como o
primeiro sistema
- recomendado
que se jogue fora
futuramente

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

42

PROTOTIPAO
Incio
Fim
Coleta e
refinamento dos
requisitos

Engenharia
do produto

Projeto
rpido

Refinamento
do prottipo
Avaliao do
prottipo
pelo cliente

Profa. Maria Auxiliadora

Construo
do
prottipo

AVALIAO DO
PROTTIPO:
Cliente e
desenvolvedor
avaliam o
prottipo

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

43

PROTOTIPAO
Incio
Fim
Coleta e
refinamento dos
requisitos

Engenharia
do produto

Projeto
rpido

Refinamento
do prottipo
Avaliao do
prottipo
pelo cliente

Profa. Maria Auxiliadora

Construo
do
prottipo

REFINAMENTO DOS
REQUISITOS:
Cliente e
desenvolvedor
refinam os
requisitos do
software a ser
desenvolvido.

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

44

PROTOTIPAO
Incio
Fim
Coleta e
refinamento dos
requisitos

Engenharia
do produto

Projeto
rpido

Refinamento
do prottipo
Avaliao do
prottipo
pelo cliente

Profa. Maria Auxiliadora

Construo
do
prottipo

CONSTRUO
PRODUTO:
identificados os
requisitos, o prottipo
deve ser descartado e a
verso de produo
deve ser construda
considerando os
critrios de qualidade.

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

45

CONTRIBUIES DA PROTOTIPAO
Sistemas pequenos
til quando os requisitos esto
obscuros
Especificao construda
gradativamente
Possibilitam um rpido
desenvolvimento da aplicao
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

46

PROBLEMAS DA PROTOTIPAO
O processo no visvel
Os sistemas so frequentemente
mal-estruturados e maldocumentados
Processo no claro, dificuldade
de planejamento e gerenciamento
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

47

MODELO INCREMENTAL
incremento 1

Engenharia de Sistemas /
Informao
Projeto
Anlise

incremento 2

Projeto

Anlise

incremento 3

incremento 4

Profa. Maria Auxiliadora

Anlise

Testes

Codificao

Projeto

Anlise

Projeto

produto liberado
do incremento 1

Testes

Codificao

Codificao

Codificao

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

Testes

produto liberado
do incremento 2

produto liberado
do incremento 3

Testes

produto
liberado
do
incremento 4

48

MODELO INCREMENTAL
Combina elementos do Modelo Linear
com a filosofia da Prototipao.
Aplica sequncias lineares numa
abordagem de saltos medida que o
tempo progride.
Cada sequncia linear produz um
incremento do software (proc. de
texto)
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

49

MODELO INCREMENTAL
O processo se repete at que um
produto completo seja produzido.
Difere da Prototipao, pois a cada
incremento produz uma verso
operacional do software.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

50

CONTRIBUIES DO
MODELO INCREMENTAL
Entrega acelerada dos servios de cliente.
Cada incremento fornece a funcionalidade de mais
alta prioridade para o cliente.

Engajamento do usurio com o sistema.


Os usurios tm de estar envolvidos no processo
de desenvolvimento, o que significa que o sistema
muito provavelmente atender aos seus requisitos,
e que os usurios estaro mais comprometidos
com ele.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

51

PROBLEMAS DO
MODELO INCREMENTAL
Problemas de gerenciamento
O progresso pode ser difcil de julgar e os
problemas, difceis de serem encontrados, porque
no h documentao que mostre o que foi feito.

Problemas contratuais
O contrato normal pode incluir uma especificao;
sem uma especificao, formulrios diferentes de
contrato tm de ser usados.

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

52

PROBLEMAS DO
MODELO INCREMENTAL
Problemas de validao
Sem uma especificao, contra o que o sistema
est sendo testado.

Problemas de manuteno
Mudanas contnuas 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 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

53

MODELO ESPIRAL
(Boehm)
Desenvolvido para englobar as melhores
caractersticas do ciclo de vida clssico e
do paradigma evolutivo.
So avaliados riscos explicitamente e so
solucionados ao longo do processo.
Processo representado como uma
espiral em lugar de ser representado
como uma sequncia de atividades
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

54

MODELO ESPIRAL
(Boehm)
Planejamento

Avaliao do cliente

Profa. Maria Auxiliadora

Anlise de
Risco

Engenharia

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

55

Modelo Espiral
Planejamento
Coleta inicial dos requisitos e
planejamento do projeto

Anlise de
risco

Planejamento baseado nos


comentrios do cliente

Avaliao do cliente
Engenharia

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

56

Modelo Espiral
So identificados objetivos especficos, tais como
desempenho e funcionalidade.
So determinadas alternativas para atingir estes
objetivos.
So identificadas restries do processo e do
produto e elaborado um relatrio de gesto
detalhado.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

57

Modelo Espiral
Planejamento

Anlise de
risco

Para cada risco do projeto


identificado em
planejamento levada a
cabo uma anlise
detalhada.
Deciso de prosseguir/no prosseguir

Avaliao do cliente
Engenharia

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

58

Modelo Espiral
Planejamento

Anlise de
risco

Na direo de um sistema concludo

Prottipo de software inicial


Avaliao do cliente
Engenharia

Profa. Maria Auxiliadora

Sistema construdo pela


engenharia

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

59

Modelo Espiral
tarefas requeridas para
obter um feedback do
cliente baseado na
avaliao da
representao do
software criado durante a
fase de engenharia e
implementado durante a
fase de instalao

Profa. Maria Auxiliadora

Planejamento

Avaliao do
cliente

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

Anlise de
risco

Engenharia

60

DESENVOLVIMENTO RPIDO DE SOFTWARE

Mtodos geis
Extreme programming
Desenvolvimento rpido de aplicaes
Prototipao de software
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

61

DESENVOLVIMENTO RPIDO DE SOFTWARE


Devido rpida mudana dos ambientes de
negcio, os negcios devem responder s novas
oportunidades e competio.
Isso requer software e desenvolvimento rpido, e a
entrega , frequentemente, o requisito mais crtico
para sistemas de software.
Os negcios podem estar dispostos a aceitar um
software de baixa qualidade se a entrega rpida e a
funcionalidade essencial for possvel.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

62

MTODOS GEIS
Movimento iniciado por programadores
experientes e consultores em desenvolvimento
de software.
Objetivo: satisfazer o cliente entregando,
rapidamente e com frequncia, sistemas com
algum valor.
Os mtodos geis so, provavelmente, os mais
adequados para sistemas de negcio de porte
pequeno/mdio ou produtos para PC.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

63

MTODOS GEIS
A insatisfao com os overheads envolvidos
nos mtodos de projeto levou criao dos
mtodos geis. Esses mtodos:
Enfocam o cdigo ao invs do projeto;
So baseados na abordagem iterativa para
desenvolvimento de software;
So 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 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

64

PRINCPIOS DOS MTODOS GEIS


Envolvimento do cliente
Seu papel fornecer e priorizar novos
requisitos do sistema e avaliar as
iteraes do sistema.Clientes devem
ser profundamente envolvidos no
processo de desenvolvimento.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

65

PRINCPIOS DOS MTODOS GEIS


Entrega incremental
O software desenvolvido em
incrementos e o cliente especifica os
requisitos a serem includos em cada
incremento.

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

66

PRINCPIOS DOS MTODOS GEIS


Pessoas, no processo
As habilidades da equipe de
desenvolvimento devem ser
reconhecidas e exploradas. Os
membros da equipe devem
desenvolver suas prprias maneiras
de trabalhar sem processos
prescritivos.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

67

PRINCPIOS DOS MTODOS GEIS


Aceite as mudanas
Projete o sistema para acomodar
mudanas.
Mantenha a simplicidade
Elimine a complexidade do sistema.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

68

PROBLEMAS COM MTODOS GEIS


Difcil manter o interesse dos
clientes que esto envolvidos no
processo.
Os membros da equipe podem ser
inadequados para o intenso
envolvimento que caracteriza os
mtodos geis.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

69

PROBLEMAS COM MTODOS GEIS


A priorizao de mudanas pode ser
difcil onde existem mltiplos
stakeholders.
A manuteno da simplicidade
requer trabalho extra.
Problemas nos contratos.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

70

EXTREME PROGRAMMING
talvez o mais conhecido e mais
amplamente usado dos mtodos geis.
A eXtreme Programming (XP) leva uma
abordagem extrema para
desenvolvimento iterativo.

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

71

EXTREME PROGRAMMING
Novas verses podem ser compiladas
vrias vezes por dia. Os incrementos so
entregues para os clientes a cada 2
semanas.

Todos os testes devem ser realizados


para cada nova verso.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

72

OS 4 VALORES DE XP
Comunicao
Simplicidade

Retorno (feedback)
Coragem
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

73

EXTREME PROGRAMMING
a quem se destina
Grupos de 2 a 10 programadores
Projetos de 1 a 36 meses (calendrio)
De 1000 a 250 000 linhas de cdigo

Papis:
Programadores foco central (sem
hierarquia)
Treinador ou Tcnico (coach)
Acompanhador (tracker)
Cliente
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

74

EXTREME PROGRAMMING
Treinador ou Tcnico (coach)

Em geral, o mais experiente do grupo.


Identifica quem bom no que.
Comunica-se com outros gerentes e
diretoria.
Concentra-se na execuo e evoluo
tcnica do projeto.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

75

EXTREME PROGRAMMING
Treinador ou Tcnico (coach)
Eventualmente faz programao
pareada.
No desenha arquitetura, apenas chama
a ateno 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 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

76

EXTREME PROGRAMMING
Tracker (Acompanhador)
Coleta estatsticas sobre o andamento do projeto.
Alguns exemplos:
Nmero de histrias definidas e implementadas.
Nmero de unit tests.
Nmero de testes funcionais definidos e
funcionando.
Nmero de classes, mtodos, linhas de cdigo
Mantm histrico do progresso. Faz estimativas para
o futuro.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

77

Um Dia na Vida de um
Programador XP
Escolhe uma histria do cliente.
Procura um par livre.
Escolhe um computador para
programao pareada (pair programming).
Seleciona uma tarefa claramente
relacionada a uma caracterstica (feature)
desejada pelo cliente.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

78

O ciclo de release em XP

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

79

Prticas do Extreme Programming


Planejamento Incremental
Registrados em cartes de histrias
Pequenos releases Conjunto
mnimo til de funcionalidade
desenvolvido.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

80

Prticas 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 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

81

Prticas do Extreme Programming


Refactoring
Espera-se que todos os
desenvolvedores recriem o cdigo
continuamente.
Programao em pares
Os desenvolvedores trabalham em pares.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

82

Prticas do Extreme Programming


Propriedade coletiva
Os pares trabalham em todas as reas
do sistema.
Integrao contnua
Tarefa concluda automaticamente
integrada ao sistema.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

83

Prticas do Extreme Programming


Ritmo sustentvel
No aceitar grande quantidade de
horas extras.
Cliente on-site
Um usurio do sistema deve estar
disponvel em tempo integral..
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

84

Quando XP No Deve Ser


Experimentada?
Quando o cliente no aceita as regras do
jogo.
Quando o cliente quer uma especificao
detalhada do sistema antes de comear.

Quando os programadores no esto


dispostos a seguir (todas) as regras.
Se (quase) todos os programadores do time
no so experientes.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

85

Quando XP No Deve Ser


Experimentada?
Grupos grandes (>10 programadores).

Quando feedback rpido no possvel:


sistema demora 6h para compilar.
testes demoram 12h para rodar.
exigncia de certificao que demora meses.
Quando o custo de mudanas essencialmente
exponencial.

Quando no possvel realizar testes


(muito raro).
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

86

MODELO DE MTODOS FORMAIS


Um modelo de sistema matemtico
transformado formalmente em uma
implementao

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

87

MODELO DE MTODOS FORMAIS


Compreende um conjunto de atividades
que determinam uma especificao
matemtica para o software.
A especificao de requisitos de software
redefinida em uma especificao
formal detalhada, que expressa em
uma notao matemtica.
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

88

TCNICAS DE 4A GERAO
Obteno dos Requisitos
Estratgia de Projeto
Implementao usando
4GL

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

Testes

89

TCNICAS DE 4A GERAO
Concentra-se na capacidade de se especificar o
software a uma mquina em um nvel que esteja
prximo linguagem natural.
Engloba um conjunto de ferramentas de software que
possibilitam que:
o sistema seja especificado em uma linguagem de
alto nvel e
o cdigo fonte seja gerado automaticamente a
partir dessas especificaes
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

90

TCNICAS DE 4A GERAO
O ambiente de desenvolvimento inclui as ferramentas:

linguagens no procedimentais para


consulta de banco de dados
gerao de relatrios
manipulao de dados
interao e definio de telas
gerao de cdigos
capacidade grfica de alto nvel
capacidade de planilhas eletrnicas
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

91

ATIVIDADES DAS
TCNICAS DE 4A GERAO
Obteno dos
Requisitos

Estratgia de Projeto
Implementao usando 4GL
Testes

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

92

ATIVIDADES DAS
TCNICAS DE 4A GERAO
OBTENO DOS REQUISITOS: o cliente
descreve os requisitos os quais so traduzidos
para um prottipo operacional
O cliente pode estar inseguro quanto aos
requisitos
O cliente pode ser incapaz de especificar as
informaes de um modo que uma
ferramenta 4GL possa consumir
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

93

ATIVIDADES DAS
TCNICAS DE 4A GERAO
Obteno dos Requisitos

Estratgia de
Projeto Implementao usando 4GL
Testes

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

94

ATIVIDADES DAS
TCNICAS DE 4A GERAO
ESTRATGIA DE "PROJETO":
para pequenas aplicaes possvel mover-se do
passo de Obteno dos Requisitos para o passo
de Implementao
Para grandes projetos necessrio desenvolver
uma estratgia de projeto. De outro modo
ocorrero os mesmos problemas encontrados
quando se usa abordagem convencional (baixa
qualidade, manutenibilidade ruim, m aceitao
do cliente)
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

95

ATIVIDADES DAS
TCNICAS DE 4A GERAO
Obteno dos Requisitos
Estratgia de Projeto

Implementao
usando 4GL

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

Testes

96

ATIVIDADES DAS
TCNICAS DE 4A GERAO
IMPLEMENTAO USANDO 4GL:

os resultados desejados so
representados de modo que haja gerao
automtica de cdigo.

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

97

ATIVIDADES DAS
TCNICAS DE 4A GERAO
Obteno dos Requisitos
Estratgia de Projeto
Implementao usando 4GL

Testes

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

98

ATIVIDADES DAS
TCNICAS DE 4A GERAO
TESTE:

o desenvolvedor deve efetuar testes e


desenvolver uma documentao
significativa.
O software desenvolvido deve ser
construdo de maneira que a manuteno
possa ser efetuada prontamente.

Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

99

Escolher um modelo de
desenvolvimento para o sistema
Riscos na integrao dos sub-sistemas
Modelo Cascata
Riscos significativos na interface com o
utilizador Desenvolvimento evolutivo.
Riscos de segurana
Desenvolvimento Formal
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

100

Combinando Paradigmas
obteno preliminar dos
requisitos

anlise dos
requisitos

prototipao

projeto

prototipao
ensima interao

tcnicas
4G

codificao

modelo espiral

tcnicas
4G
modelo espiral:
ensima interao

tcnicas 4G

testes

Sistema Completo
Manuteno
Profa. Maria Auxiliadora

Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6 Edio
SOMMERVILLE
- Engenharia de Software - 8 Edio

101