/
01_introducao.tex
15 lines (8 loc) · 3.77 KB
/
01_introducao.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
% Contexto %
Vivemos em uma era onde os sistemas informatizados deixaram de ser vistos como meras ferramentas de automatização de tarefas. Onde o \textit{software} desempenha papel fundamental no planejamento estratégico e desempenho de atividades nas grandes empresas. A proliferação de \textbf{Sistemas de Informação Empresarial} (\textit{Enterprise Information Systems} - EIS) se mostra cada vez mais notória. Estes sistemas são caracterizados por sua alta complexidade e por trabalharem com gerenciamento constante de dados \cite{expertCSharpObjects}.
As \textbf{Linguagens Orientadas a Objetos} se tornaram um padrão consolidado no desenvolvimento destes sistemas. Devido à sua capacidade de abstrair representações de entidades do mundo real como componentes de software, estas linguagens permitem aos arquitetos e engenheiros de \textit{software} terem uma visão de alto nível durante o planejamento e especificação do sistema \cite{oopSurvey}.
Os \textbf{Sistemas Gerenciadores de Bancos de Dados Relacionais} (\textbf{SGBDs}) são o meio consolidado para armazenamento de dados estruturados. Eles permitem o armazenamento de informações de tal forma que estas podem ser manipuladas através de comandos em linguagem \textbf{\textit{``Structured Query Language''}} ou \textbf{SQL}. Esta linguagem permite executar operações de inserção, remoção, edição e geração de consultas de alta complexidade nos dados armazenados \cite{ormPaper}.
Apesar de as linguagens orientadas a objetos serem utilizadas em conjunto com os SGBDs no desenvolvimento de sistemas, a forma de representação dos dados nos dois contextos é diferente. No contexto orientado a objetos, as informações são vistas sobre uma perspectiva comportamental, onde os componentes do \textit{software} são importantes não somente pelos dados que eles contém, mas pela habilidade de se comunicar com outros componentes para compartilhar estas informações e executar ações sobre elas. Já no contexto dos SGBDs, as informações são vistas sobre uma perspectiva estrutural, onde o objetivo principal das entidades é armazenar os dados e representar suas relações da forma mais otimizada possível. Não existe a preocupação em se definir o comportamento das informações. Devido a essa diferença de representação de dados entre os dois contextos, existe a necessidade de conversão ou mapeamento durante a transição entre eles. A geração de código para esse mapeamento se mostra uma tarefa repetitiva e propensa a erros.
Com o objetivo de otimizar a utilização das linguagens orientadas a objetos em conjunto com os SGBDs surgiu o conceito de \textbf{Biblioteca de Mapeamento Objeto Relacional} ou \textbf{ORM} (\textit{Object Relational Mapping}). Este tipo de biblioteca tem como objetivo automatizar as tarefas de mapeamento dos dados entre os dois contextos. Sua utilização promove maior produtividade e redução da complexidade envolvida em tarefas de manutenção e modificação do código \cite{ormPaper}.
Neste trabalho é proposto o desenvolvimento de uma biblioteca ORM para a linguagem C++. O \textbf{\textit{framework} Qt} é utilizado como auxílio para comunicação com os SGBDs, e extensão dos tipos nativos da linguagem C++.
Os demais capítulos deste trabalho encontram-se organizados da seguinte maneira: O Capítulo 2 apresenta os conceitos básicos para a correta compreensão do trabalho. O Capítulo 3 apresenta os trabalhos correlatos. O Capítulo 4 apresenta as características da biblioteca desenvolvida no trabalho, bem como a metodologia e as técnicas utilizadas no seu desenvolvimento. O Capítulo 5 apresenta a metodologia de testes utilizada para validação e comparação da biblioteca desenvolvida com duas bibliotecas existentes no mercado. E, por fim, o Capítulo 6 apresenta a conclusão do trabalho, onde são descritos os resultados encontrados e sugestões de trabalhos futuros.