Diretriz: Caso de Uso
Um caso de uso descreve o que o sistema faz para satisfazer um requisito. Essa diretriz explica como identificar e desenvolver casos de estudo.
Relacionamentos
Descrição Principal

Explicação

Há várias palavras-chave nessa definição:

  • Instância do caso de uso. A seqüência citada na definição é realmente um fluxo de eventos específico do sistema ou uma instância. Muitos fluxos de eventos são possíveis e muitos podem ser bem parecidos. Para tornar um modelo de casos de uso compreensível, você deve agrupar os fluxos de eventos semelhantes em um caso de uso. Identificar e descrever um caso de uso realmente significa identificar e descrever um grupo de fluxos de eventos relacionados.
  • O sistema executa. Isso significa que o sistema fornece o caso de uso. Um agente se comunica com a instância de casos de uso do sistema.
  • Um resultado observável de valor. Você pode colocar um valor em um caso de uso executado com êxito. Um caso de uso deve verificar se um agente pode realizar uma tarefa que tem um valor identificável. Isso é muito importante na determinação do nível correto ou da granularidade de um caso de uso. Nível correto significa alcançar os casos de uso que não são muito pequenos. Em determinadas circunstâncias, você pode utilizar um caso de uso como uma unidade de planejamento em uma organização que contém indivíduos que são agentes no sistema.
  • Ações. Uma ação é um procedimento computacional ou algorítmico. Ela é disparada quando o agente fornece um sinal ao sistema ou quando o sistema obtém um evento de tempo. Uma ação pode implicar transmissões de sinais para o agente chamado ou outros atores. Uma ação é atômica, o que significa que é realizada integralmente ou não.
  • Um agente específico. O agente é importante para encontrar o caso de uso correto, especialmente porque ele ajuda você a evitar casos de uso muito grandes. Como exemplo, considere uma ferramenta de modelagem visual. Há realmente dois agentes para esse aplicativo: um desenvolvedor - alguém que desenvolve sistemas utilizando a ferramenta como suporte e um administrador do sistema - alguém que gerencia a ferramenta. Cada um desses agentes tem suas próprias demandas no sistema e, portanto, precisa do seu próprio conjunto de casos de uso.

A funcionalidade de um sistema é definida por casos de uso diferentes, onde cada um representa um fluxo de eventos específico. A descrição de um caso de uso define o que ocorre no sistema quando o caso de uso é executado.

Diagrama descrito na legenda.

Em um caixa eletrônico, o cliente pode, por exemplo, retirar dinheiro de uma conta, transferir dinheiro para uma conta ou verificar o saldo de uma conta. Essas funções correspondem a fluxos que você pode representar com casos de uso.

Cada caso de uso tem uma tarefa própria para realizar. Os casos de uso coletados constituem todas as maneiras possíveis de utilizar o sistema. Você pode obter uma idéia de uma tarefa de casos de uso simplesmente observando o seu nome.

Como Localizar Casos de Uso

Segue, abaixo, um conjunto de perguntas úteis para identificar os casos de uso:

  • Para cada agente identificado, quais são as tarefas nas quais o sistema estaria envolvido?
  • O agente precisa estar informado sobre certas ocorrências no sistema?
  • O agente precisa informar o sistema sobre mudanças externas repentinas?
  • O sistema fornece ao negócio o comportamento correto?
  • Todos os recursos podem ser realizados pelos casos de uso identificados?
  • Que casos de uso suportarão e manterão o sistema?
  • Que informações devem ser modificadas ou criadas no sistema?

Casos de uso que às vezes são omitidos, uma vez que eles não representam aquelas que geralmente são as funções primárias do sistema, podem ser dos seguintes tipos:

  • Início e fim do sistema.
  • Manutenção do sistema. Por exemplo, adicionar novos usuários e configurar os perfis de usuário.
  • Manutenção dos dados armazenados no sistema. Por exemplo, o sistema é criado para trabalhar junto com um sistema legado, e os dados precisam ser sincronizados entre os dois.
  • Funcionalidade necessária para modificar o comportamento no sistema. Um exemplo seria a funcionalidade para criar novos relatórios.

