Вы находитесь на странице: 1из 34

UML

Unified Modeling Language

Ana Gavinho

Feverieo 2004

UML

U M L Diagrama de classes
Classes
Atributos Operaes

Relacionamento entre classes


Associaes Multiplicidade
Papeis nas associaes Navegao Associaes n-arias Auto-associaes

Generalizao
Herana mltipla

Agregao
Composio

Classes associativas
Feverieo 2004 UML 2

Classe
Uma classe descreve de um conjunto de objetos que compartilham os mesmos atributos, operaes, relacionamentos e semntica. representada graficamente como um retngulo e implementa uma ou mais interfaces. Cada classe deve ter um nome que a diferencia de outras classes. O nome pode ser composto por qualquer nmero de caracteres e determinados sinais de pontuao. Na prtica, nomes de classes so substantivos ou expresses breves, definidos a partir do vocabulrio do sistema.

Pedido

LinhaPedido

Produto

Feverieo 2004

UML

Atributos
Um atributo uma propriedade nomeada de uma classe que descreve um intervalo de valores que as instncias podem apresentar. Uma classe pode ter qualquer nmero de atributos ou mesmo nenhum. Um atributo representa alguma propriedade do item que est sendo modelado, compartilhado por todos os objetos desta classe. Um objeto de uma classe poder ter valores especficos para cada um dos seus atributos. Os atributos podem ser representados apresentando apenas seu nome, ou acrescentando tambm seu tipo e valor por omisso
Feverieo 2004 UML 4

Atributos
Pedido
Nome
Nome e tipo

numero dataRecebida : date preco : Money PrePago : Boolean = Falso

Nome, tipo e

valor por omisso

Feverieo 2004

UML

Operaes
Operaes so processos que a classe sabe realizar. Correspondem claramente a mtodos de uma classe.

Uma operao a implementao de um servio que pode ser solicitado por algum objeto da classe para modificar o comportamento. Uma classe pode ter qualquer nmero de operaes ou no ter nenhuma. Muitas vezes, a chamada a uma operao em determinado objeto altera os dados ou o estado do objeto. As operaes podem ser representadas exibindo somente seu nome ou indicando sua assinatura (nome, lista de parmetros, tipo a ser retornado no caso de funes) .
Feverieo 2004 UML 6

Operaes
Produto codigo : Integer nome : String status : String

Nome Nome e parmetro


desativarProduto() alterarStatus(codigo : integer) obterStatus(codigo : integer) : String

Nome, parmetro e tipo retornado


Feverieo 2004 UML 7

Associao
Uma associao um relacionamento estrutural que especifica objetos de um item conectados a objetos de outro item. Indica que existe uma ligao entre objetos das classes associadas. A partir de uma associao entre duas classes, voc capaz de navegar do objeto de uma classes para o objeto de outra classe. Uma associao pode ter um nome, que utilizado para descrever a natureza do relacionamento. Voc pode atribuir uma direo para o nome, fornecendo um triangulo de orientao que aponta a direo como o nome poder ser lido.

Feverieo 2004

UML

Associao
Pedido numero dataRecebida : date preco : Money PrePago : Boolean = Falso expedir() encerrar() 0..* faz 1 Cliente nome endereco classe de Feverieo 2004 credito()
UML

LinhaPedido 1 possui quantidade 1..* preco 0..* 1 Produto codigo : Integer nome : String status : String desativarProduto() alterarStatus(codigo : integer) obterStatus(codigo : integer) : String
9

Multiplicidade
Indica quantos objetos podem participar de um dado relacionamento. Geralmente indica limites superiores e inferiores para objetos participantes, mas pode indicar um valor explicito.
1 0..1 0..* 1..* 5 Exatamente um; Zero ou um Zero ou muitos; Um ou muitos; Exatamente cinco;

Ao determinar a multiplicidade em uma extremidade da associao, para cada objeto da extremidade oposta deve haver a mesma quantidade de objetos nesta extremidade.
Feverieo 2004 UML 10

Papeis nas associaes


Quando uma classe participa de uma associao, ela tem um papel especifico a executar neste relacionamento. possvel nomear o papel desempenhado pela classe rotulando explicitamente a ponta da associao ligada a classe. Este rotulo chamado de nome do papel.
Pedido numero dataRecebida : date preco : Money PrePago : Boolean = Falso expedir() encerrar()
Feverieo 2004 UML 11

Item do pedido 1 possui

LinhaPedido

quantidade 1..* preco

Navegao
Em uma associao, possvel navegar de objetos de um tipo ate objetos de outro tipo. A menos que seja especificado o contrario, a navegao bidirecional, mas ela pode ser limitada a apenas uma direo. A navegao representada por uma seta indicando a direo a ser seguida. Geralmente, o objeto da origem armazena alguma referncia ao objeto destino.
Feverieo 2004 UML

