Aula3 casos de uso

22.273 visualizações

Publicada em

Aula

1 comentário
14 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
22.273
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7
Ações
Compartilhamentos
0
Downloads
742
Comentários
1
Gostaram
14
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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 >>

×