SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
1
UML 2.0
Diagrama de casos de uso
Prof. Cesar Augusto Tacla
Definição
Comunicação entre clientes, usuários
e desenvolvedores
Funcionalidades oferecidas pelo
sistema
Exemplo Elementos do diagrama
Atores
Casos de uso
Relações
Ator
São externos ao sistema
Representam
papéis desempenhados por usuários
entidades externas ao sistema
(ex. hardware, outros sistemas)
Iniciam casos de uso
Fornecem e/ou recebem
informações dos casos de uso
Como encontrar atores?
A chave está em determinar onde o sistema terminaA chave está em determinar onde o sistema termina
2
Como encontrar atores?
Iniciar pelos atores primários
A quem o sistema oferece algo de valor?
Sem eles, o sistema não seria necessário!
Definir os papéis destes usuários
Papéis = atores
Como encontrar atores?
Não esquecer dos atores auxiliares
para tomar decisões
realizar serviços específicos do sistema
Atores nem sempre são pessoas
equipamentos, sensores e outros sistemas
Como encontrar atores?
Identifique as fontes de informação
Sistema tem as informações para tratar um
evento gerado por um ator?
Não! Então quem a fornece? Outro ator?
Atores ou não?
Banco de dados?
Não
Sistema operacional?
Não
Impressora?
Não
Sensor de calor num sistema de
monitoramento de incêndio?
Sim
Caso de uso
Um caso de uso é um conjunto de ações
realizadas pelo sistema que produz um resultado
significativo (com valor) para um ator
Nas fases iniciais (inception), pois na fase de elaboração são
refinados para incluir casos auxiliares ao funcionamento do sistema
Como identificar casos de uso?
Quais são as tarefas de cada ator?
Que informações o ator obtém do
sistema?
Quem as fornece?
Quem as captura?
3
Como identificar casos de uso?
Algum ator precisa ser informado sobre
eventos produzidos pelo sistema?
Sim => casos de uso de registro e notificação
Há eventos externos que devem ser
notificados ao sistema?
Sim => devem haver casos para que os atores
possam notificar o sistema
Descrição de um caso de uso
Fluxo alternativo
de eventos
Ator x sistemaFluxo básico de
eventos
Pós-condições
Pré-condições
Descrição
Autor
Nome
Fluxo de eventos
como sistema e atores colaboram
para produzir algo de valor aos atores
o que pode impedir sua obtenção
Fluxo de eventos
um caminho entre muitos
Tipos
Fluxo básico
Fluxo alternativo
Subfluxo
Exemplo
Para ir ao churrasco, pegue a BR116 na direção São Paulo. Logo após o clube Santa
Mônica, tem um retorno por baixo da pista. Faça o retorno e continue reto (não
retorne à BR). Continue nesta estradinha asfaltada por 1 km, no entroncamento
pegue a estrada de terra à direita, ande cerca de 500m, você verá um grande
eucalipto e uma araucária. A entrada da chácara é entre os dois. Não se esqueça de
trazer o pinhão. // primário
Se estiver chovendo muito, os 500m na terra podem ser bem difíceis porque o barro
é mole. Neste caso, siga reto no entroncamento (ao invés de virar à direita) e na
próxima a direita pegue a rua de paralelepípedos. Ande cerca de 1 km e depois vire
na segunda a direita que vai desembocar na frente da chácara. // alternativo 1
Se você for comprar o pinhão no caminho, logo depois de fazer o retorno da BR tem
uma venda. Se estiver fechada, um pouco mais a frente, tem um senhor da chácara
Pinhais que também vende. Se não encontrar pinhão, não tem problema.
// alternativo 2
Fluxo básico
O que ocorre normalmente
Início do caso
interação normal
sem tratamento de exceções
descrição de como o caso termina.
4
Fluxo básico: exemplo
Um cliente realiza compras on-line num site
utilizando um carrinho de compras virtual.
O projetista do sistema previu um caso
chamado buscar produtos e fazer pedido
especificado pelo fluxo básico seguinte –
extraído de (Bittner e Spencer, 2003)
Nome: Buscar produtos e fazer pedido
Descrição: Este caso descreve como um cliente usa o sistema
para visualizar e comprar produtos disponíveis.
Para encontrar um produto, o cliente pode pesquisar o catálogo
por tipo de produto,
fabricante ou por palavras-chaves.
Pré-condições: o cliente está logado no sistema.
Pós-condições: o cliente realiza uma compra ou não.
Caso de uso: cabeçalho
Fluxos básico
Subfluxos
Fluxos alternativos
Caso de uso: fluxo básico
1. O caso de uso inicia quando o ator cliente escolhe a opção de consultar o catálogo de produtos.
2. {Mostrar catálogo de produtos}
3. O sistema mostra os produtos oferecidos, ressaltando os produtos cujas categorias constam no perfil do cliente.
4. {Escolher produto}
5. O cliente escolhe um produto a ser comprado e define a quantidade desejada.
6. Para cada produto selecionado disponível em estoque, o sistema registra o código do produto e a quantidade
solicitada reservando-a no estoque e adiciona-o ao carrinho de compras.
7. {Produto esgotado}
8. Os passos 4-7 se repetem até que o cliente decida efetuar a compra dos produtos.
9. {Processar pedido}
10. O sistema pergunta ao cliente se deseja fornecer informações sobre o pagamento.
11. O sistema utiliza um protocolo seguro para obter as informações de pagamento do cliente.
12. Executar subfluxo validar informações de pagamento (S1)
13. {Informações de pagamento não válidas}
14. O sistema pergunta ao cliente se deseja fornecer informações sobre o envio das mercadorias.
15. O sistema utiliza um protocolo seguro para obter as informações de envio.
16. Executar subfluxo validar informações de envio.
17. {Informações de envio não válidas}
18. Executar subfluxo efetuar transação financeira.
19. O sistema pergunta ao cliente se deseja comprar mais produtos.
20. Se o cliente desejar comprar mais produtos, retomar o caso no ponto {Mostrar catálogo de produtos}, se não o caso
termina.
Pontos de extensão
Subfluxos
Req. não funcionais
Exercícios
Fazer 1, 2 e 3 da apostila página 32
Subfluxo
Decomposição de um fluxo de eventos
Objetivo: melhorar a legibilidade
Cuidado!!! excesso de fragmentação
Subfluxo é atômico
Exemplo de subfluxo
No exemplo da apostila
S1 Validar informações de pagamento;
S2 Validar informações de envio;
S3 Efetuar transação financeira.
5
Ex. de subfluxo
S1 validar informações de pagamento
1. Sistema verifica o dígito verificador e a data de
expiração do cartão de crédito
2. Sistema solicita confirmação dos dados a
administradora do cartão (nome, país)
3. Sistema sinaliza se informações foram validadas ou
não
Pontos de extensão
Identificam locais num fluxo de eventos
{ponto de extensão}
Privados: visível somente no CdU
Públicos: visíveis nos CdUs que estendem
FLUXO ALTERNATIVO
Fluxos alternativos sempre são dependentes da
existência de uma condição que ocorre em um
ponto de extensão de outro fluxo de eventos
Representam
comportamento alternativo ou opcional complexos
Exemplos
Tratamento de exceções
Tipos de fluxos alternativos
Específico: iniciam num ponto de
extensão.
Regional: podem ocorrer entre dois
pontos de extensão.
Geral: podem ocorrer em qualquer ponto
do caso de uso.
Ex. fluxo alternativo específico
A2 - Tratar produto esgotado
Em {Produto esgotado} quando não há a quantidade
requisitada do produto em estoque.
O sistema informa que o pedido não pode ser
completamente satisfeito.
// a descrição deste fluxo continua com oferta de
quantidades e produtos alternativos ao cliente
O fluxo de eventos básico é retomado no ponto onde foi
interrompido.
Ex. fluxo alternativo regional
A1 Pesquisar por palavras-chaves
Entre
{Mostrar catálogo de produtos} e {Escolher produto}
quando o cliente escolhe realizar uma pesquisa por
palavras-chaves.
O sistema pergunta ao cliente pelos critérios de busca
do produto.
O cliente fornece os critérios de busca de produto.
// a descrição deste fluxo continua
O fluxo de eventos básico é retomado em
{Escolher produto}.
6
Por que utilizar fluxos alternativos?
São comportamentos opcionais
Não são necessariamente essenciais
Podem ser caros
Permitem adicionar funcionalidades
incrementalmente
Representação gráfica de fluxos
Diagrama de atividades:
representação simplificada
da descrição textual
Cenários
Fluxo básico
Fluxo
alternativocenário
Realização de casos de uso
Modelo de casos de uso
Modelo de projeto
Relações
Associação
Inclusão
Extensão
Generalização/especialização
NÃO representam a ordem de execução dos casos;
devem melhorar a compreensão do que o sistema deve fazer
(e não como projetá-lo).
Associação ator x ator
Não é recomendável colocar este tipo de relação no diagrama de casos de uso
7
Associação ator x caso de uso
indica quem inicia a comunicação
indica o fluxo de informações
bidirecional
Associação ator x caso de uso
unidirecional
No diagrama superior, pode-se
deduzir que o emissor inicia a
chamada telefônica e, no inferior,
esta informação está explícita
Inclusão: caso x caso
Subfluxos na descrição textual
não implicam <<include>>
Um caso de uso é reutilizável,
não sabe que o incluiu!
Emitir histórico escolar
Inclusão
Não use <<include>>
para decomposição funcional
Se o subfluxo não é compartilhado, não o
represente como um caso de uso,
deixe-o fora
Não use <<include>>
para representar opções de menu
Extensão: caso x caso
Uso
Opções ao comportamento normal
Tratamento de erros e exceções complexos
Customização: diferentes clientes, diferentes
comportamentos
Administração de escopo e de release:
comportamentos incluídos futuramente
Extensão
Extensão não requer mudança no
estendido
Extensão conhece o caso base
≠ da inclusão
Extensão nasce como fluxo alternativo
Nem todo fluxo alternativo vira extensão
8
Extensão x fluxos alternativos
Extensão só conhece o ponto de extensão
Fluxos alternativos são parte do caso
Quando um fluxo alternativo é candidato à
extensão?
Sim, se o sistema puder ser entregue sem o
mesmo.
Extensão: Caso x caso
Pode ser excluído sem prejuízo da funcionalidade principal?
Extensão: ponto de extensão público Generalização: caso x caso
Especialização de comportamentos
genéricos
Os casos específicos são executados
Os genéricos são abstratos
Uso
Família de produtos
Generalização: exemplo
Ver 4.4 da apostila
Generalização/Especialização x Extensão
Especialização Extensão
O caso de uso
especializado é
executado
O caso de uso base é
executado
O caso de uso base não
precisa ser completo e
com sentido. Há várias
lacunas preenchidas
somente nas
especializações.
O caso de uso base deve
ser completo e com
sentido.
O comportamento de
uma execução depende
unicamente do caso
específico.
O comportamento de
uma execução depende
do caso de uso base e de
todas as extensões que
são executadas.
9
Generalização de atores
Conjunto de atores com responsabilidades
ou características comuns
Generalização
Herdam os casos de uso
dos quais bibliotecário
participa
Administrador Acervista
Generalização: ator x ator
Não utilizar atores para
representar permissões de acesso
representar organogramas (hierarquias) de
cargos de uma empresa.
Utilizar atores somente para definir papéis em relação ao sistema
Dicas de modelagem
Não esqueça dos casos de uso auxiliares
Ex. Configurar, registrar usuários
Não faça decomposição funcional
SÍNTESE
Não estruture e detalhe em demasia
EVITE excesso de relações
O modelo de casos de uso é mais que o
diagrama de casos de uso
Diagrama é apenas um panorama
Passos de modelagem (1/4)
Recapitular a visão do sistema (estudo de
viabilidade) aos envolvidos.
Elaborar diagrama de contexto (se
necessário)
Passos de modelagem (2/4)
Identificar os atores do sistema.
Identificar os casos de uso
descrevê-los e rascunhar o fluxo de eventos.
não se preocupe com fluxos alternativos.
10 minutos para descrever cada caso de uso.
Esboçar o diagrama
10
Passos de modelagem (3/4)
Verificar os casos de uso:
Há casos de uso sem conexão com requisitos
funcionais? Caso haja, pode haver casos em excesso
ou requisitos que não foram identificados!
Há requisitos funcionais sem casos? Alguns casos
podem ter sido esquecidos.
Todos os requisitos não-funcionais foram tratados
(associados aos casos de uso quando são
específicos)?
Todos os papéis de usuários foram mapeados para um
ator ao menos?
Passos de modelagem (4/4)
Descrever os casos detalhadamente
Representar os subfluxos (<<include>>) e
fluxos alternativos (<<extend>>)
considerados importantes no diagrama
Verificá-los:
É possível eliminar os casos incluídos ou as
extensões e ainda ser capaz de entender o que
o sistema faz para as partes interessadas?
Pacotes de casos de uso
Sistemas grandes = número elevado de
casos
Agrupá-los por similaridade
Representação: pacotes
Casos de uso agrupados

