Upload
marco-coelho
View
420
Download
0
Embed Size (px)
Citation preview
27-03-2012
1
Bases de Dados
Paulo Azevedo
Objectivos
• Modelar correctamente Diagramas de Classes;
Paulo Azevedo - Mar/2012 2
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
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
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
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
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
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
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 “-”.
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
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”
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
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.
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.
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”.
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..*
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
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
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
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
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
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
27-03-2012
22
Diagrama de classes
Resolução
Paulo Azevedo - Mar/2012 43