Você está na página 1de 64

Diagrama de Caso de Uso

www.luisaosoares.com.br
@luisaosoares
www.facebook.com/luisaorcc

Introduo
Diagrama mais abstrato, flexvel
e informal da UML.

utilizado
no
incio
da
modelagem para identificar os
requisitos do sistema.
Utilizado como base para criao
de outros diagramas.
Com o uso de uma linguagem
simples, permite que qualquer
pessoa
compreenda
o
comportamento
externo
do
sistema.

Introduo
Identifica os tipos de usurios
que interagem com o sistema,
os papis que eles assumem e
as funes requisitadas;
apresentado durante reunies
iniciais com os clientes para
poder auxiliar na identificao
de possveis falhas;
Descreve
os
requisitos
funcionais
do
sistema
de
maneira
consensual
entre
usurios e desenvolvedores de
sistema.

Elementos Bsicos
Atores
Caso de Uso
Associao
Sistema
ASSOCIAO

Fronteira do sistema
(Opcional)

SISTEM
A
CASO DE
USO

Atores
Representam os papis desempenhados pelos
diversos usurios que podero utilizar ou interagir
com os servios e funes do sistema.
Pode ser qualquer elemento externo que interaja
com o sistema, inclusive um software ou hardware.
Exemplos
tpicos:
cliente,
aluno,
supervisor,
professor, impressora fiscal, dispositivo de conexo
de rede etc.
Identificando atores de um sistema:
Quem utilizar a principal funcionalidade do
sistema?
Quem (ou o que) tem interesse nos resultados do
sistema?
Quais dispositivos (hardware) so necessrios?
Com quais outros sistemas o sistema em foco ir

Casos de uso
Referem-se aos servios, tarefas ou
funes que podem ser utilizados pelos
usurios do sistema;
So usados para expressar e documentar
os comportamentos das funes do
sistema;
Em geral, podemos associar um caso de
uso a uma tela (ou pgina) de um sistema,
apesar de isto no ser uma regra;
Contm um texto descrevendo
Emitir NFo servio
Gerar
e
Cadastrar
(iniciando-se
com um verbo);
Relatrio
Produto

de Vendas

Caractersticas dos Casos de


Uso

sempre iniciado por um ator


Realizado em nome de um ator que, por
sua
vez,
deve
pedir
direta
ou
indiretamente ao sistema tal realizao.
Um Caso de Uso completo
Deve ser uma descrio completa de um
determinado processo.

Deve especificar um valor para o ator


Como resposta solicitao do ator,
retorna um valor.

Identificando um Caso de
Uso.
O trabalho dirio do sistema pode ser
simplificado ou tornado mais eficiente
usando novas funes?
Quais as funes que o ator necessita do
sistema?
O que o ator necessita fazer?
Quais entradas e sadas, juntamente com
sua origem e destino, que o sistema
requer?

Associaes
So representadas por uma linha que liga
o ator ao caso de uso:

Generalizao e Especializao
Forma de associao na qual existem dois ou
mais casos de uso com caractersticas
semelhantes;
Existem pequenas diferenas entre os casos de
uso associados;
Tambm possvel com atores;

Incluso
A execuo de um caso de uso obriga a
execuo de um outro;
Pode ser comparado chamada de uma
sub-rotina;
Representada por uma reta tracejada com
uma seta apontando para o caso de uso
que foi includo;
Esteretipo com o texto <<include>>:

Exemplo de incluso

Extenso
Descreve cenrios opcionais de um caso
de uso;
S ocorrer se uma determinada
condio for satisfeita;
Representada por uma reta tracejada
com uma seta apontando para o caso de
uso que recebe a extenso;
Esteretipo com o texto <<extend>>:

Restries
s vezes, no fica claro a condio que
deve ser satisfeita para que um caso
de uso seja executado;
Nesses casos, podemos usar restries
com
uma
nota
explicativa
determinando a condio para que o
caso de uso seja executado;
As restries so compostas por um
texto entre chaves:

Restries

Documentao de casos de uso


Descrio bastante simples do caso de
uso;
Tem como objetivo informar os atores
que interagem com o sistema e as
etapas que devem ser executadas pelo
ator e pelo sistema para que o caso de
uso execute sua funo;
No h um modelo padro para
especificao de caso de uso;
Recomenda-se que seja simples e de fcil
acesso.