Más contenido relacionado

La actualidad más candente

La actualidad más candente (17)

SPSS – Tutorial para Iniciantes
SPSS – Tutorial para IniciantesSPSS – Tutorial para Iniciantes
SPSS – Tutorial para Iniciantes
 
Spss 01 Desvendando
Spss 01 DesvendandoSpss 01 Desvendando
Spss 01 Desvendando
 
Lógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicionalLógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicional
 
Algoritmos - Pseudocódigo
Algoritmos - PseudocódigoAlgoritmos - Pseudocódigo
Algoritmos - Pseudocódigo
 
10 coisas a não se fazer com o excel
10 coisas a não se fazer com o excel10 coisas a não se fazer com o excel
10 coisas a não se fazer com o excel
 
02 algoritmos
02 algoritmos02 algoritmos
02 algoritmos
 
Casio fx 350-es_pt
Casio fx 350-es_ptCasio fx 350-es_pt
Casio fx 350-es_pt
 
Spss aula2
Spss aula2Spss aula2
Spss aula2
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
informatica-apostila-sap
informatica-apostila-sapinformatica-apostila-sap
informatica-apostila-sap
 
Cap05
Cap05Cap05
Cap05
 
Apostila spss
Apostila spssApostila spss
Apostila spss
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
Alg aula 02 - algoritmos 1 tp1
Alg   aula 02 - algoritmos 1 tp1Alg   aula 02 - algoritmos 1 tp1
Alg aula 02 - algoritmos 1 tp1
 