Se você desenvolveu um modelo de casos de uso de negócios e um modelo de análise de negócios, esses artefatos são um bom começo para a identificação dos casos de uso.

Como um Caso de Uso Surge

Nas iterações iniciais da elaboração, apenas alguns casos de uso (os que são considerados significativos para a arquitetura) são descritos detalhadamente além da breve descrição. Você sempre deve desenvolver primeiro um esquema do caso de uso (no formato passo a passo) antes de se aprofundar nos detalhes. Essa descrição passo a passo deve ser a primeira tentativa de definir a estrutura do fluxo de eventos do caso de uso (consulte Fluxo de Eventos - Estrutura a seguir). Sempre comece com o fluxo básico do caso de uso. Depois que houver algum acordo sobre o esquema do fluxo básico, você pode adicionar o que os fluxos alternativos devem ser em relação ao fluxo básico.

Em direção ao fim da elaboração, todos os casos de uso planejados para serem descritos detalhadamente devem ser concluídos.

Todos os Casos de Uso São Descritos Detalhadamente?

Geralmente, há casos de uso tão simples no modelo que não precisam de uma descrição detalhada do fluxo de eventos, um esquema passo a passo é suficiente. Os critérios para tomar essa decisão são: que você não perceba inconsistência entre os usuários leitores sobre a que o caso de uso se refere e que os designers e os testadores estejam confortáveis com o nível de detalhe fornecido pelo formato passo a passo. Os exemplos são casos de uso que descrevem a entrada simples ou a recuperação de alguns dados do sistema.

O Escopo de um Caso de Uso

Geralmente, é difícil decidir se um conjunto de interações do usuário do sistema, ou uma caixa de diálogo, é um ou são vários casos de uso. Considere o uso de uma máquina de reciclagem. O cliente insere itens de depósito como, por exemplo, latas, garrafas e caixotes na máquina de reciclagem. Ao inserir todos os itens de depósito, basta pressionar um botão e um recibo é impresso. Esse recibo pode ser trocado por dinheiro.

É um caso de uso para inserir um item de depósito e outro caso de uso para solicitar o recibo? Ou trata-se apenas de um caso de uso para os dois? Há duas ações, mas uma sem a outra é de pouco valor para o cliente. Mais exatamente, é o diálogo completo, com todas as inserções e a obtenção do recibo, que tem valor para o cliente (e faz sentido para ele). Portanto, o diálogo completo, desde a inserção do primeiro item de depósito, até o pressionamento do botão e a obtenção do recibo, é um caso de uso completo, um caso de uso.

Além disso, você deseja manter as duas ações juntas, para poder verificá-las ao mesmo tempo, modificá-las e testá-las juntas, escrever manuais para elas e gerenciá-las como uma unidade. Esse procedimento torna-se bem óbvio em sistemas maiores.

Como os Casos de Uso são Realizados

Um caso de uso descreve o que ocorre no sistema quando um agente interage com o sistema para executar o caso de uso. O caso de uso não define como o sistema executa internamente suas tarefas em termos de objetos de colaboração. Mostrar esse procedimento é tarefa das realizações de casos de uso.

Exemplo:

No exemplo do telefone, o caso de uso indica, entre outros pontos, que o sistema emite um sinal quando o fone é retirado do gancho e que o sistema recebe os dígitos, encontra a parte receptora, toca o telefone, conecta a chamada, transmite a fala etc.

Em um sistema em execução, uma instância de um caso de uso não corresponde a qualquer objeto específico no modelo da implementação (por exemplo, uma instância de uma classe no código). Em vez disso, corresponde a um fluxo específico de eventos que é disparado por um agente e executado como uma seqüência de eventos entre um conjunto de objetos. Em outras palavras, as instâncias de casos de uso correspondem a instâncias de comunicação dos objetos implementados. Esse processo é denominado realização do caso de uso. Geralmente, os mesmos objetos participam das realizações de mais de um caso de uso. Por exemplo, os casos de uso Depósito e Retirada em um sistema bancário podem utilizar um determinado objeto de conta na sua realização. Isso não significa que os dois casos de uso se comunicam, apenas que usam o mesmo objeto na sua realização.

