Você está na página 1de 10

Definio

UML 2.0 Diagrama de casos de uso


Prof. Cesar Augusto Tacla

Comunicao entre clientes, usurios e desenvolvedores Funcionalidades oferecidas pelo sistema

Exemplo

Elementos do diagrama
Atores Casos de uso Relaes

Ator
So externos ao sistema Representam
papis desempenhados por usurios entidades externas ao sistema (ex. hardware, outros sistemas)

Como encontrar atores?

A chave est em determinar onde o sistema termina A chave est em determinar onde o sistema termina

Iniciam casos de uso Fornecem e/ou recebem informaes dos casos de uso

Como encontrar atores?


Iniciar pelos atores primrios
A quem o sistema oferece algo de valor? Sem eles, o sistema no seria necessrio! Definir os papis destes usurios Papis = atores

Como encontrar atores?


No esquecer dos atores auxiliares
para tomar decises realizar servios especficos do sistema

Atores nem sempre so pessoas


equipamentos, sensores e outros sistemas

Como encontrar atores?


Identifique as fontes de informao
Sistema tem as informaes para tratar um evento gerado por um ator? No! Ento quem a fornece? Outro ator?

Atores ou no?
Banco de dados?
No

Sistema operacional?
No

Impressora?
No

Sensor de calor num sistema de monitoramento de incndio?


Sim

Caso de uso

Como identificar casos de uso?


Quais so as tarefas de cada ator?

Um caso de uso um conjunto de aes realizadas pelo sistema que produz um resultado significativo (com valor) para um ator

Que informaes o ator obtm do sistema?


Quem as fornece? Quem as captura?

Nas fases iniciais (inception), pois na fase de elaborao so refinados para incluir casos auxiliares ao funcionamento do sistema

Como identificar casos de uso?


Algum ator precisa ser informado sobre eventos produzidos pelo sistema?
Sim => casos de uso de registro e notificao

Descrio de um caso de uso


Nome Autor Descrio Pr-condies Ps-condies Fluxo bsico de Ator x sistema eventos Fluxo alternativo de eventos

H eventos externos que devem ser notificados ao sistema?


Sim => devem haver casos para que os atores possam notificar o sistema

Fluxo de eventos
como sistema e atores colaboram para produzir algo de valor aos atores o que pode impedir sua obteno

Fluxo de eventos
um caminho entre muitos Tipos
Fluxo bsico Fluxo alternativo Subfluxo

Exemplo
Para ir ao churrasco, pegue a BR116 na direo So Paulo. Logo aps o clube Santa Mnica, tem um retorno por baixo da pista. Faa o retorno e continue reto (no 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 araucria. A entrada da chcara entre os dois. No se esquea de trazer o pinho. // primrio Se estiver chovendo muito, os 500m na terra podem ser bem difceis porque o barro mole. Neste caso, siga reto no entroncamento (ao invs de virar direita) e na prxima a direita pegue a rua de paraleleppedos. Ande cerca de 1 km e depois vire na segunda a direita que vai desembocar na frente da chcara. // alternativo 1 Se voc for comprar o pinho 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 chcara Pinhais que tambm vende. Se no encontrar pinho, no tem problema. // alternativo 2

Fluxo bsico
O que ocorre normalmente Incio do caso interao normal
sem tratamento de excees

descrio de como o caso termina.

Fluxo bsico: 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 bsico seguinte extrado de (Bittner e Spencer, 2003)

Caso de uso: cabealho


Nome: Buscar produtos e fazer pedido Descrio: Este caso descreve como um cliente usa o sistema para visualizar e comprar produtos disponveis. Para encontrar um produto, o cliente pode pesquisar o catlogo por tipo de produto, fabricante ou por palavras-chaves. Pr-condies: o cliente est logado no sistema. Ps-condies: o cliente realiza uma compra ou no.
Fluxos bsico Subfluxos Fluxos alternativos

Caso de uso: fluxo bsico


1. 2. 3. 4. 5. 6. O caso de uso inicia quando o ator cliente escolhe a opo de consultar o catlogo de produtos. {Mostrar catlogo de produtos} O sistema mostra os produtos oferecidos, ressaltando os produtos cujas categorias constam no perfil do cliente. {Escolher produto} O cliente escolhe um produto a ser comprado e define a quantidade desejada. Para cada produto selecionado disponvel em estoque, o sistema registra o cdigo do produto e a quantidade solicitada reservando-a no estoque e adiciona-o ao carrinho de compras. 7. {Produto esgotado} Pontos de extenso 8. Os passos 4-7 se repetem at que o cliente decida efetuar a compra dos produtos. Subfluxos 9. {Processar pedido} Req. no funcionais 10. O sistema pergunta ao cliente se deseja fornecer informaes sobre o pagamento. 11. O sistema utiliza um protocolo seguro para obter as informaes de pagamento do cliente. 12. Executar subfluxo validar informaes de pagamento (S1) 13. {Informaes de pagamento no vlidas} 14. O sistema pergunta ao cliente se deseja fornecer informaes sobre o envio das mercadorias. 15. O sistema utiliza um protocolo seguro para obter as informaes de envio. 16. Executar subfluxo validar informaes de envio. 17. {Informaes de envio no vlidas} 18. Executar subfluxo efetuar transao 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 catlogo de produtos}, se no o caso termina.

