Diagrama de Classes de Projeto

Post on 01-Jan-2016

54 views 11 download

description

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 - PowerPoint PPT Presentation

Transcript of Diagrama de Classes de Projeto

UML

Diagrama 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

Notação

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

Multiplicidade (Cardinalidade)

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

Generalização / Especialização

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}

Exemplo de Classe Abstrata

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 ClassesSistema Bancário

Diagrama de Objetos

SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIALFACULDADE 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.

Diagrama de ObjetosSistema Bancário