Você pode visualizar um fluxo de eventos composto por vários subfluxos, que juntos compõem o fluxo total dos eventos. É possível reutilizar a descrição de um subfluxo em fluxos de eventos de outros casos de uso. Os subfluxos, na descrição de um fluxo de eventos do caso de uso, podem ser comuns aos de outros casos de uso. No design, você deve ter os mesmos objetos com esse comportamento comum para todos os casos de uso relevantes, ou seja, apenas um conjunto de objetos deve ter esse comportamento, independentemente do caso de uso que esteja executando.

Exemplo:

Em um sistema de caixa eletrônico, o subfluxo inicial é o mesmo no fluxo de eventos dos casos de uso Retirar Dinheiro e Verificar Saldo. O fluxo de eventos dos dois casos de uso começa verificando a identidade do cartão e o código de acesso pessoal do cliente.

Um Caso de Uso Tem Muitas Instâncias Possíveis

Uma instância de casos de uso pode seguir um número de caminhos quase ilimitado, mas enumerável. Esses caminhos representam as opções abertas para a instância de casos de uso na descrição do fluxo de eventos. O caminho escolhido depende dos eventos. Os tipos de eventos incluem:

  • Entrada de um agente. Por exemplo, um agente por decidir, dentre várias opções, o que fazer em seguida.

Exemplo:

No caso de uso Reciclar Itens, no Sistema da Máquina de Reciclagem, o Cliente tem sempre duas opções: entregar outro item de depósito ou obter o recibo de itens retornados.

  • Uma verificação de valores ou de tipos de um objeto ou atributo interno. Por exemplo, o fluxo de eventos pode ser diferente se um valor for maior ou menor do que um determinado valor.

Exemplo:

No caso de uso Retirar Dinheiro em um sistema de caixa eletrônico, o fluxo de eventos será diferente, se o Cliente solicitar mais dinheiro do que ele tem na conta. Portanto, a instância de casos de uso seguirá caminhos diferentes.

Simultaneidade de Instâncias de Casos de Uso

Instâncias de vários casos de uso e várias instâncias do mesmo caso de uso funcionam ao mesmo tempo, se o sistema permitir isso. Na modelagem de casos de uso, você pode assumir que as instâncias de casos de uso podem estar ativas ao mesmo tempo sem conflito. Espera-se que o modelo do design resolva esse problema, porque a modelagem de casos de uso não descreve como eles funcionam. Uma maneira de visualizar isso é assumir que apenas uma instância de casos de uso está ativa no momento e que executar essa instância é uma ação atômica. Na modelagem de casos de uso, a "máquina de interpretação" é considerada infinitamente rápida, de forma que a serialização das instâncias do caso de uso não é um problema.

Nome

Cada caso de uso deve ter um nome que indica o que é alcançado pela interação com o agente. Talvez o nome precise ter várias palavras para ser entendido. Dois casos de uso não podem ter o mesmo nome.

Exemplo:

Estes são exemplos de variações do nome do caso de uso Reciclar Itens no exemplo da Máquina de Reciclagem:

  • Receber Itens de Depósito
  • Recebimento de Itens de Depósito
  • Devolver Itens de Depósito
  • Itens de Depósito

Descrição Rápida

A breve descrição do caso de uso deve refletir sua finalidade. Ao escrever a descrição, faça referência aos agentes envolvidos no caso de uso, ao glossário e, se precisar, defina novos conceitos.

Exemplo:

Segue, abaixo, amostras de breves descrições dos casos de uso Reciclar Itens e Adicionar Novo Tipo de Garrafa no Sistema da Máquina de Reciclagem:

Reciclar Itens: O usuário utiliza essa máquina para contar automaticamente todos os itens retornados (garrafas, latas e caixas) e receber um recibo. O recibo deve ser pago em uma caixa registradora (máquina).

Incluir Novo Tipo de Garrafa: Novos tipos de garrafas podem ser incluídos na máquina, iniciando-a no 'modo de aprendizagem' e inserindo 5 amostras, como no retorno de itens. Assim, a máquina pode medir as garrafas e aprender a identificá-las. O gerente especifica o valor do reembolso para o novo tipo de garrafa.

