Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da...

38
Casos de Uso

Transcript of Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da...

Page 1: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Casos de Uso

Page 2: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Casos de Uso – O que é

Descrições narrativas de processos do domínio da aplicação

Documentam a seqüência de eventos de um ator (um agente externo) usando o sistema para completar, do início ao fim, um determinado processo

Representação em UML:Buy Items

Page 3: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Objetivos de um Caso de Uso

Ser compreensível para os usários leigos em informática

Auxiliar a tarefa de análise, especificando funcionalidades e comportamento do sistema

Delimitar o sistema Servir de base para derivar casos

de teste

Page 4: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Atores

Entidades externas ao sistema que de algum modo participam da estória do caso de uso Estimulam o sistema com eventos de

entrada, ou recebem alguma coisa dele Designados pelo papel que exercem no caso

de uso Ex.: Cliente, Operador, etc.

Representação em UML: Customer

Page 5: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Atores e Casos de Uso

Um caso de uso possui um ator que o inicia, que gera o estímulo inicial, e possivelmente vários atores participantes O ator iniciador deve ser indicado explicitamente

na descrição do caso de uso

Algumas categorias típicas de atores incluem: papeis exercidos por pessoas sistemas de computação, outros softwares dispositivos elétricos e mecânicos hardware

Page 6: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Diagramas de Caso de Uso

Ilustram um conjunto de casos de uso e atores para um sistema e os relacionamentos entre eles

Cashier

POST

Buy Items

Customer

Log In

Refund Purchaseditems

Page 7: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Relacionamentos no Diagrama de Casos de Uso Relacionamento entre atores

Relacionamento entre atores e casos de uso

Relacionamento entre casos de uso

Page 8: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Relacionamento entre atores

Relacionamento de Associação

Relacionamento de Generalização

Funcionario

Cliente Caixa

Cliente

_________

_________

Page 9: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Herança entre atores

Gerente de Compras

Gerente deVendas

Gerente

Page 10: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Relacionamento entre atores e casos de uso

Buy Items

Buy Items

Cliente

Customer

_________

_________

A seta pode indicar duas alternativas a escolher: ator que inicia o caso de uso ou simplesmente a direção dos dados

Page 11: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

<<uses>> ou << include>>

ValidarCliente

Cliente

RealizarPedido

<<uses>>

<<extends>>

CadastrarCliente

Cliente

RealizarPedido________

Relacionamento entre Casos de UsoRelacionamento entre Casos de Uso

<<extends>>

______

Page 12: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Relacionamento de Uso ou Include

Utilizar quando se tem um bloco de comportamento que é o mesmo para vários casos de uso.

Representar o fluxo comum como um outro caso de uso B a ser chamado pelo caso de uso A complexo: A <<uses>>B

Validar Cliente pode ser um caso de uso utilizado por outro caso tal como Abrir Conta além de Realizar Pedido

Page 13: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Relacionamento de Extensão

Utilizar quando se tem dois casos de usos que fazem algo parecido, só que o caso de uso B faz alguma coisa a mais que A. B estende A

B representa alguma situação não muito comum que ocorre em A mediante a satisfação de uma pré-condição

Page 14: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Relacionamento de Generalização

Identificar Usuário

Verificar Senha

_______

Customer

relação estrutural entre um caso de uso mais geral e um caso de uso mais específico. o caso de uso mais geral é uma generalização

(abstração) do ou dos casos de uso mais específicos. O caso de uso geral, representa as partes comuns de casos de uso especializados.

Page 15: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Fluxo de Eventos, Cenários

Um caso de uso descreve um fluxo de eventos para realizar uma operação

Cenário: é uma das formas possíveis de se realizar um caso de uso

Tipos de fluxos: Típicos: Principal ou Básico Atípicos: Alternativos, casos de erro,

cancelamento, etc.

Page 16: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Pré e Pós Condições Condições que devem ser

verdadeiras antes de o caso de uso ser executado, ou após a sua execução.

Ex: retirar dinheiro em um caixa Pré-condição: cliente precisa ter conta

no banco Pós-condição: o terminal fica pronto

para outro cliente.

Page 17: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Interfaces entre Atores e Casos de Uso

Identificam quais operações o ator (ou o caso de uso) realizam

Auxiliam a especificar as interações e a reutilizar casos de uso

Cliente Realizar PedidoInterfaceCliente

--------------________

Page 18: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Tipos de Caso de Uso Com Respeito à Importância

Primário Representam os processos principais ou mais

comuns (ex.: Comprar Itens)

Secundário Representam processos menos importantes