Exemplo de um modelo
Sistema de Pagamento de Servios
O sistema ser responsvel por gerenciar os
pagamentos dos servios prestados por
empresas e freelancers. O pagamento do
servio poder ser efetuado apenas pelo
usurio que possuir o perfil especfico para
esta funo. Ao ser realizado qualquer servio
e pagamentos, o sistema gera e envia uma
mensagem de e-mail aos prestadores do
servio.

Descrio

Pagamento de Servio
Cenrio Principal de Sucesso:
1. O usurio acessa o sistema
2. O usurio pesquisa o servio a ser pago
3. O sistema apresenta as informaes do servio
4. O usurio inicia o processo de pagamento
5. O sistema envia a confirmao do pagamento ao prestador do
servio
6. O sistema encerra o processo de pagamento
Extenses:
1a. Usurio no autorizado
1a.1 O usurio no possui perfil para realizar pagamentos
1a.2 O usurio direcionado ao passo 6.
3a. Servio no finalizado
3a.1 O sistema apresenta que o servio no foi finalizado
3a.2 O usurio direcionado ao passo 6.

Diagrama

Diagrama

Diagrama de Caso de Uso


Exemplo de Caso de Uso para sacar dinheiro

Estrutura da classe
Uma classe em UML possui trs partes:
Nome da Classe
Atributos
Operaes

Podemos abreviar a declarao da classe, caso


no influencie o entendimento do diagrama:

22

Atributos
Um atributo formado por:
visibilidade nome : tipo [multiplicidade] = valor inicial
{propriedades}

23

Operaes
Uma operao formada por:
visibilidade nome (parmetros) : tipo de retorno
{propriedades}

O parmetro de um mtodo formado por:


nome : tipo [multiplicidade] = valor inicial
24

Visibilidade
Podemos definir as seguintes visibilidades em
atributos e operaes:
~
#
+

25

private
default
protected
public

Atributos e operaes
esttico

Podemos definir atributos e operaes como


sendo estticos, ou seja, so referentes a classe e
no aos seus objetos.

26

Comentrio
Os comentrios ou notas so utilizados para
adicionar mais informaes ao diagrama.

27

Comentrio
O comentrio pode ser utilizado em qualquer
diagrama, podendo ou no ser vinculado a algum
elemento.
Utilizamos tambm o comentrio para definir
alguma regra de restrio, para isto precisamos
adicionar { } entre a restrio:

28

Associaes
Utilizado para representar o relacionamento entre
classes, as associaes podem ser:

Associao
Agregao
Composio
Classe de associao

As
classes
que
fazem
parte
de
um
relacionamento tambm so chamadas de TODO
(responsvel pelo relacionamento) e PARTE
(usado pelo relacionamento).

29

Associao
Relacionamento simples entre duas classes:

30

Agregao
Informa que uma classe faz parte de outra classe,
mas no de forma exclusiva.

31

Composio
Informa que uma classe faz parte de outra classe
de forma exclusiva.

32

Agregao x Composio
A diferena entre ambos :
Agregao se excluir a classe responsvel pelo
relacionamento, no deve excluir a classe que ele possui
relacionamento.
Composio se excluir a classe responsvel pelo
relacionamento, ento deve excluir a classe que ele
possui relacionamento.

33

Classe de associao
Utilizamos para realizar o relacionamento entre
duas classes:

ou

34

Associao
Podemos tambm
mesma classe:

35

ter

uma

associao

para

Navegabilidade
Podemos informar qual a direo do
relacionamento:

36

Multiplicidade
A multiplicidade utilizada para definir a
quantidade de objetos devem ser criados:
0 .. 1 (zero ou um)
1 (um)
* (zero ou muitos)

37

Multiplicidade
Quando utilizamos atributos para informar
coleo de objetos, podemos tambm adicionar
propriedades na multiplicidade:
{ordered}
- Ordenado
{unordered}
- No ordenado
{unique}
- nico
{nonunique}
- No nico
{bag}
- Conjunto no ordenado e no nico

38

Criando um diagrama de
Classes

No item Diagramas -> Novo -> Diagrama...

Selecione a opo Diagrama de Caso de Uso

39

Criando um diagrama de
Classes

Ao clicar em Finalizar teremos a seguinte tela:

1) rea para criao do


diagrama de Caso de Uso
2) Paleta com os itens que
podem ser adicionados no
diagrama de Caso de Uso

40

Exemplo
Crie o diagrama de classes UML para a seguinte
figura:

Inicio

41

Pedido