Exerccios
Fazer 1, 2 e 3 da apostila pgina 32

Subfluxo
Decomposio de um fluxo de eventos Objetivo: melhorar a legibilidade Cuidado!!! excesso de fragmentao Subfluxo atmico

Exemplo de subfluxo
No exemplo da apostila S1 Validar informaes de pagamento; S2 Validar informaes de envio; S3 Efetuar transao financeira.

Ex. de subfluxo
S1 validar informaes de pagamento
1. Sistema verifica o dgito verificador e a data de expirao do carto de crdito 2. Sistema solicita confirmao dos dados a administradora do carto (nome, pas) 3. Sistema sinaliza se informaes foram validadas ou no

Pontos de extenso
Identificam locais num fluxo de eventos {ponto de extenso} Privados: visvel somente no CdU Pblicos: visveis nos CdUs que estendem

FLUXO ALTERNATIVO
Fluxos alternativos sempre so dependentes da existncia de uma condio que ocorre em um ponto de extenso de outro fluxo de eventos Representam
comportamento alternativo ou opcional complexos Exemplos
Tratamento de excees

Tipos de fluxos alternativos


Especfico: iniciam num ponto de extenso. Regional: podem ocorrer entre dois pontos de extenso. Geral: podem ocorrer em qualquer ponto do caso de uso.

Ex. fluxo alternativo especfico


A2 - Tratar produto esgotado Em {Produto esgotado} quando no h a quantidade requisitada do produto em estoque. O sistema informa que o pedido no pode ser completamente satisfeito. // a descrio deste fluxo continua com oferta de quantidades e produtos alternativos ao cliente O fluxo de eventos bsico retomado no ponto onde foi interrompido.

Ex. fluxo alternativo regional


A1 Pesquisar por palavras-chaves Entre {Mostrar catlogo de produtos} e {Escolher produto} quando o cliente escolhe realizar uma pesquisa por palavras-chaves. O sistema pergunta ao cliente pelos critrios de busca do produto. O cliente fornece os critrios de busca de produto. // a descrio deste fluxo continua O fluxo de eventos bsico retomado em {Escolher produto}.

Por que utilizar fluxos alternativos?


So comportamentos opcionais No so necessariamente essenciais
Podem ser caros Permitem adicionar funcionalidades incrementalmente

Representao grfica de fluxos

Diagrama de atividades: representao simplificada da descrio textual

Cenrios

Realizao de casos de uso

cenrio

Fluxo alternativo

Modelo de casos de uso

Fluxo bsico

Modelo de projeto

