Anda di halaman 1dari 38

UML - Diagramas de Casos de

Utilização (Use Case Diagrams)

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 1


Objectivo
I Um diagrama de casos de utilização de um sistema mostra actores
(tipos de utilizadores), casos de utilização e relações entre eles
• Fundamental acompanhar de descrições textuais de casos de utilização
I Permite:
• mostrar para que serve o sistema (a utilidade do sistema), ignorando
a forma como está organizado internamente
• especificar o contexto do sistema
- com quem interage (actores) e com que finalidade (casos de utilização)
• capturar os requisitos funcionais do sistema
- casos de utilização são funcionalidades do sistema vistas pelos utilizadores

I Pode referir-se a um sistema de software, um sistema de negócio


ou organização, um equipamento, uma classe, etc.
I É elaborado por analistas e especialista de domínio nos primeiros
estágios do desenvolvimento

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 2


As três perspectivas de um sistema
I Casos de utilização
• para que serve o sistema (utilidade)
• num vídeo-gravador: reproduzir cassete, gravar cassete
• nem sempre evidente a partir da observação do interface!
• um caso de utilização engloba uma sequência de interacções com elementos
da interface, para atingir resultado útil (produto ou serviço) para o utilizador!

I Interface
• sistema como caixa preta
• o que é visível na fronteira do sistema (estrutura e funcionamento)
• num vídeo-gravador: teclas, visor, abertura para cassete, tomadas

I Implementação
• sistema como caixa branca
• acrescenta o que está escondido (estrutura e funcionamento)
• num vídeo-gravador: motor, cabeças de gravação, sintonizador, ...

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 3


Exemplo 1: Telemóvel (equipamento)

nome do sistema
Telemóvel
fronteira do
sistema

Efectuar ch amad a
actor

Rede

Receber cha mada


Utili zador

associação de
comunicação entre caso de utilização
actor e caso de
utilização Usa r a a genda

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 4


Exemplo 2: Restaurante (negócio)
Restaurante

Servir almoço

casos de utilização primários


Cliente - servem directamente clientes
Servir jantar

caso de utilização secundário


Comprar bens - não serve directamente clientes
- envolve interacção com o
Fornecedor exterior
- serve casos de utilização
- utilizador ou utilizado? primários
- o que importa é que interage com o sistema! - tem valor para o fornecedor

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 5


Exemplo 3: Aplicação de Gestão
de Restaurantes (software)
Aplicação de Gestão de Restaurantes

Registar pedido

Cozinheiro

Empregado
de mesa Emitir factura

A mesma coisa para o sistema de informação do restaurante (hardware+software)!

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 6


Actores ou «actor»
Cliente
Cliente
I Actor = papel (role)
• Um actor em relação a um sistema é um papel que alguém ou alguma
coisa do ambiente envolvente desempenha quando interage com o
sistema
I Actor = classe
• classes são frequentemente usadas para modelar papéis que objectos individuais
podem desempenhar

I Actor = tipo de utilizador (em sentido lato)


• pode ser uma pessoa ou outro sistema
• pode utilizar ou ser utilizado, o que interessa é que interage com o sistema

I Actor ≠ recurso do sistema


• recursos são pessoas, máquinas, etc. que pertencem ao sistema e que são
usados para levar a cabo tarefas dentro do sistema

I Actor ≠ indivíduo
• o mesmo indivíduo pode interagir com o sistema em vários papéis (como
cliente, como fornecedor, etc.)

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 7


Casos de utilização Servir
almoço
ou
Servir almoço

I Definição: Um caso de utilização é uma descrição de um conjunto


de sequências de acções(1), incluindo variantes(2), que um sistema
realiza(3) para produzir um resultado observável com valor para
um actor(4,5)
(1) a definição dá ênfase à sequência (modo) de funcionamento, mas este
detalhe só surge numa 2ª iteração, depois de se ter alguma ideia do interface
do sistema
(2) a sequência concreta de acções pode variar de instância para instância do
caso de utilização
(3) interessam-nos mais as acções do sistema, pois são essas que temos de
implementar, mas também interessa descrever as acções do actor
(5) é esta utilidade ou objectivo que importa descrever numa 1ª iteração
(6) o resultado pode ser um produto, um serviço, etc.

I Mais simplesmente, um caso de utilização é :


• uma funcionalidade do sistema vista pelos utilizadores
• um tipo de interacção (de alto nível) entre actores e o sistema

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 8


