Caso de Uso - Definição
• Um caso de uso é uma descrição narrativa
de uma seqüência de eventos que ocorre
quando um ator (agente externo) usa um
sistema para realizar uma tarefa[Jacobson
92]
• Uma unidade coerente de funcionalidade
provida por um sistema, manifestada por
uma seqüência de mensagens trocadas entre
o sistema e um ou mais usuários externos
(representados como atores), junto com as
ações executadas pelo sistema.
Objetivos dos Casos de Uso
• Descrever a funcionalidade do sistema (Requisitos
Funcionais)
• Mapear o escopo do sistema, onde explicita a
fronteira do sistema.
• Facilitar a comunicação com usuário do sistema.
• Gerenciar o projeto.
• O RUP o utiliza para guiar todo processo de
desenvolvimento
• Mostram apenas o que o sistema faz, e não
como.
Caso de uso: representação
gráfica
- Uma elipse com o nome do caso de uso no centro
Nome = Verbo + Substantivo (indicação de ação)
Ponte entre Requisitos e Análise
Ator
• Constituem as entidades que interagem com o
ambiente do sistema
o Pessoas ou outros sistemas (de hardware ou software)
que interagem com o sistema em desenvolvimento
• Definem um papel particular (uma mesma
entidade pode desempenhar diferentes papéis)
• São sempre externos ao sistema
• O sistema será descrito através de vários casos de
uso que são executados por um número de atores
Ator: representação gráfica
Diagramas de Caso de Uso
• Introduzida por Jacobson em 1994 para
visualização dos casos de uso
• Esse diagrama é parte da UML
• Mostram um conjunto de casos de uso,
atores e seus relacionamentos
• Indicam a forma como o sistema interage
com as entidades externas
Diagrama de Caso de Uso :
representação gráfica
Como encontrar atores e
casos de uso?
Como encontrar atores?
•
•
•
•
•
•
Quem usa o sistema?
Quem instala/mantém o sistema?
Quem inicia/desliga o sistema?
Que outros sistemas usam o sistema?
Quem recebe informação do sistema?
Quem provê informação ao sistema?
Como encontrar casos de
uso?
• Que funções o ator vai querer do sistema?
• O sistema armazena informações? Que
informações atores irão criar, ler, atualizar ou
apagar?
• O sistema precisa notificar o ator sobre
mudanças no seu estado interno?
• Existe algum evento externo que o sistema
precisa saber? Que ator informa o sistema
desses eventos?
Fluxo de Eventos
• Especifica o comportamento de um caso de
uso
• É uma seqüência de comandos declarativos
que descreve as etapas de execução de um
Caso de Uso
• Permanece focado no domínio do problema e
não em sua solução
• Pode conter testes condicionais e iterações
• Contém informações relativas:
– Às 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
Fluxo de Eventos
• O fluxo de eventos de um caso de uso é
composto por:
– Um Fluxo Básico - descreve a funcionalidade
principal do caso de uso, quando nenhum desvio
é tomado
– Zero ou Mais Fluxos Alternativos - descrevem
desvios pré-definidos do fluxo básico
• Esses fluxos podem ser especificados
através de:
– Descrição textual informal
– Texto semi-formal (através de pré-, pós-condições
e invariantes)
– Pseudo-código
– Ou uma combinação destes
Exemplo (Fluxo Básico do
caso de uso Comprar
Produtos)
Descrito em pseudo-código:
1. O cliente chega ao ponto de vendas com os
produtos da compra
2. Para cada produto trazido pelo cliente:
a) O atendente registra o código e a quantidade do produto
b) O sistema determina o preço do produto e o adiciona à
compra
3. O atendente finaliza a compra
4. O sistema calcula e apresenta o total
...
Exemplo (Fluxo Básico de
Eventos – Cont...)
...
5. O atendente informa ao cliente sobre o total da
compra e pergunta qual a forma de pagamento
6. Se (dinheiro) forma de pagamento = “dinheiro”
7. O atendente registra a quantia recebida
8. O sistema mostra o troco e gera o recibo
9. O atendente deposita o dinheiro, devolve o troco e
entrega o recibo de compra
10. O sistema registra o final da transação
Exemplo (Fluxos Alternativos
de
Eventos)
Descrições textuais:
1. No passo 2 do fluxo básico, pode haver um
produto com um código inválido. Nesse caso, o
sistema avisará que o código fornecido é inválido e
pede que o atendente registre o próximo produto.
Vá para o passo 2 do fluxo básico.
2. No passo 6, o cliente pode escolher pagar com
cartão de crédito ou débito.Neste caso, o
atendente passa o cartão e o cliente digita a
senha.Se houver, vá para o passo 6 do fluxo
básico.
3. A qualquer momento, o atendente pode cancelar a
transação. Nesse caso, as informações referentes
Cenários
• Em UML significa um caminho através de um
caso de uso.
• Uma instância de um caso de uso
• Seqüência de passos que descreve uma interação
• Exemplo (Sacar dinheiro):
– Saque com sucesso
– Tentativa de saque MAS senha incorreta
– Tentativa de saque MAS saldo insuficiente
Caso de Uso x Cenários
• Um caso de Uso não é um cenário, mas
pode encapsular um conjunto de
cenários
• Cada cenário é uma instância de um
caso de uso
• Para cada caso de uso temos, no
mínimo, um cenário para o fluxo normal
(cenário principal) e outros para cada
fluxo excepcional (cenários
secundários).
Formato de Documentação de
Casos de Uso
• Não existem padrões na indústria ou na
literatura para sua formatação
• Deve-se incluir informações que
facilitem a comunicação entre os
clientes e a equipe de desenvolvimento
do sistema
Formato de Documentação de
Casos de Uso
(Modelo mais usado)
•
•
•
•
•
•
•
Nome do Caso de Uso
Breve descrição
Ator (principal)
Prioridade (ex: Essencial, Importante, Desejável)
Pré-Condições
Pós-Condições
Fluxo de eventos:
– Fluxo de evento principal
– Fluxos secundários: alternativos e de exceção
• Requisitos Não-Funcionais Específicos
Relacionamento entre casos de
uso
• Os casos de uso podem ser organizados por
meio de relacionamentos
• A UML disponibiliza três tipos:
• generalização
• inclusão
• extensão
Generalização
• É um relacionamento de generalização/especialização
• Os casos de uso especializados herdam a estrutura do caso
de uso generalizado
• O supertipo contém cenários mais especializado, particular a
cada um deles
• Os subtipos contém cenários mais especializados, particular
a cada um deles
• Os cenários comuns a mais de um caso de uso é adaptado
em um caso de uso generalizado
Generalização
• Quando usar?
Quando você estiver descrevendo comportamentos semelhantes
entrecasos de uso, mas algum deles faz um pouco mais que o outro.
Exemplo:
Inclusão
• Um caso de uso incorpora explicitamente o
comportamento de outro caso de uso, evitando assim
repetições de descrição de fluxos.
• O cenário comum a mais de um caso de uso é captado em
um outro
– concentra o serviço em um caso de uso base a ser utilizados por
outros
– evita-se descrever a mesma seqüência de passos a vários casos de
uso
• Utiliza o estereótipo <<include>> para expressar esse tipo
de relacionamento
Inclusão
• Quando usar?
Quando houver repetição entre casos de uso e você desejar evitar
esta repetição
Exemplo:
Extensão
• É usado para descrever cenários opcionais de um
caso de uso
– os casos de uso descrevem cenários que sempre
acontecerão no sistema
– os casos de uso estendidos ocorrerão em uma situação
específica
– concentra-se essa seqüência em um caso de uso público
• Utiliza o estereótipo <<extend>>para expressar esse
tipo de relacionamento
Extensão
• Quando usar?
Quando quiser descrever uma variação do comportamento normal.
•
partes opcionais de casos de uso
• cursos alternativos e complexos que raramente ocorrem
Exemplo:
Fluxo de Requisitos
no RUP
Atividades e Responsáveis
Localizar Atores e Casos de Uso
• Objetivos
 Delimitar o sistema
 Destacar os atores que irão interagir com o sistema
 Destacar os casos de uso do sistema
 Definir glossário com os principais termos
