320 likes | 613 Views
UML Diagrama de Classes de Projeto e Diagrama de Objetos Profª . Marcelo Siedler siedler@gmail.com. Diagrama de Classes de Projeto. Oferecem uma notação gráfica formal para a modelagem de classes e seus relacionamentos
E N D
UMLDiagrama de Classes de Projeto e Diagrama de Objetos Profª. Marcelo Siedlersiedler@gmail.com
Diagrama de Classes de Projeto • Oferecem uma notação gráfica formal para a modelagem de classes e seus relacionamentos • Uma Classe refere-se a descrição de um conjunto de objetos que compartilham os mesmos atributos, operações e relacionamentos
Nome da Classe • O nome de uma classe distingue uma classe de outra classe. • Nome simples • Nome do caminho: o nome da classe é precedido pelo nome do pacote (subsistema) em que a classe existe
Atributo • Características de uma classe • Exemplos: • Idade • - endereço : String • + CPF : inteiro • # nroCorrentistas : Inteiro
Operações / Métodos • Uma operação é um serviço que pode ser requisitado a qualquer objeto da classe, afetando seu estado (afetando valor de seus atributos) • Operações de classes X Operações de Objetos • Operações de objetos: atuam sobre um objeto (instância) • Operações de classes: atuam sobre a classe • Ex: consultar
Visibilidade • Público (+) : o que pode ser visto pelas operações de outras classes • Protegido (#) : o que pode ser visto apenas pelas operações da própria classe e por suas classes herdeiras • Privado (-) : o que pode ser visto apenas pelas operações da própria classe
Estereótipos • Mecanismos de extensão da UML • Podem ser utilizados em diversos diagramas • Graficamente, um estereótipo é representado por um nome entre << >> (dois sinais de menor e dois sinas de maior). • Exemplos: • No diagrama de classes, podem ser utilizados para classificar o comportamento dos métodos, por exemplo <<construtor>>
Relacionamentos entre classes • Os relacionamentos determinam as ligações entre as classes. • Fornecem um caminho para a comunicação entre elas • Principais tipos: • Associação • Agregação e Composição • Generalização
Associação • Uma associação é um relacionamento estrutural que descreve uma ligação (conexão entre as classes ou objetos)
Adornos da Associação • Multiplicidade • Papel • Navegabilidade
Multiplicidade (Cardinalidade) • A multiplicidade (ou cardinalidade) indica a quantidade de ocorrências de um conceito. • Ela é aplicada para atributos, classes e associações
Papel • Sua utilização é opcional
Navegabilidade • Por definição, a navegação entre classes associadas é bidirecional (segmento de reta) • Por conveniência, a navegação pode ser restringida a uma única direção
Tipos de Associação • Agregação • Composição
Agregação • Agregação é um tipo especial de associação • Representa uma relação todo-parte • Tenta demonstrar que as informações de um objeto todo precisam ser complementadas pelas informações de um objeto parte • Quando o todo é eliminado, as partes continuam existindo • É transitiva (Se A faz parte de B, e B faz parte de C, então A faz parte de C) • É não-simétrica(Se A faz parte B, então B não faz parte de A)
Composição • É uma variação da Agregação • Quando uma parte é criada, sua existência deve ser coincidente com o todo. • Quando um todo é eliminado, suas partes também devem ser eliminadas
Generalização • A generalização é o compartilhamento de atributos, operações e relacionamentos entre classes com base em um relacionamento hierárquico (herança). • Superclasses e subclasses; • Subclasses herdam os atributos e métodos da superclasse, permitindo ainda modificações nos mesmos (polimorfismo).
Sem generalização Com generalização
Especialização • Processo inverso ao de generalização • Consiste em: • Definir uma ou mais subclasses a partir de uma classe existente. • Adicionar propriedades e associações específicas de cada nova subclasse. • Associações comuns ficam ligadas à superclasse. • Pode existir mais de um tipo de especialização com base em diferentes características
Classe Associativa • É uma classe derivada de uma associação
Classe Associativa • Transformação de uma Classe Associativa para uma Classe Regular
Classe Concreta / Abstrata • Concreta: pode ter instâncias • Abstrata: não pode ter instâncias • Contém uma ou mais operações abstratas: • Uma operação abstrata possui apenas a assinatura (cabeçalho) mas não possui implementação • A classe abstrata é sempre uma superclasse que não possui instâncias, e só tem sentido se tiver subclasses que implementem as operações abstratas • O nome de uma classe abstrata é escrito em itálico, ou possui a restrição {abstract}
Interface • Interface é uma “classe abstrata” que não possui atributos e que todas as operações são públicas e abstratas. • Notação:
Herança Múltipla • Muitas linguagens orientadas a objetos não possuem o mecanismo de herança múltipla.
Diagrama de Objetos SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS
Diagrama de Objetos • Da mesma forma que um objeto é uma instância de uma classe, um diagrama de objetos é uma instância de um diagrama de classes. • Um diagrama de objetos apresenta uma determinada configuração de um diagrama de classes, sendo interessante para realizar discussões sobre o modelo de objetos.