Fluxo de Eventos - Conteúdo

O Fluxo de Eventos de um caso de uso contém as informações mais importantes derivadas do trabalho de modelagem do caso de uso. Ele deve descrever o fluxo de eventos do caso de uso claramente, para que alguém de fora o entenda facilmente. Lembre-se de que o fluxo de eventos deve apresentar o que o sistema faz, e não como é o design do sistema para realizar o comportamento exigido.

As diretrizes para o conteúdo do fluxo de eventos são:

  • Descreva como o caso de uso inicia e termina.
  • Descreva os dados que são trocados entre o agente e o caso de uso.
  • Não descreva os detalhes da interface do usuário, a menos que seja necessário entender o comportamento do sistema. Por exemplo, freqüentemente é bom utilizar um conjunto limitado de terminologia específica da web quando se sabe antecipadamente que o aplicativo será baseado em web. Caso contrário, você corre o risco de o texto dos casos de uso ficar muito abstrato. Palavras que podem ser inclusas na sua terminologia são "navegar", "procurar", "hyperlink" "página", "enviar" e "navegador". Entretanto, não é aconselhável incluir referências a "quadros" ou "páginas da Web" de tal maneira que você esteja fazendo suposições sobre os limites entre eles - essa é uma decisão crítica do design. 
  • Descreva o fluxo de eventos, não apenas a funcionalidade. Para reforçar isso, inicie cada ação com "Quando o agente ... ".
  • Descreva somente os eventos que pertencem ao caso de uso e não o que ocorre em outros casos de uso ou fora do sistema.
  • Evite terminologia vaga.
  • Detalhe o fluxo de eventos - todas as perguntas devem ser respondidos. Lembre-se de que os designers do teste devem utilizar esse texto para identificar os casos de teste.

Se você usou determinados termos em outros casos de uso, verifique se usou exatamente os mesmos termos neste caso de uso e se o significado pretendido é o mesmo. Para gerenciar os termos comuns, coloque-os em um glossário.

Fluxo de Eventos - Estrutura Para o início da página

As duas principais partes do fluxo de eventos são o fluxo de eventos básico e os fluxos de eventos alternativos. O fluxo de eventos básico deve cobrir o que "normalmente" ocorre quando o caso de uso é executado. Os fluxos de eventos alternativos abordam o comportamento de caráter opcional ou excepcional em relação ao comportamento normal e também as variações do comportamento normal. Você pode pensar nos fluxos de eventos alternativos como "desvios" do fluxo de eventos básico, alguns dos quais retornarão para o fluxo de eventos básico e alguns dos quais terminarão a execução do caso de uso.

Diagrama descrito na legenda.

A estrutura típica do fluxo de eventos. A seta reta representa o fluxo de eventos básico e as setas curvas representam os caminhos alternativos em relação ao normal. Alguns caminhos alternativos retornam para o fluxo de eventos básico, enquanto que outros terminam o caso de uso.

Tanto o fluxo de eventos básico quanto os fluxos de eventos alternativos devem ser estruturados em passos e subfluxos. Com isso, a principal meta deve ser a legibilidade do texto (consulte também a seção Fluxo de Eventos - Estilo a seguir). Uma regra geral é a de que um subfluxo deva ser um segmento de comportamento dentro do caso de uso que tenha uma finalidade clara e ser "atômico" no sentido de que você execute todas ou nenhuma das ações descritas. Você pode precisar de vários níveis de subfluxos mas evite, se puder, pois isso torna o texto mais complexo e difícil de entender. Você pode ilustrar a estrutura do fluxo de eventos com um diagrama de atividades, consulte Diretrizes do Produto de Trabalho: Diagrama de Atividades no Caso de Uso.

O leitor desse tipo de texto escrito, estruturado em subseções consecutivas, subentende, pela natureza do texto, que há uma seqüência entre os subfluxos. Para evitar mal-entendidos, você sempre deve indicar se a ordem dos subfluxos é fixa ou não. As considerações desse tipo freqüentemente se relacionam a:

  • Regras de negócios. Por exemplo, o usuário deve ser autorizado para que o sistema possa disponibilizar certos dados.
  • Design da interface do usuário. Por exemplo, o sistema não deve impor uma determinada seqüência de comportamentos que pode ser intuitiva para alguns, mas não para outros usuários.

