UML - Casos de Uso - Conceitos (revisão)


Hoje vamos rever alguns conceitos básicos da UML - Unified Model Language relacionados com os casos de uso.

Como se trata de uma revisão, visto que eu já abordei o assunto em outros artigos, vou apresentá-lo em um formato bem resumido para consulta.

Todo o conteúdo aqui exposto é uma compilação de material encontrado na web que pode ser consultado nas referências.

Modelagem de casos de uso

Objetivos principais:

Os casos de uso podem ser vistos como a ponte entre a Análise e a Especificação de Requisitos:

Casos de Uso

São uma descrição de um processo de negócio em texto formal que descreve a sequência de ações que representam um cenário principal e cenários alternativos com o objetivo de demonstrar o comportamento de um sistema através de interações de atores. Assim temos que os casos de uso:

• Representam as principais funcionalidades do sistema sob o ponto de vista dos atores;
• Indica O QUE fazer e não COMO fazer;

Os componentes dos Casos de uso são:

O fluxo de eventos descritos em um caso de uso especifica o comportamento de um caso de uso:

Um caso de uso contém informações relativas a:

– As condições de início e término do caso de uso;
– Quais os atores interessados no sistema;
– Como o caso de uso interage com esses atores;

O fluxo de eventos de um caso de uso é composto por:

Esses fluxos podem ser especificados através de:

– Descrição textual informal;
– Texto semiformal (através de pré-,pós-condições e invariantes);
– Pseudocódigo;
– Ou uma combinação dessas maneiras;

Cenários

• São sequências de comandos/ações simples
• Representam um comportamento sem desvios de caminhos ou iterações
• O fluxo de eventos de um caso de uso produz:
– Um cenário primário, que representa uma situação típica de sucesso
– Zero ou mais cenários secundários, que descrevem situações previstas, ou incomuns

Diagramas de Casos de Uso

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);

A representação UML

A representação UML de um caso de uso é uma elipse com o nome do caso de uso no centro:

Atores

São entidades externas ao sistema que participam de um ou mais casos de uso normalmente ou fornecem eventos de entrada ou recebem alguma resposta do sistema.

Em geral, atores podem ser:

Relacionamentos Entre Casos de Uso

Objetivo: Aumentar a reutilização em diferentes contextos

Evita a descrição de um mesmo conjunto de fluxos de eventos, através da extração/fatoração do comportamento comum dos casos de uso.

A linguagem UML define três tipos de relacionamentos:

– Generalização (herança)
– Inclusão
(<< include >>)
– Extensão (
<< extend >>)

Exemplo de Caso de Uso

Exemplos retirados do livro "Applying Use Cases: A Pratical Guide" Geri Schneider & Jason Winters, Addison-Wesley, ...

Fazer Pedido - versão 1

Cenário informal

O caso de uso começa quando o cliente seleciona "fazer pedido". O cliente fornece seu nome e endereço. Se o cliente fornece apenas o CEP, o sistema coloca automaticamente o a cidade e o estado. O cliente fornece os códigos do produto. O sistema devolve as descrições e o preço de cada produto. O sistema calculará os valores totais para cada produto fornecido. O cliente fornece as informações sobre cartão de crédito. Em seguida, ele submete os dados ao sistema. O sistema verifica as informações fornecidas, marca o pedido como "pendente" e envia as informações de pagamento para o sistema de contabilidade e pagamento. Quando o pagamento é confirmado, o pedido é marcado como "confirmado" e o número de pedido (NP) é dado ao cliente.

Fazer Pedido - versão 2

Caso de uso primário

Atores : Cliente

Pré-condição: O usuário deve ter feito "log-in" e obtido autorização do sistema

Fluxo de Eventos (caminho básico):

  1. O caso de uso começa quando o cliente seleciona "fazer pedido".
  2. O cliente fornece seu nome e endereço.
  3. Se o cliente fornece apenas o CEP, o sistema coloca automaticamente o a cidade e o estado.
  4. O cliente fornece os códigos do produto. (veja versão 3 alternativa)
  5. O sistema devolve as descrições e o preço de cada produto. (Ponto de extensão - Produto em Oferta)
  6. O sistema calculará os valores totais para cada produto fornecido. (Ponto de extensão - Cliente Especial)
  7. O cliente fornece as informações sobre cartão de crédito.
  8. O cliente submete os dados ao sistema.
  9. O sistema verifica as informações fornecidas, marca o pedido como "pendente" e envia as informações de pagamento para o sistema de contabilidade e pagamento.
  10. Quando o pagamento é confirmado, o pedido é marcado como "confirmado" e o número de pedido (NP) é dado ao cliente.