ou mais raros (ex.: Cadastrar Operadores)

Opcional Representam processos que podem ser

ignorados ou incluídos em futuras versões do sistema (ex.: Solicitar Estoque para um Novo Produto)

Page 19: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Tipos de Casos de Uso com Respeito à Descrição

Textual Alto-nível Breve descrição de um processo,

normalmente em duas ou três frases, e deliberadamente vago em decisões de projeto

Criados na fase inicial de requisitos

Expandido Descrição passo a passo dos fluxos de eventos

de um processo Durante a fase de requisitos, apenas os casos

de uso mais importantes são geralmente escritos nesse formato

Page 20: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Exemplo de um caso de uso de alto-nível:

A UML não especifica um formato rígido para os cabeçalhos e a estrutura de um caso de uso Podem ser alterados de acordo com as

necessidades de documentação

Casos de Uso Alto Nível

Caso de uso:Atores:Tipo:Descrição:

Comprar Itens (Buy Items) Cliente (Customer), Operador (Cashier )primário Um Cliente chega no caixa com itens para comprar. O Operador registra os itens e coleta o pagamento. Ao final, o Cliente sai com os itens.

Page 21: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Exemplo de um caso de uso expandido:

Caso de Uso Expandido

Caso de uso:Atores:Propósito:Descrição:

Comprar Itens com Dinheiro (Buy Items with Cash)Cliente (Iniciador), OperadorCapturar uma venda e seu pagamento em dinheiro.Um Cliente chega no caixa com itens para comprar. O Operador registra os itens e coleta um pagamento com dinheiro. Ao final, o Cliente sai com os itens.

Tipo:Referencia:

primário e essencial Funções: R1.1, R1.2, R1.3, R1.7, R1.9, R2.1

Típica Seqüência de EventosAção do Ator

Resposta do Sistema

1. Este caso de uso começa quando um Cliente chega no caixa com itens para comprar.

Page 22: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Exemplo de um caso de uso expandido (cont.):

Caso de Uso Expandido

Típica Seqüência de EventosAção do Ator

Resposta do Sistema

2. O Operador registra o identi-ficador de cada item.Se há mais de um do mesmo item, o Operador também pode infor-mar a quantidade.

3. Determina o preço do item e adiciona informação sobre o item à transação de venda em anda-mento.Mostra a descrição e o preço do item corrente.

4. Após processar o último item, o Operador indica ao POST que a entrada de itens terminou.

5. Calcula e mostra o valor total da venda.

6. O Operador informa o total ao Cliente.

.

Page 23: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Exemplo de um caso de uso expandido (cont.):

Caso de Uso Expandido

Típica Seqüência de EventosAção do Ator

Resposta do Sistema

7. O Cliente entrega um paga-mento em dinheiro, possivelmente maior do que o valor total. 8. O Operador registra o valor recebido em dinheiro.

9. Mostra o troco devido.Emite um recibo.

12. O Cliente sai com os itens comprados.

.

10. O Operador deposita o dinheiro e retira o troco devido. O Operador entrega o troco e o recibo ao Cliente.

11. Registra a venda no log de vendas completadas.

Page 24: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Tipos de Casos de Uso com Respeito à Implementação

Essencial Descrição de um processo em termos de sua

motivação e atividades essenciais Expressos relativamente livres de detalhes de

implementação, decisões de projeto, e uso de tecnologias

Real Descrição de um processo em termos de seu

projeto real, comprometido com tecnologias de desenvolvimento, interfaces de entrada e saída, etc.

Page 25: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Caso de Uso EssencialTrecho do caso de uso Comprar Itens

essencialAção do Ator

Resposta do Sistema

2. O Operador registra o identi-ficador de cada item.Se há mais de um do mesmo item, o Operador também pode infor-mar a quantidade.

3. Determina o preço do item e adiciona informação sobre o item à transação de venda em anda-mento.Mostra a descrição e o preço do item corrente.

4. ... 5. ...

Page 26: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Caso de Uso Real

Trecho do caso de uso Comprar Itens realAção do Ator

Resposta do Sistema

2. Para cada item, o Operador digita o código universal de pro-duto (UPC) no campo de entrada UPC da Janela 1. Ele então pres-siona o botão “Entra Item” com o mouse ou pressiona a tecla <Enter>.

3. Determina o preço do item e adiciona informação sobre o item à transação de venda em anda-mento.Mostra a descrição e o preço do item corrente na Caixa de Texto 2 da Janela 1.

4. ... 5. ...

Page 27: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Casos de Uso com Fluxos Alternativos

