Professor Mário Dantas A NÁLISE O RIENTADA A O BJETOS Out/2010.

Post on 21-Apr-2015

111 views 0 download

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