casos de uso. casos de uso – o que é descrições narrativas de processos do domínio da...
TRANSCRIPT
![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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/11.jpg)
<<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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062418/552fc105497959413d8c07d0/html5/thumbnails/38.jpg)
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.