Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento...
Transcript of Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento...
![Page 1: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/1.jpg)
Marcelo Santos Daibert 1
Persistência em Software Orientado a Objetos:
Soluções de MapeamentoObjeto-Relacional
Marcelo Santos Daibert
Orientador: Marco Antônio Pereira AraújoCo-Orientadora: Alessandreia Marta de Oliveira Julio
![Page 2: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/2.jpg)
Marcelo Santos Daibert 2
Agenda
• Motivação• Metodologia• Contextualização• Frameworks de Persistência
– DePO– Instant Objects– TiOPF
• Estudo de Caso: Acadêmico OO• Resultados• Considerações Finais
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 3: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/3.jpg)
Marcelo Santos Daibert 3
Motivação
• Crescente utilização do paradigma orientado a objetos no desenvolvimento de software
• As estratégias de armazenamento orientadas a objetos não são maduras o suficiente
• Reduzir o gap entre o paradigma de desenvolvimento orientado a objetos e o modelo relacional de armazenamento de dados
• A busca por soluções opensource eficazes e eficientes para persistência de objetos em base de dados relacional
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 4: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/4.jpg)
Marcelo Santos Daibert 4
Motivação
• Projeto de Iniciação Científica– Estratégias de Persistência em Software Orientado a
Objetos
– Estudar as diversas estratégias de persistência• Mapeamento Objeto-Relacional• Banco de Dados OO• Banco de Dados OR
– Criar uma camada de persistência própria para o ambiente Delphi
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 5: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/5.jpg)
Marcelo Santos Daibert 5
Metodologia
• Estudo exploratório de persistência de objetos e camadas de persistência
• Estudo comparativo entre as estratégias opensource disponíveis para o ambiente Delphi
• Definição e implementação de uma aplicação utilizando um framework de persistência– Utilização de padrões de projeto (Design Patterns)– Utilização de ferramenta de versionamento (SVN)– Utilização de ferramenta de BugTracking (NSN
Projetc)
• Divulgação dos resultados
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 6: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/6.jpg)
Marcelo Santos Daibert 6
Metodologia
![Page 7: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/7.jpg)
Marcelo Santos Daibert 7
Metodologia
• Estudo exploratório de persistência de objetos e camadas de persistência
• Estudo comparativo entre as estratégias opensource disponíveis para o ambiente Delphi
• Definição e implementação de uma aplicação utilizando um framework de persistência– Utilização de padrões de projeto (Design Patterns)– Utilização de ferramenta de versionamento (SVN)– Utilização de ferramenta de BugTracking (NSN
Projetc)
• Divulgação dos resultados
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 8: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/8.jpg)
Marcelo Santos Daibert 8
![Page 9: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/9.jpg)
Marcelo Santos Daibert 9
Metodologia
• Estudo exploratório de persistência de objetos e camadas de persistência
• Estudo comparativo entre as estratégias opensource disponíveis para o ambiente Delphi
• Definição e implementação de uma aplicação utilizando um framework de persistência– Utilização de padrões de projeto (Design Patterns)– Utilização de ferramenta de versionamento (SVN)– Utilização de ferramenta de BugTracking (NSN
Projetc)
• Divulgação dos resultados
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 10: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/10.jpg)
Marcelo Santos Daibert 10
Contextualização
• POO – Programação Orientada a Objetos• Paradigma OO difere substancialmente do
Paradigma Relacional
Classes
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
Tabelas#
![Page 11: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/11.jpg)
Marcelo Santos Daibert 11
Contextualização
• Mapeamento Objeto Relacional
– Escolha de um OID (Object Identification)– Mapear atributos para colunas– Mapear classes para tabelas
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
Classes
Tabelas
![Page 12: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/12.jpg)
Marcelo Santos Daibert 12
Contextualização
– Mapear Herança
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
Uma tabela por hierarquia
Uma Tabela porClasse Concreta
Uma Tabela porClasse
![Page 13: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/13.jpg)
Marcelo Santos Daibert 13
Contextualização
– Mapear Associação 1:1
– Mapear Associação 1:n
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 14: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/14.jpg)
Marcelo Santos Daibert 14
Contextualização
– Mapear Associação n:n
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 15: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/15.jpg)
Marcelo Santos Daibert 15
Contextualização
• Camadas de Persistência
– Camada de Persistência
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 16: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/16.jpg)
Marcelo Santos Daibert 16
Contextualização
• Camadas de Persistência
– Camada de Persistência
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
Classes de Domínio
SQL
SGBDRCamada
dePersistência
Camada de Persistência
![Page 17: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/17.jpg)
Marcelo Santos Daibert 17
Frameworks de Persistência
• Estrutura complexa e genérica responsável pela persistência e manipulação dos objetos.
– DePO (Delphi Persistent Objects)– IO (Instant Objects)– TiOPF (TechInside Object Persistent Framework)
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF
![Page 18: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/18.jpg)
Marcelo Santos Daibert 18
Frameworks de Persistência
• DePO
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF
![Page 19: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/19.jpg)
Marcelo Santos Daibert 19
Frameworks de Persistência
– Manipulação de Objetos• Persistir / Criar
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF
var Aluno: TAluno;begin Aluno:= TAluno.Create(dpoDBXMechanism); Aluno.Codigo:= '1'; Aluno.Nome:= 'José da Silva'; Aluno.Matricula:= '2002102013'; Aluno.Save;end;
![Page 20: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/20.jpg)
Marcelo Santos Daibert 20
Frameworks de Persistência
– Manipulação de Objetos• Recuperar
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF
var Aluno: TAluno;begin Aluno:= TAluno.Create(dpoDBXMechanism); Aluno.Codigo:= '1'; if not Aluno.Retrieve then begin MessageDlg('Aluno não existe', mtWarning, [mbOK], 0); end;end;
![Page 21: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/21.jpg)
Marcelo Santos Daibert 21
Frameworks de Persistência
– Manipulação de Objetos• Atualizar
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF
var Aluno: TAluno;begin Aluno:= TAluno.Create(dpoDBXMechanism); Aluno.Codigo:= '1'; if Aluno.Retrieve then begin Aluno.Nome:= 'Joaquim Souza'; Aluno.Save; end;end;
![Page 22: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/22.jpg)
Marcelo Santos Daibert 22
Frameworks de Persistência
– Manipulação de Objetos• Excluir
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF
var Aluno: TAluno;begin Aluno:= TAluno.Create(dpoDBXMechanism); Aluno.Codigo:= '1'; if Aluno.Retrieve then begin Aluno.Delete; Aluno.Save; end;end;
![Page 23: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/23.jpg)
Marcelo Santos Daibert 23
Frameworks de Persistência
• Instant Objects
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF
![Page 24: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/24.jpg)
Marcelo Santos Daibert 24
Frameworks de Persistência
– Model Explorer
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF
![Page 25: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/25.jpg)
Marcelo Santos Daibert 25
![Page 26: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/26.jpg)
Marcelo Santos Daibert 26
Frameworks de Persistência
– Manipulação de Objetos• Persistir / Criar
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF
var objAluno : TAluno;begin objAluno:=TAluno.Create(InstantDBXConnector); objAluno.Nome := 'José da Silva'; objAluno.Matricula := 2002102013; objAluno.Store();end;
![Page 27: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/27.jpg)
Marcelo Santos Daibert 27
Frameworks de Persistência
– Manipulação de Objetos• Recuperar
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF
var objAluno : TAluno;begin try objAluno:=TAluno.Retrieve('ID',false,false, InstantDBXConnector); except MessageDlg('Aluno não Existe', mtWarning, [mbOK], 0); end;end;
![Page 28: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/28.jpg)
Marcelo Santos Daibert 28
Frameworks de Persistência
– Manipulação de Objetos• Atualizar
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF
var objAluno : TAluno;begin try objAluno:=TAluno.Retrieve('ID',false,false, InstantDBXConnector); objAluno.Nome := 'Joaquim Souza'; objAluno.Matricula := 2003201245; objAluno.Store(); except MessageDlg('Aluno não Existe', mtWarning, [mbOK], 0); end;end;
![Page 29: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/29.jpg)
Marcelo Santos Daibert 29
Frameworks de Persistência
– Manipulação de Objetos• Excluir
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF
var objAluno : TAluno;begin try objAluno:=TAluno.Retrieve('ID',false,false, InstantDBXConnector); objAluno.Dispose(); except MessageDlg('Aluno não Existe', mtWarning, [mbOK], 0); end;end;
![Page 30: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/30.jpg)
Marcelo Santos Daibert 30
Frameworks de Persistência
• TiOPF– Componentes Data-aware
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão DePO IO TiOPF
![Page 31: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/31.jpg)
Marcelo Santos Daibert 31
Estudo de Caso: Acadêmico
• Sistema de Controle Acadêmico– Reengenharia (Estruturado -> Orientado a Objetos)– Utilização de Padrões de Projeto
• Persistência de Objetos– Utilização do framework de persistência objeto-
relacional DePO (Delphi Persistent Objetcs)
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 32: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/32.jpg)
Marcelo Santos Daibert 32
Estudo de Caso: Acadêmico
Demo
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 33: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/33.jpg)
Marcelo Santos Daibert 33
Resultados
• Artigo “Persistência de Objetos no Delphi: Introdução ao DePO(Delphi Persistent Objects)” aceito na revista ClubeDelphi.
• Artigo “Persistência em Software Orientado a Objetos: Abordagens Utilizando Frameworks OpenSource” aceito para apresentação oral no III Encontro de Software Livre do Amazonas (ESLAM) em Manaus
• Apresentação do minicurso “Persistência de Objetos em Delphi – Introdução ao Framework DePO(Delphi Persistent Objects)”
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 34: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/34.jpg)
Marcelo Santos Daibert 34
Resultados
• Apresentação oral do workshop “Persistência em Software Orientado a Objetos: Abordagens Utilizando Frameworks OpenSource” no II Festival de Software Livre de Juiz de Fora (FESTSOL)
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 35: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/35.jpg)
Marcelo Santos Daibert 35
Considerações Finais
• Este trabalho buscou apresentar soluções opensource eficazes e eficientes para suprir as necessidades de desenvolvimento orientado a objetos, unindo:– Maturidade,– Confiança,– Desempenho dos bancos de dados relacionais
• Trabalhos futuros:– Estudo dos frameworks proprietários, como o ECO,
ECO II, Bold.
Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão
![Page 36: Marcelo Santos Daibert1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco.](https://reader036.fdocument.pub/reader036/viewer/2022062700/552fc13e497959413d8ddfcf/html5/thumbnails/36.jpg)
Marcelo Santos Daibert 36
Persistência em Software Orientado a Objetos:
Soluções de MapeamentoObjeto-Relacional
Marcelo Santos Daibert
Orientador: Marco Antônio Pereira AraújoCo-Orientadora: Alessandreia Marta de Oliveira Julio