Análise Orientada a Objetos - Casos de Uso

79,231 views
78,951 views

Published on

Apresentação sobre Análise Orientada a Objetos - Casos de Uso

Published in: Technology
7 Comments
19 Likes
Statistics
Notes
No Downloads
Views
Total views
79,231
On SlideShare
0
From Embeds
0
Number of Embeds
6,488
Actions
Shares
0
Downloads
2,485
Comments
7
Likes
19
Embeds 0
No embeds

No notes for slide

Análise Orientada a Objetos - Casos de Uso

  1. 1. Análise Orientada a Objetos Casos de Uso
  2. 2. <ul><li>Objetivo: Descrever um modelo funcional do sistema. Procura identificar os usuários e representar o sistema segundo a sua visão. [Deboni 2003]. </li></ul><ul><li>  Deve estabelecer um modelo de requisitos do sistema através da identificação de como o mesmo será utilizado pelos elementos externos e quais serviços deve prover. </li></ul>Casos de Uso
  3. 3. <ul><li>Este diagrama utiliza três elementos básicos para a sua construção: </li></ul><ul><li>ATOR </li></ul><ul><li>Um ator é alguém ou alguma coisa que interage com o sistema; é quem ou o que usa o sistema. </li></ul><ul><li>O ator representa um papel, não um usuário individual do sistema. </li></ul><ul><li>Atores podem ser humanos ou sistemas automatizados. </li></ul><ul><li>O ator comunica-se com o sistema enviando e recebendo mensagens. </li></ul><ul><li>Atores recebem nomes que refletem o papel que desempenham no sistema. </li></ul><ul><li>Representação gráfica do ator: 0 </li></ul>Elementos de um Diagrama UC nome do ator
  4. 4. <ul><li>Atores - Exemplos </li></ul><ul><li>Em um Consultório Médico </li></ul><ul><li>Em uma Biblioteca </li></ul>Elementos de um Diagrama UC Médico Atendente Bibliotecário Usuário
  5. 5. <ul><li>CASO DE USO </li></ul><ul><li>Um caso de uso representa uma funcionalidade completa do sistema, conforme percebida por um ator. </li></ul><ul><li>  É um conjunto de seqüências de ações que um sistema executa, gerando um resultado observável que interessa a determinado ator. </li></ul><ul><li>  A idéia é que os casos de uso representem, por meio de pequenas histórias descritivas, as funcionalidades de um sistema. </li></ul><ul><li>  Modela o diálogo entre o ator e o sistema. </li></ul><ul><li>  São as funções que o sistema vai desempenhar. </li></ul>Casos de Uso
  6. 6. <ul><li>CASO DE USO </li></ul><ul><li>Os Casos de Uso representam as funções do sistema, ou seja, os requisitos do sistema sob o ponto de vista do usuário </li></ul><ul><li>Eles mostram as funcionalidades que serão utilizadas pelos usuários </li></ul><ul><li>O foco do Caso de Uso está em O QUE o sistema faz e não COMO o sistema faz </li></ul>Casos de Uso
  7. 7.     Representação gráfica do Caso de Uso  Casos de Uso Nome do Caso de Uso Nome do Caso de Uso
  8. 8. Exemplo: Sistema Telefônico Casos de Uso Realizar Chamada Manter Agenda Usuário
  9. 9. Exemplo: Panificadora  Casos de Uso Vender Produtos Receber Pagamento Balconista Caixa
  10. 10. <ul><li>Para identificar os Casos de Uso respondemos algumas perguntas como: </li></ul><ul><ul><li>“ Qual é a expectativa do usuário ao usar o sistema, ou seja, o que ele precisa fazer com o sistema?” </li></ul></ul><ul><ul><li>“ Quais resultados de valor o usuário espera receber do sistema?” </li></ul></ul><ul><li>Exemplos: </li></ul><ul><ul><li>Efetuar Depósito </li></ul></ul><ul><ul><li>Solicitar Extrato </li></ul></ul><ul><ul><li>Efetuar Transferência </li></ul></ul><ul><ul><li>Efetuar Saque </li></ul></ul><ul><ul><li>Validar Saldo </li></ul></ul>Está é uma lógica oculta com a qual o usuário final não se preocupa, portanto não é qualificada com um Caso de Uso Casos de Uso
  11. 11. <ul><li>Casos de Uso do tipo CRUD (Create, Read, Update, Delete) por terem comportamentos muito semelhantes geralmente são combinados em um caso de uso que ofereça todos os recursos de manutenção. </li></ul>= UC Manter Usuário UC Incluir Usuário UC Excluir Usuário UC Alterar Usuário UC Pesquisar Usuário UC Manter Conta Corrente UC Abrir conta corrente UC Encerrar conta corrente UC Alterar conta corrente UC Consultar conta corrente <ul><li>Fazendo uma analogia: </li></ul>Casos de Uso =
  12. 12. <ul><li>Exercícios: </li></ul><ul><li>1) Identifique os atores e elabore o diagrama de casos de uso para o sistema de controle de uma biblioteca descrito a seguir: </li></ul><ul><li>É um sistema de suporte para uma biblioteca </li></ul><ul><li>A biblioteca empresta livros e revistas para clientes, que são registrados no sistema, no qual também estão registrados os livros e as revistas </li></ul><ul><li>A biblioteca controla a compra de novos títulos. De títulos populares compra-se várias cópias. Livros antigos e revistas são removidos quando estão ultrapassados ou deteriorados </li></ul><ul><li>Bibliotecário é um funcionário da biblioteca que interage com os clientes e seu trabalho é auxiliado pelo sistema </li></ul>Casos de Uso
  13. 13. <ul><li>Exercícios: (continuação) </li></ul><ul><li>Um cliente pode reservar um livro ou revista que não está disponível no momento na biblioteca, de forma que quando ele for devolvido ou comprado pela biblioteca, o cliente é avisado. A reserva é cancelada quando o cliente retira o livro ou revista, ou através de um processo exclusivo de cancelamento </li></ul><ul><li>A biblioteca pode facilmente criar, atualizar, e apagar informações sobre seus títulos, clientes, empréstimos, e reservas no sistema </li></ul><ul><li>O sistema pode rodar em todos os ambientes populares (UNIX, Linux, windows, etc) e tem uma interface gráfica (GUI) moderna </li></ul><ul><li>O sistema deve ser facilmente estendido com novas funcionalidades </li></ul><ul><li>O sistema deve lidar com a mensagem que é enviada ao cliente quando um título reservado torna-se disponível, e precisa checar se um determinado título está ultrapassado ou deteriorado. </li></ul>Casos de Uso
  14. 14. <ul><li>Exercícios: </li></ul><ul><li>2) Identifique os atores e elabore o diagrama de casos de uso para um sistema de controle de uma máquina que vende Coca-Cola, descrito a seguir: </li></ul><ul><li>É um sistema de venda de Coca-cola em máquina automatizada </li></ul><ul><li>O sistema deve estar preparado para receber e conferir o dinheiro colocado pelo Cliente, inclusive para dar o troco </li></ul><ul><li>Deve controlar a recarga de refrigerantes pelo Técnico, bem como o recolhimento do dinheiro da máquina. </li></ul>Casos de Uso
  15. 15. <ul><li>Descreva passo a passo como ocorre o Saque em um Caixa Automático. </li></ul>1 - Cliente insere o cartão 2 - Caixa Automático solicita a senha 3 - Caixa solicita Automático solicita o serviço que o Cliente deseja 4 - Cliente seleciona a opção Saque 5 - Caixa Automático solicita o valor do Saque 6 - Cliente seleciona o valor da retirada 7 - Caixa Automático solicita data de nascimento 8 - Caixa Automático solicita a colocação do cartão 9 - Cliente insere e retira o cartão 10 - Caixa Automático libera o dinheiro 11 - Caixa Automático inicia a tela para o próximo Cliente Especificação de um Caso de Uso
  16. 16. <ul><li>Vocês especificaram um Caso de Uso </li></ul><ul><li>Como não foi fornecido um padrão, cada um fez do seu modo </li></ul><ul><li>Sem um padrão cada um coloca o seu estilo na especificação: </li></ul><ul><ul><li>muitos detalhes </li></ul></ul><ul><ul><li>só um resumo </li></ul></ul><ul><ul><li>o que pode criar problemas de comunicação </li></ul></ul>Especificação de um Caso de Uso
  17. 17. Problemas de Comunicação
  18. 18. <ul><li>Informações Básicas </li></ul><ul><li>Número do Caso de Uso </li></ul><ul><li>Nome do Caso de Uso </li></ul><ul><li>Descrição </li></ul><ul><li>Pré-condições </li></ul><ul><li>Pós-condições </li></ul><ul><li>Ator Principal </li></ul><ul><li>Fluxo de Eventos </li></ul><ul><li>Fluxos Alternativos </li></ul><ul><li>Fluxos de Exceção </li></ul><ul><li>Cenários </li></ul><ul><li>Views (Telas, Relatórios, etc) </li></ul><ul><li>Regras de Negócio </li></ul>Especificação de um Caso de Uso
  19. 19. <ul><li>Descrição : </li></ul><ul><ul><li>Descrever a função e o resultado observável do Caso de Uso. </li></ul></ul><ul><li>Orientações: </li></ul><ul><ul><li>Escreva pouco </li></ul></ul><ul><ul><li>Especifique com exatidão o resultado observável </li></ul></ul><ul><li>Sugestão: “Este Caso de Uso serve para ...” </li></ul><ul><li>Exemplos: Este caso de uso serve para realizar um saque em Conta Corrente com cartão de débito. </li></ul>Especificação de um Caso de Uso
  20. 20. <ul><li>Pré-condições: </li></ul><ul><ul><li>Condições que precisam ser verdadeiras para que o Caso de Uso possa iniciar </li></ul></ul><ul><li>Orientações: </li></ul><ul><ul><li>Uma pré-condição não satisfeita impede o início do Caso de Uso . </li></ul></ul><ul><ul><li>Uma pré-condição pode ser um outro Caso de Uso executado. </li></ul></ul><ul><ul><li>Nem todos os Casos de Uso têm pré-condições. </li></ul></ul><ul><li>Sugestão: “Este Caso de Uso pode iniciar somente se ...” </li></ul><ul><li>Exemplos: Este use case pode iniciar somente se: </li></ul><ul><ul><li>O Cliente tiver perfil disponível para transação Saque em Conta Corrente. </li></ul></ul><ul><ul><li>Tela do Caixa Automático estiver disponível. </li></ul></ul>Especificação de um Caso de Uso
  21. 21. <ul><li>Pós-condições : </li></ul><ul><ul><li>Situação após a execução do Caso de Uso </li></ul></ul><ul><li>Orientações: </li></ul><ul><ul><li>As pós-condições são condições que devem sempre ser verdadeiras após o término da execução do Caso de Uso. </li></ul></ul><ul><ul><li>Uma pós-condição não satisfeita impede o fim normal do Caso de Uso. </li></ul></ul><ul><ul><li>Assim como as pré-condições, as pós-condições podem ser usadas para adicionar informações sobre a ordem em que os Casos de Uso são executados. </li></ul></ul><ul><li>Sugestão: “Após o fim normal deste Caso de Uso ... deve ...” </li></ul><ul><li>Exemplos: Após o fim normal deste Caso de Uso, o sistema deve: </li></ul><ul><ul><ul><li>ter feito o débito na Conta Corrente do Cliente. </li></ul></ul></ul><ul><ul><ul><li>ter acionado o UC Contabilidade de Caixa. </li></ul></ul></ul><ul><ul><ul><li>ter impresso o Comprovante do Saque em C/C. </li></ul></ul></ul><ul><ul><ul><li>ter disponibilizado informações para Extrato C/C. </li></ul></ul></ul>Especificação de um Caso de Uso
  22. 22. <ul><li>Ator: </li></ul><ul><ul><li>O Ator não faz parte do sistema , ele é quem solicita uma ação ao sistema (ou recebe uma resposta do sistema), ou seja, é quem interage com o sistema. </li></ul></ul><ul><li>Tipos de ator: </li></ul><ul><ul><li>Humano: um cliente de um banco sacando dinheiro. </li></ul></ul><ul><ul><li>Sistema: o Sistema de Ações é o Ator quando aciona o Sistema de Contas Correntes para depositar os dividendos da carteira de ações do cliente. </li></ul></ul><ul><ul><li>Tempo: no início do mês o Sistema de Contas Correntes imprime os extratos do mês anterior para enviar ao cliente através do Correio. </li></ul></ul>Especificação de um Caso de Uso
  23. 23. <ul><li>Fluxo de Eventos Principal : </li></ul><ul><ul><li>Descrever a seqüência de ações que devem ser executadas para que o Caso de Uso execute sua função. </li></ul></ul><ul><li>Orientações: </li></ul><ul><ul><li>Descrição passo a passo do fluxo normal, ou “caminho feliz”, sob o ponto de vista do Ator </li></ul></ul><ul><ul><li>Especifica como o Sistema será usado e não como será implementado </li></ul></ul><ul><ul><li>Deve ser caracterizado por frases simples, em que o sujeito é o Ator ou o Sistema </li></ul></ul><ul><ul><li>Não deve ter desvios para outros passos do Fluxo de Eventos </li></ul></ul>Especificação de um Caso de Uso
  24. 24. <ul><ul><li>Sugestão: </li></ul></ul><ul><ul><ul><ul><li>O Usuário .... </li></ul></ul></ul></ul><ul><ul><ul><ul><li>O Sistema apresenta a tela XXX </li></ul></ul></ul></ul><ul><ul><ul><ul><li>O Usuário ... </li></ul></ul></ul></ul><ul><ul><ul><ul><li>... </li></ul></ul></ul></ul><ul><ul><ul><ul><li>O Caso de Uso é finalizado. </li></ul></ul></ul></ul>Especificação de um Caso de Uso
  25. 25. <ul><li>Fluxos de Eventos Alternativos </li></ul><ul><ul><li>No Fluxo de Eventos Principal, caso ocorra alguma condição em algum dos passos, deve-se executar um Fluxo Alternativo para aquele passo. </li></ul></ul><ul><li>Orientações: </li></ul><ul><ul><li>Um Fluxo Alternativo pode conter outros Fluxos Alternativos e pode retornar para o fluxo principal </li></ul></ul>Especificação de um Caso de Uso
  26. 26. <ul><li>Fluxos de Eventos Alternativos (Continuação): </li></ul><ul><ul><li>Sugestão: </li></ul></ul><ul><ul><ul><li>Fluxo Principal </li></ul></ul></ul><ul><ul><ul><ul><ul><li>O Usuário ... (A1) </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>O Sistema apresenta a tela XXX... </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>O Usuário ... (A2) </li></ul></ul></ul></ul></ul><ul><ul><ul><li>Fluxos Alternativos </li></ul></ul></ul><ul><ul><ul><ul><li>A1: [ nome do fluxo alternativo A1 ] </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>O Usuário ... (A3) </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>O Sistema ... </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><li>A2: [ nome do fluxo alternativo A2 ] </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>... </li></ul></ul></ul></ul></ul>Especificação de um Caso de Uso
  27. 27. <ul><li>Fluxos de Exceção </li></ul><ul><ul><li>Descrevem os procedimentos que devem ser adotados no caso de erros durante os fluxos principal e alternativos. </li></ul></ul>Especificação de um Caso de Uso
  28. 28. <ul><li>Cenários : </li></ul><ul><ul><li>São exemplos específicos de fluxos de um Caso de Uso. São úteis para validar os fluxos. </li></ul></ul><ul><ul><li>Exemplos: </li></ul></ul><ul><ul><ul><li>Cenário 1: Saldo da conta igual a R$ 1000,00 e cliente tenta sacar R$ 2.000,00 </li></ul></ul></ul><ul><ul><ul><li>Cenário 2: Saldo da conta igual a R$ 1000,00 e cliente saca um valor menor que o saldo, com sucesso </li></ul></ul></ul>Especificação de um Caso de Uso
  29. 29. Caso de Uso Políticas Restrições, proibições ou obrigações para o Ator Regras do Sistema Restrições, proibições ou obrigações para o Sistema Regras Regras (Exclusivas) Regras (Reusáveis) Caso de Uso Sistema Processo Regras de Negócio Especificação de um Caso de Uso
  30. 30. <ul><li>Formatos das Regras de Negócio </li></ul><ul><ul><li>“ {Sujeito da Frase} deve ...” (obrigar) </li></ul></ul><ul><ul><ul><li>Exemplo: R1: Um pedido de empréstimo acima de R$ 1.000,00 deve ter dois avalistas. </li></ul></ul></ul><ul><ul><li>“ {Sujeito da Frase} pode ... somente se ...” (restringir) </li></ul></ul><ul><ul><ul><li>Exemplo: R2: Um saque pode ser feito somente se a conta estiver ativa e o saldo for suficiente. </li></ul></ul></ul><ul><ul><li>“ {Sujeito da Frase} não pode ...” (proibir) </li></ul></ul><ul><ul><ul><li>Exemplo: R3: Um Cliente não pode fazer um empréstimo se tiver restritivos. </li></ul></ul></ul>Especificação de um Caso de Uso
  31. 31. <ul><li>Exemplos Comentados </li></ul><ul><li>Exemplo 1: Um Cliente do Banco deve ter uma conta corrente </li></ul><ul><li>Comentário : Uma regra sempre deve ser declarada através de uma frase com sujeito </li></ul><ul><li>Exemplo 2: Um Cliente deve apresentar dois avalistas, se o valor do empréstimo for superior a R$ 10.000,00. </li></ul><ul><li>Comentário: Uma regra pode ser qualificada com as palavras “ se ” e “ quando ” </li></ul>Especificação de um Caso de Uso
  32. 32. <ul><li>Exemplo 2: O sistema deve permitir o saque se a conta estiver ativa e se o saldo for suficiente </li></ul><ul><li>Comentário: Para especificar regras implementáveis podemos utilizar como sujeito o Sistema . </li></ul>Especificação de um Caso de Uso
  33. 33. <ul><li>Exemplo: Um Cliente novo deve receber talão de cheque depois de 30 dias da abertura da conta. </li></ul><ul><li>Comentário: Uma regra pode ser qualificada com palavras que façam referência ao tempo, tais como “ antes ”, “ depois ”, “ durante ”, “ por (um intervalo de tempo)”, “ em (um momento ou um intervalo de tempo)” </li></ul>Especificação de um Caso de Uso
  34. 34. <ul><li>Exemplo: Considere os passos do Fluxo Principal abaixo </li></ul><ul><ul><li>O usuário solicita o saque. </li></ul></ul><ul><ul><li>Se o saque for aprovado, o sistema libera o dinheiro. </li></ul></ul><ul><li>Comentários: </li></ul><ul><ul><li>1) Fluxo principal ou alternativo começando com “ se ”, pode estar escondendo uma regra. Tente reescrevê-la numa frase com sujeito e seguindo as orientações apresentadas. </li></ul></ul><ul><ul><li>2) O exemplo revisado conforme o padrão é assim: </li></ul></ul><ul><ul><ul><li>1. O usuário solicita o saque </li></ul></ul></ul><ul><ul><ul><li>2. O sistema libera o dinheiro (R8). </li></ul></ul></ul>Especificação de um Caso de Uso
  35. 35. <ul><li>Comentários: </li></ul><ul><ul><li>3) A regra R8 deve ser especificada no Modelo de Regras e apenas referenciada no Caso de Uso: “R8: O sistema deve permitir o saque se a conta estiver ativa e o saldo for suficiente”. </li></ul></ul><ul><ul><li>4) Este padrão estabelece que a regra deve começar com um sujeito e não com “se” para evitar que o analista seja induzido a escrever pseudo-código. </li></ul></ul>Especificação de um Caso de Uso
  36. 36. Fluxo de Eventos dos Casos de Uso – Exemplos Saque com cartão: UC001 – Saque com cartão Telefone Celular: UC001 – Realizar Chamada Casos de Uso
  37. 37. Exemplo: Estudo de Caso 1 – Sistema de Empréstimos Exercícios: Estudo de Caso 3 – Revenda de Celulares Casos de Uso
  38. 38.   <ul><li>O Diagrama de Caso de Uso pode ser reestruturado para melhor demonstrar o encadeamento das funções. </li></ul><ul><li>A reestruturação é feita a partir dos relacionamentos existentes entre atores e entre casos de uso. </li></ul>Diagrama de Caso de Uso Estruturação de um Diagrama de Caso de Uso
  39. 39.   Relacionamento entre atores Os atores podem ser organizados em hierarquias, em que atores mais especializados herdam o comportamento dos atores mais generalizados : Casos de Uso Cliente Pessoa jurídica Pessoa física
  40. 40.   <ul><li>Relacionamentos entre casos de uso </li></ul><ul><li>Existem três tipos de relacionamento entre casos de uso: </li></ul><ul><ul><li>Generalização ou Herança </li></ul></ul><ul><ul><li>Uso (Include) </li></ul></ul><ul><ul><li>Extensão (Extend) </li></ul></ul><ul><li>1.     Generalização : Este relacionamento é usado quando um Caso de Uso é semelhante a outro, mas faz um pouco mais. Neste caso, o segundo caso é uma especialização do primeiro. </li></ul><ul><li>Os casos de uso genéricos são chamados abstrações. </li></ul><ul><li>  </li></ul><ul><li>A generalização é representada por uma seta oca, que aponta do caso de uso específico para o caso de uso mais genérico. </li></ul>Casos de Uso
  41. 41.   Relacionamentos entre casos de uso 1.     Generalização: (Exemplos)  Casos de Uso Saque Saque Automático Saque Manual Agendar Horário Agendar Via Web Agendar Manual Exemplo1 Exemplo 2
  42. 42.   Relacionamentos entre casos de uso 2.   Uso (Include): Ocorre quando existe uma parte do comportamento de um caso de uso que pode ser usado em outro caso, ou seja, uma rotina comum. Para não ficar repetindo este comportamento em todos os Casos de Uso, faz-se um Caso novo e usa-se este caso.   É utilizado para agrupar funcionalidades comuns utilizadas por diversos casos de uso, e não está sujeita a nenhuma condição.   A inclusão é representada por uma linha pontilhada com uma seta aberta que sai do caso de uso base e aponta para o caso de uso incluído. Casos de Uso
  43. 43. Relacionamentos entre casos de uso 2.     Uso (Include): (Exemplos)  <include> <include> <include> <include> Casos de Uso Saque Verificar senha Consulta Saldo Venda Atualizar Estoque Compra Fornecedor Exemplo1 Exemplo 2
  44. 44. <ul><li>Relacionamentos entre casos de uso </li></ul><ul><li>3.   Extensão (Extend): É semelhante ao Uso, porém só existe a extensão sujeita a uma determinada condição, ou seja, o comportamento do caso de uso estendido é inserido somente se uma condição for Verdadeira. </li></ul><ul><li>A extensão é representada por uma linha pontilhada com uma seta aberta, que sai do caso de uso estendido e aponta para o caso de uso base. </li></ul>Casos de Uso
  45. 45. Casos de Uso Relacionamentos entre casos de uso 3.     Extensão (Extend): (Exemplos)  Venda Consulta SPC <extend> Discar número Discar número da memória <extend>
  46. 46. Exercício: Reestruturar os Diagramas de Caso de Uso dos Estudos de Caso Casos de Uso

×