Descoberta dos casos de utilização
I Pensar em cada actor e nas interacções que tem com o sistema
I Um caso de utilização agrupa interacções elementares de actores com
elementos da interface do sistema, mas qual deve ser o nível de
agrupamento?
I Caso de utilização simples: utilização de funcionalidade de grão mais fino
possível que, uma vez implementada, acrescenta valor (do ponto de vista dos
utilizadores) ao sistema que está a ser desenvolvido
• Exemplo no multibanco:
- "introduzir cartão" não é um caso de utilização porque não tem valor isoladamente
- "levantar dinheiro" é um caso de utilização porque tem valor para o detentor do cartão
• O caso de utilização inclui todas as acções a montante (de preparação) e a jusante (de
finalização) necessárias (numa relação de um para um) à produção do resultado
- Levantamento no multibanco, vai desde a introdução do cartão até à recolha do cartão, do talão
e do dinheiro

I Caso de utilização composto: combinação de casos de utilização mais simples


• modelar apenas quando importa automatizar

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 9


Descrição dos casos de utilização
I 3 níveis de detalhe, de acordo com as 3 perspectivas de um sistema
I 1º) essência / utilidade
• descrição breve independente da interface que o sistema apresenta
• descrever o objectivo ou resultado a produzir
• opcionalmente, indicar lista de features e limitações (nível de requisitos)

I 2º) interface
• descrição de sequências de funcionamento normais e excepcionais, em termos de
interacções dos actores com elementos da interface
• opcionalmente, acompanhar de desenhos da interface para o utilizador e de diagramas
dinâmicos
• indicar quando é que o caso de utilização começa e acaba, quando ocorrem interacções com
os actores, que objectos são trocados, quem faz o quê (o sistema ou um actor)
• pode ser aproveitado para o no manual do utilizador

I 3º) implementação
• realização do caso de utilização por uma colaboração de objectos internos ao sistema
• sequências de funcionamento detalhadas com (inter)acções internas ao sistema
• já não compete ao analista, mais sim ao projectista/implementador
• já não faz parte do modelo de casos de utilização, mas sim do modelo de design

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 10


Exemplo: descrição do caso de
utilização "servir almoço"
I Objectivo:
• servir uma refeição rápido a um cliente que se dirige ao restaurante ao almoço

I Features e limitações:
• há dois pratos do dia pré-confeccionados, um de carne e outro de peixe, e uma lista fixa de pratos de
preparação rápida
• não se fazem reservas

I Sequência normal de funcionamento:


• o cliente chega ao restaurante e senta-se numa mesa vaga
• o empregado entrega ao cliente uma folha com o menu do dia
• o cliente indica ao empregado o prato e bebida pretendidos
• o empregado transmite o pedido do prato à cozinha
• o empregado entrega a bebida ao cliente
• assim que está pronto, o empregado entrega o prato pedido ao cliente
• o cliente pede a conta
• o empregado faz a conta e entrega-a ao cliente
• o cliente paga a conta à saída

I Sequência de funcionamento excepcional:


• Quando o restaurante está cheio, os clientes que chegam ao restaurante formam fila à entrada e o
empregado vai chamando os clientes para as mesas há medida que vão vagando

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 11


Casos de utilização e o processo
de desenvolvimento
I Casos de utilização guiam o planeamento
• Cada iteração do processo de desenvolvimento deve analisar detalhadamente e
implementar um conjunto de casos de utilização ou variantes de casos de utilização
• Cada iteração resultará num incremento ao produto com utilidade para o cliente
• Começar pelos casos de utilização ou variantes mais prioritários ou com mais risco

I Casos de utilização guiam a captura e especificação de requisitos


• Casos de utilização definem implicitamente requisitos funcionais
• Alguns requisitos não funcionais podem também ser alocados a casos de utilização
• Em sistemas simples, dispensam definição prévia de uma lista de requisitos

I Casos de utilização guiam o desenho do sistema


• Arquitectura (forma) do sistema (divisão em módulos e definição dos seus interfaces e
dependências) é condicionada pelos casos de utilização (função) e requisitos adicionais
• A implementação de cada caso de utilização sobre essa arquitectura é modelada por uma
colaboração de objectos, combinando estrutura e comportamento

I Casos de utilização guiam o teste do sistema


• Casos de teste de "caixa preta" desenhados a partir dos casos de utilização

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 12


Aplicação a sistemas de negócio
I Actores modelam clientes, fornecedores, parceiros, etc.
I Casos de utilização modelam processos de negócio
• processos de negócio primários: servem directamente clientes
• processos de negócio secundários: não servem directamente clientes, mas
envolvem interacção com o exterior e servem processos de negócio primários

I Nem todas as actividades de um sistema de negócio se podem


englobar em processos de negócio, numa definição estrita
• caso das actividades que não estão relacionadas, mesmo que indirectamente,
com um actor individual
• essas actividades são englobadas em processos de suporte internos
• processos de gestão de recursos, planeamento, controlo, etc.

I Processos de negócio e de suporte são relacionados e detalhados


através de diagramas de actividades, até chegar a actividades
que podem ser atribuídas a trabalhadores ou equipas individuais

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 13


Estruturação dos diagramas de
casos de utilização

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 14


