Classes
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Classes

on

  • 668 views

 

Statistics

Views

Total Views
668
Views on SlideShare
668
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Classes Document Transcript

  • 1. 27-03-2012 Bases de Dados Paulo AzevedoObjectivos• Modelar correctamente Diagramas de Classes; Paulo Azevedo - Mar/2012 2 1
  • 2. 27-03-2012Diagramas 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 3Diagramas 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-2012Diagramas 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 5Diagramas 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-2012Diagramas de Classes Associação Classe Atributos Multiplicidade “Um cliente pode efectuar muitas encomendas” Paulo Azevedo - Mar/2012 7Diagramas 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-2012Diagramas 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 9Diagramas 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-2012Diagramas 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 11Diagramas 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-2012Diagramas 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 13Diagramas 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-2012Diagramas 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 15Diagramas 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-2012Diagramas 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 17Diagramas 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-2012Diagramas 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 19Diagramas 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-2012Diagramas 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 21Diagramas 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-2012Diagramas de Classes Exemplo:Efectuar InscriçãoPré 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 23Regra 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-2012Diagramas 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 25Diagramas 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-2012Diagramas 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 27Diagramas 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-2012Diagramas 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 29Diagramas 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-2012Diagramas 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 31RevisãoPerguntas 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-2012Revisão1. 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 33Revisão2. 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-2012Revisão3. Qual a notação para uma classe? Rectângulo dividido em três. Nome, atributo e operações. Paulo Azevedo - Mar/2012 35Revisão4. 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-2012Revisão5. 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 37Exercí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-2012ResoluçãoBibliotecaObjectos:• Livro; Revista; Autor; Aluno; Ficha de Empréstimo; Área de Publicação; PublicaçãoClasses:• Publicação; Autor; Empréstimo; Aluno; Área. Paulo Azevedo - Mar/2012 39ResoluçãoDiagrama de classes Paulo Azevedo - Mar/2012 40 20
  • 21. 27-03-2012Exercí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 41ResoluçãoParque estacionamentoObjectos:• Carro; Mota; Tarifa; Estacionamento; Lugar,Classes:• Tarifa; Veículo; Estacionamento; Lugar. Paulo Azevedo - Mar/2012 42 21
  • 22. 27-03-2012ResoluçãoDiagrama de classes Paulo Azevedo - Mar/2012 43 22