Engenharia de Software II
REVISÃO: Caso de Uso
Prof. Sergio Tanaka sergio.tanaka@unifil.br
Ator
Qualquer pessoa, departamento, sistema
computacional e dispositivos que utilizam
funcionalidades do Sistema.
Ator
Exemplo
D ire to ria D e p a rta m e n to
P e s s o a l E s to que
Aluno
Caso de Uso
Representa qualquer interação de serviços entre um
ATOR e o sistema. Cada serviço é representado como
um Caso de Uso (Use Case)
SISTEMA
Quem lê o Caso de Uso?
• Equipe do Cliente
Cliente Usuários Especificador de Requisitos Projetista Testador Técnico em Documentação Gerente do Projeto•
Equipe de Desenvolvimento
Diagramas de Casos de Uso
-Observações:
Não representar para o mesmo ATOR mais do que uma missão.
Departamento Pessoal e Estoque
Departamento
Diagramas de Casos de Uso
Não representar para o mesmo Caso de Uso
mais do que uma funcionalidade.
Visualizar Situação do Projeto e Solicitar Alteração de Tarefas Solicitar Alteração de Tarefas
Escolher Tarefas a serem Executadas Gerente de
Projeto Visualizar Agenda Individual
<<inclui>>
<<inclui>>
CASOS DE USO
Definir Funcionalidades
Genéricas;
Regras de Negócios;
Estereótipos em Casos de Usos
Sugerido por Rebecca Wirfs-Brock em 1990;
Torna a UML extensível pelo usuário do
método pela definição de estereótipos
adicionais;
O uso do estereótipo é omitido quando a
semântica predefinida na UML for suficiente;
Um estereótipo é escrito textualmente (em
guillmets sobre a sequência de nome);
Relacionamentos Entre Casos de Uso
<<inclui>>:
é utilizado quando algum caso de uso tem
comportamento comum. Esse comportamento pode ser
modelado em um único caso de uso que o utiliza. O
<<inclui>> representa o relacionamento de dependência
entre ações.
<<estende>>:
O relacionamento de dependência com o
estereótipo <<estende>> representa casos de uso
Relacionamentos Entre Casos de Uso
<<extend>> <<include>>• Include
• Extend
• Generalização
O que é um Relacionamento Include?
Um relacionamento de um caso de uso base para um caso de uso de
inclusão
O comportamento definido no caso de uso de inclusão é inserida
explicitamente para o caso de uso base. Uma inclusão explícita no caso
de uso base (Relacionamento de Inclusão) se for algo que você deseje encapsular para que possa ser reutilizado por outros casos de uso.
<<include>>
Base
Relacionamento Include
Sacar Dinheiro Tranferir de conta Depositar dinheiro
Identificar cliente <<include>>
<<include>>
<<include>>
•No sistema de Caixa Bancário, os casos de uso “Sacar”,
“Depositar” e “Transferir” precisam Depositar Transferir
incluir como o cliente será identificado no sistema.
•Este comportamento pode ser fatorado em um caso de uso
chamado “Identificar Cliente” que os três casos de uso
incluem.
Execução de um Include
Executado completamente quando o ponto de
inclusão é alcançado
Instância do Caso de Uso
Caso de Uso Include Caso de Uso Base
O que é um Relacionamento Extend?
Conexão de um caso de uso estendido para um caso de uso
base
Inserir comportamento estendido de um caso de uso num
caso de uso base
Inserir somente se a condição de extensão for verdadeira Mostrar que uma parte de um caso de uso é um
comportamento opcional (ou possivelmente opcional) do sistema. Isso faz a diferenciação entre comportamento opcional e comportamento obrigatório em um modelo.
<<extend>>
Extensão
Relacionamento Extend
Adquirir Seguro Identificar cliente
<<extend>>
• No sistema de Caixa Bancário, quando o cliente for
identificado, o sistema precisa saber se ele já adquiriu
seguro contra roubo de cartão e, caso negativo,
oferecer a aquisição do seguro.
• Podemos demonstrar isso com a criação de um caso
de uso chamado “Adquirir Seguro” que estende a
funcionalidade de “Identificar Cliente”.
Execução de um Extend
Executado quando o ponto de extensão é alcançado
e a condição de extensão (decisão) for verdadeira
Caso de Uso Base Instância do
Caso de Uso
Ponto de Extensão
O Que é Caso de Uso Generalização?
Um relacionamento de um caso de uso filho para caso
de uso pai
Descreve compartilhamento geral do comportamento do pai
Descreve comportamento especializado num filho
Compartilha um objetivo comum
Pai
Exemplo de Caso de Uso Generalização
Ordem por telefone Ordem pela internet Inserir Ordem
Em um sistema de Gerenciamento de Ordens, os casos de uso Ordem por Telefone e Ordem pela Internet
compartilham muito em estrutura e comportamento.
Um caso de uso geral Inserir Ordem é definido onde essa estrutura e esse comportamento comum são definidos. O caso de uso abstrato Inserir Ordem não precisa ser completo por si
mesmo, mas fornece um framework comportamental geral que os casos de uso filho podem completar.
HERANÇA ENTRE ATORES
Pode-se utilizar herança entre atores;
Herança entre atores significa que um ator
preenche os mesmos papéis de outro ator,
podendo também preencher papéis
adicionais;
Na UML herança é indicado pelo
Herança entre atores
Caso de Uso 1 Ator1 Caso de Uso 2 Ator2 Caso de Uso 3Onde fazer o Diagrama de Caso de Uso no Rational
Rose?
Onde fazer o Diagrama de Caso de Uso?
(cont.)
1. O Diagrama de Caso de Uso deve ser feito no pacote Use
Case Model
2. Criar o ATOR: MBD em Actors New Actor (digitar o nome do Ator)
3. Criar o PACOTE com o nome do Caso de Uso: MBD em Use Cases New Package
Onde fazer o Diagrama de Caso de Uso?
(cont.)
4. Criar os CASOS DE USO: MBD no Pacote Use Cases (criado no item 3) New Use Case
5. Criar a Visão Local: MBD no Use Case New Use Case Diagram
6. Clicar e arrastar o ator (que está na pasta Actor) para a Visão Local
Onde fazer o Diagrama de Caso de Uso?
(cont.)
5. Clicar e arrastar o Caso de Uso (que está no
pacote) para a Visão Local
6. Efetuar o relacionamento entre o Ator e o Caso de
Uso
7. Após criado todos os pacotes com seus respectivos
casos de usos, criar o Diagrama de Caso de Uso.
7.1. arrastar os Atores e Caso de Uso para o Global View of
Diagramas Casos de Uso
Fazendo o Diagrama
1.
Fazer o levantamento com os usuários para
identificar os Atores e os Casos de Uso. 2. Fazer uma lista dos possíveis Atores. 3. Filtrar a lista e definir os Atores. 4. Fazer uma lista dos possíveis Casos de Uso dos Atores. 5. Filtrar e definir os Casos de Uso para cada Ator. 6. Representar cada Ator com seus Casos de Uso
no diagrama. 7. Realizar levantamento junto aos usuários para entender como o sistema deve atender os Casos de Uso.
Exercícios
Baseado na figura 1, faça os seguintes exercícios:
Figura 1 – Diagrama de Casos de Uso
UC4 UC5 UC6 UC7 Ator2 UC3 Ator1 UC2 <<extend>> Ator3 UC1 <<include>>
Exercícios
1. O Ator1 poderá executar o UC3? 2. O Ator2 tem acesso ao UC1 e UC2?
3. O UC1, UC2 e UC3 são casos de Usos Abstratos?
4. O UC4, UC5, UC6 e UC7 são casos de Usos Concretos?
5. O UC6 e UC7 são casos de usos generalizados do UC3 através de uma
herança de caso de uso?
6. O UC1 e UC2 são considerados Casos de Uso Base, portanto são
obrigatórios?
7. O UC5 é considerado um caso de uso facultativo?
8. O Include e Extend são chamados de Estereótipos e podem ser utiizados em
Casos de Usos?
9. Um Caso de Uso tem que ser Significativo e Completo para o ator que esta
executando-o?
10. Um Ator sempre inicializa a comunicação através de um Caso de Uso Base? 11. O Ator3 e o UC1 podem inicializar a comunicação entre eles?