Formas de estruturar
I Relação “extend” entre casos de utilização
I Relação “include” entre casos de utilização
I Relação de generalização entre casos de
utilização
I Relação de generalização entre actores
I Agrupamento de casos de utilização em pacotes
de casos de utilização

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 15


Relação “extend” entre casos de
utilização (1)
I Para simplificar a descrição dos casos de utilização, podem-se
organizar os casos de utilização em casos básicos (casos de utilização
de acordo com a definição) e extensões aos casos básicos, que
traduzem partes ou modalidades acrescentadas condicionalmente
(opções)
«extend»
A B
caso básico extensão
I Significado:
• uma instância do caso de utilização A pode incluir (sujeito a condições especificadas
na extensão) o comportamento especificado por B
• o caso básico deve fazer sentido sozinho
• os actores interagem com o caso básico (A)

I Em software, corresponde normalmente a seguir um botão ou um link


num formulário que desencadeia uma acção ou dá acesso a outro
formulário ou relatório

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 16


Relação “extend” entre casos de
utilização (2)
I Exemplo:
Servir jantar
«extend» «extend»
«extend»
Servir uma entrada Servir à luz de velas

Servir uma sobremesa

I Podem-se indicar explicitamente os pontos em que um caso


de utilização básico pode ser estendido (pontos de extensão)

Servir jantar
Extension points «extend» Servir uma sobremesa
sobremesa (sobremesa)

I Na descrição textual do caso básico: .... (sobremesa). ...

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 17


Relação “extend” entre casos de
utilização (3)
Manutenção da Lista de Disciplinas:

Visualizar Lista de
Disciplinas
«extend» «extend»

Visualizar Ficha de Adicionar Disciplina


Disciplina «extend»

«extend»
«extend»

Modificar Disciplina Eliminar Disciplina

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 18


Relação “include” entre casos de utilização
(1)
I Quando vários casos de utilização têm uma sub-sequência de
funcionamento comum, é conveniente separar essa parte
comum para um novo caso de utilização que é incluído pelos
primeiros
I Notação: «include»
A B
(parte comum a outros casos de
utilização além de A)

I Significado
• uma instância do caso de utilização A inclui obrigatoriamente o
comportamento especificado por B
• os actores interagem com A
• na descrição textual de A: include(B)

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 19


Relação “include” entre casos de
utilização (2)
I Exemplo:

Servir almoço
«include»

Pagar
refeição

«include»
Servir jantar

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 20


Relação de generalização entre casos de
utilização
I Relação de generalização: entre uma coisa mais genérica e uma
coisa mais especializada
I Significa que o caso de utilização "filho" (mais especializado)
herda o comportamento, significado e actores do caso de
utilização "pai" (mais genérico)
• O filho pode adicionar ou substituir comportamento do pai
• O filho pode aparecer em qualquer contexto em que o pai pode aparecer

I Notação: mesmo que generalização entre classes


I Exemplo:
Servir
almoço
Servir uma
refeição
Servir
jantar

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 21


Relação de generalização entre actores
I Exemplo:

Cliente

Cliente
Empresarial

• Um cliente empresarial é um (is a) cliente


• O cliente empresarial herda as associações (de comunicação
com casos de utilização) do cliente genérico
• Permite simplificar e estruturar os diagramas

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 22


Pacotes de casos de utilização
I Num sistema complexo, podem existir demasiados casos de
utilização para visualizar com clareza num único diagrama!
I Uma solução: um diagrama de casos de utilização inicial,
com pacotes de casos de utilização, e um diagrama de
casos de utilização relativo a cada pacote
I Critérios de agrupamento de casos de utilização em
pacotes:
- por actores
- por sub-sistemas

I Pacotes de casos de utilização correspondem normalmente


a menus em sistemas de software

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 23


Exemplo: Restaurante
Restaurante

Servir almoço

Servir uma «include» Pagar


refeição refeição

Cliente
Servir jantar
«extend» «extend»
«extend»
Servir uma Servir à luz de
entrada velas
Servir uma
sobremesa

Comprar bens
Fornecedor

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 24


Exemplo: Sistema de Gestão de
Restaurantes
Sist. de Gestão de Restaurantes (SGR)

Relação com
Fornecedores
Cozinheiro

Relação com
Empregado de mesa Clientes

Empregado de caixa

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 25


Exemplo: SGR (2)
SGR – Relação com Clientes

Elaborar menu
do dia
Cozinheiro

Registar pedido

Empregado
Tirar a conta
de mesa

Pagar a conta
Empregado
da caixa

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 26


Exemplo: SGR (3)
SGR – Relação com Fornecedores

Preparar
encomenda

Cozinheiro Registar compra

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 27


Caso de Estudo: Sistema de
Informação de uma Biblioteca

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 28


