UML Unified Modeling Language Professor: André Gustavo Bastos Lima Diagramas de Casos de Uso Professor: André Gustavo Bastos Lima DEFINIÇÃO DE CASO DE USO Segundo o RUP: “Um Caso de Uso é a relação de uma seqüência de ações que um sistema executa produzindo um resultado de valor observável para um ator específico.” UML - DIAGRAMA DE CASOS DE USO Aluno <<extend>> Consultar Disponibilidade Atualizar Financeiro <<include>> Inscrever em Curso UML - DIAGRAMA DE CASOS DE USO Visão de alto nível (perspectiva externa e dos atores); O mais informal do diagramas da UML; Representa o conjunto de atores, casos de uso, seus relacionamentos e responsabilidades; Ajuda a capturar os requisitos funcionais do sistema; É importante para a organização e modelagem de comportamentos do sistema (representação dinâmica); A sua documentação é essencial (outros diagramas da UML, como de atividades e de seqüência, mais formais e precisos, podem ser usados nessa documentação). UML - DIAGRAMA DE CASOS DE USO São as ações dos usuários com começo, meio e fim; Pode ser simples ou complexo, ter alguns parágrafos ou várias páginas (ou diagramas) em sua documentação; As funcionalidades do sistema podem ser rastreadas para casos de uso; São exemplos: Sacar Dinheiro, Comprar Produtos, Abrir Conta, Pagar Título Bancário etc. ANATOMIA DO CASO DE USO Descrição Pré-condição Fluxo Básico Fluxo Alternativo 1 Fluxo Alternativo n Pontos de Extensão Pós-condição DESCRIÇÃO Apresenta uma breve descrição do objetivo do caso de uso. Descrição Este caso de uso descreve o procedimento de saque de dinheiro em um caixa eletrônico. PRÉ-CONDIÇÃO É o estado do sistema requerido antes do caso de uso ser iniciado; Pode ser omitido (usar apenas quando relevante); Deve ser um estado de valor mensurável; A Pré-condição é uma restrição para o início do caso de uso, não o evento que inicia o caso de uso. Pré-Condição Cliente identificado corretamente. PÓS-CONDIÇÃO Uma pós-condição é o estado no qual o sistema deve estar ao final do caso de uso; Pode ser omitido, usar apenas quando adicionar valor; Deve ser um estado de valor mensurável; Pós-Condição Cartão devolvido ao cliente. CENÁRIOS É o diálogo ator-sistema detalhando a execução do caso de uso. Fluxo Básico Fluxo onde tudo dá certo. Fluxos alternativos Variações na execução do fluxo básico; Erros (exceções) que podem ocorrer no fluxo básico (em alguns processos são chamados de fluxos de exceção). FLUXO BÁSICO Fluxo Básico 1. O Cliente informa a opção de Saque. 2. O Sistema solicita o valor do saque. 3. O Cliente informa o valor e confirma a operação. 4. O Sistema verifica o valor informado. 5. O Sistema verifica o saldo do cliente .[A1] 6. O Sistema debita o valor sacado do saldo do cliente.[A2] 7. O Sistema entrega o dinheiro. 8. Fim do caso de uso. FLUXO ALTERNATIVO Fluxos Alternativos A1. Valor informado inválido 1. No passo 4 do fluxo básico o sistema verificou que o valor informado é inválido. 2. O sistema informa que o valor é inválido. 3. O sistema informa as regras para valores válidos. 4. O caso de uso volta para o passo 2 do fluxo básico. A2. Saldo insuficiente 1. No passo 5 do fluxo básico o Sistema verificou que o cliente não possui saldo. 2. O Sistema informa o saldo disponível. 3. O caso de uso volta para o passo 8 do fluxo básico. O QUE UM CASO DE USO NÃO CONTÉM O caso de uso descreve a funcionalidade do sistema de uma perspectiva orientada a tarefa (passos). O Caso de uso não contém: Detalhes da interface de usuário; Objetivos de performace; Detalhes da arquitetura da aplicação; Requisitos não funcionais. O QUE UM CASO DE USO NÃO CONTÉM Exemplos: “... O sistema exibe um DBGrid com os...” “... A resposta deverá ser retornada em menos de 10 segs...” “... O sistema inicia uma conexão com o servidor de aplicação...” “... O usuário deverá entrar com os códigos através da caneta ótica ....” COMO ENCONTRAR CASOS DE USO Identifique as interações do usuário (concentre-se nos objetivos do usuário): “Sacar dinheiro...” “Transferir dinheiro entre contas...” “Cadastrar contas de débito automático...” Descreva as funções que o usuário deseja do sistema; Descreva as funções que criam, lêem, atualizam e excluem informações; Descreva como os atores são notificados sobre alterações de estado do sistema; Descreva como o Ator necessitará informar ao sistema eventos ocorridos. NOMEANDO OS CASOS DE USO Nomeie o caso de uso com uma frase que especifique o objetivo do ator. Utilize verbos concretos, “fortes”, ao invés de verbos genéricos e fracos, exemplos: Verbos fortes: criar, calcular, migrar, receber, arquivar, registrar e ativar. Verbos fracos: controlar, gerenciar, administrar, organizar e processar. Seja explícito. Utilize termos específicos, exemplos: Termos fracos: dado e sistema. Termos fortes: pagamento e conta. NOMEANDO OS CASOS DE USO Bons nomes Nomes Ruins Depositar Dinheiro; Controle de Saque; Gravar Movimentação Bancária; Transferir Valores entre Contas Correntes. Controle de Saldo; Transferência Bancária. DEFINIÇÃO DE ATOR É qualquer coisa que interage com o sistema; Pode ser um usuário, um hardware externo ou outro sistema; Representa uma classe de usuários; Algo sobre o qual não temos controle. DEFINIÇÃO DE ATOR (CONT.) Várias pessoas podem ser representadas por um único ator Bruno é um cliente Correntista Caixa Ana Lúcia é uma cliente Eletrônico Saque de Conta Corrente DEFINIÇÃO DE ATOR (CONT.) Uma pessoa pode atuar como mais de um ator. Fulano é um cliente Correntista Caixa Eletrônico Fulano também é responsável pelo abastecimento da máquina Técnico responsável DEFINIÇÃO DE ATOR (CONT.) Ator Primário: Estimula o sistema a reagir. Ator Secundário: Responde às solicitações do sistema. Caso de uso Ator Primário Ator Secundário NOMEANDO ATORES Agrupe os indivíduos segundo a utilização do sistema; Identifique os papéis que eles assumem ao utilizar o sistema; Cada papel é um ator em potencial; Use nomes comuns para um sistema existente (do ponto de vista do usuário), não invente um nome novo; NOMEANDO ATORES Nomes ruins INSS Recepcionista IN Cadastrar Títulos Auditor MEC 3 Bons nomes MODELO DE CASOS DE USO Sacar Dinheiro Correntista Depositar Dinheiro Pagar Título Técnico do Suporte Abastecer Numerário COMUNICAÇÃO Os relacionamentos de associação entre Atores e classes de Casos de Uso são usados para indicar que o ator participa e se comunica com o sistema conforme descrito no Caso de Uso; A seta indica quem inicia a comunicação; Setas não demonstram fluxo; Setas duplas não são utilizadas. COMUNICAÇÃO Seta do Ator para o caso de uso: Ator dispara o caso de uso; Ator estimula o sistema; Ator principal. Consultar Saldo Correntista COMUNICAÇÃO Seta do Caso de Uso para o Ator: Sistema solicita informações; Sistema espera uma ação do ator; Ator secundário. Consultar Saldo Correntista Sistema Mainframe FATORAÇÃO DE CASOS DE USO Existem três tipos de relacionamento de fatoração: Inclusão – Include; Extensão – Extend; Generalização. Objetivos: Descrição de procedimentos obrigatórios; Descrição de procedimentos opcionais; Especialização de comportamento. INCLUSÃO (INCLUDE) Características: A execução do caso de uso incluído é obrigatória; O caso de uso base depende do resultado retornado pelo caso de uso incluído; A inclusão é na essência um encapsulamento. EXTENSÃO (EXTEND) Características: Representa uma fatoração implícita; A execução do caso de uso de extensão é opcional; O caso de uso de extensão é inserido no caso de uso base em locais específicos chamados “Pontos de extensão”; GENERALIZAÇÃO Utilizado para: Destacar o comportamento comum a mais de um caso de uso, mas com algumas particularidades adicionais; Demonstrar formas mais específicas comportamento do um caso de uso. de GENERALIZAÇÃO Características: Relacionamento é-um entre um caso de uso base (pai) com um ou mais casos de uso filhos; Semelhante a generalização/herança de classes; O filho herda toda a estrutura, comportamento e relacionamentos do pai; O filho é totalmente dependente da estrutura do pai. GENERALIZAÇÃO - EXEMPLO No caso de uso “Cobrança de Penalti”, podem ser representados a cobrança de penalti em tempo regulamentar e como desempate. Esses dois casos de uso têm muito do seu comportamento em comum, mas com algumas particularidades, como a reposição da bola em jogo ou não. GENERALIZAÇÃO - EXEMPLO Cobrança de Penalti Cobrança de Penalti em tempo regulamentar Cobrança de Penalti em desempate