Para esclarecer onde um fluxo de eventos alternativo se ajusta na estrutura, é necessário descrever o seguinte para cada "desvio" no fluxo de eventos básico:

  • Onde o comportamento alternativo pode ser inserido no fluxo de eventos básico.
  • A condição que precisa ser atendida para que o comportamento alternativo comece.
  • Como e onde o fluxo de eventos básico é retomado, ou como o caso de uso termina.

Exemplo:

Este é um subfluxo alternativo no caso de uso Devolver Itens no Sistema da Máquina de Reciclagem.

2.1. Garrafa Emperrada

Se na seção 1.5, Inserir Itens de Depósito, uma garrafa ficar emperrada na porta, os sensores em torno da porta e a porta da medição detectarão esse problema. A esteira transportadora é parada e a máquina emite um alarme para chamar o operador. A máquina aguardará o operador indicar que o problema foi resolvido. A máquina continua na seção 1.9 do fluxo básico.

No exemplo acima, o fluxo de eventos alternativo é inserido em um local específico no fluxo de eventos básico. Há também um fluxo de eventos alternativo que pode ser inserido em mais de um local, alguns até podem ser inseridos em qualquer local do fluxo de eventos básico.

Exemplo:

Este é um subfluxo alternativo no caso de uso Devolver Itens no Sistema da Máquina de Reciclagem.

2.2. Painel Frontal Removido

Se alguém remover o painel frontal da Máquina de Reciclagem, a compactação das latas é desativada. Não será possível iniciar a compactação das latas com o painel frontal desativado. A remoção também ativará um alarme para o operador. Quando o painel frontal estiver fechado novamente, a máquina continuará a operação a partir do local em que parou no fluxo de eventos básico.

Se o fluxo de eventos alternativo for muito simples, pode ser tentador descrevê-lo apenas na seção do fluxo de eventos básico (utilizando alguma construção informal "if-then-else"). Isso deve ser evitado. Muitas alternativas dificultarão o exame do comportamento normal. Além disso, incluir caminhos alternativos na seção do fluxo de eventos básico tornará o texto mais parecido com "pseudocódigo" e mais difícil de ser lido.

Em geral, a extração de partes do fluxo de eventos e a descrição dessas partes separadamente podem aumentar a legibilidade do fluxo de eventos básico e melhorar a estrutura do caso de uso e do modelo de casos de uso. Você pode modelar as partes extraídas como:

  • Um fluxo de eventos alternativo no caso de uso base, se for uma variante simples, uma opção ou uma exceção no fluxo de eventos básico.
  • Como uma inclusão explícita no caso de uso base (consulte Diretriz do Produto de Trabalho: Relacionamento de Inclusão) se for algo que você deseje encapsular para que possa ser reutilizado por outros casos de uso.
  • Como uma inclusão implícita no caso de uso base (consulte Diretriz do Produto de Trabalho: Relacionamento de Extensão), se o fluxo de eventos básico do caso de uso base estiver completo, ou seja, se tiver um início e um fim definidos. A natureza do fluxo de extensão deve ser da maneira que você preferir ocultá-lo na descrição do caso de uso base para que fique menos complexo.
  • Um subfluxo no fluxo de eventos básico, possivelmente como outra opção, se nenhuma das alternativas acima se aplica. Por exemplo, em um caso de uso Manter Informações do Funcionário, podem existir subfluxos separados para adicionar, excluir e modificar as informações do funcionário.

Fluxo de Eventos - Estilo Para o início da página

Você pode descrever os casos de uso de várias maneiras. Como exemplo, será apresentado o fluxo de eventos básico do caso de uso Administrar Ordem descrito em três estilos diferentes, variando principalmente na formalidade. O primeiro estilo, mostrado no Exemplo 1 a seguir, é recomendado porque é fácil de entender e a ordem em que as coisas acontecem é claramente evidente. O texto é dividido em subseções numeradas e identificadas. Os números servem para facilitar a referência a uma subseção. Os nomes das subseções permitirão que o leitor obtenha uma visão geral rápida do fluxo de eventos, navegando pelo texto e lendo apenas os títulos.

