UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 17 PROFª BRUNO CALEGARO - PDF
Download "UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 17 PROFª BRUNO CALEGARO"
Diogo Angelim Cabreira
1 UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 17 PROFª BRUNO CALEGARO Santa Maria, 19 de Novembro de 2013.
3 Conceitos Avançados de Objeto e de Enumerações Classe Multiplicidade Escopo Visibilidade
4 Enumerações Uma enumeração é um tipo de dados que possui um conjunto finito de valores Cor : {azul, verde, vermelho, amarelo} Operação : {ler, escrever, ler e escrever}
5 Modelando Enumerações
6 Multiplicidade Multiplicidade é uma restrição sobre a cardinalidade de um conjunto Multiplicidade pode ser usada com associações e também com atributos
7 Escopo O escopo indica se uma característica se aplica a um objeto ou uma classe
8 Visibilidade Visibilidade refere-se à capacidade de uma método de referenciar uma característica de outra classe e tem os seguintes valores possíveis: Público (+) Privado (-) Protegido (#) Pacote (~)
9 Associação N-árias Além de associações binários é possível descrever associações ternárias, quartanárias,..., n-árias
10 Associação N-árias Associações n-árias são associações completas e podem ter classes de associação
11 Associação N-árias Linguagens de programação não podem expressar associações n-árias, de modo que se precisa promovêlas para classes
12 Agregação É um caso especial da associação Consequentemente, multiplicidades, participações, papéis, etc. podem ser usados igualmente A associação de agregação serve para indicar que um objeto colabora com outro objeto, mais a existência desse objeto não é obrigatória Podemos dizer também que é uma associação em que um objeto é parte de outro, de tal forma que a parte pode existir sem o todo. Também podemos dizer que é uma relação do tipo todo/parte ou possui um esse último é mais utilizado na qual uma classe representa uma coisa grande que é composta de coisas menores Onde se puder utilizar uma agregação, uma associação também poderá ser utilizada
13 Agregação Características particulares: Agregações são assimétricas: se um objeto A é parte de um objeto B, B não pode ser parte de A. Outra propriedade das agregações é a transitividade ou seja, se A faz parte de B, e B faz parte de C, então A faz parte de C Sejam duas classes associadas, X e Y. Se uma das perguntas a seguir for respondida com um sim, provavelmente há uma agregação onde X é todo e Y é parte. X tem um ou mais Y? Y é parte de X?
14 Notação para uma agregação Representada como uma linha conectando as classes relacionadas, com um diamante (losango) branco perto da classe que representa o todo. Exemplo:
15 Composição A associação de composição é um tipo de associação de agregação, mas a diferença entre elas é que a composição faz parte do todo e depende do todo Em outras palavras, os objetos são inseparáveis, quando um objeto Pai é destruído o objeto filho também é, pois ele faz parte do todo e compõem o todo Quando se tem uma classe que depende de outra classe para ser utilizada e quando se destrói essa classe a outra também deve ser apagada ai temos um relacionamento de composição
16 Notação de Composição Representada como uma linha conectando as classes relacionadas, com um diamante (losango) preto perto da classe que representa o todo Exemplo:
17 Classe Abstrata Uma classe abstrata é uma classe que não possui instâncias diretas, mas cujas classes descendentes sim
18 Herança Múltipla A herança múltipla permite que uma classe tenha mais de uma superclasse e herde características de todos os seus pais
19 Estudo de Caso I Construa um diagrama de classes inicial para o Sistema de Aluguel de Automóveis: Uma locadora de veículos deseja um sistema para facilitar o atendimento a seus clientes. O processo de aluguel de carros atual é confuso e está gerando insatisfação entre os clientes. A locadora é formada basicamente pelos seus clientes e carros para aluguel. Os carros estão divididos em diversos tipos: popular, luxo e utilitários. As informações importantes sobre os carros a serem armazenadas são: código (placa do carro), tipo, modelo, ano, cor, chassis, quilometragem e valor do aluguel (diária). Os funcionários serão responsáveis pelo cadastro dos clientes e dos carros adquiridos pela locadora, por efetuar o aluguel de um carro para o cliente e dar baixa no aluguel. Existem clientes especiais e clientes comuns. Os especiais possuem uma taxa de desconto e um valor de quilometragem extra para seus aluguéis. Qualquer cliente é identificado por RG, nome, CPF, telefone, endereço e contato.
20 Estudo de Caso I Para construir um um diagrama de classes basicamente precisamos identificar quatro elementos: As entidades (classes); Seus atributos; Suas operações; E o relacionamentos entre elas Podemos dividir o processo para a criação do modelo de classes em 4 etapas
21 Estudo de Caso I Etapa 1. Identificando as classes Procura-se na descrição do sistema por conceitos que representem objetos do mundo real Etapa 2. Identificando atributos Atributos são propriedades que caracterizam um objeto Etapa 3. Identificando Operações Operações são ações que o objeto é capaz de efetuar Etapa 4. Identificando Relacionamento Podem existir relacionamentos de diversos tipos: associação, generalização, agregação, composição
22 Estudo de Caso I Descreva o Diagrama de Classes para o Cenário:
23 Estudo de Caso I Descreva o Diagrama de Classes para o Cenário:
24 Estudo de Caso I Descreva o Diagrama de Classes para o Cenário:
25 Estudo de Caso II Construa um diagrama de classes inicial para o sistema de clínica veterinária: Um cliente pode possuir muitos animais, mas um animal pertence única e exclusivamente a um único cliente. A clínica precisa de informações a respeito de cada cliente, como nome endereço e telefone;um animal pertence a uma única espécie, porém podem haver diversos animais cadastrados de uma determinada espécie;é preciso manter informações a respeito de cada animal já tratado, como nome, sexo,idade e espécie a qual pertence;um animal pode realizar muitos tratamentos, mas um tratamento é realizado exclusivamente para um animal;cada tratamento possui ao menos uma consulta, mas pode possuir muitas consultas. Uma determinada consulta refere-se exclusivamente a um determinado tratamento. Cada consulta deve armazenar informações como a data em que foi realizada, o veterinário que atendeu o animal e o resumo da consulta;um veterinário pode realizar muitas consultas, porém um consulta deve ser realizada por somente um veterinário;em uma consulta podem ser marcados exames para o animal, o número de exames possíveis em uma consulta é indeterminado, mas precisam ser registrados
26 Referências BLAHA, Michael; RUMBAUGH, James. Modelagem e Projetos Baseados em Objetos com UML 2. Rio de Janeiro: Elsevier, Capítulo 3 BLAHA, Michael; RUMBAUGH, James. Modelagem e Projetos Baseados em Objetos com UML 2. Rio de Janeiro: Elsevier, Capítulo 5