Diagramas de Fluxo de Dados
•Diagrama de Contexto
•Digrama nível 1
Dicionários de Dados
Diagramas Entidade-Relação
Diagrama de Fluxo de Dados
Objectivo:
Criar um modelo que represente a
circulação da informação através dos
principais processos responsáveis pela sua
modificação
2Rui Inácio / António Lima
Papel do Analista
Compreender o Sistema
Descrever o SistemaUtilizador
Envolvendo
3Rui Inácio / António Lima
Diagrama de Fluxo de Dados
Define a fronteira do sistema.
Mostra a troca de informação entre o sistema
e o exterior do sistema.
O nível zero – Diagrama de Contexto
SISTEMA
4Rui Inácio / António Lima
Entidade
Externa
Processo
Arquivo ou Repositório de Dados
Fluxo de Dados
Nome da
Entidade
Verbo imperativo
+
substantivo
Nome do Arquivo
Nome do Dado
Componentes
5Rui Inácio / António Lima
ATRIBUIR
REVERVA
bilhete
pedido de viagem
reserva de quarto
reserva de voo
CLIENTE
HOTEL
LINHA
AÉREA
Exemplo – “Viagem”
6Rui Inácio / António Lima
ATRIBUIR
RESERVA
Obter o pedido do cliente
Efectuar a reserva no hotel
Efectuar a reserva na
companhia de aviação
Decomposição em processos
de menor complexidade
Atribuir bilhete ao
cliente 7Rui Inácio / António Lima
Exemplo – “Viagem”
obter
pedido
bilhete
pedido de viagem
reserva de quarto
reserva de voo
CLIENTE
HOTEL
LINHA
AÉREA
reservar
hotel
reservar
voo
atribuir
bilhete
8Rui Inácio / António Lima
Exemplo – “Viagem”
obter
pedido
bilhete
pedido de viagem
reserva de quarto
reserva de voo
CLIENTE
HOTEL
LINHA
AÉREA
reservar
hotel
reservar
voo
atribuir
bilhete
9Rui Inácio / António Lima
Exemplo – “Viagem”
obter
pedido
bilhete
pedido de
viagem
reserva
de quarto
reserva
de voo
CLIENTE
HOTEL
LINHA
AÉREAreservar
hotel
reservar
voo
atribuir
bilhete
pedido de
alojamento
pedido
de voo
bilhete de
quarto
bilhete
de voo
10Rui Inácio / António Lima
Exemplo – “Viagem”
reservar voo
Encontrar
voos
pedido
de voo seleccionar
voo
Lista de voos
VOO
RESERVAefectuar
reserva
voo seleccionado
reserva
de voo
Bilhete
de voo
11Rui Inácio / António Lima
Exemplo – “Viagem”
reservar hotel
Encontrar
hotéis
pedido de
alojamento seleccionar
hotelLista de hotéis
HOTEL RESERVA
efectuar reserva
de quarto
hotel
seleccionado
reserva
de quarto
bilhete
de quarto
12Rui Inácio / António Lima
Exemplo – “Viagem”
bilhete de quarto
bilhete de voo
bilhete
junção
atribuir
bilhete
13Rui Inácio / António Lima
Exemplo – “Viagem”
obter
pedido
bilhete
pedido de
viagem
reserva
de quarto
reserva
de voo
CLIENTE
HOTEL
LINHA
AÉREAreservar
hotel
reservar
voopedido de
alojamento
pedido
de voo
bilhete
de
quarto
bilhete
de voo
14Rui Inácio / António Lima
Exemplo – “Viagem”
obter
pedido
bilhete
pedido de
viagem
reserva
de quarto
reserva
de voo
CLIENTE
HOTEL
LINHA
AÉREAreservar
hotel
reservar
voo
atribuir
bilhete
pedido de
alojamento
pedido
de voo
bilhete
de
quarto
bilhete de vooRESERVA
bilhete de voo+quarto
15Rui Inácio / António Lima
Exemplo – “Viagem”
Associar um processo a fluxos importados ou exportados do
sistema.
Identificar conjuntos de informação que o sistema usa em
instantes temporais distintos.
Eliminar eventuais fluxos de controlo que existam no modelo.
Fluxos que entram ou saem de um processo têm que aparecer
representados no nível inferior do diagrama (se existir).
Os arquivos aparecem apenas no nível do diagrama que os
utiliza
Desenhar um processo sempre que exista transformação.
16Rui Inácio / António Lima
DFD – Regras para um bom desenho
Diagrama de Entidade-Associação
(DEA)
Também chamado Diagrama de Entidade-
Relacionamento (DER)
Utilizado para:
Interagir com o utilizador
Definir relacionamentos entre depósitos de dados
LivroCliente Compra
DEA Componentes de um DEA
Tipo Objecto (Entidade)
Relacionamento (Associação)
Indicador de tipo objecto associativo
Indicador de supertipo/subtipo
Tipo objecto
Representado por uma caixa rectangular
Representa uma colecção ou conjunto de objectos do mundo real
Objectos são instâncias do tipo
Cada objecto desempenha um papel no sistema e este pode ser:
identificado unicamente
ser descrito por um ou mais elementos de dados
DEA Relacionamento
Representado por um losango
Um relacionamento representa um conjunto de conexões
entre objectos
Pode haver mais de um relacionamento entre dois
objectos
Médico Paciente
Cobra
Trata
DEA Os relacionamentos podem ser unários, binários, ternários...
Professor Envolve Aluno
Curso Tem Prec.
DEA Cardinalidade: é o número de objectos de cada tipo
objecto que participa no relacionamento
Pode ser.
1:1 ; 1:N ; N:1 ; M:N
Cliente Compra Item1 N
Professor Ensina AlunoM N
Aluno
DEATipo objecto (ou entidade):
• Atributo identificador:
número_de_matrícula
• Atributos descritores:
nome, morada, telefone, data_nascimento, curso, sexo
Instância de objecto:número_de_inscrição: 11250
nome: João da Silva
morada: Areeiro
telefone: 8887777
data_nascimento: 01/09/80
curso: eng. informática
sexo: m
Instância de uma associação é uma ocorrência de uma ligação entre objectos
DEA
4 instâncias de Cliente
3 instâncias de Filme
3 instâncias da associação
compra
Instâncias instâncias Instâncias de Cliente de compra de Filme
C1 F1
C2 F2
C3 F3
C4
Cliente Filmecompra
A cardinalidade define os graus máximo e mínimo.
O grau máximo de uma associação pode ser:
DEA
O grau mínimo de uma associação pode ser:
• 1 : 1
• 1 : N
• N : M
• 0 : 0
• 0 : 1
• 1 : 1
1
1
Grau máximo:
DEA
O grau máximo define o número máximo de vezes que uma instância da entidade pode ocorrer na associação.
Exemplo:
• Uma instância de Cliente pode ocorrer no máximo uma vez
• Uma instância de Carta de Condução pode ocorrer no máximo uma vez
Cliente temCarta de
condução
DEAExemplo 1:
• Um Aluguer pertence a no máximo um Cliente
• Um Cliente pode ter vários Alugueres
1
NAluguer pertence Cliente
• Um Fornecedor fornece vários Produtos
• Um Produto pode ser fornecido vários Fornecedores
M
NFornecedor fornece Produto
Exemplo 2:
O grau mínimo define o número mínimo de vezes que uma instância pode ocorrer na associação.
Se é zero diz-se opcional, se é um diz-se obrigatória.
DEA
• Carta de condução é opcional: um dado cliente pode não ter carta
• Cliente é obrigatório: uma carta de condução pertence no mínimo a um cliente
Exemplo:
Cliente tem Carta de condução
Médico é opcional
Um Paciente pode não ter médico de família
Paciente é opcional
Um médico pode não ser médico de família de nenhum Paciente
DEA
Médicoé médico
famíliaPaciente
Exemplo:
Fornecedor é obrigatório
Um fornecedor fornece no mínimo um produto
Produto é obrigatório
Todo produto é fornecido no mínimo por um fornecedor
DEA
Fornecedor fornece Produto
Exemplo:
1
1
Os graus máximo e mínimo de uma relação complementam-se e servem para especificar a política da organização no que se refere aos dados.
DEA
M
NFornecedor Produtofornece
Cliente Cartãotem
Notação alternativa
0..NFornecedor Produtofornece
Cliente Cartãotem
0..M
1..1 0..1
Entidade associativa é uma associação com atributos próprios.
Representa uma associação onde desejamos manter alguma informação específica que não pode ser derivada automaticamente pelo sistema
DEA
Contém informação sobre a percentagem de tempo que o empregado dedica a um dado projecto.
M
N
1..M
Funcionário Projectotrabalha
Funcionário Projecto
Trabalho
1..N
DEA Exemplos de entidades associativas:
(0..M)Ficheiro Utilizador
Acesso
(0..N)
Atributo específico : tipo da
permissão de acesso
Participação
(1..M)Atleta Competição
(0..N)
Atributos específicos :
colocação, performance
DEA Indicadores de subtipo e supertipo
Um subtipo é uma especialização do supertipo
Um supertipo é uma generalização do subtipo
O supertipo descreve os elementos de dados comuns a todos os subtipos.
Os atributos de um supertipo são “herdados” pelos subtipos
Cada subtipo é descrito pelos atributos “herdados” do supertipo + atributos específicos
Os subtipos descrevem elementos de dados específicos a um subconjunto das instâncias.
Na notação o supertipo está conectado aos subtipos através de uma associação sem nome e uma linha cortada
DEA
Desporto = nome + local + regras
Desporto Individual = recorde
Desporto em Equipa = número_de_jogadores
Desporto
Desporto
IndividualDesporto
em Equipa
Empregado = nome + endereço
Assalariado = salário_mensal
Temporário = salário_hora
Empregado
assalariado temporário
DEA Figura = cor +
posição_central
Aberta = orientação
Fechada = área
Arco = raio + ângulo
Linha = pontos_extremos
Círculo = diâmetro
Polígono =
número_de_lados + vértices
Figura
Aberta Fechada
Arco Linha Círculo Polígono
1. Identificação das entidades.» depósitos de dados;
» depósitos de dados associados a entidades externas;
» documentos, formulários, utilizador.
2. Identificação das associações:
Verificar a descrição dos depósitos de dados do DFD no DD.
Exemplo:
Fornecedores = {Fornecedor + {código_produto}}
Fornecedor = @código_fornecedor + nome + morada + número_contribuinte
Produtos = {Produto + 1{código_fornecedor}}
Produto = @código_produto + descrição + peso
Construção do DEA
N
Fornecedor ProdutoforneceM
2.2 Na especificação dos processos.
Exemplo:
process fornecer;
...
If código_fornecedor in Fornecedores =código_ fornecedor in Produtos then
...
endproc
Construção do DEA
3. Definir os graus máximos e mínimos das associações.
4. Especificar os atributos identificadores e os atributos
descritores de cada entidade.
Verificar a descrição dos depósitos de dados no DD.
5. Completar o dicionário de dados com as descrições das
entidades e associações que ainda não estejam lá.
Médico trata Paciente
Construção do DEA
Médico = @código_médico + nome + morada + salário
Paciente = @código_paciente + BI + nome + sexo + (telefone)
Observações importantes:
1. Certificar-se de que todos os atributos se aplicam a todas
as instâncias de uma entidade.
Construção do DEA
Modelo = @número_modelo + morada + estado_civil + cor_cabelo + cor_olhos + (nome_cônjuge) + sexo + altura +
[barba + medida_tórax | medida_quadril + medida_busto]
Observa-se que há a necessidade de criar dois subtipos
Modelo_feminino = @número_modelo + medida_quadril + medida_busto
Modelo
Modelo
feminino
Modelo
masculino
Modelo = @número_modelo + nome + morada + estado_civil + cor_cabelo + cor_olhos + (nome_cônjuge) + altura + tipo-modelo
tipo-modelo = [Modelo_feminino | Modelo_masculino]
Modelo_masculino = @número_modelo + barba + medida_tórax
Construção do DEA
2. Certificar-se de que quando há entidades diferentes que possuem atributos em comum é possível criar um supertipo
Empregado_temporário = @número_empregado + nome +
morada + código_postal + telefone + salário_hora +
número_horas_extra
Empregado_assalariado = @número_empregado + nome +
morada + código_postal + telefone + salário_mensal +
abono_família + número_filhos
Empregado
temporário
Empregado
assalariado
Empregado
temporário
Empregado
assalariado
Construção do DEA
Empregado
3. Quando há grupos repetitivos covém criar uma nova entidade e uma nova associação
Um grupo repetitivo é um conjunto de atributos cujos valores se
repetem para um dado valor do identificador.
Empregado = @número_empregado + nome + morada + salário
Filho = @Id_filho + nome_filho + sexo_filho + idade_filho + número_empregado
Construção do DEA
Empregado = @número_empregado + nome + morada + salário + {nome_filho + sexo_filho + idade_filho}
NEmpregado Filhotem
Construção do DEA 4. Existe outra situação bastante comum.
Conta
Conta à
Ordem
Conta a
prazo
Conta = @número-conta + saldo + [juro + período | limite-credito]
Conta = @número-conta + saldo
Conta-à-ordem= @número-conta + limite-crédito
Conta-a-prazo= @número-conta + juro + período
Conta_à_ordem = * mesmos atributos que Conta*