Pagamento

Entrega

Fim

Resposta exemplo prtico

42

Exemplo prtico
Crie um diagrama de classes UML para o sistema
de Agendamento de Entrega de Produtos:
O sistema deve permitir o agendamento de uma visita
por parte de um funcionrio, ao cliente de nossa
empresa. Esta visita dever ser realizada em hora e
local definido pelo cliente para poder lhe entregar os
produtos que foram comprados em nossa loja.

43

Resposta exemplo prtico

44

Dependncia
Utilizado para informar que uma classe depende
de outra classe para executar alguma operao:

45

Dependncia
Palavras - chave de dependncia:
<<call>>
<<create>>
<<dependency>>
<<use>>

46

Associao x Dependncia
A diferena bsica entre ambos:
Associao temos um atributo da classe relacionada.
Dependncia utilizamos a classe relacionada, para
passar um parmetro, chamar um mtodo, criar um
objeto, etc.

47

Associao x Dependncia
Exemplo:

48

Classe Abstrata
Utilizado para informar que uma classe no
implementa todos os seus mtodos.

49

Herana
Utilizamos herana quando queremos declarar
subclasses, permitindo reutilizar os cdigos j
declarados na superclasse.

50

Interface
Utilizamos interface para definir as operaes
bsicas que uma classe de seu tipo precisa
implementar.

51

Interface
Exemplo:

52

Pacote
Utilizamos para organizar as classes:

53

Template
uma classe parametrizada
conjuntos fortemente tipados.

54

para

definir

Enumeration
Utilizado para criar um conjunto fixo de valores:

55

Exemplo prtico
Crie um diagrama de classe em UML para o
Sistema de Envio de Produtos:
O sistema deve controlar a ordenao do envio dos
produtos por preo ou por endereo do cliente. De
acordo com a quantidade de produtos, tambm
precisamos alocar um veiculo que pode ser uma Van ou
uma Caminhonete.
Tambm precisamos controlar o status do envio que
pode ser, aguardando pagamento, buscando em
estoque, sada para entrega ou entregue.

56

Resposta exemplo prtico

57

O que colocar no diagrama de


classes
Concentre-se nas reas principais do sistema.
O necessrio para que as pessoas envolvidas
possam entender.
Mantenha as notaes simples.
Gere um diagrama de classe flexvel, facilitando
futuras atualizaes.
Desenvolva o diagrama baseado na metodologia
adotada, podendo ser um diagrama de negocio,
diagrama especifico por reas do sistema ou
diagrama com todas as classes envolvidas no
sistema.
58

O que no colocar no diagrama de


classes
Para no aumentar a complexidade de um
diagrama
de
classes,
normalmente
no
adicionamos no diagrama:
Classes que representam telas.
Classes de conexo e acesso ao banco de dados.
Classes de APIs da linguagem ou de terceiros.

No tente usar todas as notaes disponveis no


mesmo diagrama.
No desenhe modelos para tudo, a menos que
seja realmente necessrio.

59

Ferramentas IDE

Eclipse UML - http://www.eclipseuml.com


Jude - http://jude.change-vision.com
NetBeans http://www.netbeans.org
Magic Draw - http://secure.nomagic.com
Microsoft Office Visio http://office.microsoft.com/pt-br/visio/default.aspx
Poseidon - http://www.gentleware.com
Enterprise Architect http://www.sparxsystems.com.au/

60

Adicionando o plug-in de UML no


NetBeans
No menu Ferramentas Plug-ins
Selecione em Plug-ins disponveis UML

61

Certificaes UML
OCUP OMG Certified UML Professional

http://www.omg.org/uml-certification/exam_info.htm

62

Referencia bibliografica

[Booch, Rumbaugh e Jacobson, I.]


Grandy Booch, James Rumbaugh e Ivar Jacobson, UML: Guia do
Usurio, 3 Ed. Campus, 2005.

[Fowler]
Martin Fowler, UML Essencial, 3 Ed. Bookman, 2005.

[Guedes]

Gilleanes T. A. Guedes, UML: Uma abordagem pratica, 3 Ed.


Novatec, 2008.
[Cardoso]
Caque Cardoso, UML na prtica: do problema ao sistema, Ed.
Cincia Moderna, 2003

UML - http://www.uml.org
Wikipdia http://www.wikipedia.org

63

Obrigado!
http://www.slideshare.net/rodrigocasca/uml-criando-diagramaseficientes

64