Baixe o app para aproveitar ainda mais
Prévia do material em texto
ANÁLISE ESSENCIAL DE SISTEMAS ESTUDO DE CASO LIVRARIA ABC Descrição do Mini-Mundo A Livraria ABC atua no mercado de livros há mais de 20 anos. Sua estratégia de atuação não prevê a manutenção de livros em estoque. Todos os livros solicitados pelos clientes são, semanalmente, requisitados às editoras. As editoras e os livros oferecidos são selecionados pela Direção da Livraria. Atualmente, a Livraria possui 1.200 clientes cadastrados, fornece 170 livros e atende a uma média de 150 pedidos por semana. Os clientes enviam seus pedidos pelo correio. O pedido é aceito se o cliente e os livros estiverem previamente cadastrados. Caso contrário, o pedido é rejeitado e devolvido ao cliente. Ao final da semana, a Livraria emite as requisições para as editoras, com base nos pedidos recebidos ao longo da semana. Quando os livros são fornecidos pelas editoras, a Livraria confere as notas fiscais emitidas pelas editoras com as requisições, devolve as que contiverem erros e atende os pedidos dos clientes, emitindo as respectivas faturas, que acompanham os livros. Uma cópia da fatura é encaminhada à Tesouraria, onde é feito o controle de pagamentos. M od el o A m bi en ta l Pr op ós ito do Si st em a: O Si ste m a te m co m o pr op ós ito co nt ro la r o at en di m en to do s pe di do s de liv ro do s cl ie nt es da Li vr ar ia , be m co m o as en co m en da s de liv ro s às ed ito ra s. O Si st em a n ão te m co m o pr op ós ito ef et u ar qu al qu er tip o de co n tr ol e fin an ce ir o. Li st a de Ev en to s: Ev en to Es tím u lo R es po st a Ex te rn a 1. Cl ie nt e el ab or a pe di do de in sc riç ão 2. Cl ie nt e el ab or a pe di do de liv ro 4. Di re çã o se le ci on a no vo liv ro 3. Di re çã o se le cio na no va ed ito ra 5. É h or a de em iti r re qu isi çã o 6. Ed ito ra em ite no ta - fis ca l pe di do de in sc riç ão pe di do de liv ro no va ed ito ra no vo liv ro - no ta - fis ca l fa tu ra re qu isi çã o à e di to ra - - - - M od el o A m bi en ta l D ia gr am a de Co n te xt o Si ste m a de Co nt ro le de Pe di do s Cl ie nt e Ed ito ra Te so ur ar ia D ire çã o pe di do - i n sc r iç ão pe di do - liv ro fa tu ra no vo - liv ro no va - ed ito ra fa tu ra re qu isi çã o- ed ito ra no ta - fis ca l M od el o Co m po rt am en ta l M od el o En tid ad e- R el ac io n am en to re qu isi çã o ite m de pe di do cl ien te el ab or a pe di do é c om po sto de re qu isi ta liv ro en co m en da ed ita ed ito ra (0, N) (1, 1) (1, N ) o no m e có di goo e nd er eç o nú m er o o da ta nú m er o o qu an tid ad e (1, 1) có di go o no m e (1, 1) (0, N ) (1, 1) (0, N ) (0, 1) (1, N ) có di go no m e o en de re ço o nú m er o da ta o nu m _ nf o Modelo Compor tamental DFD Par ticionado por Eventos 1. Cliente elabora pedido de inscr ição Evento: externo Atividade: custodial Cliente cadastrar cliente CLIENTES pedido-inscrição 2. Cliente elabora pedido de livro Evento: externo Atividade: custodialCliente receber pedido de livro CLIENTES pedido-livro pedido- rejeitado LIVROS PEDIDOS ITENS-PEDIDOS pedido-inscrição = nome-cliente + endereço-cliente pedido-livro = pedido + cliente +1{nome-livro + quantidade} pedido-rejeitado = [ pedido +cliente + mensagem ?cliente não cadastrado? | pedido +cliente + 1{nome-livro + mensagem ?livro não cadastrado?}] Modelo Compor tamental DFD Par ticionado por Eventos 3. Direção seleciona nova editora Evento: externo Atividade: custodialDireção cadastrar editora EDITORAS nova-editora 4. Direção seleciona novo-livro Evento: externo Atividade: custodial Direção cadastrar livro EDITORAS novo-livro LIVROS nova-editora = editora novo-livro = código-editora + livro Modelo Compor tamental DFD Par ticionado por Eventos 5. É hora de emitir requisição Evento: temporal fixo Atividade: composta Editora emitir requisição EDITORAS LIVROS REQUISIÇÕES ITENS-PEDIDOS requisição-editora 6. Editora emite nota fiscal Evento: externo Atividade: composta Editora atender pedido CLIENTES LIVROS REQUISIÇÕES ITENS-PEDIDOS nota-fiscal nota-fiscal = número-nota-fiscal + número-requisição + 1{nome-livro + quantidade-entregue + preço-unitário} + preço-total nota-fiscal-rejeitada = número-nota-fiscal + mensagem ?nota-fiscal-rejeitada? fatura = número-fatura + data-fatura +cliente + pedido + 1{nome-livro + quantidade + preço-venda} + total-fatura PEDIDOS Cliente Tesouraria fatura nota-fiscal-rejeitada requisição-editora = requisição + editora + 1{nome-livro + quantidade-requisitada} M od el o Co m po rt am en ta l D FD O rg an iza do em N ív ei s H ie rá rq u ic os D ia gr am a Ze ro Cl ie nt e Ed ito ra Te so ur ar ia D ire çã o pe di do - i n sc r iç ão pe di do - liv ro fa tu ra no vo - liv ro no va - ed ito ra re qu isi çã o- ed ito ra no ta - fis ca l1 at en de r cl ie nt e 2 ad qu iri r liv ro LI V RO S IT EN S- PE D ID OS RE QU IS IÇ ÕE S Ed ito ra M od el o Co m po rt am en ta l D FD O rg an iza do em N ív ei s H ie rá rq u ic os D ia gr am a 1 Cl ie nt e pe di do - i n sc r iç ão pe di do - liv ro fa tu ra no ta - fis ca l PE D ID OS 1. 2 re ce be r pe di do de liv ro LI V RO S IT EN S- PE D ID OS RE QU IS IÇ ÕE S Te so ur ar ia Ed ito ra 1. 1 ca da st ra r cl ie nt e Cl ie nt e 1. 3 at en de r pe di do CL IE N TE S CL IE N TE S pe di do - re jei ta do M od el o Co m po rt am en ta l D FD O rg an iza do em N ív ei s H ie rá rq u ic os D ia gr am a 1. 3 fa tu ra no ta - fis ca l PE D ID OS 1. 3. 1 co nf er ir no ta - fis ca l LI V RO S IT EN S- PE D ID OS RE QU IS IÇ ÕE S Te so ur ar ia Ed ito ra Cl ie nt e 1. 3. 2 em iti r fatu ra CL IE N TE S no ta - fis ca l-r eje ita da no ta - fis ca l-a ce ita M od el o Co m po rt am en ta l D FD O rg an iza do em N ív ei s H ie rá rq u ic os D ia gr am a 2 D ire çã on ov o- liv ro 2. 2 ca da st ra r liv ro LI V RO S IT EN S- PE D ID OS ED IT OR A S Ed ito ra 2. 1 ca da st ra r ed ito ra 2. 3 em iti r re qu isi çã o RE QU IS IÇ ÕE S no va - ed ito ra re qu isi çã o- ed ito ra Modelo Compor tamental Especificação de Processos Processo 1.1: Cadastrar Cliente *cria uma nova ocorrência de cliente no depósito de dados CLIENTES* INÍCIO Obter pedido-inscrição Criar código-cliente seqüencial para um novo cliente Armazenar código-cliente com nome-cliente e endereço-cliente de pedido-inscrição em CLIENTES FIM Modelo Compor tamental Especificação de Processos Processo 1.2: Receber Pedido de L ivro *recebe, confere e armazena um pedido de livro de um cliente da livraria. O pedido é totalmente rejeitado se o cliente não estiver cadastrado. Um item de pedido é rejeitado se o livro, encomendado por aquele item, não estiver cadastrado* INÍCIO Obter pedido-livro Localizar nome-cliente de pedido-livro em CLIENTES SE achou PARA CADA nome-livro em pedido-livro FAÇA Localizar nome-livro em LIVROS SE achou SE for o primeiro nome-livro do pedido-livro Armazenar pedido em PEDIDOS com número-pedido e data-pedido de pedido-livro Relacionar pedido ao cliente do pedido-livro FIM-SE Criar número-item sequencial para o item-pedido de pedido-livro Armazenar item-pedido em ITENS-PEDIDOS com número-item criado e quantidade associada a nome-livro em pedido-livro Relacionar item-pedido ao pedido Relacionar item-pedido ao livro do pedido-livro SENÃO Montar pedido-rejeitado, com mensagem ?livro não cadastrado?, e enviá-lo após tratar o último nome-livro de pedido-livro FIM-SE FIM-PARA-CADA SENÃO Montar e enviar pedido-rejeitado com a mensagem ?cliente não cadastrado? FIM-SE FIM Modelo Compor tamental Especificação de Processos Processo 1.3.1: Confer ir Nota-Fiscal *confere uma nota-fiscal enviada pela editora. As notas fiscais são rejeitadas se: a) for entregue um livro diferente do requisitado; ou b) a quantidade entregue for diferente da requisitada* INÍCIO Obter nota-fiscal PARA CADA nome-livro em nota-fiscal FAÇA FAÇA ENQUANTO existir item-pedido em ITENS-PEDIDOS relacionados ao nome-livro e ao número-requisição da nota-fiscal Ler próximo item-pedido que atenda à condição acima Acumular quantidade de item-pedido a quantidade-encomendada de cada nome-livro FIM-ENQUANTO FIM-PARA-CADA SE quantidade-encomendada de qualquer nome-livro = quantidade-entregue correspondente de nota-fiscal Montar e enviar nota-fiscal rejeitada SENÃO Montar e enviar nota-fiscal-aceita Armazenar número-nota-fiscal da nota-fiscal em num_nf de requisição com número-requisição em REQUISIÇÕES FIM-SE FIM Modelo Compor tamental Especificação de Processos Processo 1.3.2: Emitir Fatura *emite uma fatura para cada cliente com item pedido requisitado e atendido pela nota-fiscal aceita* INÍCIO Obter nota-fiscal-aceita PARA CADA cliente em CLIENTES com item-pedido requisitado e ainda não atendido FAÇA PARA CADA item-pedido em ITENS-PEDIDOS relacionado a cliente e a número-requisição de nota-fiscal-aceita FAÇA SE primeiro item-pedido de um cliente Atribuir número sequencial a número-fatura Atribuir data-atual a data-fatura Acrescentar uma linha em fatura com número-fatura, data-fatura, e cliente FIM-SE preço-unitário-venda = 1,4 multiplicado pelo preço-unitário associado, na nota-fiscal-aceita, ao nome-livro relacionado a item-pedido Acrescentar uma linha em fatura com pedido, nome-livro, quantidade de item-pedido e preço-unitário-venda Acumular em total-fatura o preço-unitário-venda multiplicado pela quantidade de item-pedido Excluir item-pedido de ITENS-PEDIDOS SE último item-pedido relacionado a pedido Excluir pedido de PEDIDOS FIM-SE FIM-PARA-CADA Acrescentar uma linha em fatura com total-fatura Enviar fatura FIM-PARA-CADA Excluir requisição, com número-requisição de nota-fiscal-aceita, de REQUISIÇÕES FIM Modelo Compor tamental Especificação de Processos Processo 2.1: Cadastrar Editora *cria uma nova ocorrência de editora* INÍCIO Obter nova-editora Armazenar nova-editora em EDITORAS FIM Processo 2.2: Cadastrar L ivro *cria uma nova ocorrência de livro e o relaciona à editora que o edita* INÍCIO Obter novo-livro Armazenar livro de novo-livro em LIVROS Relacionar livro armazenado a código-editora de novo-livro FIM Modelo Compor tamental Especificação de Processos Processo 2.3: Emitir Requisição *ocorre ao final de cada semana * *emite requisição para as editoras de todos os itens de pedido ainda não requisitados, isto é, itens de pedidos ainda não relacionados a nenhuma requisição. Uma requisição só pode requisitar livros de uma mesma editora * INÍCIO PARA CADA editora em EDITORAS FAÇA PARA CADA livro em LIVROS relacionado a editora FAÇA FAÇA ENQUANTO existir item-pedido em ITENS-PEDIDOS relacionado a livro e não relacionado a requisição Ler próximo item-pedido que atenda à condição acima SE primeiro item-pedido relacionado à editora Atribuir número sequencial à número-requisição Atribuir data-atual a data-requisição Armazenar número-requisição e data-requisição em REQUISIÇÕES Acrescentar uma linha em requisição-editora com número-requisição, data-requisição e editora FIM-SE Acumular quantidade de item-pedido em quantidade-requisitada Relacionar item-pedido a requisição armazenada FIM-ENQUANTO Acrescentar uma linha em requisição-editora com nome-livro e quantidade-requisitada FIM-PARA-CADA FIM-PARA-CADA FIM DICIONÁRIO DE DADOS bairro = *bairro de uma cidade* *tipo: alfabético* *tamanho: 20 posições* cep = *código de endereçamento postal* *formato número: 99.999-999* cidade = * cidade de um estado do Brasil* *tipo: alfabético* *tamanho: 20 posições* CLIENTES = *cadastro de clientes da Livraria* {cliente} cliente = *pessoa física ou jurídica que adquire livros na Livraria* código-cliente + nome-cliente + endereço-cliente código-cliente = *identificador unívoco de um cliente* *formato número: 9.999* código-editora = *identificador unívoco de uma editora* *formato número: 9.999* código-livro = *identificador unívoco de um livro* *formato número: 999.999* complemento = *complemento de um endereço* *tipo: alfanumérico* *tamanho: 12 posições* data = ** *formato data: dd/mm/aa* data-fatura = *data da emissão da fatura* data data-pedido = *data em que o pedido foi emitido pelo cliente* data data-requisição = *data de emissão de uma requisição* data EDITORAS = *cadastro das editoras dos livros fornecidos pela livraria* {editora} editora = *registro do cadastro de editoras* código-editora + nome-editora + endereço-editora endereço = ** rua + complemento + bairro + cep + cidade + estado + (telefone) endereço-cliente = ** endereço endereço-editora = ** endereço estado = *nome de um estado do Brasil* *tipo: alfabético* *tamanho: 18 posições* fatura = *fatura de cobrança para os clientes da Livraria* número-fatura + data-fatura + cliente + pedido + 1{ nome-livro + quantidade + preço-venda} + total-fatura ITENS-PEDIDOS = *cadastro dos itens de pedido dos pedidos de livro* {item-pedido} item-pedido = *registro do cadastro de itens de pedido* número-item + quantidade LIVROS = *cadastro delivros fornecidos pela Livraria* {livro} livro = *registro do cadastro de livros* código-livro + nome-livro nome-cliente = ** *tipo: alfabético* *tamanho: 40 posições* nome-editora = ** *tipo: alfabético* *tamanho: 20 posições* nome-livro = *nome de um livro fornecido pela Livraria* *tipo: alfanumérico* *tamanho: 20 posições* nota-fiscal = *nota-fiscal emitida pelas editoras, em atendimento às requisições* número-nota-fiscal + número-requisição + 1{ nome-livro + quantidade-entregue + preço-unitário} + preço-total nota-fiscal-rejeitada = *nota-fiscal rejeitada pela Livraria* número-nota-fiscal + mensagem ?nota-fiscal rejeitada? nova-editora = *nova editora selecionada pela Direção da Livraria* editora novo-livro = * livro selecionado pela Direção, para ser fornecido pela Livraria* código-editora + livro número-fatura = *número de uma fatura emitida pela Livraria* *formato número: 999.999* número-item = *número de um item de pedido* *formato número: 99* número-nota-fiscal = *identificador de uma nota-fiscal* *tipo: alfanumérico* *tamanho: 8 posições* *sinônimo: num_nf* número-pedido = *identificador unívoco de pedido* *formato número: 999.999* número-requisição = *identificador unívoco de requisição* *formato número: 99.999* num_nf = *número de uma nota-fiscal* *tipo: alfanumérico* *tamanho: 8 posições* *sinônimo: número-nota-fiscal* PEDIDOS = *cadastro de pedidos de livros dos cliente* {pedido} pedido = *registro do cadastro de pedidos* número-pedido + data-pedido pedido-inscrição = *pedido de inscrição de um cliente, na Livraria* nome-cliente + endereço-cliente pedido-livro = *pedido de livro encaminhado por um cliente* pedido + cliente + 1{nome-livro + quantidade} pedido-rejeitado = *pedido de um cliente rejeitado pela livraria* [pedido + cliente + mensagem ?cliente não cadastrado? | pedido + cliente + 1{ nome-livro + mensagem ?livro não cadastrado?}] preço-unitário = *preço de um exemplar de um livro cobrado por uma editora* *formato moeda: 999,00* *unidade de medida: Real* preço-total = *preço total de uma nota-fiscal* *formato moeda: 99.999,00* *unidade de medida: Real* preço-venda = *preço cobrado, pela Livraria, por um exemplar de um livro* *formato moeda: 999,00* *unidade de medida: Real* quantidade = *quantidade de livros encomendada por um cliente* *formato número: 99* quantidade-entregue = *quantidade de livros entregue por uma nota-fiscal* *formato número: 99* quantidade-requisitada = *quantidade de livros requisitada a uma editora* *formato número: 99* REQUISIÇÕES = *cadastro das requisições de livros às editoras* {requisição} requisição = *registro do cadastro de requisições* número-requisição + data-requisição requisição-editora = *requisição de livros enviada a uma editora* * requisição + editora + 1{ nome-livro + quantidade- requisitada} rua = *rua de um bairro de uma cidade* *tipo: alfabético* *tamanho: 20 posições* telefone = ** *formato número: (999) 999-9999* total-fatura = *valor total de uma fatura de cobrança* *formato moeda: 99.999,00* *unidade de medida: Real* *sinônimo: valor-faturado* valor-faturado = ** *sinônimo: total-fatura*
Compartilhar