22
27-03-2012 1 Bases de Dados Paulo Azevedo Objectivos Modelar correctamente Diagramas de Classes; Paulo Azevedo - Mar/2012 2

Classes

Embed Size (px)

Citation preview

Page 1: Classes

27-03-2012

1

Bases de Dados

Paulo Azevedo

Objectivos

• Modelar correctamente Diagramas de Classes;

Paulo Azevedo - Mar/2012 2

Page 2: Classes

27-03-2012

2

Diagramas de Classes

• Uma das técnicas mais utilizadas nodesenvolvimento orientado aos objectos;

• Descrição formal da estrutura de objectosde um sistema;

• Para cada objecto, descreve a suaidentidade, os seus relacionamentos com osoutros objectos, os seus atributos e as suasoperações.

Paulo Azevedo - Mar/2012 3

Diagramas de Classes

Resultam de um processo de abstracçãoatravés do qual se identificam os objectos(entidades e conceitos) relevantes no contextoque se pretende modelar e se procuramdescrever características comuns em termosde propriedades (atributos) e decomportamentos (operações).

Paulo Azevedo - Mar/2012 4

Page 3: Classes

27-03-2012

3

Diagramas de Classes

Diagramas de classes descrevem o modelogeral de informação de um sistema.

Classes descrevem objectos com atributos eoperações comuns. Servem dois propósitos:

1. Permitir compreender o mundo real, naquiloque é importante para o SI;

2. Fornecer uma base prática paraimplementação em computador.

(Rumbagh et al, 1991)

Paulo Azevedo - Mar/2012 5

Diagramas de Classes

Utilizam os seguintes elementos abstractos demodelação:

• Classes de objectos;

• Relações de Associação e Generalização;

• Multiplicidade.

A perspectiva estática fornecida pelo diagramade classes tem como objectivo suportar osrequisitos funcionais do sistema.

Paulo Azevedo - Mar/2012 6

Page 4: Classes

27-03-2012

4

Diagramas de Classes

Paulo Azevedo - Mar/2012 7

Classe

Atributos

Multiplicidade

Associação

“Um cliente pode efectuar muitas encomendas”

Diagramas de Classes

O diagrama de classes é utilizado no seguinteconjunto de formas:

• Modelar o vocabulário do sistema – Envolve odecidir sobre que abstracções estruturais fazemparte do sistema em estudo;

• Modelar colaboração simples – Visualizar o SIcomo um todo, constituído por classes e as suasrelações;

• Modelar o esquema lógico de uma BD –Desenhar a estrutura de dados para uma BDrelacional ou orientada aos objectos.

Paulo Azevedo - Mar/2012 8

Page 5: Classes

27-03-2012

5

Diagramas de Classes

Objecto – Conceito existente em modelação(mundo real), relevantes para seremincorporados no modelo de informação.Caracterizados por um conjunto dePropriedades, um comportamento e umaidentidade.

Paulo Azevedo - Mar/2012 9

Diagramas de Classes

Propriedades do objecto – São ascaracterísticas que definem o objecto,transpostas para um conjunto de atributos,cujos valores estabelecem o estado doobjecto.

Comportamento – É definido como asoperações que o objecto pode efectuar.

Identidade – Permite identificar um objectoem particular como único num conjunto deobjectos semelhantes.

Paulo Azevedo - Mar/2012 10

Page 6: Classes

27-03-2012

6

Diagramas de Classes

Paulo Azevedo - Mar/2012 11

O PC1 é diferente do PC2 e PC3, contudo,todos eles possuem um conjunto de atributos(S/N, data fabrico, cor, etc.) que os definem(estado) e realizam operações como iniciar SOou executar SI (Comportamento). Para alémde algumas semelhanças, possuem umaidentidade própria que os torna únicos.

PC1 PC2 PC3

Diagramas de Classes

Classe - Representa uma abstracção sobre umconjunto de objectos que partilham a mesmaestrutura e comportamento. Um objecto é umcaso particular de uma classe, tambémreferido como uma instância da classe.

Paulo Azevedo - Mar/2012 12

Page 7: Classes

27-03-2012

7

Diagramas de Classes

Atributo – Característica que os objectospossuem e que é representada por um valorde dados.

Paulo Azevedo - Mar/2012 13

Atributos

Nome da classe

Operações

Os objectos apenas comunicam entre si pormensagens, o que na prática resulta nainvocação de operações.

As operações são a representação lógica docomportamento de um objecto, consistindoem acções efectuadas por um objecto ousobre um objecto.

Diagramas de Classes

Paulo Azevedo - Mar/2012 14

Page 8: Classes

27-03-2012

8

Por exemplo, a classe encomenda pode definira operação Ver(). O parêntesis é utilizadopara simbolizar a existência ou não deparâmetros. Para a operação referida poderiaser necessário fornecer o ID da encomenda,Ver(ID).

Diagramas de Classes

Paulo Azevedo - Mar/2012 15

Diagramas de Classes

