Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente externo) usando o sistema para completar, do início ao fim, um determinado processo Casos de Uso Buy Items Representação em UML: Objetivos de um Caso de Uso Ser compreensível para os usários leigos em informática Auxiliar a tarefa de análise, especificando funcionalidades e comportamento do sistema Delimitar o sistema Servir de base para derivar casos de teste Atores e Casos de Uso Um caso de uso possui um ator que o inicia, que gera o estímulo inicial, e possivelmente vários atores participantes Atores Entidades externas ao sistema que de algum modo participam da estória do caso de uso Estimulam o sistema com eventos de entrada, ou recebem alguma coisa dele Designados pelo papel que exercem no caso de uso Ex.: Cliente, Operador, etc. Representação em UML: Customer Diagramas de Caso de Uso Ilustram um conjunto de casos de uso e atores para um sistema e os relacionamentos entre eles O ator iniciador deve ser indicado explicitamente na descrição do caso de uso POST Buy Items Algumas categorias típicas de atores incluem: papeis exercidos por pessoas sistemas de computação, outros softwares dispositivos elétricos e mecânicos hardware Cashier Customer Log In Refund Purchased items 1 Relacionamentos no Diagrama de Casos de Uso Relacionamento entre atores Relacionamento de Associação Relacionamento entre atores _________ Relacionamento entre atores e casos de uso Cliente Caixa Relacionamento de Generalização _________ Relacionamento entre casos de uso Funcionario Cliente Relacionamento entre atores e casos de uso Herança entre atores _________ Gerente Buy Items Cliente Gerente de Compras _________ Gerente de Vendas Buy Items Customer A seta pode indicar duas alternativas a escolher: ator que inicia o caso de uso ou simplesmente a direção dos dados Relacionamento entre Casos de Uso <<uses>> ou << include>> Relacionamento de Uso ou Include <<extends>> Utilizar quando se tem um bloco de comportamento que é o mesmo para vários casos de uso. Representar o fluxo comum como um outro caso de uso B a ser chamado pelo caso de uso A complexo: A <<uses>>B Validar Cliente pode ser um caso de uso utilizado por outro caso tal como Abrir Conta além de Realizar Pedido ______ RealizarPedido Cliente ________ RealizarPedido Cliente <<uses>> ValidarCliente <<extends>> CadastrarCliente 2 Relacionamento de Extensão Utilizar quando se tem dois casos de usos que fazem algo parecido, só que o caso de uso B faz alguma coisa a mais que A. B estende A B representa alguma situação não muito comum que ocorre em A mediante a satisfação de uma pré-condição Relacionamento de Generalização relação estrutural entre um caso de uso _______ mais geral e um caso Identificar Usuário de uso mais específico. Customer o caso de uso mais geral é uma generalização (abstração) do ou dos casos Verificar Senha de uso mais específicos. O caso de uso geral, representa as partes comuns de casos de uso especializados. Fluxo de Eventos, Cenários Um caso de uso descreve um fluxo de eventos para realizar uma operação Cenário: é uma das formas possíveis de se realizar um caso de uso Tipos de fluxos: Pré e Pós Condições Condições que devem ser verdadeiras antes de o caso de uso ser executado, ou após a sua execução. Ex: retirar dinheiro em um caixa Típicos: Principal ou Básico Atípicos: Alternativos, casos de erro, cancelamento, etc. Interfaces entre Atores e Casos de Uso Identificam quais operações o ator (ou o caso de uso) realizam Auxiliam a especificar as interações e a reutilizar casos de uso Tipos de Caso de Uso Com Respeito à Importância ________ Realizar Pedido Secundário Representam processos menos importantes ou mais raros (ex.: Cadastrar Operadores) -------------- Interface Cliente Primário Representam os processos principais ou mais comuns (ex.: Comprar Itens) Cliente Pré-condição: cliente precisa ter conta no banco Pós-condição: o terminal fica pronto para outro cliente. Opcional Representam processos que podem ser ignorados ou incluídos em futuras versões do sistema (ex.: Solicitar Estoque para um Novo Produto) 3 Tipos de Casos de Uso com Respeito à Descrição Textual Exemplo de um caso de uso de alto-nível: Alto-nível Casos de Uso Alto Nível Expandido Caso de uso: Atores: Tipo: Descrição: Breve descrição de um processo, normalmente em duas ou três frases, e deliberadamente vago em decisões de projeto Criados na fase inicial de requisitos Descrição passo a passo dos fluxos de eventos de um processo Durante a fase de requisitos, apenas os casos de uso mais importantes são geralmente escritos nesse formato A UML não especifica um formato rígido para os cabeçalhos e a estrutura de um caso de uso Podem ser alterados de acordo com as necessidades de documentação Caso de Uso Expandido Exemplo de um caso de uso expandido: Caso de uso: Atores: Propósito: Descrição: Tipo: Referencia: Caso de Uso Expandido Exemplo de um caso de uso expandido (cont.): Comprar Itens com Dinheiro (Buy Items with Cash) Cliente (Iniciador), Operador Capturar uma venda e seu pagamento em dinheiro. Um Cliente chega no caixa com itens para comprar. O Operador registra os itens e coleta um pagamento com dinheiro. Ao final, o Cliente sai com os itens. primário e essencial Funções: R1.1, R1.2, R1.3, R1.7, R1.9, R2.1 Típica Seqüência de Eventos Ação do Ator Típica Seqüência de Eventos Ação do Ator 2. O Operador registra o identificador de cada item. Se há mais de um do mesmo item, o Operador também pode infor-mar a quantidade. 4. Após processar o último item, o Operador indica ao POST que a entrada de itens terminou. Resposta do Sistema 6. O Operador informa o total ao Cliente. 1. Este caso de uso começa quando um Cliente chega no caixa com itens para comprar. Caso de Uso Expandido Típica Seqüência de Eventos Ação do Ator 10. O Operador deposita o dinheiro e retira o troco devido. O Operador entrega o troco e o recibo ao Cliente. 12. O Cliente sai com os itens comprados. Resposta do Sistema . Essencial 9. Mostra o troco devido. Emite um recibo. 11. Registra a venda no log de vendas completadas. . Resposta do Sistema 3. Determina o preço do item e adiciona informação sobre o item à transação de venda em andamento. Mostra a descrição e o preço do item corrente. 5. Calcula e mostra o valor total da venda. Tipos de Casos de Uso com Respeito à Implementação Exemplo de um caso de uso expandido (cont.): 7. O Cliente entrega um pagamento em dinheiro, possivelmente maior do que o valor total. 8. O Operador registra o valor recebido em dinheiro. Comprar Itens (Buy Items) Cliente (Customer), Operador (Cashier ) primário Um Cliente chega no caixa com itens para comprar. O Operador registra os itens e coleta o pagamento. Ao final, o Cliente sai com os itens. Descrição de um processo em termos de sua motivação e atividades essenciais Expressos relativamente livres de detalhes de implementação, decisões de projeto, e uso de tecnologias Real Descrição de um processo em termos de seu projeto real, comprometido com tecnologias de desenvolvimento, interfaces de entrada e saída, etc. 4 Caso de Uso Essencial Caso de Uso Real Trecho do caso de uso Comprar Itens essencial Trecho do caso de uso Comprar Itens real Ação do Ator 2. O Operador registra o identificador de cada item. Se há mais de um do mesmo item, o Operador também pode infor-mar a quantidade. 4. ... Resposta do Sistema 3. Determina o preço do item e adiciona informação sobre o item à transação de venda em andamento. Mostra a descrição e o preço do item corrente. 5. ... Casos de Uso com Fluxos Alternativos Caso de uso Comprar Itens Expandido Seção: Principal Ação do Ator Resposta do Sistema 1. ... 2. O Cliente escolhe o tipo de pagamento: a) Se pagamento com dinheiro, veja seção Pagamento com Dinheiro. b) ... Seção: Pagamento com Dinheiro Ação do Ator Resposta do Sistema 1. O Cliente entrega um pagamento em dinheiro ... Ação do Ator 2. Para cada item, o Operador digita o código universal de produto (UPC) no campo de entrada UPC da Janela 1. Ele então pressiona o botão “Entra Item” com o mouse ou pressiona a tecla <Enter>. Resposta do Sistema 3. Determina o preço do item e adiciona informação sobre o item à transação de venda em andamento. Mostra a descrição e o preço do item corrente na Caixa de Texto 2 da Janela 1. 4. ... 5. ... Formato para um Caso de Uso Nome do caso de uso Descrição Atores Tipo Referências Pré-condições Fluxo de eventos Fluxo principal (típico) Fluxos alternativos Fluxos não típicos (erros, cancelamentos, etc) Pós-condições Pontos de extensão Casos de uso incluídos Outros requisitos (Interfaces) Decomposição de Diagramas de Casos de Uso Pode-se dividir sistemas complexos em sub-sistemas e para cada um deles um diagrama de Casos de Uso Para mostrar o relacionamento entre esses sub-sistemas, os Casos de Uso são agrupados em Pacotes. Decomposição de Diagramas de Casos de Uso Casos de uso Adminitrativos Casos de uso Mercadológicos Casos de uso Gerais 5 Identificando Casos de Uso Normalmente não são eventos ou passos individuais, mas um processo completo Identificando Casos de Uso Método baseado em eventos 1. Identificar os eventos externos aos quais o sistema deve responder 2. Relacionar os eventos a atores e casos de uso Erro mais comum! Exemplos do sistema Posto Comercial Método baseado em atores 1. Identificar os atores relacionados com o sistema ou organização 2. Para cada ator, identificar os processo que eles iniciam ou participam Casos de Uso e o Limite do Sistema Casos de Uso e Funções Todas as funções do sistema identificadas na especificação dos requisitos devem ser alocadas a casos de usos Identificar os atores e casos de uso de um sistema requer a definição de seu limite de atuação Alguns limites típicos incluem: Alocação documentada através da seção Referencia Casos de Uso e o Limite do Sistema Exemplo de um diagrama de caso de uso para o sistema Posto Comercial, quando o limite de atuação é a loja inteira o software/hardware de um dispositivo ou sistema de computação um departamento de uma organização uma organização inteira Limites diferentes podem resultar em diferentes conjuntos de atores e casos de uso Recomendações Crie nomes sempre começando com um verbo Identifique primeiro os fluxos principais, iniciando com: 1. Store Buy Items Operador: Login, Retirar Dinheiro Cliente: Comprar Itens, Devolver Itens Digitar Senha? Imprimir Recibo? Este caso de uso começa quando <Ator> <inicia evento> Use a seção Seqüências não Típicas para representar desvios para seqüências de eventos incomuns ou excepcionais. Use subseções para representar desvios para seqüências alternativas com igual importância ou probabilidade de ocorrência Customer Refund Purchased items 6 Recomendações Procure estimar a dimensão (granularidade) do caso de uso. Se ele estiver muito extenso procure identificar sub-casos Procure identificar partes comuns nos seus casos de uso, e usar <<include>>. Identifique serviços comuns aos casos de uso e crie casos de uso genéricos. A medida que se definem os casos de uso um refinamento no diagrama é possível Referências Boock, G. and Rumbaugh, J. The Unified Modeling Language User Guide . Addison-Wesley, 1999 Arlow, J. and Neustadt, I. UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design, 2nd Edition, The AddisonWesley Object Technology Series, 2005. Rumbaugh, J.; Jacobson, I. and Booch , G. The Unified Modeling Language Reference Manual, 2nd Edition, The Addison-Wesley Object Technology Series, 2004. Boock, G.; Rumbaugh, J. and Jacobson, I; Unified Modeling Language User Guide, 2nd Edition, The Addison-Wesley Object Technology Series, 2005. Jacobson, I; Boock, G. and Rumbaugh, J., Unified Software Development Process, Addison-Wesley, Janeiro 1999. Larman, C. Applying UML and Patterns: An Introduction to ObjectOriented Analysis and Design Prentice-Hall, New Jersey - USA, 1997 Bezerra, E. Princípios de Análise e Projetocom a UML, ed. CampusElsevier. 2003. 7