Académique Documents
Professionnel Documents
Culture Documents
Anlise estruturada
Objetivos de aprendizagem
Reconhecer objetivos e caractersticas inerentes ao uso da modelagem estruturada. Fazer uso de conceitos e diagramas da modelagem estruturada. Compreender e reconhecer uma estrutura que se utilize da modelagem estruturada. Empreender o uso da modelagem estruturada.
Sees de estudo
Seo 1 Seo 2 Seo 3 Seo 4 Anlise estruturada Diagrama de Fluxo de Dados (DFD) Dicionrio de dados Modelagem de dados
Yourdon (1992) discorre sobre as caractersticas da anlise estruturada: Nesta tcnica, preciso ter em mente que todo o desenvolvimento do sistema voltado para as funes que o sistema deve realizar. O que so essas funes? Imagine o sistema de uma videolocadora. Nele voc tem cadastro de clientes, cadastro de DVDs, relatrio de clientes da locadora, entre outras funes que o sistema deve executar. As funes utilizam e produzem informaes para o ambiente (na funo cadastro do DVD, o atendente faz a entrada de dados, digitando informaes sobre o DVD, como nome do filme, dos atores, do tipo de filme etc.). Essas informaes so repassadas s entidades externas (que pode ser o cliente ou o atendente da locadora) por meio de fluxos de dados ou armazenadas em depsitos de dados (so os depsitos que vo armazenar em seu HD as informaes do cliente, dos DVDs etc.). Retome o exerccio da Clnica Bem-Estar, apresentado na unidade anterior.
Unidade 3
69
A clnica 24 horas. Cada mdico possui uma agenda preta onde so marcadas as consultas. Na marcao da consulta colocado o nome do paciente, horrio e convnio. Trabalham h 3 anos na clnica com planilhas Excel. A clnica possui 2 atendentes que so responsveis por preencher o cadastro inicial do paciente, que contm nome, endereo, telefone, data de nascimento, convnio. O mdico, ao atender o paciente, preenche sua ficha manualmente, informando peso, altura, idade, motivo da consulta, queixa principal, doenas anteriores, diagnstico, prescrio. A prescrio pode ser a solicitao de exames ou medicamentos com posologia. A clnica possui de 700 a 800 fichas, sendo que cerca de 600 so de atendimento por convnio. O gerente da clnica est ansioso, pois no consegue controlar questes relacionadas ao nmero de pacientes atendidos por convnio e particular, mdicos mais procurados e picos de movimento. Volume de atendimentos: 56 por dia. Outra questo de interesse manter um controle de laboratrios conveniados, pois o mdico poderia indicar o laboratrio j no momento da prescrio.
Cadastro de mdicos que possibilite inserir, alterar e excluir os dados dos mdicos da clnica. Cadastro de pacientes que permita inserir, alterar e excluir os dados dos pacientes da clnica. Agenda mdica onde deve ser possvel o agendamento, consulta e excluso do agendamento de consulta de um paciente, com um determinado mdico, em um determinado horrio. Ficha mdica que permita o lanamento e consulta de dados sobre a consulta do paciente.
70
Emisso de relatrio estatstico sobre o atendimento de convnios. Emisso de relatrio estatstico sobre o atendimento por mdicos. Emisso de relatrio estatstico sobre o nmero de atendimentos durante o ano. Cadastro de laboratrios conveniados clnica.
O sistema deve operar de forma confivel no lanamento de todos os dados de pacientes e consultas e sua gravao. O sistema deve proteger o acesso s informaes histricas da ficha do paciente, sendo que seu acesso deve ser exclusivo para a equipe mdica O sistema deve ser desenvolvido sobre uma plataforma open source permitindo portabilidade. O sistema deve seguir requisitos de usabilidade para as interfaces, sendo de fcil aprendizado, pois a rotatividade das atendentes grande.
A partir da lista de requisitos, voc pode iniciar o processo de modelagem. Para tanto, necessrio entender alguns conceitos bsicos. A notao da anlise estruturada composta pelos seguintes elementos:
Diagrama de Fluxo de Dados (DFD); dicionrio de dados; especificao dos processos; modelagem de dados (ER).
Unidade 3
71
Para realizar um DFD, so necessrios alguns smbolos que o compem. Conhea cada um:
A bolha ou crculo que representa o processo. O processo um executor de tarefas funes, atividades. Representa tarefas de processamento do sistema. Quando voc colocar nome em um processo, procure utilizar um nome que descreva o que o processo faz. Um exemplo de processo pode ser: Cadastrar Paciente, Cadastrar Mdico, Agendar Consulta. O retngulo representa entidades externas (EE), que representa origens e destinos dos dados que percorrem o sistema. Quando voc pensar em entidade externa, pense que so criadores e/ou consumidores de dados/ informao. Uma EE pode ser uma pessoa, organizao ou outros sistemas que interagem com o sistema para envio e/ou recebimento de informaes. Pode representar a interface entre o sistema e o mundo externo. A EE pode ser ento, no caso da Clnica Mdica, o Paciente, o Atendente, o Mdico. Se na clnica houver um laboratrio que de alguma maneira receba dados da clnica por meio do sistema, ento, neste caso, o Laboratrio pode ser considerado uma EE. A caixa aberta, ou linha dupla preenchida com um rtulo, representa o depsito de dados. Na verdade, so os locais onde ocorre o armazenamento de dados, um repositrio de dados (temporrios ou permanentes). Todas as informaes do paciente como nome, endereo, telefone sero armazenados em seu HD em um depsito de dados. Neste exemplo, um nome adequado para o depsito seria Paciente.
Processo
Entidades externas
Depsito de dados
72
O fluxo de dados expresso por setas rotuladas que interligam os processos e que permitem indicar o caminho seguido pelos dados. O fluxo de dados realiza a comunicao entre os processos, os depsitos e as entidades externas. O fluxo de dados no significa sequncia de um mdulo de programa para outro. Mas a seta indica o caminho pelo qual uma ou mais estruturas de dados devero passar. Quando estamos realizando o processo Cadastrar Paciente, deve existir um fluxo de dados, em que so repassadas do paciente ao processo Cadastrar Paciente as suas informaes cadastrais (nome, endereo etc.).
Fluxo de dados
Quadro 3.1 Smbolos que compem o DFD Fonte: Elaborao da autora (2008).
Figura 3.1 DFD (processo Cadastrar Paciente) Fonte: Elaborao da autora (2008).
So possveis perguntas que voc pode realizar: Por que Cadastrar Paciente (crculo) est representado como um processo? Resposta: Ele um processo porque representa uma execuo, uma funo que deve ser executada no sistema para que o usurio alcance seu objetivo, que fazer o cadastro do paciente para a clnica. Quem so as entidades externas (retngulo) para esse processo?
Unidade 3
73
Resposta: So todos os consumidores e criadores das informaes que esse processo vai gerar. Observe que, para cadastrar um paciente, necessrio que o paciente informe seus dados. Alm dele, temos a atendente que vai inserir os dados do paciente no sistema. Assim, esse processo tem no mnimo duas entidades externas: Paciente e Atendente. Por que Dados Paciente um depsito de dados no diagrama? Resposta: Todas as informaes do paciente devem ser armazenadas no sistema (se no fosse assim, o paciente teria de informar seus dados a cada consulta na clnica). Para representar a armazenagem dos dados, a notao usada o depsito de dados. Portanto, nesse processo (figura 3.1) os dados do paciente representam um depsito de dados em que as informaes do paciente sero guardadas pelo sistema na clnica. Seria assim: a entidade externa informa seus dados para o processo Cadastrar Paciente (nome, endereo e telefone), a Atendente (entidade externa), por sua vez, informa os dados ao processo Cadastrar Paciente (por meio do fluxo de dados). Aps alimentarem o processo, essas informaes so transformadas e os dados do paciente so armazenados no depsito de Dados Paciente. Observe que na figura 3.1 h um nmero 1 no processo Cadastrar Paciente e um nmero 1 no depsito de Dados Paciente. Esses nmeros so utilizados apenas para organizar o DFD para facilitar sua leitura. Na verdade, so sequenciais e sua utilizao opcional. Na documentao, voc pode se referir ao processo por seu nmero no sendo necessrio escrever todo o nome do processo. Quando se elabora um DFD, faz-se necessria a observao de algumas diretrizes.
74
Lembre-se de que, quando usamos fluxos de dados, estamos representando o deslocamento de informaes. Isso pode acontecer somente entre: um processo e uma entidade externa; dois processos; um processo e um depsito de dados.
Quando voc nomear o processo, procure utilizar verbos no infinitivo. As entidades externas, os fluxos de dados e os depsitos devem ser identificados por substantivos. Existe um fator muito importante em um DFD: ele no um fluxograma, portanto ele jamais deve representar a sequncia em que os processos so ativados. O DFD que apresentado na figura 3.2 bastante genrico e pode deixar margens a dvidas. Quando isso acontece, possvel explodir o DFD em nveis de profundidade diferentes. A deciso do nmero de nveis necessrios depende da complexidade do projeto: quanto maior o nmero de nveis, melhor a descrio do comportamento do sistema.
Mas como ocorre essa exploso em nveis?
Os nveis podem ser descritos como: a) Nvel 0 (Topo) tambm chamado de Diagrama de Contexto. formado por um nico processo que representa o sistema inteiro.
Unidade 3
75
b) Nvel n (Folhas): neste caso, os processos so primitivos, sua descrio fica em um nvel alto, pois as funes so simples, com poucas E/S. Nvel 1 a n-1 (Intermedirios): neste caso, os processos so decompostos em nveis. O n+i a decomposio/particionamento de processos, fluxos e depsitos do nvel i. Em outras palavras: voc pode decompor o DFD de forma granular, chegando a um detalhamento minucioso. Veja o exemplo do DFD Agendar Consulta. Ele pode ser apresentado em um nvel apenas:
76
Mas, se voc quiser detalhar esses processos, o DFD oferece mais informaes para o desenvolvedor:
A figura 3.4 um exemplo da exploso do DFD Agendar Consulta. Agora j possvel perceber que existem pelo menos quatro subprocessos envolvidos no agendamento da consulta:
solicitar agendamento (disparado pela entidade externa EE paciente). verificar cadastro paciente (onde ser verificada a existncia ou no de cadastro do paciente na clnica mdica).
Unidade 3
77
verificar agenda (nela ser verificado o horrio solicitado, o mdico e suas disponibilidades para a consulta). realizar agendamento (processo que efetiva a marcao da consulta, armazenando a informao no depsito de dados).
A figura 3.5 apresenta um DFD que representa os processos a serem realizados para o controle e faturamento de um sistema de pedidos. Observe que nesse caso temos trs processos envolvidos para a realizao do pedido: dois depsitos de dados (Faturas e Pedidos) e apenas uma entidade externa (Clientes). A comunicao entre processos evolui pela passagem de dados por meio dos fluxos de dados.
78
Observe a seguinte situao: voc recebe a misso de desenvolver a modelagem estruturada de um sistema o qual se pretende o desenvolvimento de um controle de pedidos para uma floricultura atacadista. A empresa em questo faz a revenda de flores e folhagens para floriculturas da cidade no tendo venda a varejo. Os requisitos funcionais da floricultura so:
manter o cadastro de seus produtos venda (a venda exclusivamente de flores e folhagens); manter o cadastro de seus clientes; manter o seu controle de pedidos; e controlar o pagamento de pedidos realizado por seus clientes.
79
Unidade 3
Atendente
Figura 3.6 DFD Nvel 0 Sistema Floricultura Fonte: Elaborao da autora (2008).
Gerente Atendente
Dados Produto Dados Pedido
Cliente
Gerenciar Cadastros
Dados Cliente
Gerenciar Pedidos
Dados Pedido Dados Produto
Dados Cliente
Dados Produto
Dados Pedido
Figura 3.7 DFD Nvel 01 Sistema Floricultura Fonte: Elaborao da autora (2008).
80
Atendente
Cliente
nome Cliente
Dados do Cliente
Endereo, telefone, cpf, etc 2 Dados do Produto Imprime Pedido Entrega Pedido, produto Pedido, produto
Solicitar Produto
cdigo, descrio, preo, quantidade, custo Saldo atual produto Preenche dados do Pedido
Dados do Pedido
Figura 3.8 DFD Nvel 2 Sistema Floricultura Fonte: Elaborao da autora (2008).
Unidade 3
81
Pode-se definir o significado de depsitos, a descrio dos fluxos de dados, a estrutura dos arquivos e a especificao lgica dos processos. As notaes mais diversas podem ser utilizadas para definir as estruturas dos dados, sendo que uma proposta de notao possvel, de acordo com Mazzola (2011), inclui as seguintes informaes: nome o identificador principal do item de dados, do depsito de dados ou de uma entidade externa; e, eventualmente, outros nomes utilizados para o mesmo item; especificao numrico, alfanumrico, data, inteiro, tamanho mximo, formatao, domnio; utilizao em que contexto (onde e como) o item de informao utilizado; descrio uma notao que permita explicitar o contedo do item; informaes complementares a respeito do item de dados, como valores iniciais, restries etc.
82
Observe o exemplo de um dicionrio de dados para o depsito de dados Paciente (figura 3.9).
Depsito
Nome do depsito: Paciente. Especificao: banco de dados cadastrais do paciente, volume aproximado 3500 registros. Descrio: o depsito de dados Paciente deve armazenar todos os dados cadastrais do paciente da clnica tendo como chave o nome do paciente. Utilizao: o depsito ser usado no processo Cadastrar Paciente, Agendar Consulta. Atributos do depsito de Dados Paciente: Nome do atributo: Nome_Paciente. Especificao: campo alfanumrico, tamanho 50, chave primria do depsito de dados. Descrio: nome do paciente. Nome do atributo: Endereo_Paciente. Especificao: campo alfanumrico, tamanho 60 caracteres. Descrio: endereo do paciente. Nome do atributo: Telefone_Paciente. Especificao: campo alfanumrico, tamanho 12. Descrio: telefone do paciente. Nome do atributo: Sexo_Paciente Especificao: campo alfanumrico, tamanho 1, assume os valores F ou M. Descrio: sexo do paciente. Figura 3.9 Exemplo de dicionrio de dados para o depsito de dados do Paciente Fonte: Elaborao da autora (2008).
Unidade 3
83
Entidade
Atributo
Relacionamento
Imagine o sistema da clnica. Quais entidades voc consegue identificar? Com certeza necessrio armazenar os dados do Paciente, os dados e as informaes do Mdico, os dados para o agendamento da consulta, o Agenda_Consultas e os dados da Consulta (informaes do mdico durante a consulta). Assim voc identificou grandes grupos de informao que necessariamente precisam ser armazenados para uso futuro na forma de consultas e relatrios (que so processos que atuaro sobre os dados). A entidade Paciente teria os seguintes atributos.
84
Nome da entidade: Paciente Chave identificadora: Nome Paciente Atributos da entidade: CPF Telefone Endereo Convnio Data de nascimento
Exemplos de instncias do objeto Paciente seriam: Nome: Paulo Lopes Telefone: 88890899 CPF: 483.432.546-65 Endereo: Rua do Pntano 120 Nome: Joana da Silva Telefone: 8887777 CPF: 488.444.449-35 Endereo: Rua do Rio 26
Na figura a seguir, voc pode ver um recorte de um diagrama ER. Observe que a relao entre a entidade paciente que realiza um agendamento na clnica.
Paciente
Figura 3.10 Recorte de um diagrama ER Fonte: Elaborao da autora (2008).
Realiza
Agenda
Se voc pensar na entidade Paciente existente na clnica, pode representar seus atributos por meio da notao grfica. O atributo Nome sublinhado porque considerado que ele uma chave nessa entidade. Cada um dos crculos representa um atributo.
Unidade 3
85
Paciente
NomePaciente
CPF
DataNascimento
Convnio
Figura 3.11 Notao grfica entidade Paciente Fonte: Elaborao da autora (2008).
O que cardinalidade?
Observe os exemplos a seguir. So exemplos de relacionamento, porm sem a indicao do nmero de relacionamentos existentes entre eles.
Cliente Mdico Pedidos Cliente Aloca Atende Contm Tem Filmes Pacientes Produtos Carto
86
Cliente (entidade que armazena os dados de um cliente de videolocadora) Aloca Filme (entidade que armazena os dados de filmes na locadora). Mdico (entidade que armazena os dados dos mdicos na clnica) Atende Paciente (entidade que armazena os dados de pacientes na clnica). Pedidos (entidade que armazena os dados de um pedido de compras) Contm Produtos (entidade que armazena os dados dos produtos). Cliente (entidade que armazena os dados de um cliente de um banco) Tem Carto (entidade que armazena os dados da conta e do carto que o cliente possui do banco).
Quando voc identifica quantas vezes cada instncia de uma entidade pode participar do relacionamento, voc est determinando a classe desse relacionamento. A cardinalidade indica o nmero mximo e mnimo de associaes possveis em um relacionamento. Voc pode ter classes de: a) Cardinalidade 1 para 1 (1:1) Quando a cardinalidade de 1 para 1, significa que cada instncia da primeira entidade pode ser relacionada com exatamente uma instncia da segunda entidade. Ou seja, cada cliente tem um carto, como no exemplo a seguir, em que Ana Lopes tem um, e apenas um carto, cujo nmero 23456-7, e o carto tem somente 1 cliente, a Ana Lopes.
Unidade 3
87
b) Cardinalidade 1 para N (1:N) Se a cardinalidade for 1:N, tem-se ento uma situao como a ilustrao a seguir, na qual um cliente pode ter de zero (nenhuma) a n DVDs alocados. A instncia Joo tem trs DVDs (instncias) alocados.
Classe 1:N Aloca 1 (0,n)
Cliente
DVD
Joo Augusto
c) Cardinalidade N para N (N:N) A situao N para N representa uma situao de relacionamento de muitos para muitos. Nesse caso, uma instncia da primeira entidade se relaciona com uma ou mais instncias da segunda entidade, que tambm estabelece relacionamento com uma ou mais instncias da primeira entidade. No exemplo a seguir, o funcionrio Joo Augusto pode estar relacionado a diversos projetos. O projeto Folha de pagamento tem alocados vrios funcionrios.
88
Funcionrios
Joo Augusto
Observe algumas dicas importantes. Identifique, primeiro, quais so as entidades do sistema. Identifique, ento, os atributos para cada entidade. Determine as chaves das entidades: lembre-se de que a chave deve ser um atributo que distinga a instncia de forma nica em relao s outras instncias da entidade: Um exemplo disso o registro do CPF. Cada cidado possui o seu, nico, no existe nenhum outro brasileiro que possua o mesmo nmero. Portanto, o CPF uma excelente chave. Identifique os relacionamentos entre as entidades. Por fim, determine a cardinalidade. Agora pense no caso da Clnica Bem-Estar visto na unidade 2, exerccio das atividades de autoavaliao. Vamos identificar pelos menos trs entidades: Paciente; Mdico; Agenda_Consultas.
89
Unidade 3
Figura 3.16 Exemplo de cardinalidade Clnica Bem-Estar Fonte: Elaborao da autora (2008).
Um paciente pode ter nenhuma, uma ou vrias consultas agendadas. Mas para cada consulta s haver um paciente e haver relacionado um mdico, mas um mdico pode ter vrias consultas agendadas. Agora, para praticar os conhecimentos conquistados nesta unidade, realize as atividades propostas a seguir.
Sntese
Nesta unidade, voc estudou os principais conceitos adotados nessa metodologia. Durante o estudo, o uso das ferramentas como o DFD, o dicionrio de dados, a descrio do processo e o diagrama ER foi abordado, evidenciando sua importncia na concepo do modelo previsto para a soluo do problema do cliente. O uso do DFD torna clara equipe de projeto e ao usurio a forma como as informaes transitaro nos futuros processos e a transformao sofrida durante sua evoluo. Foi possvel tambm abordar a importncia da normalizao, evitando redundncias na futura base de dados do sistema. A anlise estruturada foi um movimento inicial do uso de uma metodologia de projeto que permitisse documentar o futuro projeto de forma clara e consistente. A evoluo, no entanto, era inevitvel.
90
Atividades de autoavaliao
Leia com ateno os enunciados e, aps, realize as questes propostas. 1) Relacione os conceitos a seguir, observando que uma mesma opo pode se repetir. A. Diagrama de fluxo de dados ( ) Notao utilizada para descrever o contedo e significado de fluxos, entidades externas, processos e depsitos de dados. Notao que permite representar um processo em um DFD. Utilizado para representar o cliente em um DFD. Utilizado para representar um repositrio de dados em um DFD. Permite descrever os fluxos de informao e as transformaes sofridas pelos dados durante a execuo do processo. Utilizado para representar os dados que sero inseridos no processo em um DFD. Utilizado para representar em um DFD uma empresa que participa de alguma maneira no processo, por exemplo, uma instituio bancria em um processo de contas a receber.
( ) ( ) ( ) ( )
F. Depsito de dados
( )
G. Processo
( )
Unidade 3
91
2) Defina a cardinalidade e as entidades existentes para as situaes propostas a seguir. a) Um professor leciona vrias disciplinas em sua universidade. b) A universidade emprega vrios funcionrios. c) Os funcionrios so lotados em um departamento. d) Um aluno pode estar matriculado em nenhuma ou vrias disciplinas e uma disciplina pode ter vrios alunos nela matriculados. Exemplo de resoluo: um equipamento de audiovisual alocado a um professor. Equipamento audiovisual Professor (0,1) (0,1)
Saiba mais
Para conhecer um pouco mais sobre a anlise estruturada, voc deve dar uma olhadinha nos seguintes livros: DEMARCO, Tom. Anlise estruturada e especificao de sistema. Rio de Janeiro: Campus, 1989. YOURDON, Edward. Anlise estruturada moderna. Rio de Janeiro: Campus, 1992.
92