Você está na página 1de 14

Engenharia de Software

Profa. Dra. Lúcia V. L. Filgueiras


Profa. Dra. Selma Shin Shimizu Melnikoff

LF

Uso do Diagrama de Fluxo de


Dados

1. Diagrama de Fluxo de Dados


2. Modelo Essencial
3. Dicionário de Dados
4. Especificação dos Processos

LF

1. Diagrama de Fluxo de Dados


• origem - Tom DeMarco

• várias notações
– DeMarco/Yourdon
– Gane/Sarson

• extensões para tempo real


– Ward&Mellor
– Hatley-Pirbhai

LF
Componentes básicos:
processo
verbo
+
objetos

EX.:

1.5
1.5
calcular
calcular
contrib.
contrib.
INSS
INSS
DeMarco/Yourdon
Gane/Sarson
LF

Componentes básicos:
fluxo de dados
informação

Ex.:

nome
do
funcionário

diálogo

LF

Componentes básicos:
depósitos de dados
funcionários D1 funcionários

De Marco/Yourdon Gane/Sarson

dados_funcionário

calcular
folha de
cadastrar pagamento
funcionários funcionários

dados_funcionário
LF
Componentes básicos:
entidades externas
• participam como origem/destino de
informações

Ex.:

cliente cliente

De Marco/Yourdon Gane/Sarson

LF

2. Modelo Essencial
• especifica o quê o sistema deve fazer, sem
determinar como deve ser feito

• composto por:
– modelo ambiental
– modelo de comportamento

LF

2.1 Modelo ambiental


define o que é parte do sistema e o que não é
ou seja
mapeia as interfaces do sistema com o ambiente onde ele
se insere

Ambiente

Sistema

LF
Componentes do Modelo
Ambiental

• declaração de propósito
• lista de eventos
• diagrama de contexto

LF

Declaração de Propósito
• declaração textual, concisa e clara do propósito do sistema
• não deve detalhar o sistema nem pretender ser abrangente

Exemplo:
“O sistema destina-se a realizar o controle do estoque, registrando
todas as compras efetuadas e saídas de materiais. Quando o
estoque de um material cair abaixo de um valor mínimo, o
sistema deverá sinalizar a necessidade de compra. Ao final do
dia, deverá emitir um relatório dos movimentos.”

LF

Lista de eventos
• Narrativa dos estímulos que acontecem no
mundo externo, aos quais o sistema deve
responder

• Não confundir as causas com as conseqüências

• Um evento causa:
– a mudança de estado do sistema
– a produção de uma informação na interface do
sistema
LF
Classificação dos eventos
• Eventos (puros)
• Eventos de dados
• Eventos temporais

Exemplo: controle de estoque


– a visita aperta a campainha
– o almoxarife solicita um item (evento de dados)
– o comprador informa um lote comprado (evento de dados)
– chega o final do dia (evento temporal)

LF

Eventos
• caso normal: é a rotina de funcionamento do
programa. Deve incluir:
– eventos de fornecimento de informação
– eventos de solicitação de informação
– eventos de alteração de informações
– eventos de eliminação das informações
• casos de exceção: permitem recuperação de
erros nos eventos de rotina
LF

Diagrama de Contexto
mostra características do sistema
– organizações/sistemas/pessoas que se
comunicam com o sistema
– dados que o sistema absorve e deve processar
– dados que o sistema gera para o ambiente
– fronteira do sistema com o ambiente

LF
Componentes básicos
• entidades externas

• sistema

• fluxos de dados
informação

LF

Exemplo: diagrama de contexto

COMPRADOR dado da compra

ordem de compra resposta

SISTEMA DE ALMOXARIFE
CONTROLE requisição
DE
ESTOQUE
fim do dia

relatório GERÊNCIA
RELÓGIO

LF

2.2. Modelo de comportamento


• identifica o processamento dos eventos

• composto por:
– Diagrama de Fluxo de Dados
– Dicionário de Dados
– Especificações de Processos

LF
Exemplo: controle de estoque

1.
dados da compra
COMPRADOR incluir
material
dados do
material
ordem de compra 3. dados do
calcular material
mínimo
ESTOQUE
hora
RELÓGIO dados da dados do
compra material
4.
produzir
relatório 2. resposta
receber
movimento ALMOXARIFE
requisição
GERENTE
relatório requisição

LF

Regras gerais:
• usar nomes mnemônicos
• manter o desenho em uma página - não
complicar
• numerar os processos
• redesenhar visando a estética (de preferência,
usar computador)
• garantir consistência

LF

Escolher bem os nomes


número válido
número de telefone
validar
número

número inválido

No Dicionário de Dados:

número de telefone = {dígito}*8


número válido = {dígito}*8
número inválido = {dígito}*8

LF
DFD é atemporal
A X

B Y
P

Quando o dado A chega? É resposta a algum pedido?

Quantos conjuntos de A, B e C são necessários para produzir a


resposta X?

Qual resposta é gerada antes - X ou Y?

LF

Erros comuns
• buracos negros
• geração espontânea
• fluxos e processos sem nome
• depósitos “write-only” ou “read-only”

LF

Detalhamento do Processo

PROCESSO 3. CALCULAR MÍNIMO

ordem de compra
3.3.
emitir
ordem de produto dados do
compra abaixo material
do mínimo
3.2.
comparar
quantidades

dados do
hora 3.1. limite
monitorar mínima
relógio ativação da
contabilidade
QUANTIDADES MÍNIMAS