Apostila excel
Apostila excelApostila excel
Apostila excel
 
Revista programar 21
Revista programar 21Revista programar 21
Revista programar 21
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 

Destacado

Aula 13 es-uml
Aula 13   es-umlAula 13   es-uml
Aula 13 es-umlthiagoufal
 
Palestra introdução a uml e casos de uso final_parte1
Palestra introdução a uml e casos de uso final_parte1Palestra introdução a uml e casos de uso final_parte1
Palestra introdução a uml e casos de uso final_parte1marcosdcmartinsss
 
Palestra introdução a uml e casos de uso final_parte2
Palestra introdução a uml e casos de uso final_parte2Palestra introdução a uml e casos de uso final_parte2
Palestra introdução a uml e casos de uso final_parte2marcosdcmartinsss
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoVinícius de Paula
 
Funções e caracteristicas de um so
Funções e caracteristicas de um soFunções e caracteristicas de um so
Funções e caracteristicas de um soMiriamMiguel
 

Destacado (10)

Aula 13 es-uml
Aula 13   es-umlAula 13   es-uml
Aula 13 es-uml
 
UML
UMLUML
UML
 
Uml e casos_de_uso_2008
Uml e casos_de_uso_2008Uml e casos_de_uso_2008
Uml e casos_de_uso_2008
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Palestra introdução a uml e casos de uso final_parte1
Palestra introdução a uml e casos de uso final_parte1Palestra introdução a uml e casos de uso final_parte1
Palestra introdução a uml e casos de uso final_parte1
 