No Exemplo 2 a seguir, a descrição do fluxo de eventos falha ao esclarecer a ordem em que as coisas acontecem. Se escrever neste estilo, você e os outros podem perder informações importantes referentes ao sistema.

O Exemplo 3 a seguir mostra um outro estilo, que pode ser útil, caso você ache difícil expressar a seqüência de eventos claramente. Esse estilo de pseudocódigo é mais preciso, mas o texto é de difícil leitura e absorção por uma pessoa que não seja técnica, especialmente se você deseja compreender o fluxo de eventos rapidamente.

Exemplo 1:
1.1. Início do Caso de Uso

Este caso de uso começa quando o agente Operador configura o sistema para criar uma ordem de medição. O sistema recuperará todos os agentes Elemento da Rede, seus objetos de medição e as funções de medição correspondentes que estiverem disponíveis para esse Operador específico. Os Elementos de Rede disponíveis são aqueles que estão em operação e os que o Operador tem permissão para acessar. A disponibilidade das funções de medição depende do que foi configurado para um determinado tipo de objeto de medição.

1.2. Configuração da Ordem de Medida

O sistema permite que o agente Operador selecione os Elementos da Rede que serão medidos e, em seguida, mostre os objetos de medição que estão disponíveis para os Elementos de Rede selecionados. O sistema permite que o Operador selecione a partir dos objetos de medição e, em seguida, selecione as funções de medição que serão configuradas para cada objeto de medição.

O sistema permite que o Operador insira um comentário textual na ordem de medição.

O Operador configura o sistema para completar a ordem de medição. O sistema responderá gerando um nome exclusivo para a ordem de medição e configurando os valores padrão para quando, com que freqüência e por quanto tempo a medição deve ser feita. Os valores padrão são exclusivos para cada Operador. O sistema permite, em seguida, que o Operador edite esses valores padrão.

1.3. Inicialização da Ordem

O Operador configura o sistema para inicializar a ordem de medição. O sistema registrará a identidade do Operador de criação, a data de criação e o status "Planejado" da ordem de medida.

1.4. Finalização do Caso de Uso

O sistema confirma a inicialização da ordem de medição para o Operador, e a ordem de medição fica disponível para que os outros agentes possam ver.


Descrevendo um caso de uso: Neste estilo, é fácil ler o texto e acompanhar o fluxo de eventos. Tenha este estilo como meta nas suas descrições.

Exemplo 2:
Os ordenadores podem criar Ordens para coletar os dados da medição dos Elementos da Rede.

O sistema atribuirá à Ordem um nome exclusivo, bem como valores padrão que indicam o comprimento e o tempo da medição, além da freqüência em que é repetida. O Ordenador poderá editar esses valores.

Ele deve especificar mais a função da medição, o elemento de rede e os objetos de medição que se aplicam. O Ordenador também pode adicionar um comentário pessoal à ordem.

Quando as informações necessárias foram definidas, uma nova Ordem foi criada e inicializada com os atributos definidos, o nome do criador e a data de criação. O status da ordem será definido como "Planejado". (Os possíveis valores para o status são: Planejada, Em Execução, Concluída, Cancelada e Errada.)

A interface do usuário é notificada de que uma nova Ordem foi criada e recebe uma referência para a nova Ordem para que ela possa ser exibida.


Descrevendo um caso de uso: Este estilo é legível, mas não há um fluxo de eventos claro.

Exemplo 3:

'Administrate order' (User identity)
REPEAT
    <='Show administer order menu'
    IF (=> 'Creating an Order' (Measurement function,
network element, measurement object)) THEN
    The system finds a unique name, default values for when and
how long the measurement should be executed.
<= 'Show order' (Default attributes)
REPEAT
    => 'Edit order' (Attribute to change, New value of attribute)
    <= 'Update screen' (New attributes)
UNTIL (All attributes are defined)
REPEAT
    IF (=> 'Edit order' (Attribute to change, New value of  attribute))