Pedido numero dataRecebida : date preco : Money PrePago : Boolean = Falso expedir() encerrar() 0..* faz 1 Cliente nome endereco classe de credito()
12

Associaes n - rias
uma associao entre trs ou mais classes, onde uma classe pode aparecer mais de uma vez. So mostradas como diamantes conectados atravs de linhas a cada classe participante. Uma classe associativa pode estar conectada ao diamante por uma linha tracejada.
FORNECEDOR
*

PECA
*

CLIENTE
*

FORNECIMENTO
Feverieo 2004 UML 13

Auto-associaes
Quando h o relacionamento de uma classe consigo prpria. Os objetos de uma mesma classe esto associados entre si, e precisam comunicar-se uns com os outros. Tambm chamada de associao reflexiva ou associao unria.

Empregado funcionario

gerente 1

0..n Supervisiona

Feverieo 2004

UML

14

Generalizao
um relacionamento entre itens gerais (chamados superclasses ou classes-me) e tipos mais especficos destes itens (chamados subclasses ou classes-filha). chamada de relacionamento um tipo de. A classe filha herda os atributos e operaes da classes me. Freqentemente, a classe filha tem atributos e operaes prprios, alem daqueles encontrados na classe me. Os objetos da classe filha podem ser utilizados em qualquer local que a classe me ocorra, mas no o inverso. Uma classe pode ter zero, uma ou mais classes me. Uma classe que no tenha uma classe me e tenha uma ou mais classes filha chamada de classe raiz ou classe de base. Uma classe que no tem classes filha chamada de classe folha.
Feverieo 2004 UML 15

Generalizao
Cliente nome endereco classe de credito()

Corporativo nomeContato classeCredito limiteCredito aviso() faturamentoMensal() Feverieo 2004

Pessoal numCartaoCredito

UML

16

Herana mltipla
Na generalizao, quando uma classe-filha possui mais de uma classe-me, ela herda a estrutura e o comportamento (atributos e operaes) das suas classes-me, ocorrendo a herana mltipla. Esta deve ser usado com cuidado, pois poder haver problema se a estrutura e o comportamento das classes-me se sobrepuserem.
itemSujeitoAJuros Ativos

Herana simples

Herana mltipla
ContaBancaria Imoveis

Feverieo 2004

UML

17

Herana mltipla
A herana mltipla pode ser substituda pela delegao, onde a classe-filha herda apenas de uma classe-me e pela agregao obtm o comportamento e estrutura de outras classes.
Ativos

itemSujeitoAJuros

ContaBancaria

Imoveis

Feverieo 2004

UML

18

Agregao
Faz a modelagem de um relacionamento todo/parte, no qual uma classe representa um item maior (o todo) formado por itens menores (as partes). um relacionamento do tipo parte de ou tem um, que significa que um objeto do todo contem os objetos das partes. representado como um losango aberto na extremidade do todo.

1..* Escola

membro

0..*

Aluno

Feverieo 2004

UML

19

Composio
Na composio, um objeto parte pode pertencer a apenas um objeto todo. A remoo do objeto todo produz um efeito em cascata nos objetos parte, fazendo com que sejam removidos tambm. representado como um losango fechado na extremidade do todo.
1 Escola 1..* memb ro tem 1..* Departamento

0..*

Aluno
Feverieo 2004 UML 20

Classes associativas
Uma associao entre duas classes pode ter propriedades. A classe de associao permite acrescentar atributos e operaes a associao. Ela representada como uma classe anexada a uma associao por uma linha tracejada.

Pessoa * Emprego periodo : escopodeDatas


Feverieo 2004 UML

Empresa *

21

U M L Diagrama de classes
Classes
Propriedades Mtodos Visibilidade Qualificadores Classes Abstratas Responsabilidade Interface Diagramas de classes e o modelo conceitual

Feverieo 2004

UML

22

Atributos X Propriedades
A propriedade um valor nomeado, que denota uma caracterstica de um elemento.

Um atributo uma propriedade nomeada de uma classe que descreve um intervalo de valores que as instncias podem apresentar. Ex: o cliente Jose mora na avenida Central, numero 25. Nome: Jose
Endereo: av.Central, 25
Feverieo 2004 UML 23

Cliente nome endereco

Operaes X Mtodos
Operaes so processos que a classe sabe realizar. Uma operao algo realizado em um objeto, o procedimento de chamada.

O mtodo o corpo do procedimento, e os dois so diferentes quando se tem polimorfismo.


Aplicacao Financeira