Caso de uso Comprar Itens Expandido

Ação do Ator

Resposta do Sistema

1. ...2. O Cliente escolhe o tipo de pagamento: a) Se pagamento com dinheiro, veja seção Pagamento com Dinheiro. b) ...

Seção: Principal

Ação do Ator Resposta do Sistema

1. O Cliente entrega um paga-mento em dinheiro ...

Seção: Pagamento com Dinheiro

Page 28: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Formato para um Caso de Uso

Nome do caso de usoDescriçãoAtoresTipo ReferênciasPré-condiçõesFluxo de eventos Fluxo principal (típico) Fluxos alternativos Fluxos não típicos (erros, cancelamentos, etc)Pós-condiçõesPontos de extensãoCasos de uso incluídosOutros requisitos (Interfaces)

Page 29: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Decomposição de Diagramas de Casos de

Uso Pode-se dividir sistemas

complexos em sub-sistemas e para cada um deles um diagrama de Casos de Uso

Para mostrar o relacionamento entre esses sub-sistemas, os Casos de Uso são agrupados em Pacotes.

Page 30: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Decomposição de Diagramas de Casos de

Uso

Casos de uso

Gerais

Casos de uso Adminitrativos

Casos de usoMercadológicos

Page 31: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Identificando Casos de Uso

Normalmente não são eventos ou passos individuais, mas um processo completo Erro mais comum!

Método baseado em atores1. Identificar os atores relacionados com o

sistema ou organização2. Para cada ator, identificar os processo que

eles iniciam ou participam

Page 32: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Identificando Casos de Uso

Método baseado em eventos1. Identificar os eventos externos aos quais o

sistema deve responder2. Relacionar os eventos a atores e casos de uso

Exemplos do sistema Posto Comercial Operador: Login, Retirar Dinheiro Cliente: Comprar Itens, Devolver Itens Digitar Senha? Imprimir Recibo?

Page 33: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Casos de Uso e Funções

Todas as funções do sistema identificadas na especificação dos requisitos devem ser alocadas a casos de usos Alocação documentada através da

seção Referencia

Page 34: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Casos de Uso e o Limite do Sistema

Identificar os atores e casos de uso de um sistema requer a definição de seu limite de atuação

Alguns limites típicos incluem: o software/hardware de um dispositivo ou

sistema de computação um departamento de uma organização uma organização inteira

Limites diferentes podem resultar em diferentes conjuntos de atores e casos de uso

Page 35: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Casos de Uso e o Limite do Sistema

Exemplo de um diagrama de caso de uso para o sistema Posto Comercial, quando o limite de atuação é a loja inteira Store

Buy Items

CustomerRefund Purchased

items

Page 36: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Recomendações Crie nomes sempre começando com um verbo

Identifique primeiro os fluxos principais, iniciando com:

1. Este caso de uso começa quando <Ator> <inicia evento>

Use a seção Seqüências não Típicas para representar desvios para seqüências de eventos incomuns ou excepcionais.

Use subseções para representar desvios para seqüências alternativas com igual importância ou probabilidade de ocorrência

Page 37: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Recomendações Procure estimar a dimensão

(granularidade) do caso de uso. Se ele estiver muito extenso procure identificar sub-casos

Procure identificar partes comuns nos seus casos de uso, e usar <<include>>.

Identifique serviços comuns aos casos de uso e crie casos de uso genéricos.

A medida que se definem os casos de uso um refinamento no diagrama é possível

Page 38: Casos de Uso. Casos de Uso – O que é Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente.

Referências Boock, G. and Rumbaugh, J. The Unified Modeling Language User

Guide . Addison-Wesley, 1999 Arlow, J. and Neustadt, I. UML 2 and the Unified Process: Practical

Object-Oriented Analysis and Design, 2nd Edition, The Addison-Wesley Object Technology Series, 2005.

Rumbaugh, J.; Jacobson, I. and Booch , G. The Unified Modeling Language Reference Manual, 2nd Edition, The Addison-Wesley Object Technology Series, 2004.

Boock, G.; Rumbaugh, J. and Jacobson, I; Unified Modeling Language User Guide, 2nd Edition, The Addison-Wesley Object Technology Series, 2005.

Jacobson, I; Boock, G. and Rumbaugh, J., Unified Software Development Process, Addison-Wesley, Janeiro 1999.

Larman, C. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design Prentice-Hall, New Jersey - USA, 1997

Bezerra, E. Princípios de Análise e Projeto com a UML, ed. Campus-Elsevier. 2003.