Pós-condição: O pedido deve ter sido gravado no sistema e marcado como confirmado.

Fazer Pedido - versão 3 alternativa

Atores : Cliente

Pré-condição: O usuário deve ter feito "log-in" e obtido autorização do sistema

Fluxo de Eventos (caminho básico):

  1. O caso de uso começa quando po cliente seleciona "fazer pedido".
  2. O cliente fornece seu nome e endereço.
  3. Se o cliente fornece apenas o CEP, o sistema coloca automaticamente o a cidade e o estado.
  4. Enquanto o cliente quiser pedir itens faça
    1. O cliente fornece código do produto
    2. O sistema fornece as descrição e preço do produto
    3. O sistema atualiza o valor total
  5. O cliente fornece as informações sobre cartão de crédito.
  6. O cliente submete os dados ao sistema.
  7. O sistema verifica as informações fornecidas, marca o pedido como "pendente" e envia as informações de pagamento
    para o sistema de contabilidade e pagamento.
  8. Quando o pagamento é confirmado, o pedido é marcado como "confirmado" e o número de pedido (NP) é dado ao cliente.

Produto em Oferta - versão 2

Estende 1. Fazer Pedido, antes do passo 5

Fluxo de Eventos Primário (caminho básico):

1 O sistema procura o valor do desconto para o produto
2 O sistema mostra o desconto do produto ao usuário
3 O sistema calcula o valor do desconto
4 O sistema atualiza o total, subtraindo o valor do desconto

Pré-condição: Produto estar em oferta

Pós-condição: Valor do desconto calculado

Cliente Especial - versão 2

Estende 1. Fazer Pedido, antes do passo 6

Fluxo de Eventos Primário (caminho básico):

1 O sistema procura o valor do desconto para o cliente
2 O sistema mostra o desconto ao cliente
3 O sistema atualiza o total, subtraindo o valor do desconto

Pré-condição: Cliente ser Cliente Especial

Pós-condição: Valor do desconto total calculado e subtraído
do total de compras

Fazer Pedido - versão 5 (caso de uso estendido)

Atores: Cliente

Pré-condição: O usuário deve ter feito "log-in" e obtido autorização do sistema

Fluxo de eventos primário:

  1. O caso de uso começa quando po cliente seleciona "fazer pedido".
  2. O cliente fornece seu nome e endereço.
  3. Se o cliente fornece apenas o CEP, o sistema coloca automaticamente o a cidade e o estado.
  4. Enquanto o cliente quiser pedir itens faça
    1. O cliente fornece código do produto
    2. O sistema fornece as descrição e preço do produto
    3. O sistema atualiza o valor total
  5. O cliente fornece as informações sobre cartão de crédito.
  6. O cliente submete os dados ao sistema.
  7. O sistema verifica as informações fornecidas, marca o pedido como "pendente" e envia as informações de pagamento para o
    sistema de contabilidade e pagamento.
  8. Quando o pagamento é confirmado, o pedido é marcado como "confirmado" e o número de pedido (NP) é dado ao cliente.

Fluxo de eventos secundário:

  • A qualquer momento antes de submeter, o cliente pode selecionar cancelar. O pedido não é gravado e o caso de uso termina.
  • No passo 7, se alguma informação estiver correta, o sistema pede ao cliente para corrigir a informação.

Pós-condição: O pedido deve ter sido gravado no sistema e marcado como confirmado.

Extensões: Cliente Especial e Produto em Oferta

USA (casos de uso "usados")

  • Dar informação de produto
  • Atualizar conta

Requisitos Especiais: O sistema deve responder a qualquer comando do usuário em 1 segundo.

"Bem-aventurados vós, que agora tendes fome, porque sereis fartos. Bem-aventurados vós, que agora chorais, porque haveis de rir." Lucas 6:21

Referências:


José Carlos Macoratti