Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Aula3 casos de uso

Aula

Aula3 casos de uso

  1. 1. Casos de Uso Prof ª Diana F. Adamatti Análise e Projeto de Software Universidade Católica de Pelotas
  2. 2. Introdução (1/2)‏ <ul><li>Cenários de Uso (Casos de Uso)‏ </li></ul><ul><ul><li>Técnica oriunda da dramaturgia </li></ul></ul><ul><ul><li>Descrição gráfica ou textual de situações atuais ou desejadas do sistema </li></ul></ul><ul><ul><li>Cenas </li></ul></ul><ul><ul><ul><li>Atores </li></ul></ul></ul><ul><ul><ul><li>Ações </li></ul></ul></ul>
  3. 3. Introdução (2/2)‏ <ul><li>Uma forma de estruturar requisitos </li></ul><ul><li>Modelos gráficos e linguagem natural baseada; </li></ul><ul><li>Representam o que os usuários podem fazer no sistema; </li></ul><ul><li>São independentes do método de análise (OO, estruturado, etc.). </li></ul>
  4. 4. Casos de Uso: conceitos <ul><li>Também chamado Use Case </li></ul><ul><li>“ Um caso de uso é uma descrição narrativa de uma seqüência de eventos que ocorre quando um ator (agente externo) usa um sistema para realizar uma tarefa” [Jacobson] </li></ul><ul><li>“ Um caso de uso especifica um comportamento de um sistema segundo uma perspectiva externa e é uma descrição de um conjunto de seqüência de ações realizadas pelo sistema para produzir um resultado de valor observável por um ator.” [Grady Booch] </li></ul>
  5. 5. Casos de Uso <ul><li>É uma iteração típica entre sistema e um agente externo chamado ATOR </li></ul><ul><li>Captura função visível ao ATOR </li></ul><ul><li>A funcionalidade do sistema é definida por um conjunto de casos de uso </li></ul><ul><li>Um caso de uso mapeia ATORES em funções. </li></ul><ul><li>ATORES não precisam ser pessoas, podem ser outros sistemas ou dispositivos. </li></ul>
  6. 6. Casos de Uso: Objetivos <ul><li>Caracterizar os requisitos do sistema: </li></ul><ul><li>Identificar entidades relevantes, como se relacionam e como se comportam. </li></ul><ul><li>Ser passível de compreensão tanto por desenvolvedores como por usuários; </li></ul><ul><li>Descrever o sistema sob uma perspectiva externa ( o que ele faz, não como faz) – abordagem caixa preta; </li></ul><ul><li>Ser completo, consistente e não ambíguo. </li></ul>
  7. 7. Casos de Uso: Objetivos <ul><li>Devem responder (Jacobson): </li></ul><ul><li>Quem são os atores? </li></ul><ul><li>Quais são seus objetivos? </li></ul><ul><li>Que pré-condições existem? </li></ul><ul><li>Quais as tarefas principais realizadas? </li></ul><ul><li>Que exceções devem ser consideradas? </li></ul><ul><li>Que variações são possíveis nas interações? </li></ul><ul><li>Que informações do sistema serão adquiridas, produzidas ou alteradas? </li></ul>
  8. 8. Casos de Uso: Componentes <ul><li>Atores: é um papel que estimula/solicita ações/eventos do sistema e recebe reações </li></ul><ul><li>Casos de Uso: documento narrativo que descreve seqüência de eventos feitos pelo sistema por um ator no uso do sistema </li></ul><ul><li>Sistema: sistema a ser modelado </li></ul>
  9. 9. Passos 1. Identificação dos atores; 2. Captura dos casos de uso; 3. Criação de diagramas de casos de uso; 4. Elaboração da descrição de cada caso de uso; 5. Análise de possíveis associações entre casos de uso; 6. Separação dos casos de uso em subsistemas.
  10. 10. Identificando Atores (1/2)‏ <ul><li>Um ator é um papel específico que um usuário pode desempenhar; </li></ul><ul><li>Um mesmo usuário pode desempenhar vários papéis , cada hora sendo um ator diferente. </li></ul><ul><li>Modela qualquer agente externo que possa interagir com o sistema: </li></ul><ul><ul><li>Usuários, outros sistemas, dispositivos, etc.; </li></ul></ul><ul><li>Delimitam o escopo do sistema; </li></ul>
  11. 11. Identificando Atores (2/2)‏ <ul><li>Quem utiliza o sistema? </li></ul><ul><li>Quem instala e mantém o sistema? </li></ul><ul><li>Que outros sistemas/dispositivos utilizam o sistema ou são utilizados por ele? </li></ul><ul><li>Quem obtém informação do sistema? </li></ul><ul><li>Quem provê informação ao sistema? </li></ul><ul><li>O que o sistema faz automaticamente? </li></ul>
  12. 12. Atores: Exemplo <ul><ul><li>Cliente: pessoa que compra produtos </li></ul></ul><ul><ul><li>Funcionário: pessoa que realiza operações específicas na loja e atendimento ao cliente </li></ul></ul><ul><ul><li>Transportador: empresa que entrega o produto </li></ul></ul><ul><ul><li>Sistema de pagamento: sistema que debita valor da conta do cartão de crédito do cliente </li></ul></ul><ul><ul><li>Sistema de estoque: sistema que controla o estoque de produtos na loja </li></ul></ul>
  13. 13. Passos 1. Identificação dos atores; 2. Captura dos casos de uso; 3. Criação de diagramas de casos de uso; 4. Elaboração da descrição de cada caso de uso; 5. Análise de possíveis associações entre casos de uso; 6. Separação dos casos de uso em subsistemas.
  14. 14. Captura dos Casos de Uso <ul><li>Feita durante a concepção (conversas iniciais) e </li></ul><ul><li>elicitação (entrevistas, etc.); </li></ul><ul><li>Identifique as interações discretas entre usuários e sistema; </li></ul><ul><li>Dê um nome a cada uma delas; </li></ul><ul><li>Escreva uma descrição textual pequena. </li></ul><ul><li>Geralmente são identificados em paralelo com a </li></ul><ul><li>identificação dos atores; </li></ul>
  15. 15. Identificando Casos de Uso (1/3)‏ <ul><li>Em geral, difícil decidir entre um ou vários use cases </li></ul><ul><li>Por exemplo, seriam use cases </li></ul><ul><ul><li>Inserir cartão em um Caixa Automático? </li></ul></ul><ul><ul><li>Entrar com a senha? </li></ul></ul><ul><ul><li>Receber o cartão de volta? </li></ul></ul>
  16. 16. Identificando Casos de Usos (2/3)‏ <ul><li>Representar valor observável para ator </li></ul><ul><li>Pode-se determinar </li></ul><ul><ul><li>De interações (seqüência de ações) com o sistema que resultam valores para atores </li></ul></ul><ul><ul><li>Satisfaz um objetivo particular de um ator que o sistema deve prover </li></ul></ul>
  17. 17. Identificando Casos de Uso (3/3)‏ <ul><li>Que funções o ator irá querer do sistema? </li></ul><ul><li>O sistema armazena informações? </li></ul><ul><li>Que atores irão criar, ler, atualizar ou apagar estas informações? </li></ul><ul><li>O sistema precisa notificar algum ator sobre alguma </li></ul><ul><li>mudança interna? </li></ul><ul><li>Existem eventos externos que o sistema precisa estar </li></ul><ul><li>ciente? </li></ul><ul><li>Que atores informam o sistema sobre estes eventos? </li></ul>
  18. 18. Passos 1. Identificação dos atores; 2. Captura dos casos de uso; 3. Criação de diagramas de casos de uso; 4. Elaboração da descrição de cada caso de uso; 5. Análise de possíveis associações entre casos de uso; 6. Separação dos casos de uso em subsistemas.
  19. 19. Diagramas de Casos de Uso <ul><li>Representam atores , casos de uso e suas associações ; </li></ul><ul><li>Uma associação entre um ator e um caso de uso significa que estímulos podem ser enviados entre atores e casos de uso, que se comunicam entre si; </li></ul><ul><li>Provêem uma visão geral das funcionalidades do sistema. </li></ul>
  20. 20. Diagrama de Casos de Uso: Elementos (1/5)‏ <ul><li>Caso de Uso </li></ul><ul><li>Serviço usado por um ou mais atores </li></ul><ul><li>OU Seqüência de ações , executada pelo sistema, que gera um resultado </li></ul>Função Ação: Procedimento computacional/algorítmico atômico
  21. 21. Diagrama de Casos de Uso: Elementos (2/5)‏ <ul><li>Alguém ou alguma coisa ( fora do sistema ) que interage com o sistema </li></ul><ul><ul><li>Estimula/solicita ações/eventos do sistema e recebe reações </li></ul></ul><ul><li>Agentes externos ao sistema </li></ul>Emissor/Receptor Um Ator pode ser um outro sistema que interage com o sistema que está sendo especificado <ul><li>Ator </li></ul>
  22. 22. Diagrama de Casos de Uso: Elementos (3/5)‏ <ul><li>Relaciona atores com casos de uso </li></ul><ul><li>Relaciona casos de uso </li></ul><ul><li>Relacionamento / Associação </li></ul>Relacionamento
  23. 23. Diagrama de Caso de Uso: Elementos (4/5)‏ Função Emissor Função Receptor Ator Particular Resultado de Valor Observável
  24. 24. Diagrama de Caso de Uso: Elementos (5/5)‏
  25. 25. Caso de uso em alto nível para o Powerpoint Diagrama de Caso de Uso: Exemplo 1 <ul><li>Embora ele seja um caso de uso válido para o Powerpoint, e ele capture completamente a interação do usuário com o Powerpoint, é muito pouco detalhado. </li></ul>
  26. 26. Casos de uso mais detalhados para o Powerpoint. Diagrama de Caso de Uso: Exemplo 2
  27. 27. Sobre o último exemplo... <ul><li>O último exemplo fornece uma visão mais útil do powerpoint. </li></ul><ul><li>Os casos são vagos, mas eles focam sua atenção nas características principais, e podem ajudar no desenvolvimento de uma especificação de requisitos mais detalhada. </li></ul>
  28. 28. Exemplo de Caso de Uso - ATM (1/2)‏ <ul><li>Cliente de banco pode usar um caixa automático para </li></ul><ul><ul><li>sacar dinheiro, transferir dinheiro ou consultar o saldo da conta </li></ul></ul><ul><li>Ator: Cliente </li></ul><ul><li>Use cases : Sacar dinheiro , transferir dinheiro e consultar saldo </li></ul>
  29. 29. Exemplo de Caso de Uso - ATM (2/2)‏ Cliente Transferir dinheiro Sacar dinheiro Consultar saldo Valor de resultado observável
  30. 30. Exemplo ATM: mais uma versão
  31. 31. Exercício 1 <ul><li>Considere um sistema de empréstimo de livros de uma biblioteca e defina o diagrama de casos de uso do sistema. </li></ul>
  32. 32. Passos 1. Identificação dos atores; 2. Captura dos casos de uso; 3. Criação de diagramas de casos de uso; 4. Elaboração da descrição de cada caso de uso; 5. Análise de possíveis associações entre casos de uso; 6. Separação dos casos de uso em subsistemas.
  33. 33. Descrição do Caso de Uso <ul><li>Define o que o sistema faz quando o caso de uso é realizado </li></ul><ul><li>Cada caso de uso representa um fluxo de eventos específico (seqüência de ações)‏ </li></ul>Função Emissor Passo 1 Passo 2 … Passo N Descrição
  34. 34. Descrição dos Casos de Uso <ul><li>O diagrama é insuficiente para dizer o que cada caso de uso faz; </li></ul><ul><li>Deve-se descrever textualmente o fluxo de eventos de cada caso separadamente; </li></ul><ul><li>Esta tarefa deve ser iniciada após alguma estabilidade dos casos de uso, para evitar perda de tempo. </li></ul>
  35. 35. Descrição de Casos de Uso <ul><li>Deve conter: </li></ul><ul><ul><li>Nome do caso de uso; </li></ul></ul><ul><ul><li>Descrição breve / objetivos; </li></ul></ul><ul><ul><li>Pré-condições e pós-condições; </li></ul></ul><ul><ul><li>Entradas e saídas de dados; </li></ul></ul><ul><ul><li>Fluxos (normal, alternativos, cenários); </li></ul></ul><ul><ul><li>Classes/entidades participantes; </li></ul></ul><ul><ul><li>Restrições de domínio; </li></ul></ul><ul><ul><li>Requisitos não-funcionais associados; </li></ul></ul><ul><ul><li>Outras observações. </li></ul></ul>
  36. 36. Exemplo de Descrição de Casos de Uso <ul><li>Um esboço inicial sobre “Sacar dinheiro” seria: </li></ul><ul><ul><li>O use case inicia quando o Cliente insere um cartão no CA. Sistema lê e valida informação do cartão </li></ul></ul><ul><ul><li>Sistema pede a senha. Cliente entra com a senha. Sistema valida a senha. </li></ul></ul><ul><ul><li>Sistema pede seleção do serviço. Cliente escolhe “Sacar dinheiro”. </li></ul></ul><ul><ul><li>Sistema pede a quantia a sacar. Cliente informa. </li></ul></ul><ul><ul><li>Sistema pede seleção da conta (corrente, etc). Cliente informa. </li></ul></ul><ul><ul><li>6. Sistema comunica com a rede para validar a conta, senha e o valor a sacar. </li></ul></ul><ul><ul><li>7 . Sistema comunica com a rede para validar a conta, senha e o valor a sacar. </li></ul></ul><ul><ul><li>8 . Sistema entrega quantia solicitada. </li></ul></ul>
  37. 37. Descrição de Casos de Uso <ul><li>Na descrição do que o sistema faz através de fluxos de eventos completos </li></ul><ul><ul><li>Surgem caminhos alternativos </li></ul></ul><ul><ul><li>Casos diferentes a considerar </li></ul></ul><ul><ul><li>Efeitos/valores diferentes a produzir </li></ul></ul><ul><li>Eventualmente descreve todos esses caminhos possíveis (ou sub-fluxos)‏ </li></ul>
  38. 38. Fluxo Normal e Fluxo Alternativo <ul><li>Curso Normal: mundo perfeito, tudo ocorre como planejado; </li></ul><ul><li>Cursos Alternativos / Excepcionais: exceções, erros, fluxos alternativos, etc. </li></ul><ul><li>Para encontrá-los, análise o curso normal e pergunte, para cada item: </li></ul><ul><ul><li>Tem alguma outra ação que pode ser feita? </li></ul></ul><ul><ul><li>Tem alguma coisa que pode dar errado? </li></ul></ul><ul><ul><li>Existe algum comportamento que pode ocorrer a qualquer momento? </li></ul></ul>
  39. 39. Fluxo alternativo: Exemplo <ul><li>O ator sai da aplicação; </li></ul><ul><li>O ator cancela a operação corrente; </li></ul><ul><li>O ator pede ajuda; </li></ul><ul><li>O ator provê dados inválidos; </li></ul><ul><li>O ator provê dados incompletos; </li></ul><ul><li>O ator escolhe uma maneira alternativa de realizar o caso de uso; </li></ul><ul><li>O sistema falha; </li></ul><ul><li>O sistema está indisponível. </li></ul>
  40. 40. Exemplo de Sub-fluxos <ul><li>Seja o use case Validar usuário </li></ul><ul><ul><li>Fluxo principal: </li></ul></ul><ul><ul><ul><li>O use case inicia quando o sistema pede ao Cliente a senha. Cliente entra com senha. Sistema verifica se a senha é válida. Se a senha é válida, sistema confirma e termina o use case . </li></ul></ul></ul><ul><ul><li>Fluxo excepcional: </li></ul></ul><ul><ul><ul><li>Cliente pode cancelar a transação a qualquer momento pressionando a tecla ESC, reiniciando o use case . Nenhuma modificação é feita na conta do Cliente. </li></ul></ul></ul><ul><ul><li>Fluxo excepcional: </li></ul></ul><ul><ul><ul><li>Se Cliente entra com senha inválida, o use case reinicia. </li></ul></ul></ul>
  41. 41. Passos 1. Identificação dos atores; 2. Captura dos casos de uso; 3. Criação de diagramas de casos de uso; 4. Elaboração da descrição de cada caso de uso; 5. Análise de possíveis associações entre casos de uso; 6. Separação dos casos de uso em subsistemas.
  42. 42. Associações entre Casos de Uso <ul><li>Há três possibilidades de Relacionamento entre casos de uso: </li></ul><ul><ul><li>Inclusão ( include )‏ </li></ul></ul><ul><ul><li>Extensão ( extend )‏ </li></ul></ul><ul><ul><li>Generalização/Especialização ( Generalization )‏ </li></ul></ul>
  43. 43. Inclusão, Extensão e Generalização
  44. 44. Inclusão (1/2)‏ <ul><li>Um caso de uso incorpora explicitamente o comportamento de outro; </li></ul><ul><li>Funcionalidade comum é separada em um caso que é reutilizado por outros. </li></ul>Tanto “Efetuar Saque” quanto “Informar saldo” necessitam da senha, então cria-se um novo caso de uso “Validar cliente” e incluí-lo
  45. 45. Inclusão (2/2)‏ <ul><li>Descrição de Consultar saldo </li></ul><ul><ul><li>Fluxo de Eventos Principal: </li></ul></ul><ul><ul><ul><li>include (Autenticar usuário). Sistema pede a Cliente que selecione tipo de conta (corrente, etc). ... </li></ul></ul></ul>
  46. 46. Extensão (1/3)‏ <ul><li>Use case pode ser estendido por outro </li></ul><ul><ul><li>Extensão de funcionalidade/Caso excepcional </li></ul></ul><ul><li>Um caso de uso base incorpora implicitamente o comportamento de um outro caso de uso em um local especificado; </li></ul><ul><li>Permite capturar os requisitos funcionais de um sistema de forma incremental. </li></ul>
  47. 47. Extensão (2/3)‏ <ul><li>Pode ser usado para modelar: </li></ul><ul><li>Partes opcionais de casos de uso; </li></ul><ul><li>Cursos complexos e alternativos; </li></ul><ul><li>Subseqüências que são executadas apenas em certos casos; </li></ul><ul><li>A inserção de diversos casos de uso diferentes dentro de um outro. </li></ul>
  48. 48. Extensão (3/3)‏ Atendimento Atendimento de urgência << extend >> <ul><li>Descrição de Atendimento </li></ul><ul><ul><li>Fluxo de Eventos Principal: </li></ul></ul><ul><ul><ul><li>Colete os itens do pedido. (urgente) . Submeta pedido para processamento. </li></ul></ul></ul>
  49. 49. Extensão x Inclusão <ul><li>Extensão: </li></ul><ul><ul><li>Quando estiver descrevendo uma variação de um curso normal; </li></ul></ul><ul><ul><li>O caso estendido conhece o caso base. </li></ul></ul><ul><li>Inclusão: </li></ul><ul><ul><li>Quando houver repetição de um mesmo fluxo em dois ou mais casos de uso e quer se evitar isso; </li></ul></ul><ul><ul><li>O caso base conhece o caso incluído. </li></ul></ul>
  50. 50. Especialização (1/2)‏ <ul><li>Um Caso de Uso pode especializar outro </li></ul><ul><li>HERANÇA: Um caso de uso filho herda o comportamento do caso de uso pai; </li></ul><ul><ul><li>Acrescenta ou sobrescreve comportamento do pai e pode substituir o pai em qualquer lugar que este apareça. </li></ul></ul><ul><li>Especialização permite modelar comportamento de estruturas de aplicação em comum </li></ul>
  51. 51. Especialização (2/2)‏ Atendimento Atendimento de urgência   Cliente Cliente comercial Pode ser aplicada a atores também!
  52. 52. Exemplo de Caso de Uso Transação de cartão  Cliente corporativo  Cliente individual Cliente Instituição vendedora Financeira Sistema de validação de cartão de crédito Processa fatura Reconcilia transações Gerencia conta
  53. 53. Separação em Subsistemas <ul><li>Facilita o entendimento e a leitura; </li></ul><ul><li>Utiliza-se o ícone de pacote da UML; </li></ul><ul><li>Setas pontilhadas indicam dependência – um pacote solicita serviços de outro. </li></ul>
  54. 54. Separação em Subsistemas <ul><li>Sistema pequeno não demanda estruturação </li></ul><ul><ul><li>Exemplo, seis use cases , com dois/três atores </li></ul></ul><ul><li>Já sistemas maiores requerem princípios de estruturação e organização </li></ul><ul><ul><li>Caso contrário, planejamento, atribuição de prioridades, etc., podem se tornar difíceis </li></ul></ul>
  55. 55. Ferramenta CASE - UML <ul><li>Uma ferramenta CASE ( Computer-Aided Software Engineering ) auxilia no desenho de diagramas de caso de uso; </li></ul><ul><li>Há várias ferramentas disponíveis; </li></ul><ul><li>Recomendamos o Jude UML: </li></ul><ul><li>Download em http://jude.change-vision.com ; </li></ul><ul><li>Versão Community é gratuita. </li></ul>
  56. 56. Exemplos de casos de uso (Relacionamentos em um hospital)‏
  57. 57. Exemplo 1
  58. 58. Inclusão: Exemplo Sacar dinheiro Consultar saldo Autenticar usuário << include >> << include >>

×