Paulo Azevedo - Mar/2012 16

Tanto os atributos como as operações podem servisíveis ou não para outras classes, visibilidade:

• Público – Qualquer classe tem acesso aoelemento. Representado através do prefixo “+”;

• Protegido – Qualquer descendente da classepode utilizar o elemento. É representado atravésdo elemento “#”;

• Privado - Apenas a própria classe tem acesso aoelemento – É representado através do prefixo “-”.

Page 9: Classes

27-03-2012

9

Diagramas de Classes

Paulo Azevedo - Mar/2012 17

Para cada atributo pode ser identificado o seutipo de dados, que classifica a informação que oatributo irá conter. De uma forma genérica:

• Integer – Representa um número inteiro;• Long – Representa um número inteiro de maior

dimensão;• Double – Para números reais;• String - Representa texto;• Date – Para datas;• Boolean – Valor lógico, Verdadeiro ou Falso.

No diagrama de classes as associaçõesrepresentam as relações entre os objectos. Asassociações são caracterizadas por possuir umnome.

Uma classe pode possuir uma associaçãoconsigo própria, significando neste caso queum objecto da classe se relaciona com um oumais objectos da mesma classe.

Paulo Azevedo - Mar/2012 18

Diagramas de Classes

Page 10: Classes

27-03-2012

10

Diagramas de Classes

Paulo Azevedo - Mar/2012 19

As associações são também caracterizadas porpossuir uma multiplicidade:

• 0..1 – Opcional;• 1..1 – Obrigatório existir um objecto, também

representado utilizando apenas o número 1;• 1..10 – Um valor entre o intervalo estabelecido,

neste caso de 1 a 10;• 0..* - Zero ou infinitos objectos da classe,

também pode ser representado por *;• 1..* – Um ou infinitos objectos da classe.

É possível efectuar várias combinações demultiplicidade numa associação. A relação“um para muitos” entre a classe 1 e a classe 2significa que um objecto da classe 1 podeestar associado ou não (opcional) a muitosobjectos da classe 2

Paulo Azevedo - Mar/2012 20

Diagramas de Classes

“Um para Um”

“Um para Muitos”

“Muitos para Muitas”

Page 11: Classes

27-03-2012

11

Diagramas de Classes

Paulo Azevedo - Mar/2012 21

A identificação das classes não é um processodirecto.

São necessárias diversas iterações erefinamentos até identificar correctamentetodas as classes. Uma regra simples é deiniciar o processo de identificaçãosublinhando, na descrição dos uses cases, ossubstantivos.

Diagramas de Classes

Paulo Azevedo - Mar/2012 22

Substantivos. Dá-se o nome de substantivo atodas as palavras que nomeiam seres, lugares,objectos, (…).

Toda a palavra que designa ser, coisa ousubstância

Page 12: Classes

27-03-2012

12

Diagramas de Classes

Paulo Azevedo - Mar/2012 23

Exemplo:

Efectuar Inscrição

Pré condição Aluno é utilizador válido.

1 – UC começa quando aluno selecciona a opção efectuar inscrição;2 – Sistema mostra lista de escolas;3 – Aluno selecciona escola;4 – Sistema mostra lista de cursos;5 – Aluno selecciona curso;6 – Aluno efectua inscrição.

Pós condição Aluno recebe comprovativo da inscrição.

Regra prática

Paulo Azevedo - Mar/2012 24

• Normalmente, na descrição dos UC as classese/ou objectos são identificados através desubstantivos;

• Os nomes das classes são sempre no singular;

• As classes que estão fora de âmbito dosistema (domínio da aplicação, fronteira dosistema), não devem ser representadas.

Page 13: Classes

27-03-2012

13

Diagramas de Classes

Paulo Azevedo - Mar/2012 25

• Representar o sistema – Não é necessáriorepresentar o próprio sistema;

• Classes semelhantes – Podem existir classes quesão sinónimos. Se houver dúvidas, estas podemser esclarecidas ao efectuar a descrição dasclasses;

• Nível de detalhe – Eliminar classes onde não épossível efectuar uma clara descrição ou que sãomuito especificas, quase como um objecto.

Diagramas de Classes

Paulo Azevedo - Mar/2012 26

• Identificação de atributos - Alguns atributosnão são explicitamente referidos nasdescrições, mas surgem do conhecimento dodomínio do problema. Por exemplo, moradade um cliente. O levantamento destesatributos é muito importante.

Page 14: Classes

27-03-2012

14

Diagramas de Classes

Paulo Azevedo - Mar/2012 27

• Identificação de associações e operações –Podem ser identificadas com base nasrelações lógicas entre as classes. Tambémpodem ser identificadas na descrição dos UCatravés dos verbos, como por exemplo, “ocliente efectua encomendas”. Só é possívelcompreender na totalidade as associaçõesatravés de uma análise das interacções entreos objectos das classes.

Diagramas de Classes

Paulo Azevedo - Mar/2012 28

