Desenvolvimento de Arcabouços de Programação para Auxiliar as

Propaganda
Desenvolvimento de Arcabouços de Programação para Auxiliar
as Práticas de Fundamentos de banco de Dados
Maria da Conceição do Nascimento Arruda, Klairton de Lima Brito, Camilo
Almendra
Universidade Federal do Ceará
Campus Quixadá
[email protected], [email protected], [email protected]
Resumo: Este artigo apresenta o trabalho elaborado pela monitoria de fundamentos de
Banco de dados. Parte do trabalho da monitoria resume-se ao desenvolvimento de
arcabouços de programação para incrementar as práticas da disciplina, no sentido de
fornecer exemplos completos abrangendo não só o conteúdo da disciplina como
também, fazendo a conexão com conteúdos de outras disciplinas, como Orientação a
objeto e Programação Web.
1. Introdução
O ensino de banco de dados inicia pelos fundamentos da modelagem entidade-relacionamento,
onde o objetivo é desenhar estruturalmente um banco de dados a partir de descrições das necessidades que
um sistema deve apresentar. Em seguida, o objetivo é elaborar como essa estrutura de dados será
logicamente organizada em um Sistema Gerenciador de Banco de Dados (SGBD), e como os dados serão
inseridos e atualizados.
Ao utilizar um SGBD no desenvolvimento de um sistema, é necessária a identificação dos
cenários de requisições a serem feitas, tipicamente inserção, remoção, atualização ou listagem de dados.
Ao projetar um sistema, busca-se estabelecer uma interação entre a camada de aplicação (parte do sistema
responsável pelas lógicas e regras de negócio) e o SGBD. Ao longo do tempo, necessitou-se estabelecer
uma forma padronizada de interação que fosse independente do fornecedor do SGBD e da linguagem
usada na implementação da camada de aplicação. Exemplos de bibliotecas que são consideradas padrões
do mercado são JDBC e ADO. NET.
Para que um aluno possa complementar seu ciclo de aprendizado em banco de dados, é necessário
ter um domínio de conhecimentos que abrange desde modelagem entidade-relacionamento até o
conhecimento básico das bibliotecas. A fim de fornecer suporte a esse aprendizado, foram elaborados
arcabouços de sistemas com uso de SGBDs. A criação desses arcabouços objetivou fornecer exemplos de
implementação de sistemas que efetivamente utilizam-se das bibliotecas de acesso, assim como também
servem como laboratórios para a prática, uma vez que são acompanhados de orientações sobre possíveis
extensões a serem feitas no arcabouço.
2. Bibliotecas de acesso
As bibliotecas de acesso geralmente apresentam os mesmo padrões, as vezes pode existir algumas
particularidades que as diferenciam das demais, mas no exemplo abaixo vamos descrever a API
JDBC(uma plataforma colaborativa) e a API ADO(uma plataforma corporativa desenvolvida pela
Microsoft).
2.1 - JDBC
JDBC (Java Database Connectivity) "é um conjunto de interfaces e classes (API) escritas
em Java fazendo o envio de instruções SQL para qualquer banco de dados relacional" [1].
A API JDBC foi criada no intuito de poder estabelecer conexão com os diferentes bancos
de dados relacionais, para isso basta utilizar o driver específico do banco de dados que se deseja
trabalhar. Os drivers ficam responsáveis pela identificação e tratar as particularidades dos bancos
de dados, já API JDBC fica responsável por tratar da conexão com o banco de dados
independentemente do seu tipo.
2.2 - ADO
ADO (ActiveX Data Objects) é um conjunto de objetos para acessar base de dados. O
ADO permite ao desenvolvedor escrever programas que acessam dados sem o conhecimento do
banco de dados que está implementado. Sua responsabilidade é somente pela conexão e somente
aí ele necessita estar ciente de alguma informação do banco de dados que é informada através de
drivers [1].
2.3 - Semelhanças
Como descrito acima podemos notar que ambas as API's de acesso trabalham com o
mesmo intuito que é de estabelecer conexão do banco de dados independentemente do seu tipo,
apesar da implementação de conexão ser feita de maneira diferente e com linguagens diferentes o
objetivo de ambas é o mesmo.
3. Trabalhos correlatos
No trabalho desenvolvido por [2], foram desenvolvidas práticas na disciplina de banco de dados
seguidas através de um roteiro para equilibrar o conteúdo teórico com as atividades práticas e aproximar
os alunos de possíveis problemas que ocorrem durante seu ingresso no mercado de trabalho. Segundo o
questionário aberto aplicado aos alunos, a percepção geral sobre a atividade foi positiva com alguns
relatos de que se não fosse pelo ambiente fornecido pela prática alguns alunos não teriam a chance de
praticar as atividades em outro local. As práticas forneceram um aprendizado ativo e melhoria da
confiança do aluno em experimentar novas tecnologias. A quantidade de alunos que participou do projeto
foi pequena e impossibilitando chegar a uma conclusão definitiva sobre a efetividade das práticas.
Já no trabalho [4], foi desenvolvida uma prática para o ensino de JDBC em um ambiente web
utilizando uma aplicação exemplo onde os alunos inspecionavam o código para visualizar os métodos da
API e então executavam para ver seu funcionamento e assim obtendo mais conhecimento da API e assim
complementar o aprendizado da programação utilizando banco de dados, outra proposta da prática é a
mudança do banco de dados por qualquer outro ODBC(Open Database Connectivity) e verificar que o
JDBC atende ao seu propósito. Com isso as dificuldades dos alunos em compreender a uso de um banco
de dados relacional em um projeto de sistema são sanadas com o auxilio da aplicação exemplo.
E no trabalho [5] propõe utilizar a um projeto baseado em aprendizagem cooperativa para o
ensino de banco de dados baseados em sistemas de produtos comerciais. Divide-se em três etapas, que
necessita dos alunos divididos em grupos onde possam ajudar uns aos outros:
1) A partir disso eles recebem um exemplo completo e funcionando que é analisado pelo grupo.
2) Então eles devem seguir um tutorial que explica passo-a-passo as modificações a serem feitas no
exemplo.
3) Até chegar em atividades mais avançadas que necessitam de mais esforço para serem resolvidos.
Com isso é fornecido a todos um conhecimento do funcionamento básico do sistema, e a partir do
feedback dos aluno foi notado que nos dois primeiros anos da implantação do projeto foi encontrado
algumas dificuldades como necessidade de aperfeiçoamento do material e grande quantidade de alunos
para participar das aulas práticas sem alterar o andamento da disciplina de banco de dados até que foi
implementada uma sugestão feita pelos alunos de desenvolver o projeto fora do horário de aula.
4. Arcabouços
Os arcabouços foram elaborados e disponibilizados no site da monitoria de banco de dados, então
os monitores ficaram disponíveis via internet para retirar dúvidas utilizando o grupo da monitoria. Nas
aulas práticas, os monitores estavam presentes auxiliando os alunos no desenvolvimento e modificação
dos novos módulos para o arcabouço e de outros projetos utilizando os arcabouços como exemplo.
Cada arcabouço busca representar um sistema funcional de uso real no dia a dia. Os arcabouços
são projetados com a finalidade de serem simples e de fácil entendimento, e que também possam ser
utilizado como base para incrementos de funcionalidades feitos pelos próprios alunos. Os arcabouços
foram construídos na linguagem Java, por essa ser uma das mais populares e difundidas atualmente. No
entanto, cada arcabouço visa explorar plataformas diferentes como desenvolvimento para Desktop, Web
ou Dispositivos Móveis, fornecendo assim exemplos para comparação.
Com os arcabouços funcionando os alunos podem inspecionar o código para obter conhecimento
sobre as API's / bibliotecas e visualizarem na prática como elas funcionam, então com os exercícios de
extensão (alteração e criação de novos módulos para o arcabouço) que são estipulados pelo professor os
alunos são instigados a exercitar os seus conhecimentos ao tentarem solucionar os exercícios.
4.1 GameCenter
Esse sistema visa registrar usuários, seus jogos e seus recordes, que foi chamado de
GameCenter. Para isso o sistema foi desenvolvido na linguagem JAVA utilizando a interface
gráfica swing com o banco de dados SqlLite, por ser nativo na maior parte dos sistemas
operacionais facilitando na utilização do arcabouço em diversas plataformas, devido não ser
necessário a instalação de um banco de dados específico. No arcabouço buscou-se ter uma
divisão em três níveis sendo eles camada de persistência, camada de negócio e interface gráfica
seguindo algum padrão para melhoria do código e consequentemente melhor compreensão dos
alunos.
Para o sistema GameCenter estão implementadas as seguintes funcionalidade:
• Inserir um jogo, recorde, usuário.
• Atualizar um jogo, recorde, usuário.
• Remover um jogo, recorde, usuário.
Para esse arcabouço, um exemplo de extensão seria a parte de relatórios, como visualizar o
recorde de todos os usuários e ordenar do maior para o menor recorde.
4.2 CBF – Controle de Times de Futebol
O sistema CBF visa registrar os campeonatos de futebol de várias federações. O
arcabouço foi implementado na linguagem Java utilizando o framework JSP e o banco de dados
MySQL. Para a estrutura do arcabouço utilizou-se o padrão MVC, onde se tem uma divisão do
modelo de negócio, da visão, persistência e do controle facilitando o entendimento de cada parte
do sistema.
Para o sistema CBF estão implementadas as seguintes funcionalidade:
• Inserir clubes, campeonatos, jogadores, posições, telefones, federações, prêmios;
• Atualizar clubes, campeonatos, jogadores, posições, telefones, federações, prêmios;
• Excluir clubes, campeonatos, jogadores, posições, telefones, federações, prêmios;
• Relatórios sobre clubes por federações e sobre jogadores por clubes.
Com isso, pode-se estender o arcabouço introduzindo outras funcionalidades ligadas a parte
de relatórios, por exemplo, qual o jogador que recebeu o maior número de prêmios ou qual o
clube que venceu o maior número de campeonatos.
5. Conclusão e Trabalhos Futuros
A criação dos arcabouços de programação com foco em banco de dados teve por objetivo auxiliar
os alunos a aplicarem os conceitos obtidos em sala de aula desde modelagem relacional até conceitos de
programação aplicada junto ao banco de dados.
Espera-se que com os arcabouços os alunos tenham um exemplo onde possam utilizá-lo como
base e não enfrentarem a dificuldade de começar do zero, e com as atividades de extensão (criação e
modificação de módulos do arcabouço) os alunos consigam completar o ciclo de aprendizado obtido na
prática.
O próprio processo de construção dos arcabouços possibilitou aos envolvidos identificar lacunas
de aprendizado tanto relacionado ao domínio de banco de dados como nas plataformas e linguagem
utilizadas. Espera-se que a disponibilização desses materiais facilite o auto-estudo de outros alunos.
Como trabalhos futuros, serão elaborados experimentos para avaliar a qualidade e eficácia dos
arcabouços. Também serão elaborados novos arcabouços utilizando outras plataformas e/ou linguagens.
6. Referências
[1] WIKIPEDIA. JDBC. Disponível em: http://pt.wikipedia.org/wiki/JDBC. Quixadá, Ceará, Brasil.
Acessado em: 15 de Agosto de 2012.
[2] RALPH, M; DANIEL, N. Using a Practicum Experience in Your Database Course. In:
Journal of Computing Sciences in Colleges - Papers of the Fourteenth Annual CCSC Midwestern
Conference and Papers of the Sixteenth Annual CCSC Rocky Mountain Conference archive. Volume 23
Issue 1, p. 91-96, October 2007.
[3] ELMASRI, R.; NAVATHE, S. B.. Sistemas de Banco de Dados. 4a ed., Pearson-AddisonWesley, 2005.
[4] DIETRICH, S. W; URBAN, S. D; KYRIAKIDES, I. JDBC Demonstration Courseware
Using Servlet and Java Server Pages. In: SIGCSE ‘02 Proceedings of the 33rd SIGCSE technical
symposium on Computer science education. New York, USA: 2002.
[5] URBAN, S. D; DIETRICH, S. W. Integration the Pratical Use of a database Product into
a Theoretical Curriculum. In: SIGCSE '97 Proceedings of the twenty-eighth SIGCSE technical
symposium on Computer science education. New York, USA: 2002.
Download