LF
3. Dicionário de dados
• Serve para:
– descrever o significado dos fluxos de dados
– identificar registros dos depósitos de dadoa
– descrever a composição dos dados
• Notação
= é composto por
+ e
() opcional
{ } repetição
* número de repetições
[ ] seleção entre alternativas
| separador de alternativas

LF

Exemplo: número de telefone


número de telefone = [extensão local | número externo]
extensão local = [2001|2002|...|2999]
número externo = 0 + [número interurb.|número local]
número interurb. = DDD + número local
DDD = 0 + código da cidade
número local = prefixo + {dígito} * 4

LF

Dicionário de Dados
controle de estoque
dados da compra = {código do item + quantidade comprada}
código do item = número /** faixa de 0 a 1000 **/
quantidade = número + unidade
unidade = [ un | kg | l | m | m2 | m3 ]
ordem de compra = {código do item + quantidade}
requisição = código do item + quantidade
resposta = [ liberado | indisponível]
estoque = {dados do material }
dados do material =código do item + descrição + quantidade
hora = HH:MM:SS
movimento = código do item + quantidade
relatório = { tipo movimento + código do item + quantidade }
tipo movimento = [ENTRADA | SAÍDA]

LF
4. Especificação de processos
• descrição do funcionamento das bolhas
primitivas do DFD
• formas mais freqüentes:
– descrição narrativa
– linguagem estruturada
– pré/pós-condições
– árvores e tabelas de decisão
– diagrama de transição de estados
LF

Linguagem estruturada
• pseudocódigo
• estruturas
– enquanto
– repita ... até que
– se-então-senão
– caso
• verbos
– ler
– imprimir (escrever)
– buscar
– eliminar
– ordenar
LF

Exemplo
• processo 3.2. Comparar quantidades

aguarde ativa_contabilidade
para cada item no estoque
buscar quantidade_mínima
se encontrou
então
se quantidade < = quantidade_mínima
então produto_abaixo_do_mínimo
senão
escreva mensagem_de_erro
LF
Diagramas de Nassi-
Schneidermann
aguarde ativa_contabilidade

para cada item no estoque

buscar quantidade mínima


encontrou?
N S
quantidade<=quant.mínima
mensa- N S
gem de
erro produto_abaixo_do_mínimo

LF

Pré/Pós-condições
Pré-condição 1:
existe quantidade_mínima, maior ou igual a quantidade
Pós-condição 1:
mensagem estoque_abaixo_do_mínimo emitida

Pré-condição 2:
não existe quantidade_mínima
Pós-condição 2:
mensagem mensagem_de_erro emitida

LF

Ferramentas para Decisão


• Servem para descrever lógicas que
envolvem encadeamento de decisões.
• Tipos:
– árvore de decisão
– tabela de decisão

LF
Exemplo - Árvore de Decisão
“Clientes que possuam movimentação superior a
R$1 milhão por ano e (tenham bom histórico de
pagamentos ou estejam na casa há mais de 20
anos) devem receber tratamento preferencial.”
S T. P.
bom histórico S
S T. P.
na casa
movimentação há mais
N T. N.
superior a
de 20a.
R$ 1 mi. N
N T. N.

LF

Exemplo - Tabela de Decisão

condições

C1. ter movimentação > 1mi S S S S N N N N

C2. ter bom histórico S S N N S S N N

C3. estar na casa há mais de


S N S N S N S N
20 a.

ações

A1. tratamento normal X X X X X

A2. tratamento preferencial X X X

LF

Tabelas de Decisão
• identificar condições na especificação
• calcular o número de combinações
• identificar as ações mencionadas no enunciado
• criar tabela “vazia” e preencher os casos
conhecidos
• identificar omissões, ambigüidades e contradições
• discutir com o usuário

LF
Diagrama de Transição de Estados
(DTE)
• Serve para descrever os aspectos dinâmicos
do sistema ou dos processos.
• Elementos básicos:
– estados
– transições
– eventos
– ações

LF

Exemplo - DTE
Máquina de venda automática:
– aguarda moedas
– aguarda a seleção do produto
– devolve o troco, se for o caso
– devolve o pagamento:
• se solicitado
• se o pagamento não for suficiente

LF

DTE da máquina de venda


automática pedido de devolução
de moeda
DEVOLVER PAGAMENTO

AGUARDANDO MOEDA

produto disponível = “NÃO” moeda detectada


DEVOLVER PAGAMENTO ACEITAR PEDIDO DO USUÁRIO

AGUARDANDO SELEÇÃO

produto entregue pagamento suficiente


ACEITAR NOVA MOEDA ENTREGAR PRODUTO

ENTREGANDO PRODUTO

LF
Exercício (Pressman, 7.13)
O Departamento de Obras Públicas de uma grande cidade decidiu desenvolver um
sistema informatizado para identificação e reparo dos buracos da cidade
(InfoBuraco). À medida que os buracos são comunicados, recebem um número
de identificação e são armazenados por endereço, tamanho (escala relativa de
1 a 100), localização (meio-fio, centro), distrito (a partir do endereço) e
prioridade de conserto (a partir do tamanho do buraco). Ordens de serviço são
associadas a cada buraco e incluem endereço, número da turma escalada,
número de pessoas na turma de conserto, equipamentos, tempo de reparo,
quantidade de material utilizado, e custo do conserto. Um outro arquivo
armazena informações de danos causados pelo buraco: nome do
cidadão,endereço, tipo do dano e valor da indenização. O sistema é “on-line”.

LF

Você também pode gostar