1. Diagramas de Fluxo de Dados
•Diagrama de Contexto
•Digrama nível 1
Dicionários de Dados
Diagramas Entidade-Relação
2. 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
Rui Inácio / António Lima 2
3. Diagrama de Fluxo de Dados
Papel do Analista
Envolvendo
Compreender o Sistema
Utilizador
Descrever o Sistema
Rui Inácio / António Lima 3
4. O nível zero – Diagrama de Contexto
Define a fronteira do sistema.
Mostra a troca de informação entre o sistema
e o exterior do sistema.
SISTEMA
Rui Inácio / António Lima 4
5. Componentes
Nome da Entidade
Entidade Externa
Verbo imperativo
+ Processo
substantivo
Nome do Arquivo Arquivo ou Repositório de Dados
Nome do Dado Fluxo de Dados
Rui Inácio / António Lima 5
6. Exemplo – “Viagem”
bilhete LINHA
CLIENTE
AÉREA
ATRIBUIR
REVERVA
pedido de viagem reserva de voo
HOTEL
reserva de quarto
Rui Inácio / António Lima 6
7. Exemplo – “Viagem”
Decomposição em processos
de menor complexidade
Obter o pedido do cliente
Efectuar a reserva no hotel
ATRIBUIR
Efectuar a reserva na
RESERVA companhia de aviação
Atribuir bilhete ao
Rui Inácio / António Lima cliente 7
8. Exemplo – “Viagem”
bilhete LINHA
CLIENTE AÉREA
obter atribuir
pedido bilhete
pedido de viagem
reservar
reservar
voo
hotel reserva de voo
HOTEL reserva de quarto
Rui Inácio / António Lima 8
9. Exemplo – “Viagem”
bilhete
CLIENTE LINHA
AÉREA
obter atribuir
pedido bilhete
pedido de viagem
reservar
reservar voo
hotel
reserva de voo
HOTEL
reserva de quarto
Rui Inácio / António Lima 9
10. Exemplo – “Viagem”
bilhete de
atribuir quarto
bilhete
CLIENTE bilhete
pedido bilhete
obter
de voo de voo
pedido de pedido
reservar reserva
viagem de voo
pedido de voo
alojamento
reserva LINHA
reservar AÉREA
de quarto
hotel HOTEL
Rui Inácio / António Lima 10
11. Exemplo – “Viagem”
pedido Lista de voos voo seleccionado
de voo seleccionar
voo
Encontrar
voos reserva
efectuar de voo
RESERVA reserva
VOO Bilhete
de voo
reservar voo
Rui Inácio / António Lima 11
12. Exemplo – “Viagem”
pedido de
alojamento Lista de hotéis seleccionar
hotel
Encontrar hotel
hotéis seleccionado
reserva
efectuar reserva de quarto
de quarto
HOTEL RESERVA
bilhete
de quarto reservar hotel
Rui Inácio / António Lima 12
13. Exemplo – “Viagem”
bilhete de quarto bilhete
bilhete de voo
junção
atribuir
bilhete
Rui Inácio / António Lima 13
14. Exemplo – “Viagem”
bilhete
de
bilhete quarto
CLIENTE
pedido bilhete
obter
de voo de voo
pedido de pedido
reservar reserva
viagem de voo
pedido de voo
alojamento
reserva LINHA
reservar AÉREA
de quarto
hotel HOTEL
Rui Inácio / António Lima 14
15. Exemplo – “Viagem”
bilhete atribuir bilhete de voo+quarto
CLIENTE bilhete
pedido bilhete de voo
obter RESERVA
pedido de voo
pedido de reserva
viagem reservar
pedido de voo de voo
alojamento bilhete
de
LINHA quarto
reservar reserva
AÉREA
hotel de quarto
HOTEL
Rui Inácio / António Lima 15
16. DFD – Regras para um bom desenho
Associar um processo a fluxos importados ou exportados do
sistema.
Desenhar um processo sempre que exista transformação.
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
Rui Inácio / António Lima 16
17. 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
Cliente Compra Livro
18. 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
19. 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
Trata
Médico Paciente
Cobra
20. DEA
Os relacionamentos podem ser unários, binários, ternários...
Curso Tem Prec.
Professor Envolve Aluno
21. 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 1 N Item
Compra
Professor M N Aluno
Ensina
22. DEA
Tipo objecto (ou entidade):
Aluno
• 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
23. DEA
Instância de uma associação é uma ocorrência de uma
ligação entre objectos
Cliente compra Filme
Instâncias instâncias Instâncias
de Cliente de compra de Filme
C1 F1
C2 F2
C3 F3
C4 4 instâncias de Cliente
3 instâncias de Filme
3 instâncias da associação
24. DEA
A cardinalidade define os graus máximo e mínimo.
O grau máximo de uma associação pode ser:
• 1 :1
• 1 :N
• N :M
O grau mínimo de uma associação pode ser:
• 0 :0
• 0 :1
• 1 :1
25. DEA
Grau máximo:
O grau máximo define o número máximo de vezes que uma
instância da entidade pode ocorrer na associação.
Exemplo:
1
tem Carta de
Cliente
1 condução
• 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
26. DEA
Exemplo 1:
N
Aluguer pertence Cliente
1
• Um Aluguer pertence a no máximo um Cliente
• Um Cliente pode ter vários Alugueres
Exemplo 2:
N
Fornecedor fornece Produto
M
• Um Fornecedor fornece vários Produtos
• Um Produto pode ser fornecido vários Fornecedores
27. DEA
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.
Exemplo:
Cliente tem Carta de condução
• 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
28. DEA
Exemplo:
é médico Paciente
Médico
família
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
29. DEA
Exemplo:
Fornecedor fornece Produto
Fornecedor é obrigatório
Um fornecedor fornece no mínimo um produto
Produto é obrigatório
Todo produto é fornecido no mínimo por um
fornecedor
30. DEA
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.
N
Fornecedor fornece Produto
M
1
Cliente tem Cartão
1
Notação alternativa
0..N 0..M
Fornecedor fornece Produto
1..1 0..1
Cliente tem Cartão
31. DEA
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
M Projecto
Funcionário trabalha
N
Contém informação sobre a
percentagem de tempo que o
empregado dedica a um dado projecto.
1..M 1..N
Funcionário Projecto
Trabalho
32. DEA
Exemplos de entidades associativas:
(0..M) (0..N)
Ficheiro Utilizador
Atributo específico : tipo da
Acesso
permissão de acesso
(1..M) (0..N)
Atleta Competição
Atributos específicos :
Participação
colocação, performance
33. 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
34. DEA
Desporto Empregado
Desporto Desporto assalariado temporário
Individual em Equipa
Desporto = nome + local + regras Empregado = nome + endereço
Desporto Individual = recorde Assalariado = salário_mensal
Desporto em Equipa = Temporário = salário_hora
número_de_jogadores
35. DEA
Figura Figura = cor +
posição_central
Aberta = orientação
Fechada = área
Arco = raio + ângulo
Aberta Fechada
Linha = pontos_extremos
Círculo = diâmetro
Polígono =
número_de_lados + vértices
Arco Linha Círculo Polígono
36. Construção do DEA
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
N
Fornecedor fornece Produto
M
37. Construção do DEA
2.2 Na especificação dos processos.
Exemplo:
process fornecer;
...
If código_fornecedor in Fornecedores =
código_ fornecedor in Produtos then
...
endproc
38. 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
Médico = @código_médico + nome + morada + salário
Paciente = @código_paciente + BI + nome + sexo +
(telefone)
39. Construção do DEA
Observações importantes:
1. Certificar-se de que todos os atributos se aplicam a todas
as instâncias de uma entidade.
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
41. 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
Empregado Empregado
temporário assalariado
Empregad
Empregado o
temporário assalariado
42. Construção do DEA
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 +
{nome_filho + sexo_filho + idade_filho}
N
Empregado tem Filho
Empregado = @número_empregado + nome + morada + salário
Filho = @Id_filho + nome_filho + sexo_filho + idade_filho +
número_empregado
43. Construção do DEA
4. Existe outra situação bastante comum.
Conta = @número-conta + saldo +
[juro + período | limite-credito]
Conta
Conta = @número-conta + saldo
Conta-à-ordem= @número-conta +
Conta à Conta a limite-crédito
Ordem prazo
Conta-a-prazo= @número-conta +
juro + período
Conta_à_ordem = * mesmos atributos
que Conta*