Este documento discute diagramas de classes e seus elementos. Ele explica o que são diagramas de classes, classes, atributos, operações, associações e outros conceitos importantes de modelagem de objetos. O documento fornece exemplos detalhados para ilustrar esses conceitos-chave.
1. 27-03-2012
Bases de Dados
Paulo Azevedo
Objectivos
• Modelar correctamente Diagramas de Classes;
Paulo Azevedo - Mar/2012 2
1
2. 27-03-2012
Diagramas de Classes
• Uma das técnicas mais utilizadas no
desenvolvimento orientado aos objectos;
• Descrição formal da estrutura de objectos
de um sistema;
• Para cada objecto, descreve a sua
identidade, os seus relacionamentos com os
outros objectos, os seus atributos e as suas
operações.
Paulo Azevedo - Mar/2012 3
Diagramas de Classes
Resultam de um processo de abstracção
através do qual se identificam os objectos
(entidades e conceitos) relevantes no contexto
que se pretende modelar e se procuram
descrever características comuns em termos
de propriedades (atributos) e de
comportamentos (operações).
Paulo Azevedo - Mar/2012 4
2
3. 27-03-2012
Diagramas de Classes
Diagramas de classes descrevem o modelo
geral de informação de um sistema.
Classes descrevem objectos com atributos e
operações comuns. Servem dois propósitos:
1. Permitir compreender o mundo real, naquilo
que é importante para o SI;
2. Fornecer uma base prática para
implementação em computador.
(Rumbagh et al, 1991)
Paulo Azevedo - Mar/2012 5
Diagramas de Classes
Utilizam os seguintes elementos abstractos de
modelação:
• Classes de objectos;
• Relações de Associação e Generalização;
• Multiplicidade.
A perspectiva estática fornecida pelo diagrama
de classes tem como objectivo suportar os
requisitos funcionais do sistema.
Paulo Azevedo - Mar/2012 6
3
4. 27-03-2012
Diagramas de Classes
Associação
Classe
Atributos
Multiplicidade
“Um cliente pode efectuar muitas encomendas”
Paulo Azevedo - Mar/2012 7
Diagramas de Classes
O diagrama de classes é utilizado no seguinte
conjunto de formas:
• Modelar o vocabulário do sistema – Envolve o
decidir sobre que abstracções estruturais fazem
parte do sistema em estudo;
• Modelar colaboração simples – Visualizar o SI
como um todo, constituído por classes e as suas
relações;
• Modelar o esquema lógico de uma BD –
Desenhar a estrutura de dados para uma BD
relacional ou orientada aos objectos.
Paulo Azevedo - Mar/2012 8
4
5. 27-03-2012
Diagramas de Classes
Objecto – Conceito existente em modelação
(mundo real), relevantes para serem
incorporados no modelo de informação.
Caracterizados por um conjunto de
Propriedades, um comportamento e uma
identidade.
Paulo Azevedo - Mar/2012 9
Diagramas de Classes
Propriedades do objecto – São as
características que definem o objecto,
transpostas para um conjunto de atributos,
cujos valores estabelecem o estado do
objecto.
Comportamento – É definido como as
operações que o objecto pode efectuar.
Identidade – Permite identificar um objecto
em particular como único num conjunto de
objectos semelhantes.
Paulo Azevedo - Mar/2012 10
5
6. 27-03-2012
Diagramas de Classes
PC1 PC2 PC3
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 SO
ou executar SI (Comportamento). Para além
de algumas semelhanças, possuem uma
identidade própria que os torna únicos.
Paulo Azevedo - Mar/2012 11
Diagramas de Classes
Classe - Representa uma abstracção sobre um
conjunto de objectos que partilham a mesma
estrutura e comportamento. Um objecto é um
caso particular de uma classe, também
referido como uma instância da classe.
Paulo Azevedo - Mar/2012 12
6
7. 27-03-2012
Diagramas de Classes
Atributo – Característica que os objectos
possuem e que é representada por um valor
de dados.
Nome da classe
Atributos
Operações
Paulo Azevedo - Mar/2012 13
Diagramas de Classes
Os objectos apenas comunicam entre si por
mensagens, o que na prática resulta na
invocação de operações.
As operações são a representação lógica do
comportamento de um objecto, consistindo
em acções efectuadas por um objecto ou
sobre um objecto.
Paulo Azevedo - Mar/2012 14
7
8. 27-03-2012
Diagramas de Classes
Por exemplo, a classe encomenda pode definir
a operação Ver(). O parêntesis é utilizado
para simbolizar a existência ou não de
parâmetros. Para a operação referida poderia
ser necessário fornecer o ID da encomenda,
Ver(ID).
Paulo Azevedo - Mar/2012 15
Diagramas de Classes
Tanto os atributos como as operações podem ser
visíveis ou não para outras classes, visibilidade:
• Público – Qualquer classe tem acesso ao
elemento. Representado através do prefixo “+”;
• Protegido – Qualquer descendente da classe
pode utilizar o elemento. É representado através
do elemento “#”;
• Privado - Apenas a própria classe tem acesso ao
elemento – É representado através do prefixo “-”.
Paulo Azevedo - Mar/2012 16
8
9. 27-03-2012
Diagramas de Classes
Para cada atributo pode ser identificado o seu
tipo de dados, que classifica a informação que o
atributo 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.
Paulo Azevedo - Mar/2012 17
Diagramas de Classes
No diagrama de classes as associações
representam as relações entre os objectos. As
associações são caracterizadas por possuir um
nome.
Uma classe pode possuir uma associação
consigo própria, significando neste caso que
um objecto da classe se relaciona com um ou
mais objectos da mesma classe.
Paulo Azevedo - Mar/2012 18
9
10. 27-03-2012
Diagramas de Classes
As associações são também caracterizadas por
possuir 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.
Paulo Azevedo - Mar/2012 19
Diagramas de Classes
É possível efectuar várias combinações de
multiplicidade numa associação. A relação
“um para muitos” entre a classe 1 e a classe 2
significa que um objecto da classe 1 pode
estar associado ou não (opcional) a muitos
objectos da classe 2
“Um para Um”
“Um para Muitos”
“Muitos para Muitas”
Paulo Azevedo - Mar/2012 20
10
11. 27-03-2012
Diagramas de Classes
A identificação das classes não é um processo
directo.
São necessárias diversas iterações e
refinamentos até identificar correctamente
todas as classes. Uma regra simples é de
iniciar o processo de identificação
sublinhando, na descrição dos uses cases, os
substantivos.
Paulo Azevedo - Mar/2012 21
Diagramas de Classes
Substantivos. Dá-se o nome de substantivo a
todas as palavras que nomeiam seres, lugares,
objectos, (…).
Toda a palavra que designa ser, coisa ou
substância
Paulo Azevedo - Mar/2012 22
11
12. 27-03-2012
Diagramas de Classes
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.
Paulo Azevedo - Mar/2012 23
Regra prática
• Normalmente, na descrição dos UC as classes
e/ou objectos são identificados através de
substantivos;
• Os nomes das classes são sempre no singular;
• As classes que estão fora de âmbito do
sistema (domínio da aplicação, fronteira do
sistema), não devem ser representadas.
Paulo Azevedo - Mar/2012 24
12
13. 27-03-2012
Diagramas de Classes
• Representar o sistema – Não é necessário
representar o próprio sistema;
• Classes semelhantes – Podem existir classes que
são sinónimos. Se houver dúvidas, estas podem
ser esclarecidas ao efectuar a descrição das
classes;
• Nível de detalhe – Eliminar classes onde não é
possível efectuar uma clara descrição ou que são
muito especificas, quase como um objecto.
Paulo Azevedo - Mar/2012 25
Diagramas de Classes
• Identificação de atributos - Alguns atributos
não são explicitamente referidos nas
descrições, mas surgem do conhecimento do
domínio do problema. Por exemplo, morada
de um cliente. O levantamento destes
atributos é muito importante.
Paulo Azevedo - Mar/2012 26
13
14. 27-03-2012
Diagramas de Classes
• Identificação de associações e operações –
Podem ser identificadas com base nas
relações lógicas entre as classes. Também
podem ser identificadas na descrição dos UC
através dos verbos, como por exemplo, “o
cliente efectua encomendas”. Só é possível
compreender na totalidade as associações
através de uma análise das interacções entre
os objectos das classes.
Paulo Azevedo - Mar/2012 27
Diagramas de Classes
• Generalização – Caso especial do diagrama de
classes. Demonstra a noção de “superclasse” e
“subclasse” na perspectiva de uma relação
“pai e filho”.
Paulo Azevedo - Mar/2012 28
14
15. 27-03-2012
Diagramas de Classes
• Herança – O conceito de herança está
presente, pois as subclasses, “filhos”, herdam,
da superclasse “pai”, a estrutura em termos
de atributos e operações.
Paulo Azevedo - Mar/2012 29
Diagramas de Classes
• Agregação - Demonstra o facto que um todo é
composto por partes. Por exemplo, podemos
mostrar que um restaurante possui um
conjunto de mesas:
Restaurante
Mesa
-Nome
-Num Mesa
-Morada
1 1..*
Paulo Azevedo - Mar/2012 30
15
16. 27-03-2012
Diagramas de Classes
• Composição – É uma agregação com um
significado mais forte, existindo uma
dependência directa entre as duas classes. Se
a parte deixar de existir o todo também deixa
de existir.
Paulo Azevedo - Mar/2012 31
Revisão
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.
Paulo Azevedo - Mar/2012 32
16
17. 27-03-2012
Revisão
1. Qual o objectivo de um diagrama de classes?
Descrever o modelo geral de informação de um
sistema.
Resultam de um processo de abstracção através
do qual se identificam os objectos (entidades e
conceitos) relevantes no contexto que se
pretende modelar e se procuram descrever
características comuns em termos de
propriedades (atributos) e de comportamento
(operações).
Paulo Azevedo - Mar/2012 33
Revisão
2. O que significa uma classe?
Representa uma abstracção sobre um
conjunto de objectos que partilham a mesma
estrutura e comportamento. Um objecto é
um caso particular de uma classe, também
referido como uma instância da classe.
Paulo Azevedo - Mar/2012 34
17
18. 27-03-2012
Revisão
3. Qual a notação para uma classe?
Rectângulo dividido em três. Nome, atributo
e operações.
Paulo Azevedo - Mar/2012 35
Revisão
4. O que é um objecto?
Conceito existente em modelação (mundo
real), relevantes para serem incorporados no
modelo de informação. Caracterizados por
um conjunto de Propriedades, um
comportamento e uma identidade.
Paulo Azevedo - Mar/2012 36
18
19. 27-03-2012
Revisão
5. Defina os conceitos de atributo e operações
de uma classe.
Atributo – Característica que os objectos
possuem e que é representada por um valor
de dados.
Operações - São a representação lógica do
comportamento de um objecto, consistindo
em acções efectuadas por ou sobre um
objecto.
Paulo Azevedo - Mar/2012 37
Exercícios
Biblioteca:
As publicações que se encontram disponíveis para os
alunos são os livros e as revistas. Um aluno dirige-se
com as publicações ao balcão de atendimento para
preencher a ficha de empréstimo. Tem de preencher
uma ficha para cada publicação, colocando a cota e o
título. Caso seja um livro, tem de escrever os autores e
o ISBN. Quando chega uma nova publicação esta é
encaminhada para a responsável de catalogação que
analisará e definirá a área de conhecimento. Existem
várias áreas pré definidas, por exemplo, sociologia,
psicologia, informática, etc. Podem ser definidas novas
áreas de conhecimento.
Paulo Azevedo - Mar/2012 38
19
20. 27-03-2012
Resolução
Biblioteca
Objectos:
• Livro; Revista; Autor; Aluno; Ficha de
Empréstimo; Área de Publicação; Publicação
Classes:
• Publicação; Autor; Empréstimo; Aluno; Área.
Paulo Azevedo - Mar/2012 39
Resolução
Diagrama de classes
Paulo Azevedo - Mar/2012 40
20
21. 27-03-2012
Exercícios
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 de
estacionamentos é possível criar tarifas específicas. Cada
tarifa possui um custo por hora;
• O estacionamento (parque) possui um número de lugares
limitado. Os lugares são caracterizados por um número,
piso e um estado. Este estado pode assumir os valores livre
ou ocupado.
Paulo Azevedo - Mar/2012 41
Resolução
Parque estacionamento
Objectos:
• Carro; Mota; Tarifa; Estacionamento; Lugar,
Classes:
• Tarifa; Veículo; Estacionamento; Lugar.
Paulo Azevedo - Mar/2012 42
21