ANÁLISE ORIENTADA A OBJETOS
Out/2010
Professor Mário Dantas
Aula 06 - Agenda
2




Classe e Objeto
Atributo
Métodos
Associações
Dependência
 Simples: multiplicidade, papel, navegabilidade
 Com valor semântico adicional: agregação e composição
 Generalização/especialização


Diagrama de classes
3
Classe: Definição, atributos e
métodos
Classe
4


É uma descrição de um conjunto de objetos que
compartilham os mesmos atributos, operações,
relacionamentos e semântica
É um tipo de (e dá origem a) objeto
Objeto
5

Qualquer elemento identificado no domínio do
negócio que tenha:
 identidade
- qualquer objeto é único e diferenciado
dos demais
 estado - valores dos atributos em determinado
momento
 comportamento – funcionalidade do objeto

É a instância de uma classe.
Atributo
6





Definem os dados da classe
Possuem tipo
Podem ser referências (do tipo de) a outras classes
(delegação)
Possuem visibilidade, muito freqüentemente
privados
O tipo de dado depende da linguagem de
programação que será usada para implementação.
Métodos
7






Expressam o comportamento da classe
Acessam e modificam os atributos da classe
Na implementação, são os métodos (similares a
procedimentos e funções)
Possuem definição de visibilidade (geralmente
públicas)
Podem retornar valor ou não (void)
Podem receber parâmetros ou não (entre
parênteses obrigatórios)
Modelagem dos Métodos
8





Serviços que a classe deve prestar (normalmente
relacionados aos seus atributos)
Parâmetros necessários a prestação dos serviços
Retorno dos serviços prestados pela classe
Saídas geradas pelos serviços da classe (não serão
expressas no diagrama)
Manutenção de classes persistentes (estereótipo
<<entity>>)
Visibilidade
9

Definida por meio de modificadores de acesso:
 Público
(public, +)
 Protegido (protected, #, depende de herança)
 Padrão (ausência de modificador, ~, pacote)
 Privado (private, –)

Serve para encapsular, proteger, organizar o
acesso à membros de uma classe
Representação da UML
10
Representação em Pseudocódigo
11
Implementação em Java
12
Utilização da Classe em Java
13
14
Associação entre Classe
Dependência
15





Associação mais fraca entre classes
Indica utilização
Geralmente acontece quando:
Na passagem de parâmetro a um método
Na criação de um objeto (e/ou referência) dentro
de um método
Dependência
16
Herança
17






Relacionamento entre tipos mais genéricos e tipos
mais específicos;
Classe filha e a classe mãe;
Relacionamento do tipo “é-um”;
Aceita apenas a adição de características na classe
filha; nunca a exclusão;
Possibilita o reuso da estrutura e da funcionalidade;
Necessária para o polimorfismo.
Herança
18
Herança
19
Associação simples
20



Ligação estrutural entre duas classes
Permite navegar de um objeto para outro
Tempos de vida independentes.
Associação simples
21
Associação simples
22
Associação por Agregação
23



Adiciona valor semântico (pouco) a associação,
indicando que uma classe é mais importante na
associação
Associação do tipo “parte-de”
Tempo de vida independente: a existência da
parte não está vinculada ao tempo de vida do
todo, podendo a parte compor outros todos
Associação por Agregação
24
Associação por Composição
25




Conotação semântica mais forte que a agregação
Denota forte interdependência entre as partes
Tempo de vida dependente
A multiplicidade do lado do “todo” não pode ser
maior que 1, pois a parte é exclusiva de um todo
Associação por Composição
26
Propriedades das Associações
27




Nome
Papel
Navegabilidade
Multiplicidade
Nome
28




Demonstra o objetivo da associação
Deve ser uma frase com verbo
É preferível usar papeis ao invés do nome do
relacionamento
Normalmente utilizada no modelo em fase de
análise, quando ainda não existem informações
suficientes para nomear os papéis
Nome
29
Papel
30




Descreve a função da classe na associação
Deve ser um substantivo
Não deve ser usado junto com o nome de
associação
Há situação em que o papel designará o nome de
um atributo, na implementação de uma das classes.
Nesse caso, deve ser colocado no modelo.
Papel
31
Navegabilidade
32


Indica que, a partir de um objeto, é possível chegar
a outro que esteja associado a ele
Pode ser implementado por:
 Referência
a objetos
 Arrays ou coleções de objetos


Quando não especificada, assume-se a dupla
navegabilidade (mais complexa)
Nunca há setas nas duas extremidades da
associação
Navegabilidade
33
Multiplicidade
34



Indica quantos objetos de uma classe podem ser
associados
Pode ser qualquer número de zero até muitos
(indicado por *)
Valores mais comuns:
 0..*
- zero ou qualquer número maior
 1 - obrigatoriamente um e apenas um
 1..* - um (no mínimo) ou qualquer número
Multiplicidade
35
36
Diagrama de Classes
Diagrama de Classes
37





É criado para representar o conjunto das classes e
suas associações
É a base estrutural que dá suporte a todas as
funcionalidades de um sistema
Serve como modelo conceitual e lógico de dados
Constitui mais uma forma, junto com diagramas de
casos de uso, de comunicação bastante útil entre
projetistas e clientes
Identifica os objetos manipulados pelo sistema
Diagrama de Classes
38


Deve ser desenvolvido nas versões necessárias a
compreensão de cada uma das fases do ciclo de
vida do software (análise, projeto, implementação)
É formal e pode servir para geração de código em
uma linguagem de programação
Diagrama de Classes
39

Trata-se de uma representação estática: é
importante para definir que classes prestarão cada
uma dos serviços demandados pelo sistema
40
Estudo de Caso
Construir o diagrama de classes, usando o
diagrama de caso de uso e diagrama de
atividade do sistema: Locadora de Filmes Online
Segunda versão
43
© 2004 by Pearson Education
Download

Aula06- Diagrama de Classes