Objectivo
I Pretende-se projectar o Sistema de Informação de
uma Biblioteca (SIB), para apoiar as seguintes
actividades:
• gestão de aquisições de publicações
- registar a aquisição
• gestão de consultas e fotocópias de publicações dentro da biblioteca
- interessa contar o nº de vezes que cada publicação foi consultada
• consulta da base de dados de publicações (público e empregados)
• gestão de sócios
- inscrição, renovação, cancelamento
• gestão de requisições
- só os sócios podem requisitar publicações
- requisição com levantamento, devolução

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 29


Metodologia
I Captura e especificação de requisitos:
• listar requisitos candidatos
• construir um modelo de casos de utilização da biblioteca
• detalhar casos de utilização da biblioteca através de diagramas de
actividades, identificando as actividades automatizadas com recurso
ao SIB e os trabalhadores envolvidos
• construir um modelo de domínio
• construir um glossário de conceitos de domínio
• construir um modelo de casos de utilização do SIB (sistema de
software)
• detalhar alguns casos de utilização da SIB através de diagramas de
sequência
- sistema representado por um único objecto

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 30


Diagrama de casos de utilização
da biblioteca
Biblioteca
Íc one para actor em
relação ao negócio
Consultar base de dados de
publicações
Leitor Ícone para caso de utilização
do negócio

Consultar publicação

Obter fotocópia de publicação


<<include>>

Levantar publ ica ção

Sócio Requisitar publicação <<include>>

Devolver publ icação

Em UML 1.3, devia ser


uma seta de dependência
Fornece dor Adquirir publicação

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 31


Actores em relação à biblioteca
I Leitor
• Pessoa que se dirige à biblioteca para consultar publicações,
sendo ou não sócio da biblioteca.

I Sócio
• Leitor que está inscrito como sócio da biblioteca.

I Fornecedor
• Empresa a quem a biblioteca adquire publicações.

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 32


Casos de utilização da biblioteca
I Consultar base de dados de publicações
• Consultar a base de dados com a lista de publicações existentes na biblioteca, incluindo
informação sobre o estado das publicações.

I Consultar publicação
• O leitor consulta a publicação dentro das instalações da biblioteca.
• Para fins de gestão, é mantido um contador do número de vezes que cada publicação é
consultada dentro da biblioteca.

I Obter cópia de publicação


• O leitor pode tirar fotocópias de partes de publicações numa fotocopiadora da biblioteca.

I Requisitar publicação
• A biblioteca empresta uma publicação a um sócio para consulta no exterior da biblioteca
mediante uma requisição.
• Envolve dois contactos com a biblioteca, para o levantamento e a devolução da
publicação.

I Adquirir publicação
• A biblioteca adquire livros a fornecedores.

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 33


Diagrama de casos de utilização
do SIB
Sistema de Informação da Biblioteca (SIB)

Leitor Consultar base de dados de


pub licaçõe s
(f rom Modelo de Casos de Utilização da Biblioteca)
(f ro m Mo delo d e Caso s de Utili za ção d a Biblioteca )

Registar sócio

Registar publicação
Gestor

Regis tar l eva ntam ento d e


Funcionário
p ublicaçã o

Obter estatísticas d e uti lização


Ícone para
trabalhador
do negócio Registar devolução de publicação

Registar consulta de publicação

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 34


Actores em relação ao SIB
I Leitor
• Pessoa que se dirige à biblioteca para consultar publicações, sendo
ou não sócio da biblioteca.

I Funcionário
• Empregado da biblioteca que atende os leitores e sócios.

I Gestor
• Empregado da biblioteca que trata das aquisições de publicações e
consulta estatísticas de utilização.

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 35


Casos de utilização do SIB (1)
I Consultar base de dados de publicações
• Consultar a base de dados com a lista de publicações existentes na
biblioteca, incluindo informação sobre o estado das publicações.

I Registar sócio
• Inscrever leitor como sócio da biblioteca.

I Registar levantamento de publicação


• Registar o levantamento de uma publicação por um sócio
(empréstimo da publicação ao sócio).

I Registar devolução de publicação


• Registar a devolução à biblioteca de uma publicação que estava
emprestada por um sócio.

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 36


Casos de utilização do SIB (2)
I Registar consulta de publicação
• Registar que uma publicação foi consultada por um leitor dentro da
biblioteca. Não é necessário identificar o leitor.

I Registar publicação
• Registar publicação já existente (na instalação do sistema) ou
adquirida.

I Obter estatísticas de utilização


• Obter estatísticas sobre a taxa de utilização das várias publicações,
úteis para a aquisição de novas publicações.

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 37


Exercícios
I Estender o caso de estudo (biblioteca)
I Elaborar diagramas de casos de utilização
relativamente aos seguintes sistemas:
• Terminal Multibanco

UML – Diagramas de casos de utilização, v. 1.0, João Pascoal Faria, 2001 38