Escolar Documentos
Profissional Documentos
Cultura Documentos
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
3
Um pouco de histria...
Verso 0.9
Verso 1.1
Verso 1.3
Verso 1.5
Verso 2.1
Out/1995
Jan/1997
Jun/1998
2001
2005
Out/1994
- Verso 0.8 - Ivar Jacobson - trs amigos
Jun/1996
Nov/1997
Dez/1998
2002
2007
Verso 1.0
Verso 1.2
Verso 1.4
Verso 2.0
UML - Diagramas
Lista de Diagramas
Diagrama
Classes Componentes Estruturas Compostas Instalao Objetos Pacotes Casos de Uso Atividades Mquinas de Estado Sequncia Comunicao Viso Geral da Interao Sincronismo
Objetivo
Classe, caractersticas e relacionamentos. Estrutura e conexo de componentes. Decomposio de uma classe em tempo de execuo. Distribuio de artefatos nos ns. Exemplo de configuraes de instncias. Estrutura hierrquica em tempo de compilao. Como os usurios interagem com um sistema. Comportamento procedimental e paralelo. Como os eventos alteram um objeto no decorrer de sua vida. Interao entre objetos; nfase na sequncia. Interao entre objetos; nfase nas ligaes. Mistura de diagrama de sequncia e de atividades. Interao entre objetos; nfase no sincronismo.
Grupo Diagrama
Estrutural Estrutural Estrutural Estrutural Estrutural Estrutural Comportamental Comportamental Comportamental Interao Interao Interao Interao
Representa a interao entre um usurio (humano ou sistema) e o sistema. No descreve como o software dever ser construdo, mas sim como ele dever se comportar quando estiver pronto. Corresponde a um conjunto de aes com um objetivo comum.
Rafael Guimares Sakurai e Rodrigo Cascarrolho
Ator
Humano ou entidade. Interage com o sistema. Iniciam o sistema. Fornecem dados. Usam as informaes do sistema.
10
Caso de Uso
Unidade de um trabalho significante. Representa um processo. Iniciado por um ator ou outro caso de uso. Exemplos: Login para o sistema, Registrar no sistema, Criar pedidos, etc.
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
Diagrama
14
15
16
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
17
Exemplo Prtico
Sistema de Pagamento de Servios, realizar pagamento de servios
18
19
20
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
As classes que fazem parte de um relacionamento tambm so chamadas de TODO (responsvel pelo relacionamento) e PARTE (usado pelo relacionamento).
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.
Composio se excluir a classe responsvel pelo relacionamento, ento 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
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
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
No tente usar todas as notaes disponveis no mesmo diagrama. No desenhe modelos para tudo, a menos que seja realmente necessrio.
60
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/ptbr/visio/default.aspx Poseidon - http://www.gentleware.com Enterprise Architect - http://www.sparxsystems.com.au/
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]
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
64
Obrigado!
http://www.slideshare.net/rodrigocasca/uml-criando-diagramas-eficientes
65