Você está na página 1de 5

7.

DIAGRAMA DE CLASSES

O diagrama de classes representa a estrutura do sistema, recorrendo ao conceito de classe e suas relaes. O modelo de classes resulta de um processo de abstraco onde so identificados os objectos relevantes do sistema em estudo. Um objecto uma ocorrncia que tem interesse para o sistema em estudo e que se pretende descrever no seu ambiente, contendo identidade e comportamento. O comportamento de um objecto define o modo como ele age e reage a estmulos externos e a identidade de um objecto um atributo que o distingue de todos os demais, sendo preservada quando o seu estado muda. Um objecto no mais do que uma instncia da classe. Os objectos de modelao contemplados por este diagrama so:
Classe: a representao de um conjunto de objectos que partilham os mesmos atributos e comportamentos; Relao: representa a ligao entre classes.

A simbologia usada para representar estes dois conceitos : Classe

Relao

Cada classe descrita atravs do seu nome, identificao de todos os seus atributos e identificao de todas as operaes que traduzem o seu comportamento. O smbolo utilizado para representar a classe, e como se representa na figura 7.23, contempla trs reas distintas, uma rea para se identificar o nome da classe, outra para listar os atributos e, finalmente, a terceira, para listar as operaes ou mtodos, tambm designados, segundo alguns autores, por servios.
Nome da classe Atributos

Servios

Figura 7.23 Simbologia usada para representar uma classe

7.8.1

REGRAS DE CONSTRUO

7.8.1.1 COMO UTILIZAR OS OBJECTOS O diagrama de classes mostra como cada classe se relaciona com as outras, tendo como objectivo, a satisfao dos requisitos funcionais definidos para o sistema em estudo. Neste diagrama, uma classe s pode aparecer uma vez. 7.8.1.2 COMO ATRIBUIR NOMES AOS OBJECTOS Qualquer classe e relao devem ter um nome elucidativo e claro para que o diagrama seja facilmente entendido. As classes devem ser identificadas por um nome comum, como, por exemplo, Encomenda, Produto, Cliente, etc. Os nomes das relaes devem ser traduzidas atravs de um verbo, como, por exemplo, efectua, contm, refere, etc. Qualquer um destes nomes deve fazer parte do vocabulrio do domnio do problema em estudo. 7.8.1.3 COMO LIGAR OS OBJECTOS Depois de se terem identificado as classes e os seus atributos, h que identificar as relaes que existem entre as diferentes classes, de forma a satisfazer os requisitos funcionais do sistema. A representao da ligao entre classes faz-se recorrendo a uma linha recta, como pode ser visto na figura 7.24. O smbolo com a forma de um rectngulo com um canto dobrado que aparece no diagrama da figura 7.24 o utilizado para ilustrar notas ou restries.

Figura 7.24 Notao usada no diagrama de classes

Na figura 7.24, mostra-se como se representam as relaes e chama-se a ateno para onde se coloca o nome e os atributos da classe. Nesta ilustrao, foram identificadas duas classes, Encomenda e Produto, cada uma das quais com os seus atributos, e foi identificada a relao Contm entre as duas classes. A associao acontece quando uma classe se associa a uma ou mais classes, ou mesmo com ela prpria. As classes esto associadas se:
Um objecto de uma classe envia uma mensagem a um objecto de outra classe; Um objecto de uma classe cria um objecto de uma outra classe; Um objecto de uma classe recebe uma mensagem com um objecto de outra classe como argumento.

Existem outros tipos de relaes, generalizao e agregao, que so casos particulares da associao. Exemplos destes tipos de relaes so mostrados na figura 7.25. A generalizao a relao que se estabelece entre uma superclasse e uma subclasse. A Classe A uma generalizao da Classe B quando A e B esto relacionados por uma relao: B como A. uma relao num sentido; se A uma generalizao de B, ento B no pode ser uma generalizao de A. A classe A a classe pai ou superclasse e B a classe filho ou subclasse. uma associao entre classes todo-parte, conhecida como uma relao consiste em. Este conceito equivalente ao conceito de herana da programao orientada a objectos, onde as subclasses, filhos, herdam da superclasse, pai, os atributos e mtodos comuns. A agregao usa-se para mostrar o facto de um todo ser composto por partes. Uma forma especial de agregao a composio, que se usa quando as partes, para a sua existncia, dependem da existncia do todo. Por exemplo, no faz sentido ter uma linha de encomenda se no estiver associada a uma encomenda.
Generalizao

A g r e ga o

Composio

Figura 7.25 Generalizao, agregao e composio

Num diagrama de classes, e aps ter-se identificado a associao entre classes, necessrio identificar a cardinalidade de uma associao, vulgarmente designada por multiplicidade. A multiplicidade especificada no extremo da associao e sobre a linha que representa a associao. A tabela 7.11 identifica e descreve a notao usada para representar os diferentes tipos de multiplicidade.

Quando h necessidade de se saber mais sobre a associao que se estabelece entre duas classes, surge o que se denomina por classes associativas. Por exemplo, se um produto pode ser comercializado por diferentes fornecedores e cada fornecedor tem um preo diferente para cada produto que comercializa, h necessidade de ter a classe Produto_Fornecedor, pois pretende-se saber qual o preo para um fornecedor especfico. Esta classe associativa s existe devido relao que se estabelece entre duas classes com multiplicidade de muitos para muitos e tem sempre atributos prprios.

Multiplicidade

Simbologia

Zero ou um (opcional)

0..1

Um para um

1..1

Um para muitos

1..n

Zero ou muitos

0..n

Um a vinte (valor entre o intervalo estabelecido)

1..20

Tabela 7.11 Notao usada para representar os diferentes tipos de multiplicidade

A figura 7.26 mostra como se representa uma classe associativa.

Figura 7.26 Exemplo de uma classe associativa

7.8.2

ANLISE DE UM DIAGRAMA DE CLASSES

No sistema de recepo de encomendas em estudo, pode-se identificar as seguintes classes: Cliente, Encomenda e Produto. Na figura 7.27, apresenta-se a primeira verso do diagrama de classes para o referido sistema.

Figura 7.27 Primeira verso do diagrama de classes para o sistema de recepo de encomendas

Verifica-se que, neste sistema, a encomenda pode ser ou no satisfeita. Neste caso, identifica-se um caso especial, designado, no diagrama de classes, por generalizao, que permite demonstrar a noo de superclasse e subclasse, herdando esta os atributos da superclasse. Neste mesmo sistema, nota-se a necessidade da classe Produto_Encomendado para se poder saber que produtos foram encomendados em cada encomenda; esta ltima classe s existe se existir a classe Encomenda. A figura 7.28 representa o diagrama de classes revisto, incluindo j associaes de generalizao e de composio.
1..n Contm Produto_Encomendado -Quant_enc 1..n Pertence

Cliente -Num_Cliente -Nome Cliente -Tipo_Ref -Morada -Desconto Encomenda Faz 1..n -Num_Enc -Data_Enc -Codigo_Prod -Preo_Unit -Quant_Disp Produto

Encomenda aceite -Data entrega

Encomenda rejeitada -Razo

Figura 7.28 Diagrama de classes revisto para o sistema de recepo de encomendas

Você também pode gostar