No exemplo ao lado, as subclasses reescrevem a operao calcularSaldo da superclasse. Temos uma nica operao com trs mtodos distintos.
Feverieo 2004

calcularSaldo()

RendaFixa calcularSaldo()
UML

Poupanca calcularSaldo()
24

Visibilidade
Tanto para atributos como para operaes, temos trs nveis de visibilidade utilizando os seguintes smbolos:

Public (pblico)

O elemento pode se acessado por qualquer objeto do sistema.

Protected (protegido)

O elemento pode ser usado pela classe que o definiu e por suas subclasses. Private (privado) O elemento pode se usado somente pela classe que o definiu.
Feverieo 2004 UML 25

Visibilidade

Pblico

Protegido

Privado

Feverieo 2004

UML

26

Qualificadores
Permite a busca de objetos associados a um dado objeto. um atributo de associao cujo valor particiona o conjunto de objetos relacionados a um objeto da associao. No exemplo, a partir de um pedido e de um produto, possvel navegar ate um ou nenhum objeto de LinhaPedido, pois pode haver uma linha de pedido para cada instancia de produto.
Pedido numero dataRecebida : date preco : Money PrePago : Boolean = Falso expedir() encerrar()
Feverieo 2004 UML 27

Item do pedido
Produto 0..1

LinhaPedido quantidade preco

Classes abstratas
Na hierarquia de generalizao, as classes mais especificas herdam da classe mais geral atributos e operaes. Muitas vezes, as classes que no so folhas podem estar incompletas (sem atributos ou operaes) ou simplesmente no se deseja que tenham objetos. Estas classes so chamadas abstratas, e possuem o nome em itlico.
Feverieo 2004

Seguridade
valorPresente() historico()

emEspecie taxaDeJuros valorPresente()

Bens ativos valorPresente()

UML

28

Responsabilidade
Descrio de alto nvel do propsito de uma classe. um contrato ou obrigaes de uma determinada classe. Uma classe pode ter qualquer nmero de responsabilidades mas, na pratica, toda classe bem estruturada tem pelo menos uma responsabilidade. A medida que os modelos so aprimorados, responsabilidades so traduzidas em um conjunto de atributos e operaes capazes de atende-las. Uma responsabilidade pode corresponder a uma operao, a um atributo ou um aglomerado de atributos e operaes. As responsabilidades so um texto de formato livre e podem ser representadas um compartimento ao final da classe, ou em uma nota anexada a classe.
Feverieo 2004 UML 29

Responsabilidade
Nota anexada a classe

Pedido
Responsabilidades - verificar itens em estoque - determinar preo - validar pagamento

Responsabilidades - verificar itens em estoque - determinar preo - validar pagamento

Compartimento ao final da classe

Feverieo 2004

UML

30

Interface
uma coleo de operaes utilizadas para especificar o servio de uma classe. Ela no especifica qualquer estrutura (no incluem atributos) nem qualquer implementao (no incluem mtodos). A classe pode ter varias interfaces, e estas representam uma especificao completa do comportamento da classe. Porem, no contexto de uma associao, uma classe pode mostrar apenas parte de seu comportamento atravs da interface. Uma interface representada graficamente como um crculo. Para diferenciar a interface de uma classe, podemos utilizar a letra I antes do nome de cada interface.

ISensor
Feverieo 2004

ISpell
UML

IUnknown
31

Interface
Em sua forma expandida, uma interface pode ser apresentada como uma classe estereotipada, listando suas operacoes no compartimento apropriado

<<interface>>

IObserver
IObserver

update()

Feverieo 2004

UML

32

Diagrama de classes e o modelo conceitual


O diagrama de classes pode ser implementado em trs perspectivas: Conceitual: representa os conceitos do domnio que esta sendo estudado, relacionados as classes que vo executa-los, sem preocupao com o software que ira implementa-lo. Especificao: examinando o software, estamos analisando sua interfaces, mas no a sua implementao. Implementao: nesta viso, temos classes e estamos colocando a implementao as claras. classes. A compreenso das diferentes perspectivas muito importante, embora as linhas entre as perspectivas no sejam rgidas, e a maioria dos modeladores no se preocupa em ter suas perspectivas classificadas quando esto modelando..
Feverieo 2004 UML 33

Bibliografia
Utilizando UML e Padres
Craig Larman Editora Bookman UML - Guia do usurio Grady Booch, James Rumbaugh e Ivar Jacobson Editora Campus

UML Essencial Um breve guia para linguagem-padro de modelagem de objetos Martin Fowler e Kendall Scott Editora Bookman Modelagem de objetos artaves da UML Jose Davi Furlan Editora Makron Books

Feverieo 2004

UML

34

Вам также может понравиться