Visão Geral

Os diagramas de casos de uso são um dos cinco diagramas disponíveis na UML (Unified Modeling Language) para a modelagem de aspectos dinâmicos de sistemas (diagramas de atividades, diagramas de máquina de estados, diagramas de seqüências e diagrama de colaboração são os outros quatro tipos de diagrama da UML para a modelagem de aspectos dinâmicos do sistema).
Os diagramas de casos de uso têm um papel central para a modelagem do comportamento de um sistema, de um subsistema ou de uma classe.
Aplicam-se os diagramas de casos de uso para fazer a modelagem da visão de caso de uso do sistema. Envolvendo, desta maneira, a modelagem do contexto do sistema, subsistema e classes que fiquem acessíveis e compreensíveis, por apresentarem uma visão externa sobre como esses elementos podem ser utilizados no contexto do problema.

Uso Comum

Os diagramas de casos de uso são aplicados para a modelagem da visão estática do caso de uso do sistema. Essa visão proporciona suporte principalmente para o comportamento de um sistema – os serviços externamente visíveis que o sistema fornece no contexto de seu ambiente.
 

Modelagem do Contexto do Sistema

A modelagem do contexto do sistema envolve desenhar uma linha ao redor de todo o sistema (fronteira do sistema) e declarar quais atores interagem com o sistema e como eles interagem. Neste contexto aplica-se os diagramas de casos de uso para especificar os atores e o significado de seus papeis. Para fazer a modelagem do contexto do sistema:
  • Identifique os atores que se encontram ao redor do sistema, considerando quais grupos precisam de ajuda do sistema para a realização de suas tarefas; quais grupos são necessários para a execução de funções do sistema; quais grupos interagem com a algum hardware externo ou outros sistemas de software; e quais grupos realizam funções secundárias de administração e de manutenção.
  • Organize os atores semelhantes em uma hierarquia de generalização/especialização.
  • Ofereça um estereótipo para cada ator, para ajudar a compreensão.
  • Preencha um diagrama de caso de uso com esses atores e especifique os caminhos de comunicação de cada ator até os casos de uso do sistema.
 

Modelagem dos Requisitos de um Sistema

A modelagem dos requisitos de um sistema envolve a especificação do que esse sistema deverá fazer (sob um ponto de vista externo ao sistema), independente de como o sistema deverá fazê-lo. Desta maneira, aplicam-se os diagramas de casos de uso para especificar o comportamento desejado do sistema. Para fazer a modelagem dos requisitos de um sistema:
  • Estabeleça o contexto do sistema, identifique os atores ao seu redor.
  • Para cada ator, considere o comportamento que cada um espera ou requer que o sistema proporcione.
  • Nomeie esses comportamentos comuns como casos de uso.
  • Faça a fatoração do comportamento comum em novos casos de uso utilizados pelos outros; faça a fatoração do comportamento variante em novos casos de uso que estendem os fluxos da linha principal.
  • Inclua adornos nesses casos de uso com notas declarando requisitos não-funcionais.
 

Termos e Conceitos

Um caso de uso é uma descrição de um conjunto de seqüência de ações, inclusive variantes, que um sistema executa para produzir um resultado de valor observável por um ator.
Os casos de uso também podem ser organizados pela especificação de relacionamentos de generalização, inclusão e extensão, existentes entre eles. Aplicam-se esses relacionamentos com a finalidade de fatorar o comportamento comum (obtendo esse comportamento a partir de outros casos de uso que ele inclui) e fatorar variantes (obtendo esse comportamento de outros casos de uso que o estendem).
Organizar os casos de uso, extraindo o comportamento comum (por meio de um relacionamento de inclusão) e diferenciando as variantes (por relacionamentos estendidos), é uma parte importante para a criação de um conjunto de casos de uso simples, equilibrado e compreensível.
 

Objetivos dos Casos de Uso

A modelagem dos diagramas de casos de uso deve ser direcionada segundo os objetivos da utilização dos casos de uso, sendo os objetivos principais:
  • Delimitação do contexto de um sistema
  • Documentação e o entendimento dos requisitos
  • Descrição dos requisitos funcionais
  • Principal saída da etapa de especificação de requisitos
  • Principal entrada da etapa de análise

Os objetivos secundários:
  • Facilitar a comunicação entre os stakeholders
  • Servir de base para a definição do cronograma
  • Auxiliar na elaboração dos casos de teste
  • Possibilitar definição de uma estrutura analítica do sistema
 

Características dos Diagramas de Casos de Uso

Os diagramas de casos de uso possuem características importantes dentro do contexto de especificação de documentação de um sistema, sendo as principais:
  • Mostram um conjunto de casos de uso, atores e seus relacionamentos.
  • Modelam aspectos dinâmicos do sistema.
  • Proporcionam uma representação contextual do sistema (fronteira explícita).
  • Indicam a forma como o sistema interage com as entidades externas (atores).
 