Relaes
Associao Incluso Extenso Generalizao/especializao
NO representam a ordem de execuo dos casos; devem melhorar a compreenso do que o sistema deve fazer (e no como projet-lo).

Associao ator x ator

No recomendvel colocar este tipo de relao no diagrama de casos de uso

Associao ator x caso de uso


indica quem inicia a comunicao indica o fluxo de informaes

Associao ator x caso de uso

No diagrama superior, pode-se deduzir que o emissor inicia a chamada telefnica e, no inferior, esta informao est explcita

bidirecional

unidirecional

Incluso: caso x caso


Emitir histrico escolar

Incluso
No use <<include>> para decomposio funcional
Um caso de uso reutilizvel, no sabe que o incluiu!

Se o subfluxo no compartilhado, no o represente como um caso de uso, deixe-o fora No use <<include>> para representar opes de menu

Subfluxos na descrio textual no implicam <<include>>

Extenso: caso x caso


Uso
Opes ao comportamento normal Tratamento de erros e excees complexos Customizao: diferentes clientes, diferentes comportamentos Administrao de escopo e de release: comportamentos includos futuramente

Extenso
Extenso no requer mudana no estendido Extenso conhece o caso base
da incluso

Extenso nasce como fluxo alternativo Nem todo fluxo alternativo vira extenso

Extenso x fluxos alternativos


Extenso s conhece o ponto de extenso Fluxos alternativos so parte do caso Quando um fluxo alternativo candidato extenso?
Sim, se o sistema puder ser entregue sem o mesmo.

Extenso: Caso x caso

Pode ser excludo sem prejuzo da funcionalidade principal?

Extenso: ponto de extenso pblico

Generalizao: caso x caso


Especializao de comportamentos genricos Os casos especficos so executados Os genricos so abstratos Uso
Famlia de produtos

Generalizao: exemplo

Generalizao/Especializao x Extenso
Especializao O caso de uso especializado executado O caso de uso base no precisa ser completo e com sentido. H vrias lacunas preenchidas somente nas especializaes. O comportamento de uma execuo depende unicamente do caso especfico. Extenso O caso de uso base executado O caso de uso base deve ser completo e com sentido.

Ver 4.4 da apostila

O comportamento de uma execuo depende do caso de uso base e de todas as extenses que so executadas.

Generalizao de atores
Conjunto de atores com responsabilidades ou caractersticas comuns

Generalizao

Herdam os casos de uso dos quais bibliotecrio participa Administrador Acervista

Generalizao: ator x ator


No utilizar atores para
representar permisses de acesso representar organogramas (hierarquias) de cargos de uma empresa.

Dicas de modelagem
No esquea dos casos de uso auxiliares Ex. Configurar, registrar usurios No faa decomposio funcional
SNTESE

No estruture e detalhe em demasia


EVITE excesso de relaes
Utilizar atores somente para definir papis em relao ao sistema

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 viso do sistema (estudo de viabilidade) aos envolvidos. Elaborar diagrama de contexto (se necessrio)

Passos de modelagem (2/4)


Identificar os atores do sistema. Identificar os casos de uso
descrev-los e rascunhar o fluxo de eventos. no se preocupe com fluxos alternativos. 10 minutos para descrever cada caso de uso.

Esboar o diagrama

Passos de modelagem (3/4)


Verificar os casos de uso:
H casos de uso sem conexo com requisitos funcionais? Caso haja, pode haver casos em excesso ou requisitos que no foram identificados! H requisitos funcionais sem casos? Alguns casos podem ter sido esquecidos. Todos os requisitos no-funcionais foram tratados (associados aos casos de uso quando so especficos)? Todos os papis de usurios 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:
possvel eliminar os casos includos ou as extenses e ainda ser capaz de entender o que o sistema faz para as partes interessadas?

Pacotes de casos de uso


Sistemas grandes = nmero elevado de casos Agrup-los por similaridade Representao: pacotes

Casos de uso agrupados

10

Você também pode gostar