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