THEN <= 'Update screen' (New attributes)
ELSIF (=> 'Save order' (Order identity, Attributes)) THEN
    The order is created and initialized in the system with
    the defined attributes, the name of the creator,
    date of creation and the status 'scheduled'.
    <= 'New order created' (The order)
ENDIF
UNTIL (=> 'Quit')
    ENDIF
UNTIL 'Quit administer order'

Descrevendo um caso de uso: Aqui, o escritor escolheu um estilo formal utilizando pseudocódigo. Este estilo dificulta a compreensão rápida dos passos do processo, mas pode ser útil, se o fluxo de eventos for difícil de capturar com exatidão.

Fluxo dos Eventos - Exemplo

A descrição completa do fluxo de eventos do caso de uso Administrar Ordem, incluindo os fluxos alternativos, pode ser semelhante a:

1. Fluxo de Eventos Básico

1.1. Início do Caso de Uso

Este caso de uso começa quando o agente Operador configura o sistema para criar uma ordem de medição. O sistema recuperará todos os agentes Elemento da Rede, seus objetos de medição e as funções de medição correspondentes que estiverem disponíveis para esse Operador específico. Os Elementos de Rede disponíveis são aqueles que estão em operação e os que o Operador tem permissão para acessar. A disponibilidade das funções de medição depende do que foi configurado para um determinado tipo de objeto de medição.

1.2. Configuração da Ordem de Medida

O sistema permite que o agente Operador selecione os Elementos da Rede que serão medidos e, em seguida, mostre os objetos de medição que estão disponíveis para os Elementos de Rede selecionados. O sistema permite que o agente Operador selecione a partir desses objetos de medição e, em seguida, selecione as funções de medição a serem configuradas para cada objeto de medição.

O sistema permite que o Operador insira um comentário textual na ordem de medição.

O Operador configura o sistema para completar a ordem de medição. O sistema responderá gerando um nome exclusivo para a ordem de medição e configurando os valores padrão para quando, com que freqüência e por quanto tempo a medição deve ser feita. Os valores padrão são exclusivos para cada Operador. O sistema permite, em seguida, que o Operador edite esses valores padrão.

1.3. Inicialização da Ordem

O Operador configura o sistema para inicializar a ordem de medição. O sistema registrará a identidade do Operador de criação, a data de criação e o status "Planejado" da ordem de medida.

1.4. Finalização do Caso de Uso

O sistema confirma a inicialização da ordem de medição para o Operador, e a ordem de medição fica disponível para que os outros agentes possam ver.

2. Fluxo de Eventos Alternativo

2.1. Nenhum Elemento de Rede Disponível

Se em 1.1, Início do Caso de Uso, nenhum Elemento da Rede estiver disponível para ser medido por esse Operador, o sistema informará ao Operador. O caso de uso está concluído.

2.2. Nenhuma Função de Medida Disponível

Se em 1.2, Configurar Ordem de Medição, nenhuma função de medição estiver disponível para os Elementos da Rede selecionados, o sistema informará ao Operador e permitirá que o Operador selecione outros elementos de Rede.

2.3. Cancelamento da Ordem de Medida

O sistema permitirá que o Operador cancele todas as ações a qualquer momento durante a execução do caso de uso. O sistema voltará ao estado em que estava antes do início do caso de uso, e o caso de uso será concluído.

Requisitos Especiais Para o início da página

Nos Requisitos Especiais de um caso de uso, você descreve todos os requisitos no caso de uso que não são abordados pelo fluxo de eventos. Esses requisitos não funcionais influenciarão o modelo do design. Consulte também a discussão nos requisitos não-funcionais em Diretriz do Produto de Trabalho: Modelo de Caso de Uso. Você pode organizar esses requisitos em categorias como Usabilidade, Confiabilidade, Desempenho e Capacidade de Substituição, mas geralmente há tão poucos deles que esses agrupamentos não são particularmente úteis.

Exemplo:

No Sistema da Máquina de Reciclagem, um requisito especial do caso de uso Devolver Itens de Depósito poderia ser:

A máquina deve ser capaz de reconhecer os itens de depósito com uma confiabilidade de mais de 95%.

Pre-condições e Pós-condições

Pode ser útil utilizar a noção de precondição e pós-condição para esclarecer como o fluxo de eventos inicia e termina. Entretanto, só use isso se for agregar valor ao público do caso de uso.

