Prof. Thales Castro
Processo
Entidade
externa
Fluxo de dados
Depósito de dados
Pedido de Inscrição
Empresa
CNPJ (CGC)
Sistema de
Cadastramento
de Empresas
Relação de
Empresas
Restrições
Ministério da
Fazenda
3
Dados da Empresa no Ministério
Dados para
CNPJ
CNPJ (CGC)
P3
Emitir CNPJ
Dados de
Empresas
Pedido de Inscrição
Empresa
Cadastro de
Empresas
Empresas
Dados da Nova
Empresa
Resposta de Pedido
P1
Verificar pedido
de inscrição
Pedido Aceito
Ministério da
Fazenda
Relação de
Empresas
P5
Atualizar
Tabela de
Restrições
Restrições em
Vigor
P4
Selecionar
Empresas
Novas
Restrições
Tabela de
Restrições
P2
Cadastrar
Empresas
Restrições
Cadastro de
Empresas
ESPECIFICAÇÃO DE
PROCESSOS
Dados de Empresa
Pedido completo
P1.2
Verificar
Existência de
Razão social
Pedido Inválido
Pedido de Inscrição
Empresa
P1.1
P1.1
Verificar
Verificar
preenchimento
preenchimento
Pedido
Recusado
P1.4
Gerar Ordem
de Devolução
Pedido Válido
Pedido Aceito
Pedido
Indevido
Pedido
incompleto
Pedidos
Rejeitados
P2
Cadastrar
Empresas
Pedidos
Recusados
P1.3
Verificar
Restrições
em vigor
Restrições em
vigor
Tabela de
Restrições
É necessário descrever a composição de dados
de alguma forma
◦ Forma narrativa longa e sujeita a erros
◦ Necessário utilização de uma notação compacta e concisa
Definição
◦ "O DICIONÁRIO DE DADOS é uma listagem organizada de
dados pertinentes ao sistema,com definições precisas e
rigorosas para que o usuário e o analista de sistemas
possam conhecer as entradas, saúdas,componentes de
depósitos e cálculos intermediários"
(YOURDON, Edward)
6
Definição dos elementos da seguinte maneira:
◦ Significado: significado dos fluxos e depósitos mostrados
nos DFD's
◦ Composição de pacotes agregados: pacotes que se
movimentam pelos fluxos. Ex.: ENDEREÇO, dividido em
Cidade, Estado, etc.
◦ Valores e Unidades relevantes de partes elementares de
informações de fluxos e depósitos
◦ Detalhes de relacionamento entre os depósitos (DER)
7
O dicionário de dados é realizado sempre:
◦ Nos fluxos de dados; e
◦ Nos depósitos de dados
8
Cadastro de
Empresas
Item(s) de dados
Dados de Empresa
Pedido completo
P1.2
Verificar
Existência de
Razão social
Pedido Inválido
Pedido de Inscrição
Empresa
P1.1
Verificar
preenchimento
Pedido
Recusado
P1.4
Gerar Ordem
de Devolução
Pedido Válido
Pedido Aceito
Pedido
Indevido
Pedido
incompleto
Pedidos
Rejeitados
P2
Cadastrar
Empresas
Pedidos
Recusados
Coleção de itens de
dados individuais
P1.3
Verificar
Restrições
em vigor
Restrições em
vigor
Tabela de
Restrições
Notação:
EXISTEM OUTRAS ALTERNATIVAS, MAS
ESTA É A MAIS COMUM!!!
Símbolo
Definição
=
É composto de
*
Delimitador de comentário
+
E (concatenação)
()
Opcional
{}
Iteração
[]
Escolha de uma alternativa
|
Separa opções alternativas na construção [ ]
@
Identificador (chave) de um depósito
10
Exemplo: elemento de dado para um NOME
nome = primeiro_nome + nome-do-meio + ultimo_nome
Elemento de dado
Composição(ões) do elemento. Podem ser
enumerações ou outros elementos de dados
11
Notação:
Símbolo
Definição
=
É composto de
*
Delimitador de comentário
+
E (concatenação)
()
Opcional
{}
Iteração
[]
Escolha de uma alternativa
|
Separa opções alternativas na construção [ ]
@
Identificador (chave) de um depósito
12
Um elemento de dados SEMPRE tem que ser
detalhado
Isto é feito pelo conceito, no DD, de DEFINIÇÃO
◦ Primeira parte é o elemento de dado, seguido pelo
símbolo "=";
◦ Segunda parte é o significado do elemento de dados no
contexto da aplicação, usando a notação "**"
◦ Terceira parte é a composição do elemento de dados, se
composto por dados elementares significativos
◦ E os valores que o elemento poderá assumir
13
Exemplo de definição:
peso = *peso do paciente ao chegar ao hospital*
elemento
* unidade: quilogramas; intervalo: 1-200*
de dado
altura = *altura do paciente ao chegar ao hospital*
* unidade: centímetros; intervalo: 20-250*
significado
composição
valores
14
DADOS ELEMENTARES
◦ Como o próprio nome diz, são aqueles indispensáveis no
contexto da aplicação
◦ Ex.: peso da pessoa é um dado dispensável no contexto
de uma aplicação de fábrica de automóveis, mas
indispensável, por exemplo, em um âmbito hospitalar
Quando identificados, devem ser sempre
introduzidos no dicionário de dados
Deve ter seu significado descrito
◦ Exceções: termos auto-explicativos. Ex.: sexo, data_nasc.
15
Exemplos de DADOS ELEMENTARES
data_nasc = **
* unidade: dias desde 1, jan, 1900; intervalo:
0-36500*
altura_atual = **
* unidade: centímetros; intervalo: 20-250*
sexo = *valores: M|F*
16
O que está presente em qualquer sistema é uma
iteração entre os dados, ou seja, elementos de
dados dados são associados a outros elementos
de dados
Relacionamentos
◦ Elementos de dados interligados a outros elementos de
dados
◦ Ex.: um carro sempre tem motor e carroceria
Notação
◦ definicao-do-item = item-relacionado1 + item-relacionado2
+ ... item-relacionadoN]
17
EXEMPLO
pedido = nome-do-cliente + endereco_remessa
nome-do-cliente = primeiro-nome + nome-do-meio +
ultimo-nome
item = nome_do_item + valor
18
Notação:
Símbolo
Definição
=
É composto de
*
Delimitador de comentário
+
E (concatenação)
()
Opcional
{}
Iteração
[]
Escolha de uma alternativa
|
Separa opções alternativas na construção [ ]
@
Identificador (chave) de um depósito
19
DADOS OPCIONAIS
◦ Como o próprio nome diz, são aqueles que podem ou não
estar presentes em um elemento de dados
◦ Ex.:
nome do meio pode ou não estar incluido no nome da pessoa
endereço pode ou não ter ponto de referência
pedido pode ter endereço de cobrança e endereço de remessa
Essas situações devem cuidadosamente ser
verificadas com o usuário e documentadas no
dicionário de dados
20
EXEMPLO
pedido = nome-do-cliente + endereco_cliente
nome-do-cliente = primeiro-nome + (nome-do-meio)
+
ultimo-nome
item = nome_do_item + valor
Item opcional. Pode
ou não estar contido
no elemento de dado
21
CUIDADOS
endereco_cliente = (endereco_cobranca) +
(endereco_remessa)
Este dado pode ser constituído por
◦
◦
◦
◦
apenas endereço de remessa
apenas endereço de cobrança
endereço de remessa + endereço de cobrança
Nem endereço de remessa nem endereço de cobrança
endereco_cliente = [(endereco_cobranca) + (endereco_remessa)
| (endereco_cobranca) | (endereco_remessa)]
22
Notação:
Símbolo
Definição
=
É composto de
*
Delimitador de comentário
+
E (concatenação)
()
Opcional
{}
Iteração
[]
Escolha de uma alternativa
|
Separa opções alternativas na construção [ ]
@
Identificador (chave) de um depósito
23
Por vezes, é necessário que um determinado item
de dado tenha mais de uma ocorrência
(relacionamento)
ITERAÇÃO
◦ Usada para indicar a ocorrência repetida de um
componente de um elemento de dados
◦ Lida como "zero ou mais ocorrências de"
24
EXEMPLO
pedido = nome-do-cliente + endereco_remessa +
{item}
item = nome_do_item + valor
Este pedido, segundo essa notação, é constituído
por:
◦ nome do cliente
◦ endereço de remessa
◦ zero ou mais itens
cada item contém o nome e o valor
25
No exemplo anterior, não faz sentido, por
exemplo, um pedido com 0 itens
Em muitas vezes, no mundo real, o usuário deseja
especificar:
◦ quantidade mínima de ocorrências
◦ quantidade máxima de ocorrências
A indicação dos limites se dá da seguinte forma:
◦ definicao-do-item = (quantidade minima) item de
relacionamento (quantidade maxima)
26
EXEMPLOS
pedido = nome-do-cliente + endereco_remessa + 1{item} 10
pedido = nome-do-cliente + endereco_remessa + {item} 10
pedido = nome-do-cliente + endereco_remessa + 1{item}
No primeiro exemplo, mínimo de 1 e máximo de 10 itens
No segundo exemplo, mínimo de 0 e máximo de 10 itens
No terceiro exemplo, mínimo de 1 itens
27
Notação:
Símbolo
Definição
=
É composto de
*
Delimitador de comentário
+
E (concatenação)
()
Opcional
{}
Iteração
[]
Escolha de uma alternativa
|
Separa opções alternativas na construção [ ]
@
Identificador (chave) de um depósito
28
Também por vezes é necessário definir um conjunto de
valores para um atributo
SELEÇÃO
◦ Escolha de um elemento dos dados como alternativa
◦ Opções delimitadas por colchetes ( [ ] )
◦ Separadas por barra vertical ( | )
Notação
definicao-do-item = [ valor1 | valor 2 | ... | valor N ]
29
Exemplos de SELEÇÃO
sexo = [Masculino | Feminino]
tipo-de-pessoa = [Física | Jurídica]
30
Em algumas situações, é interessante definir
sinônimos (alias) para um elemento de dados
Incluido no dicionário de dados por questões de
completude:
◦ Grupo diversificado de usuários
◦ Departamentos diferentes
◦ Localizações geograficamente dispersas
Deve ter uma referência cruzada para o nome
principal
31
Exemplos de SELEÇÃO
sexo = [Masculino | Feminino]
tipo-de-pessoa = [Física | Jurídica]
32
Notação:
Símbolo
Definição
=
É composto de
*
Delimitador de comentário
+
E (concatenação)
()
Opcional
{}
Iteração
[]
Escolha de uma alternativa
|
Separa opções alternativas na construção [ ]
@
Identificador (chave) de um depósito
33
Sempre um elemento de dado tem uma
identificação
A essa identificação existe o conceito de chave
Indica que o elemento é único dentro daquela
conjunto ou depósito de dados
Notação
definicao-do-item = @nome-do-atributo
34
Exemplos de IDENTIFICAÇÃO
pedido = @identificacao_pedido + item-pedido
cliente = @identificacao_cliente + nome
35
Exemplo: DEFINIÇÃO COMPLETA DE UM ELEMENTO
DE DADO
pessoa = *nome completo do elemento pessoa*
@identificacao_pessoa + titulo_cortesia +
primeiro_nome + (nome intermediario) + ultimo_nome
identificacao_pessoa = {0..9}
titulo_cortesia = [Sr. | Sra. | Srs. . | Sras. | Srta. | Dr.]
primeiro_nome = {caracter-valido}
nome-intermediario = {caracter-valido}
ultimo_nome = {caracter-valido}
caracter-valido = {A-Z | a-z | 0-9 | .}
36
ATIVIDADE
◦ Dentro do nosso estudo de caso, temos a identificação de
alguns elementos de dados.
◦ Identifique os elementos de dados
37
Cadastro de
Empresas
Dados de Empresa
Pedido completo
P1.2
Verificar
Existência de
Razão social
Pedido Inválido
Pedido de Inscrição
Empresa
P1.1
Verificar
preenchimento
Pedido
Recusado
P1.4
Gerar Ordem
de Devolução
Pedido Válido
Pedido Aceito
Pedido
Indevido
Pedido
incompleto
Pedidos
Rejeitados
P2
Cadastrar
Empresas
Pedidos
Recusados
P1.3
Verificar
Restrições
em vigor
Restrições em
vigor
Tabela de
Restrições
PEDIDO DE INSCRIÇÃO
◦ Deve conter os atributos
Nome da Razão Social
Endereço, incluindo logradouro, numero, cidade, estado e
ponto de referencia
Socios, contendo CPF, nome, endereco e telefone de contato.
Deve existir pelo menos 1 sócio
Telefone comercial
39
PEDIDO DE INSCRIÇÃO
pedido_inscricao = razao_social + endereco +
{1}socios + telefone
razao_social = {caracter-valido}
endereco = logradouro + numero + cidade + estado
+ ponto_referencia
numero = {caracter-valido}
cidade = {caracter-valido}
estado = {caracter-valido}
ponto_referencia = {caracter-valido}
CONTINUA...
40
PEDIDO DE INSCRIÇÃO
socios = cpf + nome + endereco + telefone
cpf = {0-9 | . | / }
caracter-valido = {A-Z | a-z | 0-9 | .}
41
PEDIDOS RECUSADOS
◦ Deve conter, além da identificação:
Razão pela recusa do pedido
Data em que o pedido foi recusado
Nome do Responsável pela recusa
42
Prof. Thales Castro