43
Diagramas de Fluxo de Dados Diagrama de Contexto Digrama nível 1 Dicionários de Dados Diagramas Entidade-Relação

DFDs e DEA's

Embed Size (px)

Citation preview

Page 1: DFDs e DEA's

Diagramas de Fluxo de Dados

•Diagrama de Contexto

•Digrama nível 1

Dicionários de Dados

Diagramas Entidade-Relação

Page 2: DFDs e DEA's

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

Page 3: DFDs e DEA's

Papel do Analista

Compreender o Sistema

Descrever o SistemaUtilizador

Envolvendo

3Rui Inácio / António Lima

Diagrama de Fluxo de Dados

Page 4: DFDs e DEA's

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

Page 5: DFDs e DEA's

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

Page 6: DFDs e DEA's

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

Page 7: DFDs e DEA's

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”

Page 8: DFDs e DEA's

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”

Page 9: DFDs e DEA's

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”

Page 10: DFDs e DEA's

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”

Page 11: DFDs e DEA's

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”

Page 12: DFDs e DEA's

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”

Page 13: DFDs e DEA's

bilhete de quarto

bilhete de voo

bilhete

junção

atribuir

bilhete

13Rui Inácio / António Lima

Exemplo – “Viagem”

Page 14: DFDs e DEA's

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”

Page 15: DFDs e DEA's

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”

Page 16: DFDs e DEA's

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

Page 17: DFDs e DEA's

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

Page 18: DFDs e DEA's

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

Page 19: DFDs e DEA's

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

Page 20: DFDs e DEA's

DEA Os relacionamentos podem ser unários, binários, ternários...

Professor Envolve Aluno

Curso Tem Prec.

Page 21: DFDs e DEA's

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

Page 22: DFDs e DEA's

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

Page 23: DFDs e DEA's

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

Page 24: DFDs e DEA's

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

Page 25: DFDs e DEA's

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

Page 26: DFDs e DEA's

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:

Page 27: DFDs e DEA's

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

Page 28: DFDs e DEA's

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:

Page 29: DFDs e DEA's

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:

Page 30: DFDs e DEA's

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

Page 31: DFDs e DEA's

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

Page 32: DFDs e DEA's

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

Page 33: DFDs e DEA's

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

Page 34: DFDs e DEA's

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

Page 35: DFDs e DEA's

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

Page 36: DFDs e DEA's

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

Page 37: DFDs e DEA's

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

Page 38: DFDs e DEA's

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)

Page 39: DFDs e DEA's

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

Page 40: DFDs e DEA's

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

Page 41: DFDs e DEA's

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

Page 42: DFDs e DEA's

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

Page 43: DFDs e DEA's

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*