técnicas de modelação de dados - wordpress.com · as operações ou métodos são um conceito...

17
Técnicas de Modelação de Dados Diagrama de Classes Curso Profissional Técnico de Gestão e Programação de Sistemas de Informáticos Programação e Sistemas de Informação Módulo 13 – Técnicas de Modelação de Dados Professora: Sandra Soares

Upload: others

Post on 13-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Técnicas de Modelação de Dados

Diagrama de Classes

Curso Profissional Técnico de Gestão e Programação de Sistemas de Informáticos

Programação e Sistemas de Informação

Módulo 13 – Técnicas de Modelação de Dados

Professora: Sandra Soares

Page 2: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Diagramas de Classes

O diagrama de classes:

• é uma evolução dos diagramas ER;

• apresenta elementos dos diagramas ER com conceitos da POO;

• é constituídos por um conjunto de classes interligadas através derelacionamentos.

Page 3: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Classes

• Uma classe representa uma coleção de elementos, acerca dosquais é necessário guardar informação no sistema.

Classe EntidadeEquivalente

Page 4: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Atributos

• Tal como uma entidade no modelo ER, uma classe é constituídapor atributos.

• Atributo: é uma característica ou propriedade de uma entidadeou classe. Ex.: nome, morada, telefone, etc.

• Todos os atributos têm domínio, que corresponde ao conjunto devalores que esse atributo pode assumir. Ex.: string, data, numérico,etc.

Page 5: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Representação de Classes

Nome da Classe

Zona de atributos

Zona das operações ou métodos

Page 6: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Operações ou métodos

As operações ou métodos são um conceito que deriva da POO.

Na prática da modelação de dados a parte das operações ou métodos é

opcional, porque o que está em causa é modelar as estruturas de dados e

os seus relacionamentos.

Page 7: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Relacionamentos entre classes

À semelhança dos diagramas ER, classificam-se os relacionamento entre

classes nos diagramas de classes quanto ao número de classes envolvidas.

Assim, temos:

• Relacionamentos unários ou reflexivos;

• Relacionamentos binários;

• Relacionamentos ternários ou se ordem superior.

Page 8: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Grau do relacionamento

Nos diagramas de classes, por vezes, tomam-se os dois indicativos daquantidade máxima para dizer (à maneira dos diagramas ER) se orelacionamento é do tipo:

1:1 (um para um),1:M (um para muitos) ouM:N (muitos para muitos)

Notação nos diagramas de classes:

1:1 0..1 --- 1..1 ou 1..1 --- 1..11:M 0..1 --- 0..* ou 1..1 --- 0..*M:N 0..* -- 0..* ou 1..* --- 1..*

Page 9: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Relações representadas por classes associativas

• Este diagrama traduz que um Cliente pode encomendar 0 ou muitos artigos e um artigo pode ser encomendado por 0 ou muitos clientes.

• Mas interessa-nos representar dados relativos à encomenda como a data da encomenda e o valor total.

• Encomenda transforma-se, assim, numa classe (classe associativa).

Page 10: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Relações representadas por classes associativas

• O relacionamento foi transformado numa classe associativa.

Page 11: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Relações representadas por classes associativas

Em casos como este, poderíamos considerar,logo à partida, Encomenda como umaEntidade/Classe. O diagrama 1 representa umaalternativa ao diagrama do diapositivo anterior.

Diagrama 1

Contudo, uma encomenda pode ter mais doque um artigo! O Diagrama 2 representada estasituação!

Diagrama 2

Page 12: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Relações representadas por classes associativas

Há situações em que não faz sentido converter a classe associativa numaclasse.

Consideremos, por exemplo, a parte do SI de uma empresa em análiseque representa os funcionários e os diferentes departamentos em queeles trabalham.

Problema: interessa registar as datas de entrada e de saída de cadafuncionário em relação a cada departamento por onde passa.

Page 13: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Relações representadas por classes associativas

Classe associativa resultante do problema anterior:

Page 14: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Generalizações e especializações

Exemplo de uma generalização (classe Cliente) com duas especializações (Cliente_individual e Cliente_Empresa).

O conceito de herança é aplicado neste caso.

Page 15: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Agregações e composições

Uma outra situação especial que surge nos relacionamentos entre duas classes é aquela em que uma classe corresponde a uma parte de um todo que é a outra classe.

• A estas situações dá-se o nome genérico de agregação, mas distinguem-se dois tipo:

• Agregação fraca/simples ou somente agregação;

• Agregação forte ou composição.

Page 16: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Agregação simples

Numa agregação (simples ou fraca), um objeto de uma classe pertencea um objeto de outra classe, mas este último não tem exclusividade deposse sobre o primeiro.

Exemplo:

Um sistema de uma empresa regista os dados dos seus empregadoscomo: código, Nome, Data_Nasc e Endereço.

Os analistas, verificam que há endereços que são partilhados por mais doque um empregado (caso de pais, filhos, conjugues, etc.).

Endereço pode, então, ser considerado uma classe de agregação, emrelação à classe Empregado.

Page 17: Técnicas de Modelação de Dados - WordPress.com · As operações ou métodos são um conceito que deriva da POO. Na prática da modelação de dados a parte das operações ou

Agregação forte ou composição

No caso da agregação forte ou composição, temos a situação em que umobjeto de uma classe pertence, com exclusividade, a um objeto de outraclasse.

Consideremos de novo a classe Encomenda!

Analisando detalhadamente:

Uma Encomenda pode conter vários produtos e um produto pode ser encomendado várias vezes!

Nestes casos, é habitual criar-se uma classe de composição, por exemplo, Item_Encomenda, que fica agregada à classe Encomenda.

Neste caso, uma encomenda pode

conter um ou vários itens;

cada item pertence a uma

única encomenda.