• Generalização – Caso especial do diagrama declasses. Demonstra a noção de “superclasse” e“subclasse” na perspectiva de uma relação“pai e filho”.

Page 15: Classes

27-03-2012

15

Diagramas de Classes

Paulo Azevedo - Mar/2012 29

• Herança – O conceito de herança estápresente, pois as subclasses, “filhos”, herdam,da superclasse “pai”, a estrutura em termosde atributos e operações.

Diagramas de Classes

Paulo Azevedo - Mar/2012 30

• Agregação - Demonstra o facto que um todo écomposto por partes. Por exemplo, podemosmostrar que um restaurante possui umconjunto de mesas:

-Nome

-Morada

Restaurante

-Num Mesa

Mesa

1 1..*

Page 16: Classes

27-03-2012

16

Diagramas de Classes

Paulo Azevedo - Mar/2012 31

• Composição – É uma agregação com umsignificado mais forte, existindo umadependência directa entre as duas classes. Sea parte deixar de existir o todo também deixade existir.

Perguntas de revisão:

1. Qual o objectivo de um diagrama de classes?

2. O que significa uma classe?

3. Qual a notação para uma classe?

4. O que é um objecto?

5. Defina os conceitos de atributo e operações de uma classe.

Revisão

Paulo Azevedo - Mar/2012 32

Page 17: Classes

27-03-2012

17

1. Qual o objectivo de um diagrama de classes?

Descrever o modelo geral de informação de umsistema.

Resultam de um processo de abstracção atravésdo qual se identificam os objectos (entidades econceitos) relevantes no contexto que sepretende modelar e se procuram descrevercaracterísticas comuns em termos depropriedades (atributos) e de comportamento(operações).

Revisão

Paulo Azevedo - Mar/2012 33

2. O que significa uma classe?

Representa uma abstracção sobre umconjunto de objectos que partilham a mesmaestrutura e comportamento. Um objecto éum caso particular de uma classe, tambémreferido como uma instância da classe.

Revisão

Paulo Azevedo - Mar/2012 34

Page 18: Classes

27-03-2012

18

3. Qual a notação para uma classe?

Rectângulo dividido em três. Nome, atributo e operações.

Revisão

Paulo Azevedo - Mar/2012 35

4. O que é um objecto?

Conceito existente em modelação (mundoreal), relevantes para serem incorporados nomodelo de informação. Caracterizados porum conjunto de Propriedades, umcomportamento e uma identidade.

Revisão

Paulo Azevedo - Mar/2012 36

Page 19: Classes

27-03-2012

19

5. Defina os conceitos de atributo e operações de uma classe.

Atributo – Característica que os objectospossuem e que é representada por um valorde dados.

Operações - São a representação lógica docomportamento de um objecto, consistindoem acções efectuadas por ou sobre umobjecto.

Revisão

Paulo Azevedo - Mar/2012 37

Biblioteca:As publicações que se encontram disponíveis para osalunos são os livros e as revistas. Um aluno dirige-secom as publicações ao balcão de atendimento parapreencher a ficha de empréstimo. Tem de preencheruma ficha para cada publicação, colocando a cota e otítulo. Caso seja um livro, tem de escrever os autores eo ISBN. Quando chega uma nova publicação esta éencaminhada para a responsável de catalogação queanalisará e definirá a área de conhecimento. Existemvárias áreas pré definidas, por exemplo, sociologia,psicologia, informática, etc. Podem ser definidas novasáreas de conhecimento.

Exercícios

Paulo Azevedo - Mar/2012 38

Page 20: Classes

27-03-2012

20

Biblioteca

Objectos:

• Livro; Revista; Autor; Aluno; Ficha deEmpréstimo; Área de Publicação; Publicação

Classes:

• Publicação; Autor; Empréstimo; Aluno; Área.

Resolução

Paulo Azevedo - Mar/2012 39

Diagrama de classes

Resolução

Paulo Azevedo - Mar/2012 40

Page 21: Classes

27-03-2012

21

Parque de estacionamento:• Interessa apenas guardar no sistema a matrícula de cada

veículo;• Um veículo pode efectuar vários estacionamentos no

mesmo dia;• Os veículos podem ser automóveis ou motas;• De início, existe uma tarifa base que é aplicada a todos os

veículos. Para veículos com elevado número deestacionamentos é possível criar tarifas específicas. Cadatarifa possui um custo por hora;

• O estacionamento (parque) possui um número de lugareslimitado. Os lugares são caracterizados por um número,piso e um estado. Este estado pode assumir os valores livreou ocupado.

Exercícios

Paulo Azevedo - Mar/2012 41

Parque estacionamento

Objectos:

• Carro; Mota; Tarifa; Estacionamento; Lugar,

Classes:

• Tarifa; Veículo; Estacionamento; Lugar.

Resolução

Paulo Azevedo - Mar/2012 42

Page 22: Classes

27-03-2012

22

Diagrama de classes

Resolução

Paulo Azevedo - Mar/2012 43