Buscar

PAD - Aula 05 - Leia solução completa do Estudo de Caso

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*

Continue navegando