Persistência em Software OO

Views:
 
     
 

Presentation Description

Defesa Final de Monografia de Graduação: Persistência em Software OO - Soluções de Mapeamento Objeto Relacional. Autor: Marcelo Daibert - http://daibert.net

Comments

Presentation Transcript

Persistência em Software Orientado a Objetos: : 

Marcelo Santos Daibert 1 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco Antônio Pereira Araújo Co-Orientadora: Alessandreia Marta de Oliveira Julio

Agenda : 

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

Motivação : 

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

Motivação : 

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

Metodologia : 

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

Metodologia : 

Marcelo Santos Daibert 6 Metodologia

Metodologia : 

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

Slide 8: 

Marcelo Santos Daibert 8

Metodologia : 

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

Contextualização : 

Marcelo Santos Daibert 10 Contextualização POO – Programação Orientada a Objetos Paradigma OO difere substancialmente do Paradigma Relacional Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Contextualização : 

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

Contextualização : 

Marcelo Santos Daibert 12 Contextualização Mapear Herança Motivação Metodologia Contextualização Frameworks de Persistência Estudo de Caso Resultados Conclusão

Contextualização : 

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

Contextualização : 

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

Contextualização : 

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

Contextualização : 

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 Camada de Persistência

Frameworks de Persistência : 

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

Frameworks de Persistência : 

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

Frameworks de Persistência : 

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;

Frameworks de Persistência : 

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;

Frameworks de Persistência : 

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;

Frameworks de Persistência : 

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;

Frameworks de Persistência : 

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

Frameworks de Persistência : 

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

Slide 25: 

Marcelo Santos Daibert 25

Frameworks de Persistência : 

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;

Frameworks de Persistência : 

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;

Frameworks de Persistência : 

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;

Frameworks de Persistência : 

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;

Frameworks de Persistência : 

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

Estudo de Caso: Acadêmico : 

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

Estudo de Caso: Acadêmico : 

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

Resultados : 

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

Resultados : 

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

Considerações Finais : 

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

Persistência em Software Orientado a Objetos: : 

Marcelo Santos Daibert 36 Persistência em Software Orientado a Objetos: Soluções de Mapeamento Objeto-Relacional Marcelo Santos Daibert Orientador: Marco Antônio Pereira Araújo Co-Orientadora: Alessandreia Marta de Oliveira Julio

authorStream Live Help