• Processo
 Identificar os Atores
 Identificar Casos de Uso
 Descrever Caso de Uso de forma resumida
 Criar Diagramas de Caso de Uso
 Descrever os diagramas (Descrição Analítica)
Priorizar os Casos de uso
• Objetivos
 Definir em quais iterações os Casos de Uso serão
desenvolvidos
 Definir quais Casos de Uso participarão da visão
arquitetural do Modelo de Caso de Uso
• Processo
 Identificar os Casos de Usos com mais riscos e os mais
significantes
 Alimentar a Visão Arquitetural dos diagramas de Caso
de Uso, com os casos de usos mais importantes
 Alocar os Casos de Uso as iterações definindo suas
prioridades dentro de cada uma delas.
Detalhar Casos de Uso
• Objetivos
 Descrever o fluxo de eventos de cada caso de uso
• Processo
 Entrevistar os usuários (atores) que estão relacionados
com cada um dos casos de uso
 Descrever detalhadamente os passos que compõem o
fluxo de evento do use case (Cada passo deve ter um
objetivo claro)
 Revisar o detalhamento do caso de uso com os usuários
 Refinar a descrição dos casos de uso
Estruturar o Modelo de Caso de Uso
• Objetivos
 Otimizar o modelo de caso de uso
• Processo
 Identificar descrições de funcionalidades comuns.
– Extrair tais funcionalidades e criar um use case mais
específico que possa ser usado pelos demais <<include>>.
 Reuso de use cases
– Herança(<<Generalization>>) ou Factoring(<<include>>)
entre casos de uso.
 Identificar descrições de funcionalidades adicionais ou
opcionais.
 Extrair as extensões adicionais ou opcionais para um use case
mais específico <<extend>> Ex:Condições, Erros,
Alternativas
Download

Caso de Uso - Definição - Centro de Informática da UFPE