Você está na página 1de 31

UML MODELAO DA

ESTRUTURA

Professor Sandro
Carvalho

Introduo

A modelao da estrutura de um sistema de software consiste


principalmente, segundo a abordagem orientada por objetos, na
identificao de classes e suas respectivas relaes.

Um objeto reflete em geral uma entidade do mundo real e apresenta


um estado e comportamento prprio. Os objetos interatuam entre si
por troca de mensagens. Uma classe consiste numa estrutura que
permite criar objetos semelhantes; que apresentem estado e
comportamento semelhante. Neste sentido diz-se que uma classe
uma fbrica de objetos e que um objeto uma instncia de uma
classe.

Introduo

A UML providencia os seguintes elementos, que permitem a


especificao da estrutura esttica de um sistema de software:
classes, relaes, interfaces, objetos.

Classes

Uma classe a descrio de um conjunto de objetos que partilham os


mesmos atributos, operaes, relaes e a mesma semntica. Uma
classe corresponde a algo tangvel ou a uma abstrao conceitual
existente no domnio do utilizador ou no domnio do engenheiro de
software.

Classes

Uma classe representada em UML por um rectngulo com uma,


duas ou trs sees. Na primeira seo apresenta-se o nome da
classe, na segunda a sua lista de atributos, e na terceira a sua lista de
mtodos.

Classes

Relaes

Uma relao em UML estabelece a ligao entre elementos e


representada graficamente por um determinado tipo de linha. Na
modelao orientada por objetos os trs tipos de relaes mais
importantes so (1) dependncias; (2) generalizaes; e (3)
associaes.

Relao de Dependncia

Uma relao de dependncia, ou simplesmente dependncia, indica


que a alterao na especificao de um elemento pode afetar outro
elemento que a usa, mas no necessariamente o oposto. A
dependncia representada em UML atravs de uma linha dirigida a
tracejado.

Relao de Dependncia

exemplo

da

relao

de

dependncia

SensorTemperatura e Temperatura.

entre

as

classes

Relao de Generalizao

Uma relao de generalizao, ou simplesmente generalizao,


uma relao entre um elemento geral (superclasse, super-caso
utilizao, super-pacote) e um elemento mais especfico (subclasse,
sub-caso-utilizao, sub-pacote). representada em UML por uma
linha dirigida a cheio com um tringulo branco no seu extremo.

No contexto de classes usam-se generalizaes para ilustrar as


relaes de herana conhecidas das linguagens de programao
orientadas por objetos.

Relao de Generalizao

A herana providencia um mecanismo natural e potente de


organizao dos programas de software ao permitir: (1) que cada
subclasse herde o estado e comportamento de uma superclasse; (2)
subclasses podem adicionar o seu prprio estado e comportamento; e
(3) as subclasses podem ainda alterar os mtodos (comportamento)
herdados, providenciando implementaes especializadas desses
mtodos.

Relao de Generalizao
Libraryitem
Cataloguenumber
Acquisitiondate
Cost
Type
Status
Numberof copies
Acquire()
Catalogue()
Dispose()
Issue()
Return()

Publisheditem

Recordeditem
Title
Medium

Title
Publisher

Book
Author
Edition
Publicationdate
ISBN

Magazine
Year
Issue

Film
Director
Dateof release
Distributor

Computer
program
Version
Platform

Relao de Associao
Uma relao de associao, ou simplesmente associao, uma relao
estrutural que especifica que objetos de uma classe esto ligados a objetos de
outra.

Relao de Associao
A Figura a seguir ilustra a associao de posse entre as classes Utilizador
e Password, com uma multiplicidade de 1 para muitos (1-N). A associao indica
que um utilizador tem vrias (0 ou mais) passwords e que uma password pertence
necessariamente a um utilizador.

Relao de Associao

Relao de Associao

Multiplicidade
A multiplicidade traduz o nmero de instncias de uma classe que se podem
relacionar (atravs da associao) com uma nica instncia da(s) outra(s)
classe(s) participante(s). Pode-se especificar em UML qualquer tipo de
multiplicidade. Por exemplo, multiplicidade muitos (*), um ou mais (1..*),
exatamente um (1), zero ou um (0..1).

Navegao
A navegao traduz a forma como a partir de uma instncia de uma classe se
pode aceder a uma ou mais instncias de outra classe relacionada pela
associao. Por omisso a navegao numa associao bidirecional.

Agregao (Simples)
A associao entre classes sem agregao reflete que ambas as classes se
encontram no mesmo nvel conceitual. Por outro lado, uma relao de agregao
corresponde ao fato de uma instncia de determinada classe possuir ou ser
composta por vrias instncias de outra classe. O adorno de agregao
representado por um losango colocado junto classe que representa o elemento
agregador ou o todo. A associao de agregao traduz apenas o fato de uma
classe ser composta por diferentes outras classes, suas componentes.

Agregao (Simples)
A Figura abaixo ilustra a relao de agregao entre vrias classes. Na prtica a
descrio das diferentes componentes que compem um computador pessoal
(PC).

Composio (Agregao Composta)


A composio, ou agregao composta, uma variante agregao simples,
em que adicionada a seguinte semntica: (1) forte pertena do todo em relao
parte, e (2) tempo de vida delimitado (as partes no podem existir sem o
todo). Adicionalmente, o todo responsvel pela disposio das suas partes,
ou seja, o todo responsvel pela criao e destruio das suas partes.

Composio (Agregao Composta)


O adorno de agregao composta representado por um losango a cheio
colocado junto classe que representa o elemento agregador ou o todo.

A Figura acima ilustra um exemplo de uma associao com agregao composta,


de forma a refletir o fato que um Departamento no existe fora do contexto de
uma Empresa.

Classes-Associao
Numa relao de associao entre classes, a associao pode tambm ter os
seus prprios atributos (e eventualmente operaes), devendo ser, por
conseguinte, modelada tambm como uma classe. Este tipo de classe designa-se
por classe-associao.

Classes-Associao
Considere-se o exemplo da Figura a seguir, em que a associao entre as
classes Pessoa e Empresa traduz as tarefas que cada empregado realiza na
empresa. Para cada tarefa mantido um conjunto de atributos. A classeassociao Tarefa representada visualmente como qualquer outra classe, mas
apresenta uma linha a tracejado a lig-la linha da associao.

Classes-Associao

Classes-Associao
Associaes N-rias, com aridade maior ou igual a 3, so pouco comuns na
modelao de classes. Contudo, h situaes em que a aplicao deste tipo de
associaes vantajosa em termos da clareza do modelo. Nestas circunstncias,
a associao representada por um losango com linhas para todas as suas
classes participantes. A Figura a seguir ilustra um exemplo de uma associao nria, a associao Tarefa e correspondente classe-associao, que relaciona as
classes Pessoa, Empresa e TipoTarefa. Caso a associao tenha tambm
atributos e/ou operaes prprias, cria-se uma classe-associao,a qual ligada
ao losango por uma linha a tracejado.

Classes-Associao

Exemplo de Diagrama de Classes

Exemplo
Considere o sistema de uma equipe de futebol constitudo pelos seguintes
atores: jogador, treinador, atacante, goleiro, mdio, defesa, presidente. Desenhe o
respectivo diagrama de casos de utilizao. Sugesto: considere por exemplo os
seguintes casos: jogar, treinar, defender a baliza, pagar ao jogador, pagar ao
treinador, vender jogador, contratar jogador, contratar treinador, despedir treinador.

Exemplo

Exemplo