Introdução à UML com Casos de Uso
Introdução à UML com Casos de UsoIntrodução à UML com Casos de Uso
Introdução à UML com Casos de Uso
 
Caso De Uso
Caso De UsoCaso De Uso
Caso De Uso
 
Palestra introdução a uml e casos de uso final_parte2
Palestra introdução a uml e casos de uso final_parte2Palestra introdução a uml e casos de uso final_parte2
Palestra introdução a uml e casos de uso final_parte2
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de Projeto
 
Funções e caracteristicas de um so
Funções e caracteristicas de um soFunções e caracteristicas de um so
Funções e caracteristicas de um so
 

Similar a Diagrama de casos de uso para UML 2.0

REA- Diagramas de Casos de Uso da UML
REA- Diagramas de Casos de Uso da UMLREA- Diagramas de Casos de Uso da UML
REA- Diagramas de Casos de Uso da UMLIFFar - SVS
 
Histórias de usuários - Declaração de valor
Histórias de usuários - Declaração de valorHistórias de usuários - Declaração de valor
Histórias de usuários - Declaração de valorAugusto Rückert
 
Aula 05 - Caso de Uso.pdf
Aula 05 - Caso de Uso.pdfAula 05 - Caso de Uso.pdf
Aula 05 - Caso de Uso.pdfGreiceSilva21
 
Aula 05 - Caso de Uso.pdf
Aula 05 - Caso de Uso.pdfAula 05 - Caso de Uso.pdf
Aula 05 - Caso de Uso.pdfGreiceSilva21
 
Aula 05 - Caso de Uso.pdf
Aula 05 - Caso de Uso.pdfAula 05 - Caso de Uso.pdf
Aula 05 - Caso de Uso.pdfGreiceSilva21
 
TDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alem
TDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alemTDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alem
TDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alemtdc-globalcode
 
Modelagem de casos de uso e diagramas de sequência
Modelagem de casos de uso e diagramas de sequênciaModelagem de casos de uso e diagramas de sequência
Modelagem de casos de uso e diagramas de sequênciaJorge Linhares
 
1- Diagramas de caso de uso
1- Diagramas de caso de uso1- Diagramas de caso de uso
1- Diagramas de caso de usoCris Fidelix
 
