Baixe o app para aproveitar ainda mais
Prévia do material em texto
19/03/10 vladimir.professor@gmail.com 1 D ia g ra m a s U M L Diagrama de Classes (UML) São Paulo, 2013 Universidade Paulista (UNIP) Introdução e Conceitos sobre Diagrama de Classes Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com http://www3.unip.br/ mailto:vladimir.professor@gmail.com 19/03/10 vladimir.professor@gmail.com 2 D ia g ra m a s U M L Diagrama de Classes (UML) Introdução Um objeto é algo com domínios bem definidas e relevante para o problema abordado, que possuí uma identidade, um estado (os dados associados a esses objeto) e um comportamento (ações). Estado: modelado por valores de atributos (tamanho, forma, peso, etc.) e por ligações que num dado momento tem com outros objetos (em qualquer sistema existem objetos que se relacionam entre si). A relação entre objetos é representada por meio das relações entre as classes. Existem diferentes tipos de relações como, por exemplo, pode-se classificar em dois tipos, associações e generalizações. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 3 D ia g ra m a s U M L Diagrama de Classes (UML) Introdução Comportamento um objeto exibe comportamentos invocáveis (por resposta a chamadas de operações) ou reativos (por resposta a eventos); Identidade espaço: é possível distinguir 2 objetos mesmo que tenham o mesmo estado; exemplo: pode-se distinguir 2 folhas de papel A4, mesmo que tenham os mesmos valores dos atributos; tempo: é possível saber que se trata do mesmo objeto mesmo que o seu estado mude; exemplo: se pintar um folha de papel A4 de amarelo, continua a ser a mesma folha de papel. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 4 D ia g ra m a s U M L Diagrama de Classes (UML) Objeto do mundo real No desenvolvimento de software Orientado a Objetos, procura-se imitar no computador o mundo real, tendo em vista que um conjunto de objetos interagem entre si; Muitos objetos computacionais são idênticos aos objetos encontrados no mundo real; Dependendo do contexto (análise ou projeto) pode-se falar em objetos do mundo real, em objetos computacionais ou nas 2 coisas de forma simultanea; http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 5 D ia g ra m a s U M L Diagrama de Classes (UML) Objeto do mundo real Exemplos de objetos do mundo real: Sr. João Aula de Estrutura de dados Exemplos de objetos computacionais: Registro que descreve o Sr. João (imagem de objeto do mundo real) Uma árvore de pesquisa binária (objeto puramente computacional) http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 6 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de Classe É uma notação gráfica que possibilita modelar e descrever objetos reais ou abstratos de um software (Blaha & Rumbaugh, 2006) e seus relacionamentos por meio de classes; Uma classe é uma descrição de um conjunto de objetos que partilham as mesmas propriedades (atributos), comportamentos (operações ou ações), relações e semântica. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 7 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de Classe Um diagrama de classes é uma representação das abstrações importantes do sistema (classes) e das suas relações. Define a arquitetura (estrutura) estática do sistema. Elementos do modelo de classes: Classes Relações entre classes: Associação - relação de utilização Agregação - relação de constituição Generalização (herança) - relação de especialização. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 8 D ia g ra m a s U M L Diagrama de Classes (UML) Objetivo de um diagrama de classe Um diagrama de classes serve para modelar o vocabulário de um sistema, do ponto de vista do utilizador (problema) ou do implementador (solução); Ponto de vista do utilizador (problema): na fase de captura e análise de requisitos, em paralelo com a identificação dos casos de uso; Vocabulário do implementador (solução): na fase de projeto do sistema (design); Construído e refinado ao longo das várias fases do desenvolvimento do software, por analistas, projetistas (designers) e implementadores. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 9 D ia g ra m a s U M L Diagrama de Classes (UML) Objetivo de um diagrama de classe Também serve para: Especificar colaborações (no âmbito de um caso de uso ou mecanismo); Especificar esquemas lógicos da bases de dados; Especificar vistas (estrutura de dados de formulários, relatórios, etc.); Modelos de objetos de domínio, negócio, análise e design. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 10 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes No desenvolvimento de software Orientado a Objetos, não interessa os objetos individuais mas sim as classes de objetos; Uma classe é um descritor de um conjunto de objetos que partilham as mesmas propriedades (semântica, atributos, operações e relações); Um objeto de uma classe é uma instância da classe; A extensão de uma classe é o conjunto de instâncias da classe; Em Matemática, uma classe é um conjunto de “objetos” com uma propriedade em comum, podendo ser definida indiferentemente em compreensão ou em extensão: C = {x |N : x mod 3 = 2} = {2, 5, 8, 11, 14, ...} http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 11 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes O conjunto de todos os objetos em um determinado contexto forma um universo (UoD - Universe of Discourse) As extensões das classes são subconjuntos desse universo UoD x João x Rui x Maria Aluno Curso x Eletrotécnica x Informática objeto x Dª Rita x Sr. Silva Funcionário classe ligação http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 12 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes Classes podem representar: Coisas concretas: Pessoa, Turma, Carro, Imóvel, Fatura, Livro Papéis que coisas concretas assumem: Aluno, Professor, Piloto; Eventos: Curso, Aula, Acidente; Tipos de dados: Data, Intervalo de Tempo, Número Complexo, Vetor; http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 13 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes Decomposição orientada por objetos : começa por identificar os tipos de objetos (classes) presentes em um sistema; contrapor com decomposição funcional ou algorítmica; tipos de objetos são mais estáveis do que as funções, logo a decomposição orientada por objetos leva a arquiteturas mais estáveis; http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 14 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (identificação das classes) Nome da Classe Atributos Métodos Identificação das classes: A especificação do problema refere-se normalmente a objetos concretos, mas deve-se abstrair a realidade e achar descrições comuns a vários objetos semelhantes. Normalmente, começa-se por sublinhar os substantivos. Escolher cuidadosamente os nomes. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 15 D ia g ra m a s U M L Diagrama de Classes (UML) Habitualmente escreve-se o nome da classe no singular (nome de uma instância), com a 1ª letra em maiúscula; Para se precisar o significado pretendido para uma classe, deve-se explicar o que é (e não é ...) uma instância da classe; Exemplo: “Um aluno é uma pessoa que está inscrita em um curso ministrado em uma escola. Uma pessoa que esteve no passado inscrita em um curso, mas não está presentemente inscrita em nenhum curso, não é umaluno.”; Em geral, o nome da classe não é suficiente para se compreender o significado da classe. Diagrama de classes (identificação das classes) http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 16 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (Atributos e Métodos) Nome da Classe Atributos Métodos Atributos: Valores que caracterizam os objetos da classe. Têm um tipo: inteiro, booleano, real, enumerado... Métodos: Descrevem o comportamento da classe e serviços disponibilizados pela classe http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 17 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (Atributos e Métodos) Estado de um objeto: valores de atributos e por ligações que tem com outros objetos; Todos os objetos gerados a partir de uma classe são caracterizados pelos mesmos atributos (ou variáveis de instância); o mesmo atributo pode ter valores diferentes de objeto para objeto; Atributos são definidos ao nível da classe, enquanto que os valores dos atributos são definidos ao nível do objeto; Exemplos: uma pessoa (classe) tem os atributos nome, data de nascimento e peso; João (objeto) é uma pessoa com nome “João Silva”, dt. de nasc. “18/3/1973” e peso “68 Kg”. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 18 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (Atributos e Métodos) Atributos são listados em um compartimento de atributos (opcional) a seguir ao compartimento com o nome da classe; Uma classe não deve ter 2 atributos com o mesmo nome; Os nomes dos tipos não estão pré-definidos em UML, podendo-se usar os da linguagem de implementação. Pessoa nome: string data de nascimento: date peso: real = 75 kg compartimento de atributos valor inicial por omissão classe tipo de dados nome do atributo http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 19 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (Operações) Comportamento invocável de objetos é modelado por operações; uma operação é algo que se pode pedir para fazer a um objeto de uma classe; Objetos da mesma classe têm as mesmas operações; Operações são definidas ao nível da classe, enquanto que a invocação de uma operação é definida ao nível do objeto; Princípio do encapsulamento: acesso e alteração do estado interno do objeto (valores de atributos e ligações) controlado por operações; Nas classes que representam objetos do mundo real é mais comum definir responsabilidades em vez de operações. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 20 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (Operações) Pessoa nome: string morada: string setMorada(novaMorada:string): bool compartimento de operações http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 21 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (Operações) Atributos e operações estáticos ( de instância) Atributo estático: tem um único valor para todas as instâncias (objetos) da classe valor está definido ao nível da classe e não ao nível das instâncias Operação estática: não é invocada para um objeto específico da classe Notação: nome sublinhado Correspondem a membros estáticos (static) em C++, C# e Java http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 22 D ia g ra m a s U M L Diagrama de Classes (UML) Fatura número: Long data: Date valor: Real últimoNumero: Long = 0 criar(data:Date, valor:Real) destruir() valorTotal(): Real retorna a soma dos valores de todas as faturas cria nova fatura com a data e valor especificados, e um nº seqüêncial atribuído automaticamente com base em último nº Diagrama de classes (Operações) http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 23 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (Operações) Visibilidade de atributos e operações Visibilidade: + (public) : visível por todos - (private) : visível só por operações da própria classe # (protected): visível por operações da própria classe e descendentes (subclasses) http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 24 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (Operações) Visibilidade de atributos e operações Princípio do encapsulamento: esconder todos os detalhes de implementação que não interessam aos clientes (utilizadores) da classe Possibilita alterar representação do estado sem afetar clientes Possibilita validar alterações de estado http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 25 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (Operações) Visibilidade de atributos e operações Toolbar # currentSelection: Tool # toolCount: Integer + getTool(i: Integer): Tool + addTool(t: Tool) + removeTool(i: Integer) - compact() usada internamente por outras operações http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 26 D ia g ra m a s U M L Diagrama de Classes (UML) Relações entre classes: associação, agregação e composição http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 27 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (relacionamento) Existem 3 perspectivas que podem ser utilizadas quando for projetar diagramas de classes ou, qualquer modelo. Conceitual: representa os conceitos do domínio que está sendo estudado, sendo estes relacionados às classes que irão executá- los. Um modelo conceitual deve ser projetado sem se preocupar com o software a ser implementá-lo (linguagem utilizada). Especificação: análise das interfaces do software não de sua implementação. O desenvolvimento OO põe muita ênfase na diferença entre interface e implementação. Implementação: Nesta perspectiva são criadas as classes, sendo esta a mais utilizada. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 28 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (relacionamento) O relacionamento e a comunicação entre as classes definem responsabilidades entre estas classes, são 3 os tipos de relacionamentos: Associações : Agregação e composição Generalização (herança) Dependências http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 29 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (relacionamento) http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 30 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (relacionamento) Associação : São relacionamentos estruturais entre instâncias e especificam que objetos de uma classe estão ligados a objetos de outras classes. Tipos de associações: uniária, binária, ternárias, etc. A associação pode existir entre classes ou entre objetos. Por exemplo: Uma associação entre a classe Professor e a classe disciplina (um professor ministra uma disciplina) significa que uma instância de Professor (um professor específico) vai ter uma associação com uma instância de Disciplina. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 31 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (relacionamento) Dependência - São relacionamentos de utilização no qual uma mudança na especificação de um elemento pode alterar a especificação do elemento dependente. A dependência entre classes indica que os objetos de uma classe usam serviços dos objetos de outra classe Generalização (herança : simples ou composta) - Relacionamento entre um elemento mais geral e um mais específico. Onde o elemento mais específico herdaas propriedades e métodos do elemento mais geral. Como a relação de dependência, ela existe só entre as classes. Um objeto particular não é um caso geral de um outro objeto, só conceitos (classes no modelo a objetos) são generalização de outros conceitos. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 32 D ia g ra m a s U M L Diagrama de Classes (UML) Diagrama de classes (relacionamento) Agregação Regular - tipo de associação ( é parte de , todo/parte) onde o objeto parte é um atributo do todo; onde os objetos partes somente são criados se o todo ao qual estão agregados seja criado. Pedidos é composto por itens de pedidos. Composição - Relacionamento entre um elemento ( o todo) e outros elementos (as partes) onde as parte só podem pertencer ao todo e são criadas e destruídas com ele. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 33 D ia g ra m a s U M L Diagrama de Classes (UML) Uma associação é uma relação entre objetos das classes participantes (um objeto de cada classe em cada ligação); Uma associação não gera novos objetos; Esta relação possibilita especificar que objetos de uma dada classe se relacionam com objetos de outra classe. As associações podem ter um nome e uma seta associada, indicando a direção em que o nome deve ser lido. Participante-1 Participante-2 Nome da associação papel-1 papel-2 Diagrama de classes (Associações binárias) http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 34 D ia g ra m a s U M L Diagrama de Classes (UML) Matematicamente, uma associação binária é uma relação binária, i.e., um subconjunto do produto cartesiano das extensões das classes participantes Assim como um objeto é uma instância de uma classe, uma ligação é uma instância de uma associação Pode haver mais do que uma associação (com nomes diferentes) entre o mesmo par de classes Papéis nos extremos da associação podem ter indicação de visibilidade (pública, privada, etc.) Diagrama de classes (Associações binárias) http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 35 D ia g ra m a s U M L Diagrama de Classes (UML) Muitos-para-Muitos 1-para-1 Muitos-para-1 Curso Aluno Curso Curso Plano de Curso (sem restrições) * 1 1 1 * * Professor Multiplicidade de associações binárias http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 36 D ia g ra m a s U M L Diagrama de Classes (UML) Notação para Multiplicidade Multiplicidade Significado 0...1 No mínimo zero (nenhum) e no máximo um. Indica que os objetos das classes associadas não precisam obrigatoriamente estar relacionadas, mas se houver relacionamento indica que apenas uma instância da classe se relaciona com as instâncias da outra classe. 1...1 Um e somente um. Indica que apenas um objeto da classe se relaciona com os objetos da outra classe 0...* No mínimo nenhum e no máximo muitos. Indica que pode ou não haver instâncias da classe participando do relacionamento. * Muitos. Indica que muitos objetos da classe estão envolvidos no relacionamento. 1...* No mínimo 1 e no máximo muitos. Indica que há pelo menos um objeto envolvido no relacionamento, podendo haver muitos envolvidos. 3...5 No mínimo 3 e no máximo 5. Indica que existem pelo menos 3 instâncias envolvidas no relacionamento e que podem ser 4 ou 5, mas não mais que isso. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 37 D ia g ra m a s U M L Diagrama de Classes (UML) Pode-se associar uma classe com ela própria (mesmo em papéis diferentes) Pessoa pai filho 0..1 * filho mãe 0..1 * Associação reflexiva http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 38 D ia g ra m a s U M L Diagrama de Classes (UML) A indicação do nome é opcional em uma associação entre duas classes. Porém, ela pode auxiliar no entendimento do relacionamento entre as classes. O nome é indicado no meio da linha que une as classes participantes do relacionamento. Pode-se indicar o sentido em que se lê o nome da associação, ou seja quem realiza a ação. Empresa Pessoa Trabalha-para Emprega empregador empregado Nome da associação http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 39 D ia g ra m a s U M L Diagrama de Classes (UML) As associações são classificadas quanto à navegabilidade em: Bidirecionais (normal) Unidirecionais um objeto da classe 1 tem a responsabilidade de dar o(s) objeto(s) correspondente(s) da classe 2 (nível de especificação) ou um objeto da classe 1 tem apontador(es) para o(s) objeto(s) correspondente(s) da classe 2 (nível de implementação) Class-1 Class-2 Class-1 Class-2 Associações unidirecionais http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 40 D ia g ra m a s U M L Diagrama de Classes (UML) A associação pode ser suficientemente complexa para ela própria ser traduzida por uma classe (Classe Associativa). O papel é parte da associação, não da classe (uma classe pode desempenhar papeis diferentes em associações diferentes). Class-1 Class-2 Association Name link attribute ... link operation ... Association Name Classes associativas http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 41 D ia g ra m a s U M L Diagrama de Classes (UML) Reúne as propriedades de associação e classe o nome pode ser colocado na associação ou na classe o nome também pode ser colocado nos dois itens não é possível repetir combinações de objetos das classes participantes na associação Classes associativas http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 42 D ia g ra m a s U M L Diagrama de Classes (UML) Notação Multiplicidade a cada par de objetos das classes restantes (1 e 2), correspondem 0 ou 1 objetos da classe 3 Class-1 Class-2 Association Name role-1 role-2 Class-3 role-3 Class-1 Class-2 Class-3 0..1 Associações Ternárias ou n-árias http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 43 D ia g ra m a s U M L Diagrama de Classes (UML) Associações Ternárias ou n-árias Professor Turma SalasDeAula Leciona Possui Utiliza 1...* 1...* 1...* http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 44 D ia g ra m a s U M L Diagrama de Classes (UML) Pertence a Uma propriedade para designar um objeto de uma classe presente no modelo, deve ser modelada como uma associação e não como um atributo; Exemplo: País Cidade nome: string capital: string capital: Cidade 1 1 nome: string 0..1 * capital Atributos versus Associações http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 45 D ia g ra m a s U M L Diagrama de Classes (UML) Qualificador: lista de um ou mais atributos de uma associação utilizados para navegar de A para B "Chave de acesso" a B (acesso a um objeto ou conjunto de objetos) a partir de um objeto de A qualificador Classe A Classe B para cada par Clube + nº de sócio Associação 0..1 nº de sócio Clube Pessoa * nome morada uma Pessoa pode ser sócia de vários clubes Associações classificadas http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 46 D ia g ra m a s U M L Diagrama de Classes (UML) Agregação É um tipo especial de associação. Nesta associação tenta-se demonstrar que as informações de um objeto (chamado objeto-todo) precisam ser complementadas pelas informações contidas em um ou mais objetos de outra classe (chamados objeto-parte). O símbolo de agregação difere do de associação por conter um losango na extremidade da classe que contém os objetos-todo. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 47 D ia g ra m a s U M L Diagrama de Classes (UML) Representa uma relação mais forte que umaassociação Palavras-chave utilizadas para identificar uma agregação: “consiste em...” “contém...” “é parte de...” Agregação http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 48 D ia g ra m a s U M L Diagrama de Classes (UML) Associação com o significado contém (é constituído por) / faz parte de (part of) Relação de inclusão nas instâncias das classes Hierarquias de objetos Exemplo: Equipe Jogador * 0..1 Uma equipe contém 0 ou mais jogadores Um jogador faz parte de uma equipe (num dado momento), mas também pode estar desempregado Agregação http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 49 D ia g ra m a s U M L Diagrama de Classes (UML) Constitui-se numa variação da associação de agregação. A composição tenta representar um vínculo mais forte entre os ojetos-todo e os objetos-parte, procurando demonstrar que os objetos-parte têm de pertencer exclusivamente a um único objeto- todo com que se relacionam. Em uma composição, um mesmo objeto-parte não pode associar-se a mais de um objeto-todo. Veja o exemplo a seguir. Composição http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 50 D ia g ra m a s U M L Diagrama de Classes (UML) Aplicável quando: Existe uma dependência muito forte entre as partes participantes; Cada parte só pode fazer parte de um todo (i.e., a multiplicidade do lado do todo não excede 1); O topo e as partes têm tempo de vida coincidente, ou, pelo menos, as partes nascem e morrem dentro de um todo; A eliminação do todo propaga-se para as partes, em cascata; Notação: losango cheio ( ) ou notação encaixada Membros-objeto em C++, Java Composição http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 51 D ia g ra m a s U M L Diagrama de Classes (UML) Window Slider Header Panel scrollbar 2 1 title 1 1 1 1 body Composição http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 52 D ia g ra m a s U M L Diagrama de Classes (UML) Composição RevistaCientifica -isbn: long -titulo: String -periodicidade: int +registrar() +consultar(isbn: long):int Publica 1...* Edicao -numEdicao: int -volEdicao: int -dataEdicao: Date -Tiragem: long +registrar():int +consultar(numEdicao:int, volEdicao:int) Artigo -titulo: String +registrar() +consultar() Contém 6...10 http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 53 D ia g ra m a s U M L Diagrama de Classes (UML) Relações entre classes: generalização http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 54 D ia g ra m a s U M L Diagrama de Classes (UML) Especialização / Generalização É um tipo especial de relacionamento cujo objetivo é identificar classes-mãe, chamadas gerais e classes-filhas, chamadas especializadas. Esse tipo de relacionamento possibilita também demonstrar a ocorrência de métodos polimórficos nas classes especializadas do sistema. A especialização/generalização ocorre quando existem duas ou mais classes com características muito semelhantes; assim para evitar ter que declarar atributos e/ou métodos idênticos e como uma forma de reaproveitar código, cria-se uma classe geral onde são declarados os atributos e métodos comuns a todas as classes envolvidas no processo e então se declaram classes especializadas ligadas à classe geral, que herdam todas as suas características, podendo possuir atributos e métodos próprios. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 55 D ia g ra m a s U M L Diagrama de Classes (UML) Relaçãosemântica“isa”(“éum”/“éuma”):um aluno é uma pessoa Relação de inclusão nas extensões das classes: Pessoa Aluno generalização especialização super-classe sub-classe Generalização http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 56 D ia g ra m a s U M L Diagrama de Classes (UML) UoD super-classe sub-classe x x x x x objecto extensão (sub-classe) extensão (super-classe) Generalização Relação de herança nas propriedades: A sub-classe herda as propriedades (atributos, operações e relações) da super-classe, podendo acrescentar outras operações e atributos. http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 57 D ia g ra m a s U M L Diagrama de Classes (UML) ContaComum #numeroConta: long #saldo: double #dataAbertura: Date #tipo: int #dataEncerramento: Date #situacao: boolean #senha: int +abrirConta(saldo:double,tipo:int,senha:int):long +encerrarConta():int +sacar(valor:double):int +depositar(numeroConta:long,valor:double):int +verSaldo():double +consultar(numeroConta:long):int +validarSenha(senha:int):int ContaEspecial -limite: double +abrirConta(saldo:double, senha:int, limite:double):long +sacar(valor:double):int +calcularJuros(juros:double):int ContaPoupanca +verRendimento(data:Date, juros:double):int Generalização http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 58 D ia g ra m a s U M L Diagrama de Classes (UML) Substitutabilidade: Onde se espera que um objeto da super-classe pode passar um objeto de uma subclasse; Herança de interface: A subclasse herda as assinaturas (e significados) das operações da super-classe; As três facetas da generalização http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 59 D ia g ra m a s U M L Diagrama de Classes (UML) Herança ou overriding de implementação: a subclasse pode herdar as implementações das operações da super-classe, mas também pode ter novas implementações de algumas dessas operações quando em UML se repete numa subclasse a assinatura de uma operação da super-classe, quer dizer que tem uma nova implementação na subclasse As três facetas da generalização http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 60 D ia g ra m a s U M L Diagrama de Classes (UML) Em geral, pode-se ter uma hierarquia de classes relacionadas por herança / generalização em cada classe da hierarquia colocam-se as propriedades que são comuns a todas as suas subclasses evita-se redundância, promove-se reutilização! Hierarquia de classes http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 61 D ia g ra m a s U M L Diagrama de Classes (UML) Hierarquia de classes http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 62 D ia g ra m a s U M L Diagrama de Classes (UML) Aluno Professor Pessoa Aluno Professor Pessoa Notações alternativas para hierarquia de classes http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 63 D ia g ra m a s U M L Diagrama de Classes (UML) ItemCarrinho CarrinhoDeCompras Este relacionamento não costuma ser encontrado com freqüência no diagrama de classes, mas sua função é identificar certo grau de dependência de uma classe em relação à outra, isto é, sempre que ocorrer uma mudança na classe da qual uma outra classe depende, esta deverá também sofrer uma mudança. O relacionamento de dependência é representado por uma seta tracejada entre as classes, apontando da classe dependente para a classe da qual depende. Dependência http://www3.unip.br/ 19/03/10 vladimir.professor@gmail.com 64 D ia g ra m a s U M L Diagrama de Classes (UML) FIM http://www3.unip.br/
Compartilhar