Um caso de uso define uma seqüência de ações executadas pelo sistema que geram um resultado de valor observável para um
ator em particular. Existem diversas palavras chave nesta definição:
-
"caso de uso" A seqüência de ações referenciada na
definição é na realidade um fluxo específico de eventos no sistema. Muitos fluxos de eventos são possíveis, e
muitos podem ser similares. Para tornar um caso de uso compreensível, você deve agrupar fluxos de eventos similares
em um caso de uso. Conseqüentemente, identificar e descrever um caso de uso significa realmente identificar e
descrever um grupo de fluxos de eventos relacionados.
-
"ações" Uma ação é um procedimento computacional
ou algorítmico, invocado quando o ator fornece um sinal para o sistema ou quando o sistema começa um evento
temporizado. Uma ação pode implicar na transmissão de sinais para o ator invocador ou para outros atores. Uma ação
é atômica, isto significa que ela é executada inteiramente ou não é executada.
-
"executadas pelo sistema" Isto significa que o
sistema fornece o caso de uso. Um ator se comunica com uma instancia do caso de uso.
-
"um resultado de valor observável" Você pode
valorizar um caso de uso executado com sucesso. Um caso de uso deve certificar-se de que um ator pode executar uma
tarefa que tenha um valor identificável. Isto é muito importante para determinar corretamente o nível ou a
granularidade para um caso de uso. O Nível Correto significa descobrir os casos de uso que não são pequenos.
-
"um ator em particular" O ator é chave para
encontrar o caso de uso correto, especialmente porque o ator ajuda a evitar os casos de uso muito grandes. Por
exemplo, considere uma ferramenta de modelagem visual. Existem dois atores nesta aplicação: um desenvolvedor, que
desenvolve sistemas usando a ferramenta como suporte; e um administrador de sistema, que controla a ferramenta.
Cada um destes atores tem suas próprias demandas no sistema, e conseqüentemente necessitará de seus próprios casos
de uso.
A funcionalidade de um sistema é definida por vários casos de uso, cada qual representa uma meta específica (para obter
o resultado de valor observável) para um ator em particular.
Em um caixa automático mostrado na figura 1, o Cliente Bancário pode retirar dinheiro de uma conta, transferir fundos
entre contas ou depositar fundos em uma conta. Estas ações correspondem aos objetivos específicos que o ator tem ao
usar o sistema.
Figura 1: Exemplo de caso de uso de caixa automático (ATM).
Cada caso de uso está associado a uma meta de um dos atores. A coleção de casos de uso constitui todas as formas
possíveis de usar o sistema. Você deve poder determinar o objetivo de um caso de uso simplesmente observando seu nome.
Um caso de uso descreve as interações entre os atores e o sistema na forma de um diálogo entre eles, estruturado da
seguinte forma:
-
O ator <<faz algo>>
-
O sistema <<faz algo em resposta>>
-
O ator <<faz algo a mais>>
-
O sistema...
Cada diálogo com esta forma é chamado de "Fluxo de Eventos".
Pelo motivo de existirem muitos fluxos de eventos possíveis para se alcançar a meta (por exemplo, o fluxo pode ser
diferente dependendo das entradas específicas feitas pelo ator), e existem situações onde a meta não pode ser alcançada
(por exemplo, uma conexão de rede necessária estar indisponível), cada caso de uso conterá vários fluxos, sendo um
"Fluxo Básico de Eventos" e muitos "Fluxos Alternativos".
O Fluxo Básico de Eventos especifica as interações entre os atores e o sistema para o caso ideal, onde tudo ocorre como
o planejado, e a meta do ator (o resultado de valor observável) é alcançada. O fluxo básico representa a principal
capacidade fornecida pelo sistema para o caso de uso.
Como o nome sugere, os Fluxos Alternativos especificam interações alternativas com a mesma meta.
Intimamente relacionado com o caso de uso está o conceito de cenário. Um cenário é um fluxo de eventos
específico, para um conjunto específico de entradas para o sistema, estados do sistema e estados do
ambiente do sistema. Os cenários estão intimamente relacionados com os casos de teste.
Para um exemplo de uma especificação completa de caso de uso veja Example: Caso de Uso.
|