Aulas de análise
Aulas de análiseAulas de análise
Aulas de análiseFrank Lira
 
Aulas de análise
Aulas de análiseAulas de análise
Aulas de análiseFrank Lira
 

Similar a Diagrama de casos de uso para UML 2.0 (20)

REA- Diagramas de Casos de Uso da UML
REA- Diagramas de Casos de Uso da UMLREA- Diagramas de Casos de Uso da UML
REA- Diagramas de Casos de Uso da UML
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
Histórias de usuários - Declaração de valor
Histórias de usuários - Declaração de valorHistórias de usuários - Declaração de valor
Histórias de usuários - Declaração de valor
 
Aula 05 - Caso de Uso.pdf
Aula 05 - Caso de Uso.pdfAula 05 - Caso de Uso.pdf
Aula 05 - Caso de Uso.pdf
 
Aula 05 - Caso de Uso.pdf
Aula 05 - Caso de Uso.pdfAula 05 - Caso de Uso.pdf
Aula 05 - Caso de Uso.pdf
 
Aula 05 - Caso de Uso.pdf
Aula 05 - Caso de Uso.pdfAula 05 - Caso de Uso.pdf
Aula 05 - Caso de Uso.pdf
 
Aula 05 .pdf
Aula 05 .pdfAula 05 .pdf
Aula 05 .pdf
 
4 casos-de-uso
4 casos-de-uso4 casos-de-uso
4 casos-de-uso
 
TDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alem
TDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alemTDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alem
TDC2018SP | Trilha Requisito Ageis - Historias de usuarios - Basico e alem
 
Modelagem de casos de uso e diagramas de sequência
Modelagem de casos de uso e diagramas de sequênciaModelagem de casos de uso e diagramas de sequência
Modelagem de casos de uso e diagramas de sequência
 
UMLAulaI.pdf
UMLAulaI.pdfUMLAulaI.pdf
UMLAulaI.pdf
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
1- Diagramas de caso de uso
1- Diagramas de caso de uso1- Diagramas de caso de uso
1- Diagramas de caso de uso
 
AULA 27-09 DIAGRAMAS.ppt
AULA 27-09 DIAGRAMAS.pptAULA 27-09 DIAGRAMAS.ppt
AULA 27-09 DIAGRAMAS.ppt
 
AOO - Diagrama de Caso de Uso
AOO - Diagrama de Caso de UsoAOO - Diagrama de Caso de Uso
AOO - Diagrama de Caso de Uso
 
Parte6 casos de uso
Parte6   casos de usoParte6   casos de uso
Parte6 casos de uso
 
Aulas de análise
Aulas de análiseAulas de análise
Aulas de análise
 
Aulas de análise
Aulas de análiseAulas de análise
Aulas de análise
 
aula05_CasosUso.pdf
aula05_CasosUso.pdfaula05_CasosUso.pdf
aula05_CasosUso.pdf
 
Curso Básico de UML
Curso Básico de UMLCurso Básico de UML
Curso Básico de UML
 

Más de Sandra Rocha

Inovacao tecnologica industrial_e_desenvolvimento_sustentado1
Inovacao tecnologica industrial_e_desenvolvimento_sustentado1Inovacao tecnologica industrial_e_desenvolvimento_sustentado1
Inovacao tecnologica industrial_e_desenvolvimento_sustentado1Sandra Rocha
 
apostila-desenvolvimento-asp-net
 apostila-desenvolvimento-asp-net apostila-desenvolvimento-asp-net
apostila-desenvolvimento-asp-netSandra Rocha
 
Requisitos oo-para-projetos-oo-transicao-facil
Requisitos oo-para-projetos-oo-transicao-facilRequisitos oo-para-projetos-oo-transicao-facil
Requisitos oo-para-projetos-oo-transicao-facilSandra Rocha
 
Evolução do processo administrativo
Evolução do processo administrativoEvolução do processo administrativo
Evolução do processo administrativoSandra Rocha
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugolSandra Rocha
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugolSandra Rocha
 
Apostila supervisorio indusoft ind371
Apostila supervisorio indusoft ind371Apostila supervisorio indusoft ind371
Apostila supervisorio indusoft ind371Sandra Rocha
 
Circuito impresso
Circuito impresso Circuito impresso
Circuito impresso Sandra Rocha
 
Instalações elétricas residenciais parte 1
Instalações elétricas residenciais parte 1Instalações elétricas residenciais parte 1
Instalações elétricas residenciais parte 1Sandra Rocha
 

Más de Sandra Rocha (12)

Inovacao tecnologica industrial_e_desenvolvimento_sustentado1
Inovacao tecnologica industrial_e_desenvolvimento_sustentado1Inovacao tecnologica industrial_e_desenvolvimento_sustentado1
Inovacao tecnologica industrial_e_desenvolvimento_sustentado1
 
