Baixe o app para aproveitar ainda mais
Prévia do material em texto
Unidade 5: Modelos de Dados Orientados a Objetos 5.1 Primeiras Palavras O objetivo desta unidade é apresentar os conceitos básicos de Modelagem de Dados Orientada a Objetos. Além disso, aqui será apresentado como usar o Diagrama de Classes para representar o Modelo de Dados. 5.2 Problematizando o tema O que é Orientação a Objetos? Como modelar um banco de dados usando diagramas UML? 5.3 UML (Linguagem de Modelagem Unificada) e o Diagrama de Classes A UML é uma linguagem de símbolos visuais usada para modelar sistemas computacionais por meio do paradigma de Orientação a Objetos. O Diagrama de Classes corresponde a representação dos dados manipulados e armazenados pelos programas de acordo com os conceitos de Orientação a Objetos. A notação do Diagrama de classes é fortemente baseada no Diagramas Entidade-Relacionamento. Deve-se observar que o Diagrama de Classes, privilegia a descrição segundo o paradigma Orientado a Objetos. Na UML, uma classe possui a notação de um retângulo dividido em três partes (ver figura 5.1): Nome da Classe; Atributos da Classe; Métodos da Classe; Figura 5.1. Exemplo de uma classe. Os atributos e as operações e os detalhamento dos mesmos podem não ser fornecidos inicialmente. Eles podem ser adicionados após um maior entendimento do sistema. Os atributos podem ainda ser divididos em atributos simples e atributos compostos e atributos multivalorados conforme a figura 5.2. Figura 5.2. Notação de atributos simples, composto e multivalorado. 5.4 Generalização A generalização indica relacionamentos de herança de classes. A figura 5.2 apresenta um exemplo de herança de classes. Figura 5.2. Exemplo de generalização. 5.5 Associação Uma associação é uma linha cheia entre duas classes. É usada para representar uma propriedade (atributo) da classe. A figura 5.3 ilustra uma associação. Figura 5.3. Ilustração de uma associação. A multiplicidade de uma associação indica quantos objetos podem participar da mesma. No exemplo, um livro é escrito por uma ou mais pessoas. Uma pessoa pode escrever zero ou mais livros. Quando oculta a multiplicidade é 1..1. Podem existir papeis na associação. O papel é geralmente mapeado como atributo. No exemplo da figura 5.4, autor é atributo da classe livro. Mas cuidado! Se fizermos uma analogia com o modelo relacional, o autor é um atributo do relacionamento escrito por. Figura 5.4. Ilustração de uma associação com papéis. Uma classe pode associar-se com ela própria, caracterizando uma associação unária, ou reflexiva, conforme ilustrado na figura 5.6. Figura 5.5. Ilustração de uma associação unária (ou reflexiva). 5.6 Navegabilidade A navegabilidade descreve como as associações devem ser navegadas. A navegabilidade pode ser: unidirecional: só é possível navegar em uma direção. Por exemplo, a partir de um Funcionário pode-se determinar o Departamento para o qual ele trabalha, mas o inverso não é possível. Um exemplo de navegabilidade unidirecional é apresentado na figura 5.6. bidirecional: navega-se em ambas as direções. Um exemplo de navegabilidade unidirecional é apresentado na figura 5.7. Figura 5.6. Exemplo de navegabilidade unidirecional. Figura 5.7. Exemplo de navegabilidade bidirecional. 5.7 Classes Associativas Uma classe associativa é usada para modelar a informação que surge a partir da associação de outras classes. Um exemplo de classe associativa é ilustrado na figura 5.8. Figura 5.8. Exemplo de classe associativa (Matrícula). Uma classe associativa é usada quando o conceito pertence ao relacionamento existente entre as classes. No entanto, as classes associativas podem ser substituídas por classes normais. Vale observar que a notação da figura 5.8 é completamente equivalente à notação da figura 5.9. Ao fazer a substituição é necessário ficar atento às cardinalidades definidas. Figura 5.9. Classe associativa Matrícula (figura 5.8) substituída por classe normal. As figuras 5.10 e 5.11 apresentam exemplos de classes associativas. Figura 5.10. Exemplo de classe associativa em uma associação unária. Figura 5.11. Exemplo de classe associativa.. É possível adicionar comentários e/ou restrições para as associações. A figura 5.12 mostra um exemplo de cometário Figura 5.12. Exemplo de comentário. 5.8 Relacionamentos Especiais A UML também define que alguns tipos de associação que possuem um significado adicional como a composição e a agregação. Composição A composição é uma associação que indica um relacionamento PARTE-TODO. Exemplos Mão (todo) – Dedos (parte) Polígono (todo) – Vértices (parte) Tabuleiro (todo) – Casas (parte) A composição é indicada com um losango cheio na classe que representa o todo. A figura 5.13 ilustra um exemplo de composição: Figura 5.12. Ilustração do relacionamento composição. Algumas regas devem ser obedecidas para se definir uma composição 1 – Um objeto da classe PARTE deve “pertencer” a um e somente um objeto da classe TODO 2 – O objeto da classe TODO é totalmente responsável pela criação e remoção de seus objetos partes. A figura 5.13 mostra um exemplo de composição. Observe que não é preciso marcar a multiplicidade do lado da classe TODO pois esta será sempre 1..1 Figura 5.13. Exemplo de um relacionamento composição. Agregação A agregação é também uma associação que representa um relacionamento PARTE-TODO, porém de maneira mais relaxada: não são aplicadas regras como na Composição. Não tem praticamente nenhum valor semântico adicional com relação às associações simples. Por isso, não é indicado usá- la. A figura 5.14 mostra um exemplo da notação de agregação. Figura 5.14. Exemplo de um relacionamento composição. 5.9 Correspondência DER para Diagrama de Classes Ao realizar o mapeamento do Diagrama ER para o Diagrama de Classes tem-se que as entidades e relacionamentos são representados por meio de classes. Os relacionamentos são mapeados para associações. O diagrama de classes deve ser feito em três etapas: Incluir somente o nome das entidades (nome das classes); Incluir os atributos; Incluir as operações das classes. As operações não fazem parte do MER. A figura 5.15 mostra um exemplo de Diagrama ER. A figura 5.16 mostra o correspondente mapeamento para Diagrama de classes. Figura 5.15. Exemplo de um Diagrama ER. Figura 5.16. Mapeamento corresponde do diagrama ER da figura 5.15 para o diagrama de classes UML. 5.10 Estudos complementares Consultar o livro Grady Boch, James Rumbaugh, Ivar Jacobson, UML Guia do Usuário, Editora Campus, 2000 para maior detalhes da UML.
Compartilhar