1. Diagramação do sistema em UML de um Restaurante
Prof Maximiliano Pezzin max@unc.br
O desenvolvimento de um sistema sugere a análise dos diversos aspectos que
influenciem na gerência dos dados.
Desta forma, o primeiro passo na modelagem do sistema é realizar a
análise dos dados do sistema, de forma a compreender os diversos aspectos relevantes
no gerenciamento presente e futuro do empreendimento.
A seguir será apresentado o exemplo do funcionamento e gerenciamento
de um pequeno restaurante.
Contexto da empresa
O Restaurante Coma Bem está estabelecido a 12 anos;
Serve, diariamente, cerca de 220 almoços e 180 jantas, nos 6 dias da semana;
Trabalham o gerente, 6 garçons, 8 cozinheiras e 4 ajudantes;
O Expediente começa as 9h e termina as 22h;
Cerca de 60% dos clientes tem ficha (pagamento mensal);
Dos clientes que pagam mensalmente, 80% estão vinculados a empresas;
Todos os clientes assinam, na ficha o seu consumo diário, com a descrição ‘despesa’;
Nem todos os clientes ‘fichados’ deixam seus dados pessoais;
Toda a vez que o cliente `recebe’ um produto lhe é acrescido o valor na Anotação;
Ao sair do restaurante, são somados os valores da anotação e registrado na ficha;
O valor de todos os produtos é idêntico a todos os clientes;
O cliente pode optar por Buffet, com um valor fixo, ou comida a Kg;
O cliente realiza um pagamento de qualquer valor, acima ou abaixo de seu saldo;
O saldo do cliente só é calculado no momento em que o cliente o solicita;
Não são descriminadas as despesas do cliente no dia, somente o valor total;
A iniciativa do pagamento é sempre do cliente;
Somente o gerente aceita pagamentos, acerta, altera e preenche a ficha dos clientes;
Qualquer funcionário pode preencher a anotação das despesas no dia;
O cliente, ao quitar o saldo, recebe a ficha quitada. Não são emitidos recibos.
Os clientes que não utilizam ficha, utilizam-se de anotações e pagam a vista.
Somente o gerente tem acesso ao caixa que é fechado diariamente e feito o livro caixa.
2. 5.1 Definição do roteiro
Com base no contexto apresentado, pode-se definir roteiros das principais atividades
realizadas no restaurante, para que com elas, sejam criados os diagramas UML, que
servirão de base para a modelagem e desenvolvimento do sistema.
5.1.1 Roteiro geral
1 - O cliente chega ao restaurante, entra na fila do buffet e serve-se
2 - O atendente entrega a anotação com o valor da despesa
3 - O cliente solicita bebidas ao atendente
4 - O atendente entrega a bebida
5 - O atendente faz a anotação da despesa
6 - O cliente solicita o valor a pagar
7 - O caixa informa o valor é informado ao cliente
8 - O caixa recebe o pagamento ou solicita anotação em ficha
9 - Ficha do cliente é localizada ou criada
10 - Verificar o crédito.
11 - É registrado o valor na ficha.
12 - O cliente sai do restaurante
5.1.2 Roteiro de consumo de cliente
1 - O cliente solicita um produto
2 - O atendente verifica a disponibilidade
3 - O atendente entrega o produto
4 - O atendente anota o valor na `anotação` do cliente
5.1.3 Roteiro de pagamento a vista
1 - O cliente chega ao caixa solicitar o valor
2 - O caixa informa o valor ao cliente
3 - O cliente entrega o dinheiro / vale / cheque
4 - O caixa confere o valor
5 - Registra o pagamento
6 - O caixa devolve o troco
7 – Entrega o recibo
3. 5.1.4 Roteiro de registro de despesa
1 – O cliente solicita o registro de suas despesas
2 - O caixa busca a ficha do cliente
3 - O caixa verifica o crédito do cliente
4 - O caixa registra as despesas diárias na ficha do cliente
5 - O cliente assina a anotação
6 - O caixa arquiva a anotação diária do cliente
5.1.5 Roteiro de acerto periódico do cliente
1 – O cliente solicita um relatório de sua despesa acumulada
2 – O caixa busca a ficha do cliente
3 – O caixa informa o valor ao cliente
4 – O cliente entrega o dinheiro / vale / cheque
5 – O caixa confere o valor
6 – O caixa registra o pagamento
7 – O caixa devolve o troco
8 – O caixa imprime o relatório
9 – O caixa entrega o relatório de despesas ao cliente
5.1.6 Roteiro de cadastramento de cliente
1 – O cliente solicita seu cadastramento
2 – O atendente verifica se o cliente já não está cadastrado
3 – O cliente informa seus principais dados
4 – O cliente informa se está relacionado a alguma empresa
5 – O cliente define o dia que irá realizar o pagamento mensal
6 – O caixa define o crédito mensal do cliente
7 – O caixa cria a ficha
4. 5.2 Diagrama de caso de uso
Um diagrama de caso de uso apresenta o conjunto de casos de uso e seus
relacionamentos. Eles ilustram a visão estática do caso de uso de um sistema.
Os diagramas de caso de uso são importantes principalmente para a organização e
modelagem dos comportamentos de um sistema.
Serão definidos 6 diagramas de caso de uso:
Caso de uso Geral Caso de uso de Cadastramento
Caso de uso de consumo Caso de uso de Pagamento a vista
Caso de uso de acerto periódico Caso de uso de despesas
5. O diagrama de caso de uso de consumo apresenta o relacionamento entre o
cliente e o atendente. As diversas opções de relacionamento são evidenciadas.
Já no acerto periódico, percebe-se um relacionamento mais complexo, onde
estão envolvidas atividades específicas relacionadas por funções internas no sistema.
O diagrama de uso de cadastramento
6. O diagrama de caso de uso de cadastramento apresenta as tarefas a serem
executadas pelo caixa e pelo cliente, quando uma nova ficha de cliente é criada.
Já o diagrama de caso de uso de pagamento a vista mostra as atividades
realizadas quando um cliente realiza o pagamento ‘a vista de sua despesa.
7. O diagrama de caso de uso de despesa mostra as atividades realizadas pelos
envolvidos no registro de despesas nas fichas dos clientes.
No caso em questão, o cliente solicita o registro de sua despesa na sua ficha,
para pagamento posterior.
Os diversos diagramas de caso de uso apresentados tem por idéia apresentar a
visão estática do sistema interno do restaurante.
A vantagem de se utilizar deste tipo de diagrama advém da possibilidade de
detecção de falhas de comunicação, de um ponto de vista mais amplo, sendo visualizadas
funções que talvez não sejam implementadas, mas que tendem a influenciar o processo
como um todo.
8. 5.3 Diagrama de colaboração
O diagrama de colaboração dá ênfase à organização estrutural dos objetos que
enviam e recebem mensagens, ou seja, colaboram no desenrolar do processo.
Mostra o conjunto de objetos, as conexões existentes entre esses objetos e as
mensagens enviadas e recebidas, pelos objetos que são instâncias das classes.
Use os diagramas de colaboração para ilustrar a visão dinâmica de um sistema.
Da mesma forma que no diagrama de caso de uso, são apresentados 6
diagramas.
- Colaboração Geral Colaboração de Pagamento à Vista
- Colaboração de Consumo Colaboração de Registro de Despesa
- Colaboração de Cadastramento Colaboração de Pagamento Periódico
No diagrama de colaboração Geral estão suprimidas diversas pequenas
funções, que são detalhadas em outros diagramas, como por exemplo, o pagamento e o
consumo.
9. A vantagem deste tipo de abordagem é a simplificação do modelo e a
possibilidade de ajustes de partes do projeto total, o que alem de facilitar, torna o modelo
mais flexível.
O diagrama de diagrama de colaboração de consumo, neste caso, tem por o
objetivo de evidenciar o fato de que o atendente irá registrar na Anotação do cliente, a
despesa, para que seja acertada no momento de saída do cliente.
Já o diagrama de Cadastramento mostra que o caixa é o responsável pela
entrada de dados, bem como da definição do limite de crédito do cliente.
10. No diagrama de colaboração no Pagamento a vista é evidenciada a troca de
informações entre o cliente e o caixa. Esta troca ocorre entre os atores, mas sua análise
definirá a forma que o programa será desenvolvido.
A anotação do cliente conterá todas as despesas diárias do cliente, sendo
importante, neste momento, definir o caixa como sendo o responsável pelo registro das
despesas diárias (contidas na Anotação) para o sistema, para futuro pagamento.
11. O diagrama de Acerto periódico mostra as colaborações dos atores quanto a
realização do acerto periódico.
Cabe frisar que não há uma definição de intervalo neste período, sendo que caberá
ao caixa definir quando e quanto será cobrado de cada cliente.
Os diversos diagramas de colaboração apresentados demonstraram a
dinâmica envolvida no sistema.
O cuidado que deve ser tomado neste procedimento refere-se a sincronização dos
diversos procedimentos e processos envolvidos.
Mais que funções de sistema, foram expostas relacionamento entre os atores
envolvidos, fato que ajuda a explorar funções implícitas do modelo.
Desta forma, o apoio dos diagramas de colaboração está relacionado ao
aumento da clareza dos processos dinâmicos do sistema.
12. 5.4 Diagrama de seqüência
A idéia do diagrama de seqüência é dar ênfase à ordenação temporal de
mensagens, mostrando o conjunto de objetos e as mensagens enviadas e recebidas por
esses objetos em uma seqüência de tempo
Tipicamente os objetos são instâncias nomeadas ou anônimas de classes, mas
também podem representar instâncias de outros itens, como colaborações, componentes e
nós.
Geralmente estes diagramas são utilizados para ilustrar a visão dinâmica de um
sistema.
Os diagramas apresentados serão o Diagrama de Seqüência Geral, de consumo, de
pagamento, de cadastramento, de registro e de acerto periódico.
No diagrama de sequência geral apresentado o processo total é apresentado. Tem-
se os três atores principais, bem como as principais atividades executadas pelos atores no
sistema. A seqüência geral pode e será desmembrada nos diagramas específicos, que são
apresentados a seguir.
13. Os diagramas de sequência e consumo apresentados apresentam atividades
específicas que fazem parte de um sistema maior. A vantagem é poder analisar o sistema
em partes, preocupando-se com os pequenos problemas.
14. O diagrama de cadastramento mostra que o cliente repassa os dados, enquanto o
caixa definirá o crédito do cliente, o qual será utilizado no registro das anotações.
15.
16. 5.5 Diagrama de classes
Considerado por muitos o diagrama mais importante, o diagrama de classes tem
por função apresentar os objetos explicitamente.
O fato é que mostra o conjunto de classes, interfaces e colaborações e seus
relacionamentos, ilustrando a visão estática do projeto de um sistema.
A figura 10 mostra o diagrama de classes do sistema.
17. 5.6 Diagrama de estados
O diagrama de estados mostra uma máquina de estados, que consiste de estados,
transições, eventos e atividades. Tem por idéia ilustrar a visão dinâmica de um sistema.
Esses diagramas são importantes principalmente para se fazer a modelagem do
comportamento de uma interface, classe ou colaboração.
A idéia é dar ênfase ao comportamento de um objeto, solicitado por eventos, que é
de grande ajuda para a modelagem de sistemas reativos, como é visto na figura 11.
18.
19.
20. 5.7 Diagrama de atividades
O diagrama de atividades mostra o fluxo de uma atividade para outra em um
sistema. Uma atividade mostra um conjunto de atividades, o fluxo seqüencial ou
ramificado de uma atividade para outra e os objetos que realizam ou sofrem ações.
Use os diagramas de atividades para ilustrar a visão dinâmica de um sistema.
Esses diagramas são importantes principalmente para se fazer a modelagem das
funções do sistema.
Os diagramas de atividades dão ênfase ao fluxo de controle entre objetos.
21.
22. 5.8 Diagrama de componentes
Tem por função mostrar um conjunto de componentes e seus relacionamentos.
Ilustrar a visão estática da implementação de um sistema, sendo relacionados aos
diagramas de classes, pois tipicamente um componente mapeia uma ou mais classes,
interfaces ou colaborações.
A figura 15 mostra a conectividade entre os diversos subsistemas que compõe o
sistema total.