Baixe o app para aproveitar ainda mais
Prévia do material em texto
Modelagem de Sistemas Marcelo Vasques de Oliveira Aula 6 Aula 6 – Diagramas de Interação Aplicação dos diagramas através de estudo de caso Casos de Uso (diagrama e especificações) Diagrama de classes Diagrama de sequencia 2 Estudo de Caso A empresa FAIXA AMARELA Ltda, confecciona faixas de anúncios e encomendou um sistema que controle suas atividades Controle e acompanhamento dos pedidos Cadastramento de seus clientes O cliente, faz seu pedido e os dados são registrados: Cliente: nome, cpf, endereço completo, tel_fixo, Tel_cel; Pedido: Data do Pedido, altura e largura da faixa, texto a ser escrito na faixa, cor da faixa (amarela, preta ou branca), cor do texto (Branco, Preto, Azul ou vermelho), Previsão de entrega, Valor do Serviço e Valor do sinal (50% do total) 3 Estudo de Caso O valor do serviço é calculado Valor da faixa = Custo_Material + Custo_desenho + % Lucro Custo_Material = área x 20,00 Custo_Desenho = número de letras * 0,70 % de Lucro = 20 % (Custo_Material + Custo_desenho) O Prazo de entrega é calculado com base no trabalho de 5 dias por semana e produção diária de 8 faixas no máximo. O prazo deve começar a ser contabilizado, após a confirmação do pagamento do sinal O sistema deve calcular o prazo de entrega e o valor do serviço; 4 Estudo de Caso Para cada encomenda deve ser emitido um recibo, em 2 vias, contendo os dados do pedido e pagamento (valor do sinal e a pagar na entrega). O sistema (acesso da diretoria) deve controlar o pagamento do sinal, quando o serviço é iniciado e a data de entrega calculada. O sistema deve controlar o pagamento na entrega. O sinal pode ser pago por depósito bancário e o pagamento do saldo deve ser pago contra entrega, em dinheiro, cheque ou cartão de débito. 5 Estudo de Caso O produto somente é entregue mediante o pagamento do saldo. A entrega deve ser controlada. O sistema deve prover uma consulta (disponível apenas a diretoria), de cada pedido feito no período, informando: data do pedido, data de entrega, Valor Serviço, Valor Sinal, Sinal Pago (S/N), Serviço Finalizado (S/N), Serviço Pago (S/N) e Status Pedido. (S/N) = Sim ou Não. O Pedido ao longo do seu ciclo de vida pode ter vários estados , que o sistema deve controlar. 6 Estudo de Caso Ao ser inserido, o status é EM ESPERA. Com o sinal pago, o status é PRONTO PARA PRODUÇÃO Ao iniciar a produção da faixa, o status é EM PRODUÇÃO. Ao ser finalizado o status passa a ser PRONTO. Ao ser entregue o status passa a ser ENTREGUE. Para ser considerado ENTREGUE o pedido tem que ter o saldo de pagamento confirmado. 7 Estudo de Caso O sistema deve emitir um informe a todo cliente que não faz pedido há mais de 6 meses (com base na data corrente). Num mesmo pedido podem ser encomendadas mais de 1 faixa, até 5 no máximo (mas essa regra pode alterar a qualquer momento). 8 Procedimento da solução 1) Diagramação da 1ª. Versão do diagrama de casos de uso Identificação das principais funcionalidades do sistema 2) Especificação textual de casos de uso relevantes 3) Refinamento do diagrama de casos de uso Identificação de includes ou extends que otimizem a solução 4) Identificação das classes do negócio 5) Diagrama Conceitual de Classes 6) Diagrama de sequencia dos casos de uso de relevância. 9 1ª. Versão diagrama de casos de uso 10 1ª. Versão diagrama de casos de uso 11 Caso de Uso Breve descrição Registrar Pedido Registraros pedidos de faixas Registrar Fim produção do pedido Sinaliza que a produção da faixa chegou ao fim, devendo haver mudança do estado do pedido, nesse momento. Registrar Entrega do Pedido Sinaliza que o pedido foi entregue ao cliente, devendo haver mudança do estado do pedido, nesse momento. Caso de Uso: Registrar Pedido 12 Pré Condição: -- Pós condição: Pedido registrado e Cliente registrado Cenário Principal ... .... ... .. Cenários Alternativos ... ... ... Cenário Principal - Registrar Pedido 13 1.Usuário informa Id do Cliente 2.Sistema Localiza Cliente com Id do Cliente 3.Sistema exibe nome , email e telefones do cliente 4.Para cada faixa do pedido FACA a) Usuário informa dados da faixa b) Sistema Calcula valor da faixa c) Sistema acumula valor do pedido 5. Sistema apresenta valor total do pedido 6. Sistema aponta EM ESPERA para status do pedido. 7. Sistema registra pedido 8. Sistema emite boleto do pedido (*) Cenários Alternativos - Registrar Pedido 14 Cenários Alternativos 2.a. Cliente não localizado 1. Sistema Informa Cliente não localizado 2. Sistema retorna ao passo 1 do cenário principal. Caso de Uso: Cadastrar Cliente 15 Cenário Principal 1. Usuário informa Id do Cliente 2. Sistema Localiza Cliente com Id do Cliente 3. Usuário informa dados do cliente (1) 4. Sistema registra dados do cliente Cenários Alternativos 2.a. Cliente já cadastrado 1. Sistema emite mensagem “Cliente já está cadastrado” 2. Sistemas retorna ao passo 1 do cenário principal Caso de Uso: Confirmar Recebimento Sinal 16 Cenário Principal 1. Usuário informa Id do Pedido 2. Sistema Localiza Pedido com Id do Pedido 3. Sistema exibe dados do pedido 4. Usuário informa Data e valor do sinal 5. Sistema valida dados do sinal 6. Sistema aponta PRONTO PARA PRODUCAO para status do pedido. 7. Sistema calcula data de entrega do pedido 8. Sistema altera dados do pedido. Caso de Uso: Confirmar Recebimento Sinal 17 Cenários Alternativos 2.a. Pedido não localizado 1. Sistema emite mensagem “Inconsistência de dados, Pedido não localizado” 2. Sistema retorna ao passo 1 do cenário principal 4.a. Valor do sinal inferior a 50% do pedido 1. Sistema emite mensagem “O valor do sinal deve ser equivalente a 50% do valor do pedido” 2. Sistema retorna ao passo 4 do cenário principal. Caso de Uso: Registrar Início da produção 18 1. Usuário informa Id do Pedido 2. Sistema Localiza Pedido com Id do Pedido 3. Sistema exibe dados do pedido 4. Usuário informa Data de inicio da produção 5. Sistema calcula data de fim da produção e entrega 6. Sistema apresenta data de fim da produção e data de entrega 7. Sistema aponta EM PRODUCAO para status do pedido. 8. Sistema altera dados do pedido. Caso de Uso: Registrar Início da produção 19 1 Cenários Alternativos 2.a. Pedido não localizado 1. Sistema emite mensagem “Inconsistência de dados, Pedido não localizado” 2. Sistema retorna ao passo 1 do cenário principal Caso de Uso: Registrar Fim da produção 20 Cenário Principal 1. Usuário informa Id do Pedido 2. Sistema Localiza Pedido com Id do Pedido 3. Sistema exibe dados do pedido 4. Usuário informa Data de fim da produção 5. Sistema calcula data de entrega 6. Sistema apresenta data de entrega 7. Sistema aponta PRONTO para status do pedido. 8. Sistema altera dados do pedido. Caso de Uso: Registrar Fim da produção 21 Cenários Alternativos 2.a. Pedido não localizado 1. Sistema emite mensagem “Inconsistência de dados, Pedido não localizado” 2. Sistema retorna ao passo 1 do cenário principal Caso de Uso: Registrar entrega do pedido 22 Cenário Principal 1. Usuário informa Id do Pedido 2. Sistema Localiza Pedido com Id do Pedido 3. Sistema exibe dados do pedido 4. Usuário informa Data real de entrega 5. Sistema apresenta data real de entrega 6. Sistema aponta ENTREGUE para status do pedido. 7. Sistema altera dados do pedido. Caso de Uso: Registrar entrega do pedido 23 Cenários Alternativos 2.a. Pedido não localizado 1. Sistema emite mensagem “Inconsistência de dados, Pedido não localizado” 2. Sistema retorna ao passo 1 do cenário principal Caso de Uso: Consultar cliente sem pedido 24 Cenário Principal Para cada cliente cadastrado faça Sistema localiza Pedidos do Cliente Para cada pedido do cliente faça Se (Data Corrente – Data Pedido) > 180 então exibir dados Pedido (1) Fim_para Fim_para (1) Nome Cliente, email Cliente, Telefone Cliente, Data UltimoPedido Caso de Uso: Consultar Pedido no período 25 Cenário Principal Usuário informa data Inicial e final Para cada Pedido com data pedido>-Data Inicial e Data Pedido<=Data Final faça Buscar Dados Cliente Exibir dados Pedido (1) Fim_para (1)– Nome Cliente, email Cliente, Telefone Cliente, Data Pedido, Valor Pedido, Data Entrega Refinamento do diagrama de casos de uso 26 Observe que nos casos de uso Confirmar Recebimento do Sinal, Registrar Início da Produção. Registrar Fim da Produção e Registrar Entrega do Pedido, Temos os dois trecho repetidos: o primeiro no cenário principal e segundo no cenário alternativo Trechos repetidos nos casos de uso 27 Cenários Principal 1. Usuário informa Id do Pedido 2. Sistema Localiza Pedido com Id do Pedido 3. Sistema exibe dados do pedido Cenários Alternativos 2.a. Pedido não localizado 1. Sistema emite mensagem “Inconsistência de dados, Pedido não localizado” 2. Sistema retorna ao passo 1 do cenário principal Alterações nas especificações 28 As especificações dos casos de uso precisam ser modificadas para compatibilizar com diagramas. Observe que no local das 3 linhas que havia anteriormente na especificação do caso de uso Confirmar Recebimento do Sinal, passamos a ter uma única linha com a inclusão do novo caso de uso (<<Incluce>> Pesquisar Pedido), E o cenário alternativo de Confirmar Recebimento de sinal passa a ser o cenário alternativo do <<include>> Pesquisar Pedido Caso de uso: Confirmar Recebimento sinal 29 Cenário Principal 1. <<Include>> Pesquisar Pedido 2. Usuário informa Data e valor de pagamento do sinal. 3. Sistema aponta PRONTO PARA PRODUCAO para status do pedido. 4. Sistema calcula data de entrega do pedido 5. Sistema altera dados do pedido. FIM- caso de uso Caso de uso: Confirmar Recebimento sinal 30 Cenários Alternativos 4.a. Valor do sinal inferior a 50% do pedido 1. Sistema emite mensagem “O valor do sinal deve ser equivalente a 50% do valor do pedido” 2. Sistema retorna ao passo 4 do cenário principal Caso de uso: Pesquisar Pedido (include) 31 Cenário Principal Usuário informa Id do Pedido Sistema Localiza Pedido com Id do Pedido Sistema exibe dados do pedido Cenários Alternativos 2.a. Pedido não localizado 1. Sistema emite mensagem “Inconsistência de dados, Pedido não localizado” 2. Sistema retorna ao passo 1 do cenário principal . Diagrama de casos de uso - refinado 32 Diagrama Conceitual de Classes 33 O diagrama conceitual de classes pode ser extraído dos casos de uso. Casos de uso podem ser classes Casos de uso podem ser métodos Casos de uso: Cadastrar Cliente Classe Cliente Casos de uso: Demais Classe Pedido As 2 classes se relacionam por associação Diagrama Conceitual de Classes 34 O relacionamento entre as classes é associação Papel: Cliente FAZ Pedido A cardinalidade do relacionamento 1 Cliente faz * Pedidos 1 Pedido é de 1 Cliente Atributos 35 Um erro muito comum em diagrama de classes é a confusão que se faz com tabelas (de bancos de dados relacionais), usando os conceitos de chave primária e chave estrangeira em relacionamentos 1:* ou *..*. Esse conceito não existe em diagrama de classes. Classe e tabela são bem distintos nesse sentido. A classe deve conter apenas os atributos que pertençam a ela, que a identifiquem enquanto classe. Analisando os atributos do pedido 36 Dados do pedido: tamanho da faixa (altura e largura), texto a ser escrito na faixa, cor da faixa (amarela, preta ou branca), cor do texto (Branco, Preto, Azul ou vermelho) Cada pedido pode conter até 5 faixas, o que significa dizer que os dados do pedido, acima, terão que ser armazenados 5 vezes ou mais (caso cresça no futuro). Analisando os atributos do pedido 37 Isso acarreta uma anomalia de armazenamento de atributos, pois teríamos que ter 5 vezes cada dado de 1 faixa, que poderiam não ser usados sempre, causando desperdício de armazenamento e uma estrutura pouco ortodoxa. Percebe-se uma nova classe, chamada FAIXAS PEDIDO, que estaria relacionada com a classe PEDIDO. Tal solução resolve problema da quantidade de faixas por pedido, pode aumentar ou diminuir. Diagrama Conceitual de classes final 38 Agregação ou composição? 39 Adicionando os atributos Analisando especificações de casos de uso 40 A análise de especificações de casos de uso, nos indicam a necessidade de novos atributos Caso de Uso Atributos sugeridos Confirmar Recebimento de Sinal Data Pago Sinal Valor Pago Sinal Registrar Início de Produção Registrar Fim de Produção Data Inicio Produção Data Fim Produção Data Entrega Registrar Entrega do Pedido Data Real Entrega Responsabilidade das classes 41 A análise de especificações de casos de uso, nos indicam a necessidade de novos atributos Caso de Uso Atributos sugeridos Confirmar Recebimento de Sinal Data Pago Sinal Valor Pago Sinal Registrar Início de Produção Registrar Fim de Produção Data Inicio Produção Data Fim Produção Data Entrega Registrar Entrega do Pedido Data Real Entrega 42 Adição de atributos 43 Responsabilidade das classes Adição de métodos, analisando os casos de uso 44 Registrar Pedido-Cenário: Principal Novos Métodos Cliente Pedido Faixas Pedido 45 Consultar Pedidos Período-Cenário: Principal 46 Consultar Clientes Sem Pedido - Principal 47
Compartilhar