Diagrama de Caso de Uso

Atores

Um ator representa um conjunto coerente de papéis que os usuários de casos de uso desempenham quanto interagem com esses casos de uso. Tipicamente, um ator representa um papel que um ser humano, um dispositivo de hardware ou até outro sistema desempenha com o sistema.
Os atores poderão estar conectados aos casos de uso somente pela associação. A associação entre o ator e um caso de uso indica que o ator e o caso de uso se comunicam entre si, cada um com a possibilidade de enviar e receber mensagens.
Atores são representados como figuras esquematizadas que poderão definir grupos gerais de atores e especializá-los utilizando um relacionamento de generalização.

Os atores possuem características importantes, considerando o contexto de modelagem do diagrama de caso de uso, e quando a diagramação é produzida algumas das características dos atores, abaixo descritas, devem ser consideradas.
  • São entidades externas ao sistema computacional que participam de um ou mais casos de uso.
  • Normalmente fornecem eventos de entrada ou recebem alguma resposta do sistema.
  • Em geral, atores podem ser:
    • Papéis que pessoas representam nos casos de uso.
    • Dispositivos de hardware mecânicos ou elétricos
    • Outros sistemas computacionais
    • Tempo (representar atividades periódicas)
  • Interagem com os casos de uso através de associações (linhas contínuas).
 

Relacionamentos

generalização entre casos de uso é semelhante à generalização existente entre classes. Aqui a generalização significa que o caso de uso filho herda o comportamento e o significado do caso de uso pai; o filho deverá acrescentar ou sobrescrever o comportamento de seu pai; e o pai poderá ser substituído pelo filho em qualquer local no qual o pai apareça.
Um relacionamento de inclusão (dependência estereotipada como include) entre casos de uso significa que o caso de uso base incorpora explicitamente o comportamento de outro caso de uso em uma localização específica. O relacionamento de inclusão é essencialmente um exemplo de delegação.
Um relacionamento estendido (dependência estereotipada como extend) entre casos de uso significa que o caso de uso base incorpora implicitamente o comportamento de um outro caso de uso em um local especificado indiretamente pelo caso de uso estendido. O caso de uso base poderá permanecer isolado, mas, sob certas condições, seu comportamento poderá ser estendido pelo comportamento de um outro caso de uso. Esse caso de uso base poderá ser estendido somente em determinados pontos chamados de seus pontos de extensão. Um relacionamento estendido é utilizado para a modelagem da parte de um caso de uso que o usuário poderá considerar como sendo um comportamento opcional do sistema.
 

Pontos de Extensão

Um ponto de extensão é um rótulo publicamente visível no caso de uso base que identifica um momento no comportamento (condição de acionamento) do caso de uso (estendido) pelo 'apelido'. No exemplo da Figura 2, o caso de uso “Devolver produtos” descreve os pontos de extensão (publicamente visíveis), enquanto, o caso de uso “Atualizar estoque” os pontos de extensão não são publicamente visíveis.
 
Pontos de Extensão

Nomes

Todo caso de uso deve ter um nome que o diferencie dos demais casos de uso. Na prática, os nomes de casos de uso são breves expressões verbais ativas, nomeando algum comportamento no vocabulário do sistema que está sendo modelado.
 

Fluxo de Eventos

Pode-se especificar o comportamento de um caso de uso pela descrição do fluxo de eventos no texto de maneira suficientemente clara para que alguém de fora possa compreendê-lo facilmente. Ao escrever o fluxo de eventos, pode ser incluído como e quando o caso de uso inicia e termina, quando o caso de uso interage com os atores e quais objetos são transferidos e o fluxo básico e fluxo alternativo do comportamento.
 

Cenários

Um cenário é uma seqüência específica de ações que ilustra o comportamento. Os cenários estão para os casos de uso assim como as instâncias estão para as classes. Isto significa que o cenário é basicamente uma instância de um caso de uso.
Considerando um conjunto de casos de uso é recomendável separar os fluxos alternativos do fluxo principal, porque um caso de uso descreve um conjunto de seqüências e não apenas uma seqüência isolada e seria possível expressar todos os detalhes de uma caso de uso em apenas uma seqüência. Cada seqüência é chamada de cenário.
 

Organização Física do Diagrama de Caso de Uso

Ao especificar um diagrama de caso de uso é conveniente atentar para os seguintes itens:
  • Dê-lhe um nome capaz de comunicar seu propósito.
  • Distribua seus elementos para minimizar o cruzamento de linhas.
  • Organize seus elementos espacialmente, de maneira que os comportamentos e papéis semanticamente relacionados apareçam próximos fisicamente.
  • Use notas explicativas e cores como indicações visuais e chamar atenção para características importantes do diagrama.
  • Tente não mostrar muitos tipos de relacionamentos. Em geral, se existir relacionamentos de inclusão e estendido complicados, coloque esses elementos em outro diagrama.