Vous êtes sur la page 1sur 31

Projeto de Sistema Orientado a

Objeto

Arquitetura

Vrias definies existentes

Conjunto de artefatos utilizados para especificar:

decises estratgicas sobre a estrutura


comportamento do sistema
as colaboraes entre os elementos do sistema
elementos fsicos do sistema

Importncia da Arquitetura

Base arquitetural essencial para o sucesso de


um projeto OO.
Alguns tentam ignorar esa fase (rush to code)
Resultado: problemas posteriores.
A arquitetura desenvolvida de forma interativa ao
longo da fase de Elaborao
Desenvolvimento da arquitetura implica em cdigo
executvel testado - validao da arquitetura

Mecanismos Fundamentais

Linguagem de implementao
Armazenamento / Recuperao
Interface com Usurio
Tratamento de Erros
Comunicao
Nomenclatura de Pacotes, Classes, Mtodos,
Atributos

Mecanismos Fundamentais

Mecanismos fundamentais so decises que


guiaro todo o projeto de um software OO.
Envolve a padronizao de etapas de projeto e
implementao, seguindo um modelo comum
compartilhado por todos os elementos da equipe.
Exemplos:

partida e trmino do sistema


armazenamento / recuperao de objetos
tratamento de excees
nomenclatura de classes, mtodos, atributos
aparncia da interface com o usurio
distribuio

Partida e Trmino do Sistema

Se estas situaes no foram cobertas na anlise,


casos de uso devem ser definidos para especificar o
comportamento do sistema na iniciao e
finalizao.
Cenrios devem ser desenvolvidos para cada caso
de uso - suportando as situaes normais e
anormais.
Durante este processo, novos estados e
comportamentos podem ser descobertos para as
classes existentes, podendo surgir a necessidade
de criao de novas classes para realizar os
cenrios de partida e trmino do sistema.

Persistncia

Necessidade de utilizar objetos criados durante a


execuo de um programa em execuo futuras do
mesmo, ou ainda em outras aplicaes
Um objeto persistente aquele que existe logicamente
alm do escopo do programa que o cria
As linguagens de programao OO lidam apenas com
objetos essencialmente transientes (residentes em
memria).
Armazenamento: salvar um objeto em algum tipo de
armazenamento persistente.
Recuperao: criar um objeto em memria a partir de
uma fonte de armazenamento persistente.

Armazenamento - Alternativas

Solues baseadas em arquivos sequenciais


Solues baseadas em BD orientados a objetos
Solues baseadas em BD relacionais
Solues baseadas em outros BD.

Hoje: relacionais e BDOO so os mais comuns.

Banco de Dados OO

Interface sem igual entre a aplicao OO eo banco


de dados.
Cdigo relativamente pequeno necessrio para
manter objetos persistentes.
Muito prticos com sistemas que precisam tratar
estrutura de dados complexas. (CAD, p.e.).
Performace muito melhor para navegao em
estruturas complexas.

Banco de Dados OO

10

BD Relacionais dispem de maior suporte de


ferramentas para gerncia e manipulao.
Maior quantidade de mo - de - obra com
experincia em bancos relacionais.
Maturidade dos vendedores de bancos O.O.
Existem mais fornecedores do que o mercado
suporta.
O investimento existente na tecnologia relacional
deve ser considerado quando a tecnologia OO for
avaliada.

Solues baseadas em BD Relacional

Forte necessidade de integrao entre linguagens


O.O. e Bancos Relacionais:

11

Grau de amadurecimento de solues com BD


Relacionais
Popularidade de SQL e ferramentas baseadas em SQL
Profissionais em experincia em BD relacionais
Investimento j efetuados em BD relacionais

BD Relacional

12

Os Bancos de Dados Relacionais constituem a


forma de armazenamento mais utilizada e robusta
atualmente.
Entretanto, existe uma diferena semntica natural
entre o modelo OO e o modelo baseado em
tabelas de um BD relacional
Um mecanismo de mapeamento entre os dois
modelos necessrio.

Identidade de um Objeto

13

A identidade de um objeto um conceito fundamental


no mapeamento OO Relacional

Toda instncia tem um ID(nmero com auto


incremento, sem significado semntico)

Mapeamento Atributo X Coluna

14

Um atributo de objeto 0 ou mais colunas no BD


relacional
1 atributo 0 coluna: alguns atributos podem ser
transientes
1 atributo 1 coluna: atributos sem estrutura
Ex: data, string
1 atributo N colunas: atributos com estrutura.
Ex: endereo

Mapeamento OO - Relacional

Normalmente, uma classe mapeada para uma tabela


Cada instncia corresponde a uma linha
Associado
-----------Oid
Nome
Endereo
Admisso

Tabela Associado
Id_associado Nome Endereo - Admisso

15

Mapeamento OO - Relacional

Um relacionamento um-para-um mapeado com uma


