22
Copyright © 2006 Qualiti. Todos os direitos reservados. Projetar Classes

Copyright © 2006 Qualiti. Todos os direitos reservados. Projetar Classes

Embed Size (px)

Citation preview

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Projetar Classes

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Arquiteto de Informação

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Projetista deBanco de Dados

Arquiteto de Software

Revisor de projeto

Projetar Casos de Uso

Projetar Subsistemas

Projetar Base de Dados

Analista deSistemas

CheckList bla bla bla blabla

Projetar classes

Prototipar Interface gráfica

Analisar Serviços

ProjetarServiços

decisões doarquiteto

<<subsystem>>

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Objetivos desta atividade

• Detalhar o projeto interno das classes (em termos de atributos, métodos ) bem como rever os relacionamentos entre as classes

• Descrever algumas técnicas para reutilização de código

• Aplicável tanto ao RUP quanto a SOA• Aplicável também a classes ativas (cápsulas)

Análise e Projeto OO com UML e Padrões| 3

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Visão geral dos artefatos

Análise e Projeto OO com UML e Padrões| 4

Analista de Sistemas

Projetar Classes

Classes de Projeto

(atualizadas)

Modelo de Análise e Projeto

Requisitos Não

Funcionais

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Passos para Projetar Classes

1. Projetar classes de projeto2. Definir atributos3. Definir operações4. Refinar relacionamentos

Análise e Projeto OO com UML e Padrões| 5

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Projetando Classes de Fronteira

• Interface com usuário – depende da ferramenta de desenvolvimento a ser

usada (de quanto pode ser automatizado)

• Interface com sistemas externos– usualmente resulta em um subsistema, como

ilustrado anteriormente

Análise e Projeto OO com UML e Padrões| 6

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Projetando Classes de Entidade

• Normalmente dão origem a uma única classe• Requisitos não funcionais (como performance)

podem demandar alterações no projeto

Análise e Projeto OO com UML e Padrões| 7

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Projetando Classes de Controle

• Podem ser eliminadas – se não estiverem desempenhando nenhum papel

adicional à classe fronteira correspondente

• Podem dar origem a uma única classe– se encapsulam algum fluxo de controle relevante

• Podem ser divididas– se o controle encapsulado for muito complexo ou

para atender, por exemplo, requisitos de distribuição

Análise e Projeto OO com UML e Padrões| 8

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Passo 2. Definir atributos

• Identificados a partir das informações que a classe necessita manter e descrição das operações

• Atributos derivados– avaliar questões de desempenho

Análise e Projeto OO com UML e Padrões| 9

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Passo 3. Definir operações• Mapear responsabilidades definidas na análise para

operações que implementem essas responsabilidades

• Aspectos envolvidos– nome, assinatura e descrição da operação– visibilidade

• privada -• protegida #• pública +

– escopo: operação de classe ou de instância– Usando OCL, pré e pós condições

Análise e Projeto OO com UML e Padrões|

10

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Definindo Operações

• Decisões a serem tomadas:– Mecanismo de passagem de parâmetros – quanto menos parâmetros, melhor!– passar objetos como parâmetros– aspectos de implementação (uso de algum

algoritmo específico)

Análise e Projeto OO com UML e Padrões|

11

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Definindo Operações• Classes e relacionamentos adicionais podem ser necessários

para suportar a assinatura

Análise e Projeto OO com UML e Padrões|

12

calcularFrete(destino:Endereco): float

Transporte

Endereco

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Passo 4. Refinar relacionamentos

• Detalhar as associações entre as classes– tipo– navegabilidade– multiplicidade

• Avaliar relacionamentos de generalização

Análise e Projeto OO com UML e Padrões|

13

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Tipo dos relacionamentos

• Dependência• Associação • Agregação• Composição• Generalização

Análise e Projeto OO com UML e Padrões|

14

Menor nível deacoplamento

Maior nível deacoplamento

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Navegabilidade

• Que direções são necessárias?• Analisar diagramas de interação• Priorizar o uso de apenas uma direção

quando:– o uso de uma das direções for infreqüente– o número de instâncias de uma das classes é

pequeno

Análise e Projeto OO com UML e Padrões|

15

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Navegabilidade: exemplo• Que direção priorizar?• Exemplo: dado um fornecedor qualquer, ocorre com

freqüência a busca pelos seus produtos?

Análise e Projeto OO com UML e Padrões|

16

Produto Fornecedor**

?

* *

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Avaliar relacionamentos de generalização

• Devem representar uma relação é-um– o descendente é um objeto do tipo do ancestral– herança comportamental (behavioural

ineritance)• Como reusar código em situações onde se

estaria ferindo essa regra?

Análise e Projeto OO com UML e Padrões|

17

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Avaliar relacionamentos de generalização

Análise e Projeto OO com UML e Padrões|

18

Animal

comer()

Leão

comer()

Tigre

comer() Fila

Lista

inserirInicio (Item)inserirFim (Item)removerInicio()removerFim ()inserir (Item, posicao)

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Factoring: compartilhamento de implementação

• Suporta o reuso de implementação de outra classe

• Não pode ser utilizado se a classe a ser utilizada não puder ser modificada

Análise e Projeto OO com UML e Padrões|

19

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Compartilhamento de implementação: exemplo

Análise e Projeto OO com UML e Padrões|

20

Lista

Fila

inserirFim( Item)removerInicio ()

Lista

inserirInicio (Item)removerFim ()inserir (Item, posicao)

Fila

ContainerSequencial

inserirInicio (Item)inserirFim (Item)removerInicio()removerFim ()inserir (Item, posicao)

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Delegação

• Suporta o reuso de implementação de outra classe

• Pode ser utilizado se a classe a ser utilizada não puder ser modificada

Análise e Projeto OO com UML e Padrões|

21

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Delegação: exemplo

Análise e Projeto OO com UML e Padrões|

22

Lista Lista

Fila

inserir(Item)remover():Item

1 1

Fila

inserirInicio (Item)inserirFim (Item)removerInicio()removerFim ()inserir (Item, posicao)

inserirInicio (Item)inserirFim (Item)removerInicio()removerFim ()inserir (Item, posicao)