Diagrama descrito na legenda.

Uma precondição é o estado do sistema e da sua vizinhança, que é exigido antes do início do caso de uso. Uma pós-condição é o estado que o sistema pode apresentar após o término do caso de uso.

Considere o seguinte:

  • Os estados descritos pelas precondições e pós-condições devem ser estados que o usuário pode observar. "O usuário efetuou logon no sistema" ou "O usuário abriu o documento" são exemplos de estados observáveis.
  • Uma precondição é uma restrição sobre quando um caso de uso pode começar. Não é o evento que inicia o caso de uso.
  • A precondição de um caso de uso não é apenas para um subfluxo, apesar de ser possível definir precondições e pós-condições no nível do subfluxo.
  • A pós-condição de um caso de uso deve ser verdadeira independentemente dos fluxos alternativos que foram executados; não deve ser verdadeira apenas para o fluxo principal. Se houver possibilidade de falha, isso será coberto na pós-condição, informando "A ação está concluída ou, se algo tiver falhado, a ação não foi executada", em vez de apenas "A ação está concluída".
  • Quando você usa pós-condições junto com os relacionamentos de extensão, deve tomar cuidado para que o caso de uso estendido não introduza um subfluxo que viole a pós-condição no caso de uso base.
  • As pós-condições podem ser uma ferramenta poderosa para descrever casos de uso. Você define primeiro o que o caso de uso pretende alcançar - a pós-condição. Em seguida, descreve como alcançar essa condição - o fluxo de eventos necessário.

Exemplo:

Uma precondição para o caso de uso Retirada de Dinheiro no caixa eletrônico: O cliente tem um cartão distribuído pessoalmente que se ajusta na leitora de cartões, recebeu um número PIN e está registrado com o sistema bancário.

Uma pós-condição para o caso de uso Retirada de Dinheiro no caixa eletrônico: No fim do caso de uso, todos os logs de conta e de transação são compensados, a comunicação com o sistema bancário é reinicializada e o cliente recebe o cartão de volta.

Pontos de Extensão

Um ponto de extensão abre o caso de uso para a possibilidade de uma extensão. Ele tem um nome e uma lista de referências para um ou mais locais no fluxo de eventos do caso de uso. Um ponto de extensão pode fazer referência a um único local entre dois passos do comportamento no caso de uso. Também pode fazer referência a um conjunto de locais diferentes.

Utilizar os pontos de extensão com nome ajuda a separar a especificação do comportamento do caso de uso estendido dos detalhes internos do caso de uso base. O caso de uso base pode ser modificado ou reorganizado, contanto que os nomes dos pontos de extensão permaneçam os mesmos e isso não afete o caso de uso estendido. Ao mesmo tempo, você não está carregando o texto que descreve o fluxo de eventos do caso de uso base com os detalhes do local em que o comportamento pode ser estendido. Consulte também Diretriz do Produto de Trabalho: Relacionamento de Extensão.

Exemplo:

Em um sistema telefônico, o caso de uso Fazer Chamada pode ser estendido pelo caso de uso Mostrar Identidade do Chamador. Esse é um serviço opcional, referido muitas vezes como "ID do Chamador", que pode ou não ter sido solicitado pela parte receptora. Uma descrição do ponto de extensão no caso de uso Fazer Chamada pode ser semelhante a:

Nome: Mostrar Identidade

Local: Após a seção 1.9 Tocar Telefone da Parte Receptora.

Diagramas de Casos de Uso

Você pode optar por ilustrar como um caso de uso se relaciona com os agentes e com outros casos de uso em um diagrama de casos de uso (raramente, em mais de um diagrama) pertencente ao caso de uso. Esse procedimento é útil se o caso de uso estiver envolvido com muitos agentes ou se tiver relacionamentos com muitos outros casos de uso. Um diagrama desse tipo é de caráter "local", já que mostra o modelo de casos de uso da perspectiva de um caso de uso apenas e não pretende explicar qualquer fato geral sobre o modelo de casos de uso como um todo. Consulte também Diretriz do Produto de Trabalho: Diagrama de Casos de Uso.