Professor Mário Dantas A NÁLISE O RIENTADA A O BJETOS Out/2010.
Transcript of Professor Mário Dantas A NÁLISE O RIENTADA A O BJETOS Out/2010.
Professor Mário Dantas
ANÁLISE ORIENTADA A OBJETOSANÁLISE ORIENTADA A OBJETOSOut/2010
2
Aula 06 - Agenda
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
3Classe: Definição, atributos e métodos
4
Classe
É 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
5
Objeto
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.
6
Atributo
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.
7
Métodos
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)
8
Modelagem dos Métodos
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>>)
9
Visibilidade
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
10
Representação da UML
11
Representação em Pseudocódigo
12
Implementação em Java
13
Utilização da Classe em Java
14 Associação entre Classe
15
Dependência
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
16
Dependência
17
Herança
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.
18
Herança
19
Herança
20
Associação simples
Ligação estrutural entre duas classes Permite navegar de um objeto para
outro Tempos de vida independentes.
21
Associação simples
22
Associação simples
23
Associação por Agregação
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
24
Associação por Agregação
25
Associação por Composição
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
26
Associação por Composição
27
Propriedades das Associações Nome Papel Navegabilidade Multiplicidade
28
Nome
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
29
Nome
30
Papel
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.
31
Papel
32
Navegabilidade
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
33
Navegabilidade
34
Multiplicidade
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
35
Multiplicidade
36 Diagrama de Classes
37
Diagrama de Classes
É 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
38
Diagrama de Classes
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
39
Diagrama de Classes
Trata-se de uma representação estática: é importante para definir que classes prestarão cada uma dos serviços demandados pelo sistema
40
Construir o diagrama de classes, usando o diagrama de caso de uso e diagrama de atividade do sistema: Locadora de Filmes Online
Estudo de Caso
Segunda versão
43
© 2004 by Pearson Education