chave estrangeira no banco de dados relacional. A
chave dever ser feita atravs dos Ids das tabelas.
Associado
-----------Oid
Nome
Endereo
Admisso

Contrato
---------Oid
NumContrato
DataContrato

Tabela Associado
Id_associado Nome Endereo Admisso

Tabela Contrato
Id_contrato NumContrato DataContrato Id_Associado

16

Mapeamento OO - Relacional

Um relacionamento um-para-muitos mapeado com


uma chave estrangeira no banco de dados relacional.
A chave dever ser feita atravs dos Ids das tabelas.
Associado
-----------Oid
Nome
Endereo
Admisso

0..*

Dependente
---------Oid
Nome
DataNasc

Tabela Associado
Id_associado Nome Endereo Admisso

Tabela Dependente
Id_Dependente Nome DataNasc Id_Associado

17

Mapeamento OO - Relacional

Um relacionamento muitos-para-muitos resolvido,


criando tabelas adicionaisno banco de dados
relacionais.
Associado
------------

1..*

1..*

Hospital
----------

Tabela de Atendimentos Hospitalares


Id_associado id_Hospital

18

Mapeamento de Herana

19

Partio Vertical
1 tabela por classe

Partio Horizontal
1 tabela por classe folha (migrao dos atributos
para subclasses

Tabela nica
1 tabela para toda linha de herana (migrao dos
atributos para a superclasse

Mapeamento de Herana

Equipamento
---------------nome
preco

Bomba
------------------Pressaosuccao
pressaodescarga

20

Dissipador de Calor
-----------------------areasuperficie

Partio Vertical
Equipamento
equipamento_id
nome
preco
tipo

Bomba
equipamento_id
pressaosuccao
pressaodescarga

21

DissipadorCalor
equipamento_id
areasuperficie

Partio Horizontal

Bomba
equipamento_id
nome
preco
pressaosuccao
pressaodescarga

22

DissipadorCalor
equipamento_id
nome
preco
areasuperficie

Tabela nica
Equipamento
equipamento_id
nome
preco
pressaosuccao
Pressaodescarga
Areasuperficie
tipo

23

Mapeamento de Herana

Partio Vertical
evita redundncia
performance (join)

Partio Horizontal
redundncia

Tabela nica
espao perdido

24

Compromissos entre performance, espao em disco e facilidade


de modificao so usados para decidir que mapeamento deve
ser usado para situaes de herana

Tratamento de Excees

Um padro para detectar e tratar excees deve ser


elaborado para facilitar a adoo de uma abordagem
consistente na implementao
Os objetos devem detectar erros que iriam violar sua
integridade. Isto inclui erros:
Que ocorrem dentro de suas operaes
Resultantes de parmetros recebidos de objetos clientes
Resultantes de valores de retorno enviados por objetos
fornecedores

25

Tratamento de Excees

26

O tratamento de escees deve ser cuidadosamente


projetado mais de 30% do cdigo final geralmente
est associado a tratamento de condies de exceo
Linguagens modernas OO oferecem facilidades de
tratamento de exceo
Estes mecanismos permitem que um erro seja tratado
por um objeto diferente daquele que detectou o erro
Isto geralmente apropriado, uma vez que o impacto
geral de um erro no sistema no sempre conhecido
pelo objeto detector

Tratamento de Excees

27

Uma exceo geralmente uma condio de erro ou


outro evento que interrompe o fluxo normal de
execuo de uma aplicao
Quando uma exceo gerada, o controle
transferido do ponto corrente de execuo para uma
parte do cdigo que capturar a exceo
Object Pascal tem uma maneira estruturada de
separar a lgica normal do programa da lgica de
tratamento de excees.

Padronizao de Mensagens

28

As mensagens enviadas para o usurio durante a


interao usurio-sistema devero ser tratadas de
foema padronizada
Ambientes operacionais como o Windows, possuem
caixas de dilogo especficas para tratar as
mensagens usuais de interface com o usurio
Deve-se criar uma classe global responsvel pelas
mensagens usurio-sistema que abstraia o sistema
operacional utilizado.
Eventuais mudanas no estilo de exibio de uma
mensagem podem ser tratadas em apenas um lugar.

Aparncia da Interface com o Usurio

29

A interface do usurio dever ser padronizada para


facilitar a manipulao dos sistema da empresa

A principal interface a ser padronizada a interface de


persistncia de objetos ou interface cadastral

Padres de Distribuio OO

30

Escolher um padro de distribuio uma deciso de


projeto se o seu sistema usa objetos distribudos

Existem 2 padres emergentes para distribuio OO:


CORBA Common Object Request Broker Architecture
DCOM Distributed Component Object Model

Projetos OO

31

Projeto de Classes

Projeto de Atributos e Operaes

Projeto de Herana Polimorfismo

Projeto de Relacionamentos