UNIESP - 2010 Sistemas de Informação Análise e Projeto Estruturado de Sistemas- 2010/01 Prof. Carlos Alberto Seixas E-mail: [email protected] D.F.D. DIAGRAMA DE FLUXO DE DADOS (D.F.D) A técnica utilizada pela análise estruturada baseia-se nos diagramas de fluxos de dados. A grande vantagem da utilização dessa técnica é a de permitir a avaliação do modelo junto com os usuários, de forma a se identificar as falhas o mais cedo possível. Além do mais , esta técnica permite um comprometimento maior do usuário com o processo de desenvolvimento de sistemas. Duas técnicas principais são utilizadas, uma por GANE e SARSON, outra por De Marco e YOURDON e que nos conduzem pequenas diferenças na terminologia e simbologia das várias escolas de Análise Estruturada; ambas as técnicas são similares. Segundo GANE/830 propósito de um D.F.D é mostrar para um área de negócios ou um sistema ou parte dele, de onde os dados surgem, para onde vão, quando são armazenados, que processa os transformam e as interações entre armazenamento de dados e processos. O D.F.D O D.F.D utiliza-se de quatro símbolos gráficos, visando representar os seguintes componentes: Fluxo de Dados Processos Agentes Externos Armazenamento ou Depósito de Dados Após a elaboração do DFD, elabora-se: Dicionário de Dados O D.F.D Fluxo de Dados Fluxo de Dados Representa os dados que fluem entre os componentes de DFD e podem ser utilizados para transporte de dados entre agentes externos e processos, entre processos, armazenamento de dados e processos. Não existe a passagem de dados de armazenamento para agentes externos e viceversa. Forma de Representação É simbolizado por meio de uma seta, com a ponta indicando a direção do fluxo. [ CHRIS GANE / SARSON]. Já DeMarco, diz que os fluxos de dados é um tubo, através do qual fluem pacotes de informações. A maior parte dos fluxos de dados movimentaram-se entre processos, mas eles podem também fluir para dentro ou para fora de arquivos, indo para caixas-destino e vindo de caixas-fonte. É simbolizado por meio de vetores. Convenções de fluxos de dados Nomes em maiúscula e ligadas por hífen; Dois fluxos de dados diferentes não podem Ter o mesmo nome; Os nomes são escolhidos para representarem não apenas o dado que flui sobre o tubo, mas também o que sabemos sobre o dado; Evite nomes vagos como dados e informação; Dificuldade para achar um nome para fluxo de dados: pode ser indício de alguma coisa errada. Exemplo 29 Analisar Relatório de Vendas Vendas Referência do Fluxo de dados 29 - c Descrição do fluxo de dados: Relatório de Vendas c Gerência Um fluxo que parte de um depósito é normalmente interpretado como uma leitura ou um acesso feito às informações desse depósito. Pode significar que: Um pacote isolado de dados foi recuperado do depósito: por exemplo, um depósito chamado CLIENTES, de onde cada pacote contém informações de nome, endereço e telefone de clientes. Um fluxo típico que saísse desse depósito envolveria a recuperação de um pacote completo de informações sobre um cliente. Mais de um pacote foi recuperado do depósito: Por exemplo o fluxo poderia recuperar pacotes de informações sobre todos os clientes da cidade de São Paulo a partir do depósito CLIENTES. Apenas uma parte do pacote foi recuperada do depósito: apenas a parte do nº do telefone de um cliente foi recuperada do depósito CLIENTES. Parte de mais de um pacote foram recuperados do depósito: um fluxo pode recuperar do depósito CLIENTES o código postal de todos os clientes do estado de São Paulo. Importante Na maioria dos casos os fluxos são rotulados, entretanto não necessitamos rotular um fluxo se todo um grupo de um pacote entra ou sai do depósito. Um fluxo que parte de um depósito é normalmente interpretado como uma leitura ou um acesso feito às informações desse depósito. Agenda Tema para discussão: Ferramentas de monitoramento remoto Conceitos sobre DFD: processos Fluxos: Resolução do exercício 1 Processos: Exercício 2 D.F.D. Processos O D.F.D O D.F.D utiliza-se de quatro símbolos gráficos, visando representar os seguintes componentes: Fluxo de Dados Processos Agentes Externos Armazenamento O D.F.D Processos Os processos, invariavelmente, mostram algum trabalho executado sobre os dados; Um processo é uma transformação do(s) Fluxo(s) de Dados de entrada em Fluxo(s) de Dados de saída; O Processo pode ser representado em Círculo ou Retângulo Arredondado dividido em duas áreas: Processo O nome do processo deve dar idéia do que faz o processo, para que se tenha êxito em transmitir a imagem total com o DFD; Ao escolher nome de um processo deve-se evitar a utilização de nomes de pessoas, nomeie o processo de modo a identificar as funções que o sistema executa; Nomeie os processos em termos de suas entradas e saídas; Processos – Recomendações: Numere os processos; Um bom nome de processo geralmente é composto por uma frase constituída de um verbo e de um objeto. Por exemplo: Calcular Valor do Imposto, Validar Entrada, Receber Pedidos; Evite a utilização de nomes vagos como FAZER SERVIÇO, MANIPULAR ENTRADA e PROCESSAR DADOS. Muitas vezes isso significa que o Analista de Sistemas não está bem certo de qual função está sendo executada; Processos Existe uma tendência natural por parte dos usuários em utilizar as abreviações e siglas que lhes sejam familiares. Deve-se utilizar terminologias que sejam compreensíveis por um número maior de pessoas; Os termos ROTINA, SUBSISTEMA e FUNÇÃO geralmente não têm significados no mundo do usuário. Deve-se evitar “poços sem fundo”, ou seja, processos que têm entradas mas não tem saídas; Deve-se evitar “geração espontânea”, ou seja, processos que têm saídas mas não tem entradas. Agenda Conceitos sobre DFD: Entidades ou Agentes Externos Conceitos Exemplos Exercício D.F.D. Entidades Externas O D.F.D O D.F.D utiliza-se de quatro símbolos gráficos, visando representar os seguintes componentes: Fluxo de Dados Processos Entidades Externas ou Agentes Externos Armazenamento O D.F.D Agentes Externos ou Entidades São todas as organizações, sistemas ou pessoas que interagem com o sistema através do envio ou recebimento ou fluxo de dados. Normalmente as entidades externas têm intencionalmente seu nome escrito em maiúsculo, para diferenciá-las de possíveis depósitos de dados com o mesmo nome. Agentes Externos ou Entidades Uma entidade pode ser: Um objeto real, como um livro, uma máquina, um lugar, um avião, um quarto. Uma pessoa, como um empregado, um contribuinte, um aluno, um cidadão. Um conceito abstrato, como um curso, uma cor, uma empresa. Agentes Externos ou Entidades Quando o sistema enfocado recebe dados de um outro sistema ou fornecidos a ele, aquele sistema é considerado entidade externa. O termo sistema empregado aqui, refere-se a um conjunto de procedimentos, automatizados e manuais utilizados para efetuar um fim desejado. Agentes Externos ou Entidades Convenções: Referência: Letra maiúscula, “E”, seguida de um número sequenciador (opcional). Nome da entidade: substantivo singular. Pode ser um orgão, uma pessoa ou um sistema. Indicador de repetição: indica que a entidade está representada mais de uma vez no mesmo diagrama. Entidade Externa ou Terminador A Entidade Externa ou Terminador é uma pessoa, um objeto ou uma empresa, que fica fora do contexto do sistema, que é o originador ou o receptor de dados do sistema; Representação: Considerações importantes Entidades são externas ao sistema que estamos modelando. Os fluxos de dados, que interligam as entidades dos diversos processos, representam a interface entre o sistema e o mundo externo; O analista e/ou projetista não pode modificar o conteúdo de uma Entidade; Considerações importantes Qualquer relacionamento existente entre Entidades não será mostrado no DFD; Se existirem relacionamentos entre Entidades Externas, e for essencial que o Analista de Sistemas os modele para documentar de forma correta os requisitos do sistema, então, por definição, as Entidades Externas são realmente parte do sistema e devem ser modeladas como processos; Exemplos: Exemplos: Recomendações O sentido do desenho é sempre de cima para baixo, da esquerda para a direita. As entidades externas, tanto quanto possível, devem aparecer nas bordas do desenho. Jamais um fluxo de dados parte de um depósito e vai para outro depósito sem a intermediação de um processo. Um fluxo de dados nunca parte de uma entidade externa diretamente para o depósito; sempre há um processo intermediando. Recomendações Também não é possível um fluxo partir de uma entidade externa diretamente para outra entidade externa. Igualmente, um fluxo jamais parte de um depósito diretamente para uma entidade, sempre há a intermediação de um processo. Agenda Conceitos sobre DFD: Propriedades do DFD Depósito de Dados Conceitos Exemplos Exercícios Propriedades do Diagrama de Fluxo de Dados 1. Uma Entidade Externa não pode estar ligada diretamente a outra Entidade Externa. Propriedades do Diagrama de Fluxo de Dados 2. Um Depósito de Dados não pode estar ligado diretamente a uma Entidade Externa. Propriedades do Diagrama de Fluxo de Dados 3. Um Depósito de Dados não pode estar ligado diretamente a outro Depósito de Dados. Propriedades do Diagrama de Fluxo de Dados 4. Um processo deve possuir sempre um verbo no infinitivo, representando uma ação. Ex.: Emitir Consultar Atualizar... Propriedades do Diagrama de Fluxo de Dados 5. Quando houver necessidade de cruzar setas, deve haver uma “salto” no cruzamento. Propriedades do Diagrama de Fluxo de Dados 6. Um DFD não deve possuir mais que 7 processos para não dificultar seu entendimento. Se forem necessários mais processos, talvez seja melhor dividir o DFD em duas ou mais sub-partes. Propriedades do Diagrama de Fluxo de Dados 7. É possível repetir uma mesma Entidade Externa no início e no final do DFD, porém ela deve apresentar um corte na sua parte inferior direita, representando a repetição. Cliente Cliente Propriedades do Diagrama de Fluxo de Dados 8. Todo DFD vai possuir, no mínimo, uma entidade e um processo. Cliente Normas para Elaboração de um DFD Definir as Entidades Externas. Especificar as entradas e saídas do sistema. Especificar prováveis saídas (consultas/relatórios) que o sistema venha a ter necessidade. Elaborar o Diagrama de Contexto (Nível 0). Normas para Elaboração de um DFD Elaborar o diagrama de Nível 1, começando do canto superior esquerdo, da esquerda para direita, a partir da Entidade Externa que possuir a principal entrada para o sistema, desenhando os fluxos de dados que surgem, os processos logicamente necessários e os Depósitos de Dados que lhe pareçam necessários. Não ligar Entidade Externa diretamente com Entidade Externa nem Depósito de Dados a Depósito de Dados sem que possuam um processo entre eles. Normas para Elaboração de um DFD Aceitar o fato de que será necessário a elaboração de mais de um esboço até a elaboração final do DFD. Verificar se todas as Entidades Externas e fluxos de entradas e saídas previstas encontram-se representadas. Elaborar as expansões necessárias até chegar ao nível adequado. D.F.D. Depósito de Dados O D.F.D O D.F.D utiliza-se de quatro símbolos gráficos, visando representar os seguintes componentes: Fluxo de Dados Processos Entidades Externas ou Agentes Externos Armazenamento ou Depósito de Dados O D.F.D Depósito de Dados O Depósito é utilizado para se modelar uma coleção de pacotes de dados em repouso. É comum referir-se aos Depósitos somente como arquivos ou banco de dados mas pode também conter dados armazenados em cartões perfurados, microfilmes, microfichas, discos óticos e várias outras modalidades eletrônicas. Convenções Convencionamos a identificação de um depósito de dados pela colocação de uma letra “D” maiúscula seguida de um número, na esquerda do desenho, separada da descrição por uma linha vertical. D1 Dados de Clientes Função do depósito de dados O Depósito existe como uma área necessária de armazenamento de espera entre dois processos que ocorrem em momentos diferentes. Exemplo: Detalhes de pedidos consulta pedido pedido Introduzir pedidos Responder consultas D1 confirmação Pedidos resposta Exemplos: Exemplos: c Agenda Conceitos sobre DFD: Níveis de DFD Dicionário de Dados Conceitos Exemplos Exercícios Níveis de DFD O DFD deve ser modelado em uma série de níveis de modo que a cada nível ofereça sucessivamente mais detalhes sobre uma parte do nível que lhe seja superior. Níveis de DFD O DFD de nível mais alto consiste de uma única bolha, representando o sistema inteiro. Os fluxos de dados mostram as interfaces entre o sistema e as entidades externas. Esse DFD especial é conhecido como Diagrama de Contexto. Exemplo: Níveis de DFD O DFD imediatamente abaixo do diagrama de contexto é conhecido como Nível 0. Ele representa a visão de mais alto nível das principais funções do sistema bem como as principais interfaces entre essas funções. Cada uma dessas bolhas deve ser numerada para mais fácil identificação. Os números também servem como um meio prático de se relacionar uma bolha com o DFD de nível imediatamente inferior que descreve essa bolha de modo mais completo. Quando se desenha o primeiro DFD: Verificar se todos os processos têm o mesmo nível de detalhe, isto é, se algum dos processos representados não é mais do que uma sub-atividade de um processo; Se dois ou mais processos mostram mais detalhe que outros processos também representados, podendo aqueles serem considerados um único processo com um objetivo mais geral. Levelling Depois, cada processo de DFD de nível 1 pode ser decomposto sucessivamente em outros DFDs onde já se mostram mais detalhes da lógica de procedimento. Nestes DFDs já são considerados tratamentos de erros e exceções e aparecem também alguns arquivos e fluxos de dados de uso localizado. Esta técnica de subdividir DFDs de nível superior em DFDs que representam sucessivamente o sistema com maisdetalhe é conhecida por “levelling” Como fazer? Não há uma regra geral que diga quando se deve acabar com esta subdivisão; Alguns autores defendem que é quando os processos estão sob a forma de primitiva funcional, outros que não se devem ultrapassar sete níveis de detalhe. No entanto, todos os autores dizem que quando se decompõe um processo num outro DFD de detalhe deve haver conservação de fluxos, isto é, os fluxos que entram e saem do processo do DFD de nível superior, têm também que entrar e sair no DFD que representa a decomposição desse processo; esta propriedade é denominada por “balancing”. Exemplo de representação Dicionário de Dados Dicionário de Dados O dicionário de dados é uma coleção de dados a respeito de dados. A idéia básica é fornecer informações sobre a definição, a estrutura e a utilização de cada elemento de dados que o sistema utiliza. Elemento de dado é a unidade de dados que não pode ser decomposta. Função - DD Permite descrever: Fluxo de Dados; Depósitos de Dados; Dados Elementares Dicionário de Dados Cada item do DD é composto de: Significado; Conteúdo; Valores permitidos; Chave primária no caso de deposito de dados; Dicionário de Dados Ao se falar dados, temos concepções hierárquica existentes: em dicionário de que lembrar duas de organização de dados hoje Organização Hierárquica Tradicional Organização Hierárquica Emergente; Organização Hierárquica Tradicional Geralmente é utilizada por linguagens de 3ª geração e possui a estrutura que segue: Organização Hierárquica Emergente Estrutura conceitual mais recente, com advento das linguagens de 4ª geração, bancos de dados e orientação a objeto. Dicionário de Dados Por que utilizar um dicionário de dados? A razão mais óbvia é a documentação. Contudo, esta é uma visão simplista de sua necessidade. Em uma organização, diferentes pessoas ou grupos, poderão definir um elemento de dados específico de modo bastante diferente. Dicionário de Dados “Em uma escola, um Analista de Sistemas, conversou com três pessoas: a secretária, a tesoureira e o professor”. Na conversa individual com cada um, todos citaram um elemento de dados chamado “tipo de aluno”, contudo, para cada um deles este dado tinha conteúdo diferente: Secretária – Boa nota, má nota. Tesoureira – Bom ou mal pagador. Professor – Muito esforçado, pouco esforçado. Dicionário de Dados O inverso também acontece, nomes diferentes para referenciar o mesmo conteúdo. Por exemplo: registro do empregado, código do funcionário ou nº de identificação funcional podem ser exatamente a mesma coisa. Dicionário de Dados Perceba, portanto, as implicações amplas de um dicionário de dados no desenvolvimento de sistemas. Se todos os desenvolvedores envolvidos em um sistema, tiverem que utilizar descrições de dados a partir de um dicionário comum, vários problemas potencialmente graves poderão ser evitados. Dicionário de Dados Para qualquer dado procure sempre definir : - um nome de identificação - tipo de conteúdo (numérico, alfanumérico, inteiro, data) - tamanho máximo - formatação Notação Exemplo 1: Elemento de dados composto: Num_telefone: ( DDI + DDD ) + ( numero do telefone ) DDI = {digito} DDD = {dígito} Numero do telefone = {dígito} Dígito = [0|1|2|3|4|5|6|7|9] Exemplo 2: Elemento de dados elementares: Sexo= * Valores [M|F]* Peso=*Peso do funcionário na admissão* *Unidades: Kg Intervalo: 1 -150 * Exercício Indicar o fluxos existentes no DFD o processo de compras de em um supermercado. Considerar apenas as etapas de passagem do produto pelo caixa, pagamento e empacotamento das mercadorias. Processos: passar produtos no balcão, registrar produtos, pagamento, empacotamento, colocar produtos no carrinho Entidades: cliente, caixa, empacotador Depósitos: carrinho, pacote, caixa registradora. Resolução do Exercício 1 Indicar o fluxos existentes no DFD o processo de compras de em um supermercado. Considerar apenas as etapas de passagem do produto pelo caixa, pagamento e empacotamento das mercadorias. Processos: passar produtos no balcão, registrar produtos, pagamento, empacotamento, colocar produtos no carrinho Entidades: cliente, caixa, empacotador Depósitos: carrinho, pacote, caixa registradora. Exercício 2 Representar os processos e fluxos existentes no DFD do exercicio 1. Considerar apenas as etapas de passagem do produto pelo caixa, pagamento e empacotamento das mercadorias. Processos: passar produtos no balcão, registrar produtos, pagamento, empacotamento, colocar produtos no carrinho Entidades: cliente, caixa, empacotador Depósitos: carrinho, pacote, caixa registradora. Resolução exercício 1 e 2 Processos: passar produtos no balcão, registrar produtos, pagamento, empacotamento, colocar produtos no carrinho Entidades: cliente, caixa, empacotador Depósitos: carrinho, pacote, caixa registradora. Empacotador Embalagens Cliente Lista De produtos Produtos empacotados passar produtos no balcão Empacotamento Produtos selecionados registrar produtos Produtos registrados colocar produtos no carrinho Produtos pagos Registros de pagamento pagamento caixa Exercício Desenvolver um D.F.D. para o enunciado abaixo: “O caixa do banco recebe cheque para descontar. Ele verifica na ficha do cliente se há saldo disponível, em caso afirmativo, dá o dinheiro; caso contrário devolve o cheque”. Exercícios Desenvolver os D.F.Ds nos cenários propostos nos exercícios 1 a 3 da lista do 2º bimestre. Para elaboração dos diagramas utilize o sistema Dia. BIBLIOGRAFIA DEMARCO, Tom – “Análise Estruturada e Especificação De Sistema” – Editora Campus; GANE, Chris, SARSON, Trish: Análise Estruturada de Sistemas – Livros Técnicos e Científicos Editora Ltda.