Motivação

 UML
   - História
   - Diagramas

 Bibliografia

Use Cases
Diagrama de Use Cases

Objetivo

O Diagrama de Use Cases tem o objetivo de auxiliar a comunicação entre os analistas e o cliente.

Um diagrama de Use Cases descreve um cenário que mostra as funcionalidades do sistema do ponto de vista do usuário. 

O cliente deve ver no diagrama de Use Cases as principais funcionalidades de seu sistema.

Notação

O diagrama de Use Cases é representado por:

  • atores;
  • use cases;
  • relacionamentos entre estes elementos.
Estes relacionamentos podem ser:
  • associações entre atores e use cases;
  • generalizações entre os atores;
  • generalizações, extends e includes entre os use cases.

Estes use cases podem opcionalmente estar envolvidos por um retângulo que representa os limites do sistema.

Em maiores detalhes:

  • Atores

Um ator é representado por um boneco e um rótulo com o nome do ator. Um ator é um usuário do sistema, que pode ser um usuário humano ou um outro sistema computacional.

  • Use case

Um use case é representado por uma elipse e um rótulo com o nome do use case. Um use case é uma funcionalidade do sistema.

 

  • Relacionamentos
    • Ajudam a descrever os use cases

    • Entre um ator e um use case
      • Associação

Define uma funcionalidade do sistema do ponto de vista do usuário.

    • Entre atores
      • Generalização

- Os use cases de B são também use cases de A

- A tem seus próprios use cases

    • Entre use cases
      • Include

        Um relacionamento include de um use case A para um use case B indica que B é essencial para o comportamento de A.

      • Extend

        Um relacionamento extend de um use case A para um use case B indica que o use case A pode ser acrescentado para descrever o comportamento de B (não é essencial). A extensão é inserida no ponto de extensão do use case B.

        Ponto de extensão em um use case é uma indicação de que outros use cases poderão ser adicionados a ele. Quando o use case for invocado, ele verificará se suas extensões devem ou não serem invocadas.

      • Generalização ou Especialização (é_um)

        Use case B é_um use case A (A é uma generalização de B, ou B é uma especialização de A).

        Um relacionamento entre um use case genérico para um mais específico, que herda todas as características de seu pai.

    Relacionamento/
    Propriedade

    Extend Include Generalização
    Comportamento base Use case base Use case base Use case Pai
    Comportamento adicionado Use case de extensão Use case de inclusão Use case Filho
    Direção O use case de extensão referencia o use case base O use case base referencia o use case de inclusão O use case filho referencia o use case pai

    O comportamento do use case base é modificado pelo comportamento do use case adicionado?

     

    O use case base é independende do use case extensão, mas se este for invocado, o comportamento do use case base será modificado. A execução do use case base executa o use case de inclusão. Portanto, este modifica o comportamento do use case base. O comportamento do use case pai não é modificado. Os efeitos do novo comportamento só são observados no use case filho.
    O novo use case é diretamente instanciável? Não. Não. Sim.
    O novo use case pode ver os atributos do use case base? Pode acessar e modificar. O use case base provê os atributos necessário para o use case de inclusão. Acessar e modificar.
    O use case base pode ver o novo use case? Não. O use case base é independente do filho. Sim, mas não pode acessar os seus atributos. Não. O pai é independente do filho.
    Repetição Depende da condição. Uma única vez. O use case controla sua própria execução.

     

  • Sistema
    • Limites do sistema: representado por um retângulo envolvendo os use cases que compõem o sistema.
    • Nome do sistema: Localizado dentro do retângulo. 

Exemplo 1

Use case diagram

Exemplo 2