UML Criando
Diagramas Eficientes
Rafael Guimares Sakurai
Rodrigo Cascarrolho
Quem somos?
Rafael Guimares Sakurai (rafael.sakurai@metodista.br)
Possui graduao em Cincia da Computao pela Universidade
Metodista de So Paulo (2005), especialista em Engenharia de
Componentes com Java Enterprise e Webservices pela Faculdade de
Informtica e Administrao Paulista. Atualmente Analista
Desenvolvedor de software da Virginia Surety. Tem experincia na rea
de Cincia da Computao, com nfase em Linguagens de
Programao. Possui as seguintes certificaes: SCJP 5.0, SCWCD
1.4 e SCSNI.
Agenda
O que UML
Histria
Diagramas UML
Diagrama de Caso de Uso
Diagrama de Classes
Ferramentas de Modelagem
Certificao
Bibliografia
Um pouco de histria...
James Rumbaugh
e Grady Booch
Verso 0.9
Jan/1997
Out/1995
Out/1994
- Verso 0.8
- Ivar Jacobson
- trs amigos
Verso 1.1
Jun/1996
Verso 1.0
Verso 1.3
Jun/1998
Nov/1997
Verso 1.2
Verso 1.5
2001
Dez/1998
Verso 1.4
Verso 2.1
2005
2002
2007
Verso 2.0
UML - Diagramas
Lista de Diagramas
Diagrama
Objetivo
Grupo Diagrama
Classes
Estrutural
Componentes
Estrutural
Estruturas Compostas
Estrutural
Instalao
Estrutural
Objetos
Estrutural
Pacotes
Estrutural
Casos de Uso
Comportamental
Atividades
Comportamental
Mquinas de Estado
Comportamental
Sequncia
Interao
Comunicao
Interao
Interao
Sincronismo
Interao
Ivar Jacobson
Ator
Humano ou entidade.
Interage com o sistema.
Iniciam o sistema.
Fornecem dados.
Usam as informaes do sistema.
10
Caso de Uso
11
<<include>> e <<extend>>
<<include>>
Relacionamento com outro caso de uso que sempre ser
executado.
<<extend>>
Relacionamento com outro caso de uso que pode ou no ser
executado.
12
13
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.
14
15
16
17
Exemplo Prtico
Sistema de Pagamento de Servios, realizar pagamento
de servios
18
19
20
Textos longos.
Muitas extenses.
Todos diagramas se chamando.
Todas as aes CRUD separadas.
Detalhes da tela (botes, combos, links, etc).
No um fluxograma!
21
22
Estrutura da classe
Uma classe em UML possui trs partes:
Nome da Classe
Atributos
Operaes
23
Atributos
Um atributo formado por:
visibilidade nome : tipo [multiplicidade] = valor inicial {propriedades}
24
Operaes
Uma operao formada por:
visibilidade nome (parmetros) : tipo de retorno {propriedades}
25
Visibilidade
Podemos definir as seguintes visibilidades em atributos
e operaes:
~
#
+
private
default
protected
public
26
27
Comentrio
Os comentrios ou notas so utilizados para adicionar
mais informaes ao diagrama.
28
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:
29
Associaes
Utilizado para representar o relacionamento entre
classes, as associaes podem ser:
Associao
Agregao
Composio
Classe de associao
30
Associao
Relacionamento simples entre duas classes:
31
Agregao
Informa que uma classe faz parte de outra classe, mas
no de forma exclusiva.
32
Composio
Informa que uma classe faz parte de outra classe de
forma exclusiva.
33
Agregao x Composio
A diferena entre ambos :
Agregao se excluir a classe responsvel pelo relacionamento,
no deve excluir a classe que ele possui relacionamento.
34
Classe de associao
Utilizamos para realizar o relacionamento entre duas
classes:
ou
35
Associao
Podemos tambm ter uma associao para mesma
classe:
36
Navegabilidade
Podemos informar qual a direo do relacionamento:
37
Multiplicidade
A multiplicidade utilizada para definir a quantidade de
objetos devem ser criados:
0 .. 1 (zero ou um)
1 (um)
* (zero ou muitos)
38
Multiplicidade
Quando utilizamos atributos para informar coleo de
objetos, podemos tambm adicionar propriedades na
multiplicidade:
{ordered}
{unordered}
{unique}
{nonunique}
{bag}
- Ordenado
- No ordenado
- nico
- No nico
- Conjunto no ordenado e no nico
39
40
41
Exemplo
Crie o diagrama de classes UML para a seguinte figura:
Inicio
Pedido
Pagamento
Entrega
Fim
42
43
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.
44
45
Dependncia
Utilizado para informar que uma classe depende de
outra classe para executar alguma operao:
46
Dependncia
Palavras - chave de dependncia:
<<call>>
<<create>>
<<dependency>>
<<use>>
47
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.
48
Associao x Dependncia
Exemplo:
49
Classe Abstrata
Utilizado para informar que uma classe no implementa
todos os seus mtodos.
50
Herana
Utilizamos herana quando queremos declarar
subclasses, permitindo reutilizar os cdigos j
declarados na superclasse.
51
Interface
Utilizamos interface para definir as operaes bsicas
que uma classe de seu tipo precisa implementar.
52
Interface
Exemplo:
53
Pacote
Utilizamos para organizar as classes:
54
Template
uma classe parametrizada para definir conjuntos
fortemente tipados.
55
Enumeration
Utilizado para criar um conjunto fixo de valores:
56
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.
57
58
59
60
Ferramentas IDE
61
62
Certificaes UML
OCUP OMG Certified UML Professional
http://www.omg.org/uml-certification/exam_info.htm
63
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]
UML - http://www.uml.org
Wikipdia http://www.wikipedia.org
Rafael Guimares Sakurai e Rodrigo Cascarrolho
64
Obrigado!
http://www.slideshare.net/rodrigocasca/uml-criando-diagramas-eficientes
65