apostila-desenvolvimento-asp-net
 apostila-desenvolvimento-asp-net apostila-desenvolvimento-asp-net
apostila-desenvolvimento-asp-net
 
Aula1 spring
Aula1 springAula1 spring
Aula1 spring
 
Mapeamento
Mapeamento Mapeamento
Mapeamento
 
Requisitos oo-para-projetos-oo-transicao-facil
Requisitos oo-para-projetos-oo-transicao-facilRequisitos oo-para-projetos-oo-transicao-facil
Requisitos oo-para-projetos-oo-transicao-facil
 
Sql server
Sql serverSql server
Sql server
 
Evolução do processo administrativo
Evolução do processo administrativoEvolução do processo administrativo
Evolução do processo administrativo
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugol
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugol
 
Apostila supervisorio indusoft ind371
Apostila supervisorio indusoft ind371Apostila supervisorio indusoft ind371
Apostila supervisorio indusoft ind371
 
Circuito impresso
Circuito impresso Circuito impresso
Circuito impresso
 
Instalações elétricas residenciais parte 1
Instalações elétricas residenciais parte 1Instalações elétricas residenciais parte 1
Instalações elétricas residenciais parte 1
 

Diagrama de casos de uso para UML 2.0

  • 1. 1 UML 2.0 Diagrama de casos de uso Prof. Cesar Augusto Tacla Definição Comunicação entre clientes, usuários e desenvolvedores Funcionalidades oferecidas pelo sistema Exemplo Elementos do diagrama Atores Casos de uso Relações Ator São externos ao sistema Representam papéis desempenhados por usuários entidades externas ao sistema (ex. hardware, outros sistemas) Iniciam casos de uso Fornecem e/ou recebem informações dos casos de uso Como encontrar atores? A chave está em determinar onde o sistema terminaA chave está em determinar onde o sistema termina
  • 2. 2 Como encontrar atores? Iniciar pelos atores primários A quem o sistema oferece algo de valor? Sem eles, o sistema não seria necessário! Definir os papéis destes usuários Papéis = atores Como encontrar atores? Não esquecer dos atores auxiliares para tomar decisões realizar serviços específicos do sistema Atores nem sempre são pessoas equipamentos, sensores e outros sistemas Como encontrar atores? Identifique as fontes de informação Sistema tem as informações para tratar um evento gerado por um ator? Não! Então quem a fornece? Outro ator? Atores ou não? Banco de dados? Não Sistema operacional? Não Impressora? Não Sensor de calor num sistema de monitoramento de incêndio? Sim Caso de uso Um caso de uso é um conjunto de ações realizadas pelo sistema que produz um resultado significativo (com valor) para um ator Nas fases iniciais (inception), pois na fase de elaboração são refinados para incluir casos auxiliares ao funcionamento do sistema Como identificar casos de uso? Quais são as tarefas de cada ator? Que informações o ator obtém do sistema? Quem as fornece? Quem as captura?
  • 3. 3 Como identificar casos de uso? Algum ator precisa ser informado sobre eventos produzidos pelo sistema? Sim => casos de uso de registro e notificação Há eventos externos que devem ser notificados ao sistema? Sim => devem haver casos para que os atores possam notificar o sistema Descrição de um caso de uso Fluxo alternativo de eventos Ator x sistemaFluxo básico de eventos Pós-condições Pré-condições Descrição Autor Nome Fluxo de eventos como sistema e atores colaboram para produzir algo de valor aos atores o que pode impedir sua obtenção Fluxo de eventos um caminho entre muitos Tipos Fluxo básico Fluxo alternativo Subfluxo Exemplo Para ir ao churrasco, pegue a BR116 na direção São Paulo. Logo após o clube Santa Mônica, tem um retorno por baixo da pista. Faça o retorno e continue reto (não retorne à BR). Continue nesta estradinha asfaltada por 1 km, no entroncamento pegue a estrada de terra à direita, ande cerca de 500m, você verá um grande eucalipto e uma araucária. A entrada da chácara é entre os dois. Não se esqueça de trazer o pinhão. // primário Se estiver chovendo muito, os 500m na terra podem ser bem difíceis porque o barro é mole. Neste caso, siga reto no entroncamento (ao invés de virar à direita) e na próxima a direita pegue a rua de paralelepípedos. Ande cerca de 1 km e depois vire na segunda a direita que vai desembocar na frente da chácara. // alternativo 1 Se você for comprar o pinhão no caminho, logo depois de fazer o retorno da BR tem uma venda. Se estiver fechada, um pouco mais a frente, tem um senhor da chácara Pinhais que também vende. Se não encontrar pinhão, não tem problema. // alternativo 2 Fluxo básico O que ocorre normalmente Início do caso interação normal sem tratamento de exceções descrição de como o caso termina.
  • 4. 4 Fluxo básico: exemplo Um cliente realiza compras on-line num site utilizando um carrinho de compras virtual. O projetista do sistema previu um caso chamado buscar produtos e fazer pedido especificado pelo fluxo básico seguinte – extraído de (Bittner e Spencer, 2003) Nome: Buscar produtos e fazer pedido Descrição: Este caso descreve como um cliente usa o sistema para visualizar e comprar produtos disponíveis. Para encontrar um produto, o cliente pode pesquisar o catálogo por tipo de produto, fabricante ou por palavras-chaves. Pré-condições: o cliente está logado no sistema. Pós-condições: o cliente realiza uma compra ou não. Caso de uso: cabeçalho Fluxos básico Subfluxos Fluxos alternativos Caso de uso: fluxo básico 1. O caso de uso inicia quando o ator cliente escolhe a opção de consultar o catálogo de produtos. 2. {Mostrar catálogo de produtos} 3. O sistema mostra os produtos oferecidos, ressaltando os produtos cujas categorias constam no perfil do cliente. 4. {Escolher produto} 5. O cliente escolhe um produto a ser comprado e define a quantidade desejada. 6. Para cada produto selecionado disponível em estoque, o sistema registra o código do produto e a quantidade solicitada reservando-a no estoque e adiciona-o ao carrinho de compras. 7. {Produto esgotado} 8. Os passos 4-7 se repetem até que o cliente decida efetuar a compra dos produtos. 9. {Processar pedido} 10. O sistema pergunta ao cliente se deseja fornecer informações sobre o pagamento. 11. O sistema utiliza um protocolo seguro para obter as informações de pagamento do cliente. 12. Executar subfluxo validar informações de pagamento (S1) 13. {Informações de pagamento não válidas} 14. O sistema pergunta ao cliente se deseja fornecer informações sobre o envio das mercadorias. 15. O sistema utiliza um protocolo seguro para obter as informações de envio. 16. Executar subfluxo validar informações de envio. 17. {Informações de envio não válidas} 18. Executar subfluxo efetuar transação financeira. 19. O sistema pergunta ao cliente se deseja comprar mais produtos. 20. Se o cliente desejar comprar mais produtos, retomar o caso no ponto {Mostrar catálogo de produtos}, se não o caso termina. Pontos de extensão Subfluxos Req. não funcionais Exercícios Fazer 1, 2 e 3 da apostila página 32 Subfluxo Decomposição de um fluxo de eventos Objetivo: melhorar a legibilidade Cuidado!!! excesso de fragmentação Subfluxo é atômico Exemplo de subfluxo No exemplo da apostila S1 Validar informações de pagamento; S2 Validar informações de envio; S3 Efetuar transação financeira.
  • 5. 5 Ex. de subfluxo S1 validar informações de pagamento 1. Sistema verifica o dígito verificador e a data de expiração do cartão de crédito 2. Sistema solicita confirmação dos dados a administradora do cartão (nome, país) 3. Sistema sinaliza se informações foram validadas ou não Pontos de extensão Identificam locais num fluxo de eventos {ponto de extensão} Privados: visível somente no CdU Públicos: visíveis nos CdUs que estendem FLUXO ALTERNATIVO Fluxos alternativos sempre são dependentes da existência de uma condição que ocorre em um ponto de extensão de outro fluxo de eventos Representam comportamento alternativo ou opcional complexos Exemplos Tratamento de exceções Tipos de fluxos alternativos Específico: iniciam num ponto de extensão. Regional: podem ocorrer entre dois pontos de extensão. Geral: podem ocorrer em qualquer ponto do caso de uso. Ex. fluxo alternativo específico A2 - Tratar produto esgotado Em {Produto esgotado} quando não há a quantidade requisitada do produto em estoque. O sistema informa que o pedido não pode ser completamente satisfeito. // a descrição deste fluxo continua com oferta de quantidades e produtos alternativos ao cliente O fluxo de eventos básico é retomado no ponto onde foi interrompido. Ex. fluxo alternativo regional A1 Pesquisar por palavras-chaves Entre {Mostrar catálogo de produtos} e {Escolher produto} quando o cliente escolhe realizar uma pesquisa por palavras-chaves. O sistema pergunta ao cliente pelos critérios de busca do produto. O cliente fornece os critérios de busca de produto. // a descrição deste fluxo continua O fluxo de eventos básico é retomado em {Escolher produto}.
  • 6. 6 Por que utilizar fluxos alternativos? São comportamentos opcionais Não são necessariamente essenciais Podem ser caros Permitem adicionar funcionalidades incrementalmente Representação gráfica de fluxos Diagrama de atividades: representação simplificada da descrição textual Cenários Fluxo básico Fluxo alternativocenário Realização de casos de uso Modelo de casos de uso Modelo de projeto Relações Associação Inclusão Extensão Generalização/especialização NÃO representam a ordem de execução dos casos; devem melhorar a compreensão do que o sistema deve fazer (e não como projetá-lo). Associação ator x ator Não é recomendável colocar este tipo de relação no diagrama de casos de uso
  • 7. 7 Associação ator x caso de uso indica quem inicia a comunicação indica o fluxo de informações bidirecional Associação ator x caso de uso unidirecional No diagrama superior, pode-se deduzir que o emissor inicia a chamada telefônica e, no inferior, esta informação está explícita Inclusão: caso x caso Subfluxos na descrição textual não implicam <<include>> Um caso de uso é reutilizável, não sabe que o incluiu! Emitir histórico escolar Inclusão Não use <<include>> para decomposição funcional Se o subfluxo não é compartilhado, não o represente como um caso de uso, deixe-o fora Não use <<include>> para representar opções de menu Extensão: caso x caso Uso Opções ao comportamento normal Tratamento de erros e exceções complexos Customização: diferentes clientes, diferentes comportamentos Administração de escopo e de release: comportamentos incluídos futuramente Extensão Extensão não requer mudança no estendido Extensão conhece o caso base ≠ da inclusão Extensão nasce como fluxo alternativo Nem todo fluxo alternativo vira extensão
  • 8. 8 Extensão x fluxos alternativos Extensão só conhece o ponto de extensão Fluxos alternativos são parte do caso Quando um fluxo alternativo é candidato à extensão? Sim, se o sistema puder ser entregue sem o mesmo. Extensão: Caso x caso Pode ser excluído sem prejuízo da funcionalidade principal? Extensão: ponto de extensão público Generalização: caso x caso Especialização de comportamentos genéricos Os casos específicos são executados Os genéricos são abstratos Uso Família de produtos Generalização: exemplo Ver 4.4 da apostila Generalização/Especialização x Extensão Especialização Extensão O caso de uso especializado é executado O caso de uso base é executado O caso de uso base não precisa ser completo e com sentido. Há várias lacunas preenchidas somente nas especializações. O caso de uso base deve ser completo e com sentido. O comportamento de uma execução depende unicamente do caso específico. O comportamento de uma execução depende do caso de uso base e de todas as extensões que são executadas.
  • 9. 9 Generalização de atores Conjunto de atores com responsabilidades ou características comuns Generalização Herdam os casos de uso dos quais bibliotecário participa Administrador Acervista Generalização: ator x ator Não utilizar atores para representar permissões de acesso representar organogramas (hierarquias) de cargos de uma empresa. Utilizar atores somente para definir papéis em relação ao sistema Dicas de modelagem Não esqueça dos casos de uso auxiliares Ex. Configurar, registrar usuários Não faça decomposição funcional SÍNTESE Não estruture e detalhe em demasia EVITE excesso de relações O modelo de casos de uso é mais que o diagrama de casos de uso Diagrama é apenas um panorama Passos de modelagem (1/4) Recapitular a visão do sistema (estudo de viabilidade) aos envolvidos. Elaborar diagrama de contexto (se necessário) Passos de modelagem (2/4) Identificar os atores do sistema. Identificar os casos de uso descrevê-los e rascunhar o fluxo de eventos. não se preocupe com fluxos alternativos. 10 minutos para descrever cada caso de uso. Esboçar o diagrama
  • 10. 10 Passos de modelagem (3/4) Verificar os casos de uso: Há casos de uso sem conexão com requisitos funcionais? Caso haja, pode haver casos em excesso ou requisitos que não foram identificados! Há requisitos funcionais sem casos? Alguns casos podem ter sido esquecidos. Todos os requisitos não-funcionais foram tratados (associados aos casos de uso quando são específicos)? Todos os papéis de usuários foram mapeados para um ator ao menos? Passos de modelagem (4/4) Descrever os casos detalhadamente Representar os subfluxos (<<include>>) e fluxos alternativos (<<extend>>) considerados importantes no diagrama Verificá-los: É possível eliminar os casos incluídos ou as extensões e ainda ser capaz de entender o que o sistema faz para as partes interessadas? Pacotes de casos de uso Sistemas grandes = número elevado de casos Agrupá-los por similaridade Representação: pacotes Casos de uso agrupados