45
Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Coordenação de Desenvolvimento de Software Para a Internet RELATÓRIO TÉCNICO-CIENTÍFICO PROJETO DE PESQUISA: E-TEACHER – DESENVOLVENDO UMA FERRAMENTA DE INTERAÇÃO ENTRE PROFESSORES E ALUNOS MAURÍCIO LINHARES DE ARAGÃO JUNIOR Matrícula: 10013148 Orientando e Bolsista PIBIC JORGE FERNANDO LUÍS FERNANDES Matrícula: 021013186 Orientando Voluntário THIAGO PEREIRA VIEIRA Matrícula: 022013240 1

Relatório final do projeto de pesquisa e-Teacher

Embed Size (px)

DESCRIPTION

Relatório final do projeto de pesquisa e-Teacher desenvolvido durante a minha graduação em Tecnologia em Sistemas para a Internet.

Citation preview

Page 1: Relatório final do projeto de pesquisa e-Teacher

Centro Federal de Educação Tecnológica da Paraíba

Coordenação de Informática

Coordenação de Desenvolvimento de Software Para a Internet

RELATÓRIO TÉCNICO-CIENTÍFICO

PROJETO DE PESQUISA: E-TEACHER – DESENVOLVENDO UMA

FERRAMENTA DE INTERAÇÃO ENTRE PROFESSORES E ALUNOS

MAURÍCIO LINHARES DE ARAGÃO JUNIOR

Matrícula: 10013148

Orientando e Bolsista PIBIC

JORGE FERNANDO LUÍS FERNANDES

Matrícula: 021013186

Orientando Voluntário

THIAGO PEREIRA VIEIRA

Matrícula: 022013240

Orientando Voluntário

JOÃO PESSOA – PB DEZEMBRO – 2005

1

Page 2: Relatório final do projeto de pesquisa e-Teacher

RELATÓRIO TÉCNICO-CIENTÍFICO

PROJETO DE PESQUISA: E-TEACHER – DESENVOLVENDO UMA

FERRAMENTA DE INTERAÇÃO ENTRE PROFESSORES E ALUNOS

MAURÍCIO LINHARES DE ARAGÃO JUNIOR

Matrícula: 10013148

Orientando e Bolsista PIBIC

JORGE FERNANDO LUÍS FERNANDES

Matrícula: 021013186

Orientando Voluntário

THIAGO PEREIRA VIEIRA

Matrícula: 022013240

Orientando Voluntário

PROFESSOR MESTRE FREDERICO GUEDES PEREIRA

(ORIENTADOR)

JOÃO PESSOA – PB DEZEMBRO – 2005

Sumário

2

Page 3: Relatório final do projeto de pesquisa e-Teacher

Sumário.......................................................................................................................................3

1. Introdução...............................................................................................................................5

2. Fundamentação Teórica..........................................................................................................7

2.1 Como surgiu a internet?....................................................................................................7

2.1.1 Novas tecnologias da informação e o futuro da Internet...........................................8

2.2 Educação à distância.........................................................................................................9

2.2.1 Ensino assistido por computador.............................................................................10

2.3 E-Learning......................................................................................................................11

3. Materiais e métodos..............................................................................................................13

3.1 Ferramentas utilizadas no desenvolvimento do projeto..................................................13

3.1.1 Linguagem de programação.....................................................................................13

3.1.2 Banco de dados........................................................................................................14

3.1.3 Mapeamento objeto relacional.................................................................................15

3.1.3 Container de inversão de controle............................................................................17

3.1.4 Framework web.......................................................................................................19

3.1.5 Ambiente de desenvolvimento.................................................................................20

3.2 Metodologia de Desenvolvimento..................................................................................20

4. Resultados.............................................................................................................................22

4.1 Estado atual do sistema...................................................................................................22

4.2 Outros resultados............................................................................................................23

3

Page 4: Relatório final do projeto de pesquisa e-Teacher

5. Conclusão..............................................................................................................................24

6. Bibliografia...........................................................................................................................26

7. Apêndice - Notas...................................................................................................................28

4

Page 5: Relatório final do projeto de pesquisa e-Teacher

1. Introdução

A Internet surgiu como um meio de comunicação eficiente entre universidades espalhadas em

todo o mundo, onde eles trocavam informações, pesquisas e descobertas de forma mais rápida

do que seria possível através de cartas e os outros meios de comunicação disponíveis na

época. Não é de se estranhar que hoje a internet tenha se transformado no grande repositório

de conhecimento que nós conhecemos hoje.

Nos anos 80 foi desenvolvido o modo de ensino conhecido como “treinamento baseado em

computador”, que consistia em um programa de computador que é executado pelo usuário em

um computador. Essa maneira de ensino foi muito utilizado para treinar os usuários a utilizar

as aplicações contidas em seus computadores, mas devido a sua baixa interatividade e os

autos custos para o desenvolvimento, perdeu força nos dias atuais. Algumas ferramentas ainda

trazem versões simples desse tipo de treinamento, conhecidas como “tutoriais”, para ajudar o

usuário a entender como funciona uma aplicação específica.

Com essa facilidade de comunicação e difusão de informações, o ensino não poderia ser

deixado de lado. Conhecida atualmente como e-Learning, o uso de computadores e

tecnologias de rede para facilitar e complementar a educação tem demonstrado um

crescimento gigantesco e resultados incríveis, especialmente graças a interatividade que os

ambientes de e-Learning demonstram.

Ferramentas de e-Learning também estão sendo utilizadas para dar suporte a ensino a

distância (ou não presencial). Essas ferramentas fornecem meios para que os professores e

alunos, mesmo separados geograficamente, possam se comunicar e trocar informações em

tempo real, tanto através de textos como de vídeo conferências. Nestes ambientes, o aluno que 5

Page 6: Relatório final do projeto de pesquisa e-Teacher

normalmente apenas assistiriai a uma aula pré-gravada ou faria o estudo de um texto sozinho,

pode interagir diretamente tanto com os outros alunos como com o professor para tirar

dúvidas e fazer perguntas.

O Projeto e-Teacher nasceu da necessidade de se montar uma estrutura simples e intuitiva

para a organização dos materiais de aula das várias disciplinas e vários cursos que uma

instituição possa oferecer. Além da organização e disponibilização dos materiais e a

possibilidade de interação entre alunos e professores, a ferramenta também busca ajudar na

administração dos cursos e disciplinas, com cadastros, matrículas, horários e marcação de

avaliações.

Mas o e-Teacher não procura ser uma ferramenta de e-Learning completa, pois já existem

várias outra ferramentas com maior maturidade que podem ser utilizadas em conjunto, como

ferramentas de vídeo-conferência, conversas em tempo real em salas de chats e fóruns

comunitários.

A implementação do projeto também serviu com um campo de testes para novas tecnologias e

para a aplicação de novas técnicas de desenvolvimento, como os conceitos de inversão de

controle e mapeamento objeto relacional, além do uso e homologação de diversos padrões de

projeto. O sistema foi desenvolvido na linguagem de programação Java.

6

Page 7: Relatório final do projeto de pesquisa e-Teacher

2. Fundamentação Teórica

2.1 Como surgiu a internet?

A rede mundial de computadores que conhecemos hoje surgiu da reunião de vários esforços,

as vezes separados, as vezes unidos, e o mais importante deles foi a ARPAnet, um projeto

financiado pela Agencia de Projetos de Pesquisa Avançada dos Estados Unidos (ARPA –

Advanced Research Projects Agency), que foi a primeira rede de computadores por

comutação de pacotes (troca de mensagens) e ancestral da Internet que conhecemos hoje. Seu

projeto foi desenvolvido em 1967 e foi finalmente posto em prática em 1969, na Universidade

da Califórnia (Ucla).

De 1969 até o inicio dos anos 90 a rede mundial de computadores tinha um apelo meramente

acadêmico. Apenas Institutos de pesquisa e universidades tinha acesso a informação que

circulava na rede que viria a ser conhecida como Internet. Mas neste início de década veio a

verdadeira revolução que esta rede mundial vinha preparando, o surgimento da World Wide

Web, uma rede mundial de computadores que reuniria não apenas institutos relacionados a

educação, pesquisa e exercito, mas as empresas e pessoas de todo o mundo. Essa revolução

nasceu, em parte, no Centro Europeu para Física Nuclear (Cern – European Center for

Nuclear Physics), sob a tutela de Tim-Berners Lee, entre 1989 e 1991. Ele e seus

companheiros desenvolveram a linguagem de marcação Hyper-Text Makup Laguage

(HTML), o protocolo de comunicação de computadores Hyper-Text Transfer Protocol

(HTTP), o primeiro servidor de páginas Web e o primeiro Browser.

7

Page 8: Relatório final do projeto de pesquisa e-Teacher

A partir de então a Internet começou a dar seus primeiros passos para fazer a revolução da

informação que ela está causando até hoje. Pois esteja onde você estiver, pode conseguir

informações sobre quase tudo o que desejar, bastando apenas ter um aparelho que se conecte a

internet, não necessariamente um computador, pois vídeo-games, aparelhos celulares,

televisores e ainda outros aparelhos não tão comuns (como geladeiras) também estão se

conectando a rede de mundial de computadores para trocar informações.

E é esta facilidade para se obter as informações que transforma a Internet em uma das mais

importantes criações do ser humano, mas também traz novos e gigantescos problemas por

causa da falta de controle que existe sobre o que é publicado na rede. Os maiores exemplos

disso são as redes Peer-to-Peer (P2P), onde pessoas trocam arquivos de diversos tipos, como

música, vídeos, documentos, de modo gratuito, muitas vezes infringindo as leis de

propriedade intelectual sobre aqueles arquivos ou informações que estão sendo trocadas.

2.1.1 Novas tecnologias da informação e o futuro da Internet

A Internet forçou a criação de novos padrões na disseminação do conhecimento de no modo

como ele deve ser tratado. Os sistemas de computação eram vistos de uma forma quase

mágica, pois apenas seus criadores e pessoas especializadas sabiam utilizar, deram lugar a

interfaces gráficas para o usuário, as chamadas GUI (Graphic User Interface), que tornam a

sua operação cada vez mais intuitiva e fazem com que se exija cada vez menos das pessoas

para que elas operem um computador de forma satisfatória.

Com essa facilidade e a socialização dos computadores (mais em alguns países do quem em

outros), os meios para a distribuição da informação estão tendo que se adequar tanto a

facilidade de uso como a velocidade de acesso.

8

Page 9: Relatório final do projeto de pesquisa e-Teacher

O futuro da Internet já está sendo apontado, ela está se dirigindo para uma convergência entre

todas as outras formas de mídia, para criar um algo novo e que mesmo que não leve os outros

meios a extinção vai diminuir cada vez mais o seu peso sobre a informação e formação de

opinião, porque uma pessoa que tenha acesso a Rede não vai precisar sair dela para ouvir uma

rádio, assistir um programa de televisão, ler o seu jornal preferido, fazer uma pesquisa para

um trabalho acadêmico, conhecer novas pessoas ou se divertir jogando alguma coisa.

Não há nada de ficção científica nisso, a tendência de que o computador se torne o centro de

entretenimento e pesquisa nos lares é real e já está acontecendo nos grandes centros, como

EUA, Europa e Japão, mas até que esta nova mídia chegue a os países mais pobres vai

demorar um pouco, e pode até mesmo nem tornar-se realidade tão cedo, se depender do

controle que as elites desejam manter sobre seus dominados.

A Internet caminha para ser a mais importante fonte de informação da humanidade (se não já

for), mas também é a que mais exclui, por seu alto custo econômico, proibitivo para a maioria

dos lares dos países subdesenvolvidos, como o Brasil.

2.2 Educação à distância

Entende-se como educação a distância a estratégia desenvolvida por sistemas educativos para

oferecer educação a setores ou grupos da população que, por razões diversas, tem dificuldades

de acesso a serviços educativos regulares. Este modo de ensino é caracterizado pela separação

entre alunos e professores no espaço e/ou tempo, pelo controle do aprendizado sendo feito

mais intensamente pelo próprio aluno do que pelo seu professor, que não tem condições de

9

Page 10: Relatório final do projeto de pesquisa e-Teacher

acompanhá-lo pessoalmente, e pela comunicação entre alunos e professores se dando por

meios impressos ou meios tecnológicos de comunicação e não pessoalmente.

A primeira experiência de ensino a distância que se tem notícia aconteceu na Suécia, em

1833, para um curso de contabilidade. A prática então se disseminou por toda Europa e depois

para o resto do mundo. Hoje, os principais divulgadores desta prática são França, Inglaterra e

Espanha.

O Brasil tem contato com a educação a distância a partir de 1904, quando universidades e

escolas internacionais oferecem seus cursos, mas a primeira empreitada verdadeiramente

brasileira só surge em 1934 quando Edgard Roquete-Pinto a Rádio-Escola Municipal no Rio

de Janeiro. A partir desse primeiro passo várias novas ações foram movidas na área de

educação a distância, como a formação do Instituto Universal Brasileiro em 1941, que ainda

hoje é um dos maiores exemplos de ensino a distância no país.

Hoje, várias universidades brasileiras tem centros de estudos em ensino a distância e também

desenvolvem vários projetos se utilizando desse modelo. Um dos exemplos é a Universidade

Federal de Lavras (UFLA), que oferece cursos de especialização (Latu Sensu) à distância a

mais de 18 anos, em diversas áreas do conhecimento.

2.2.1 Ensino assistido por computador

O ensino assistido por computador foi uma das primeiras modalidades de ensino a distância a

utilizar o computador como facilitador na educação. Ele é caracterizado por ser um programa

que o usuário executa localmente em sua máquina, que mostra um passo-a-passo para que o

usuário possa aprender a utilizar ou operar um programa contido em seu computador. Esta

10

Page 11: Relatório final do projeto de pesquisa e-Teacher

modalidade foi muito utilizada na década de 80, mas hoje não é mais tão comum por causa

dos altos custos envolvidos na criação das aulas.

Hoje as pessoas costumam utilizar um modo simplificado dessa modalidade, que consiste em

tirar screnshots (imagens da tela) do computador, adicionar notas e comentários as imagens e

depois montar uma apresentação de imagens seqüenciais (ou apresentação de slides). Existem

softwares especializados na criação deste tipo de mídia, tanto gratuitos como proprietários,

como o Viewlet Builderii.

2.3 E-Learning

O E-Learning é um passo a frente do ensino assistido por computadores, porque ele procura

fazer uso da interatividade que o computador e a Internet podem fornecer, com o uso de

multimídia e interatividade, que não eram utilizados no método anterior. Mas o E-Learning

não é utilizado apenas para educação à distância, ele também pode ser utilizado com uma

fonte de ajuda e desenvolvimento para o ensino presencial tradicional, fornecendo outras

maneiras para que alunos e professores possam interagir de forma a fixar melhor os

conhecimentos.

O aprendizado híbrido, que mistura o ensino tradicional com o uso de tecnologia e

computadores para a educação é simplesmente uma extensão do uso de ferramentas de e-

learning. Nele, as atividades são divididas em síncronas, que são as aulas presenciais,

apresentação de trabalhos e outros momentos nos quais os alunos estão junto dos professores,

e atividades assíncronas, que são o acesso ao sistema de gerenciamento de educação

(Managed Learning Enviromentiii), acesso e produção de blogs, wikis e pesquisas na internet.

11

Page 12: Relatório final do projeto de pesquisa e-Teacher

Nos últimos tempos, o foco deste tipo de ensino está se direcionando muito mais para as

discussões e fóruns sobre os assuntos do que no simples estudo do conteúdo em si. Este tipo

de abordagem, conhecida como construtivismo, que afirma que através de discussões e do

pensar sobre os assuntos os alunos aprendem e conseguem manter muito mais informação do

que simplesmente “decorar” o que foi passado nas aulas.

Uma das mais famosas ferramentas de e-learning da atualidade é o Moodle iv, que é uma das

mais completas plataformas de e-learning e ensino a distância da atualidade. Ele é um

software livre e gratuito distribuído sobre a licença Gnu Public Licence, multiplataforma e

que já está sendo desenvolvido a mais de 7 anos por uma comunidade vibrante de usuários e

entusiastas. Um dos maiores exemplos do sucesso do uso do Moodle é a Open Universityv,

que é uma universidade especializada no ensino a distância da Inglaterra, que reúne

estudantes de todo o mundoe já formou mais de 3 milhões de pessoas em diversas áreas e

níveis de ensino. A Open University também é conhecida por ser a universidade com as

melhores avaliações dos estudantes do Reino Unido e do País de Gales.

12

Page 13: Relatório final do projeto de pesquisa e-Teacher

3. Materiais e métodos

3.1 Ferramentas utilizadas no desenvolvimento do projeto

3.1.1 Linguagem de programação

A linguagem de programação escolhida para o desenvolvimento do projeto foi a linguagem

Java, desenvolvida pela Sun Microsystems. Java começou a ser desenvolvida em dezembro de

1990 pelo Green Project, que tinha como objetivo principal a criação de uma nova linguagem

de programação simples e multiplataforma que pudesse ser embarcada em ambientes que não

fossem computadores. A idéia na criação da linguagem era que ela fosse utilizada como

controladora de eletrodomésticos como geladeiras, fogões e aparelhos de microondas.

Com o passar do tempo e a evolução das pesquisas, o grupo responsável percebeu que ainda

não era o momento propício para esse tipo de desenvolvimento, especialmente pela baixa

capacidade dos computadores da época e pelo auto preço que adicionar microcontroladores a

aparelhos eletrônicos poderiam ter. Em 1994, com o surgimento do navegador na Interntet

Mosaic (que mais tarde se transformaria no navegador Netscape), o time responsável pelo

Green Project resolveu aproveitar o início da internet e criou os primeiros applets, que eram

programas em Java que rodavam dentro dos navegadores de internet, inicialmente apenas no

Netscape.

Com o crescimento da Internet nos anos vindouros, Java tornou-se uma das linguagens de

programação mais populares do planeta, mas no fim da década de 90 o uso de Java em Appets

nos browsers perdeu muito espaço para outras alternativas mais simples, como o Macromedia

Flash, um ambiente de criação de animações para a internet. A saída da Microsft do corpo

13

Page 14: Relatório final do projeto de pesquisa e-Teacher

gerente da plataforma (o JCPvi) também fez com que a quantidade de pessoas utilizando

applets diminuísse, pois o navegador Internet Explorer não tem mais suporte a essas

aplicações Java.

Hoje a linguagem continua sendo uma força no meio acadêmico, no desenvolvimento de

sistemas com página dinâmicas e, segundo pesquisas recentes, no desenvolvimento de

sistemas desktop, que até pouco tempo atrás eram dominados pelo conjunto de ferramentas da

Microsft, o Windows Forms.

Java foi escolhida como a linguagem na qual o projeto seria desenvolvida porque os materiais

de referência são fáceis de ser encontrados, ela é a linguagem de programação utilizada nas

aulas de “Programação Orientada a Objetos” e porque é de fácil uso e entendimento, contando

com um conjunto de ferramentas e frameworks que facilitam e aumentam a produtividade dos

programadores. Outro fator importante é que a plataforma é gratuita e a maior parte de suas

ferramentas também é, fazendo com que os gastos para inicio do desenvolvimento seja

praticamente nenhum, apenas o gasto com aprendizado é necessário.

3.1.2 Banco de dados

O banco de dados utilizado no projeto foi o MySQL (na versão 4.1), que é um banco de dados

relacional gratuito e licenciado pela Gnu Public Licence. O MySQL foi criado originalmente

pelo finlandês Michael Widenius em 1995 e é mantido atualmente pela empresa MySQL AB.

Ele é um banco de dados com suporte a espeficicação SQL 1992 e algumas partes da

especificação SQL 1999.

14

Page 15: Relatório final do projeto de pesquisa e-Teacher

Ele foi escolhido como banco de dados para o projeto por ser de fácil utilização, disponível

gratuitamente e ser um dos mais rápidos bancos da atualidade. O uso do MySQL em grandes

sistemas já foi comprovado por várias empresas, especialmente o Google, que o utiliza como

repositório para as suas pesquisas. O MySQL tem uma implementação madura do padrão de

conexão com bancos de dados em Java (o Java Database Connectivity – JDBC) e tida como

uma das melhores implementações do mercado.

3.1.3 Mapeamento objeto relacional

Um dos maiores problemas de se desenvolver sistemas que acessam bancos de dados

relacionais a partir de linguagens orientadas a objetos, é a diferença de tratamento na

construção e análise de informações entre os dois sistemas. Em um sistema orientado a

objetos, as informações são reunidas em estruturas que reúnem tanto os dados como as

operações que podem ser aplicadas neles, já em um sistema relacional, os dados são separados

das operações que podem acontecer sobre eles, da mesma maneira que ocorre em linguagens

de programação estruturadas, como C, Perl e Pascal.

As ferramentas de mapeamento objeto-relacional funcionam como um tradutor de

informações entre os dois sistemas, elas formam uma passagem para que os dados possam

trafegar entre os dois sistemas sem que seja necessário que um dos lados tenha que se adequar

aos outros.

Um exemplo clássico disso são os relacionamentos entre as entidades de um sistema. Em um

banco relacional, os relacionamentos são modelados através de chaves primárias e

estrangeias, conceitos inexistentes em sistemas puramente orientados a objetos, pois nestes

sistemas os objetos se relacionam através de referências aos objetos (ou ponteiros). A

15

Page 16: Relatório final do projeto de pesquisa e-Teacher

ferramenta de mapeamento vai trabalhar fazendo com que o banco de dados relacional veja os

relacionamentos de ponteiros do sistema orientado a objetos como o seu próprio sistema de

chaves primárias e estrangeiras e o sistema orientado a objetos vai ver os relacionamentos de

chaves primárias e estrangeiras do banco relacional como o seu sistema de ponteiros para

objetos.

Os primeiros estudos na área datam da década de 80, mas apenas no fim dos anos 90 que

houve realmente uma busca por este tipo de ferramentas. As aplicações ficam cada dia mais

complexas, modelos relacionais simples não tem mais condições de resolver o problema e os

bancos de dados puramente orientados a objetos ainda não são uma realidade para a maioria

dos projetos, tanto pela sua curta existência e pouco conhecimento dos seus limites como

pelos custos elevados que a adoção deste tipo de software poderia trazer. Neste quadro

começam a surgir as primeiras ferramentas de mapeamento no mercado, com uma se

destacando mais do que as outras, o TopLink, que mais tarde seria comprado pela Oracle.

O TopLink, uma ferramenta de mapeamento objeto relacional para sistemas em Java (que foi

a primeira linguagem a ter ferramentas de mapeamento objeto relacional), tornou-se o modelo

para as ferramentas seguintes. Hoje existe uma profusão destas ferramentas em várias

linguagens, especialmente em Java que tem duas especificações oficiais que lidam

especialmente com esse tipo de abordagem.

Uma das especificações é a Java Data Objects (JDO), que funciona não apenas como uma

ferramenta de mapeamento objeto relacional, mas como um mecanismo de persistência,

pesquisa e acesso a informações em qualquer formato que os forncedores desejem

desenvolver, como bancos de dados ou arquivos XML, a outra especificação é a Enterprise

Java Beans, que é mais restrita no que tange a persistência, sento essencialmente uma

16

Page 17: Relatório final do projeto de pesquisa e-Teacher

extensão para ferramentas de mapeamento objeto relacional, mas sendo mais abrangente em

outros casos, com trabalho com objetos distribuídos e serviços de cluster de bancos de dados.

A ferramenta de mapeamento escolhida para uso no projeto é o Hibernate, que é atualmente a

mais utilizada ferramenta de mapeamento objeto relacional do mercado e que está recebendo

uma nova versão para a plataforma .NET da Microsoft. O Hibernate foi desenvolvido com

base no TopLink mas hoje é um framework de desenvolvimento maduro que influenciou

fortemente a atualização da especificação EJB do Java, simplificando ainda mais o acesso a

bancos de dados relacionais na linguagem. A versão utilizada foi a 3.1.

3.1.3 Container de inversão de controle

No desenvolvimento do sistema, utilizamos um novo conceito do desenvolvimento orientado

a objetos, a inversão de controle. Este conceito prega uma quebra com a crença anterior de

que os objetos devem ser sempre auto-contidos e conhecer todas as suas dependências. Em

um ambiente onde a inversão de controle é utilizada, os objetos não conhecem nem acessam

as suas dependências diretamente, eles conhecem apenas as interfaces (ou contratos) que os

objetos devem cumprir. Com o uso de contratos, a implementação dos objetos fica livre de

interações externas e pode ser facilmente mudada sem que o código e os objetos clientes

daquelas informações sofram mudanças.

Os dois tipos mais utilizados de inversão de controle são a busca por dependências e a injeção

de dependências. Na busca por dependências, os objetos buscam ativamente por outros

objetos que obedeçam ao contrato em um registro centralizado que normalmente é fornecido

pelo servidor de aplicações aonde o sistema está funcionando. Em uma aplicação Java, esse

registro normalmente é um contexto da Java Naming and Directory Interface (JNDI),

17

Page 18: Relatório final do projeto de pesquisa e-Teacher

configurado e mantido externamente as aplicações que o utilizam. Os objetos vão até o

registro e buscam por objetos que implementam o contrato específico através de chaves de

busca. Mas a busca por dependências ainda é falha no sentido de que os objetos continuam

tendo que procurar por suas dependências ativamente, ainda é necessário acessar o registro e

buscar o objeto manualmente, fato que causa um acoplamento desnecessário entre o cliente e

o registro, fato que é revisto na injeção de dependências.

Em um ambiente com inversão de controle por injeção de dependências, os objetos recebem

as suas dependências através da interação de um container externo a aplicação, que trafega

nos objetos que necessitam de outros objetos para trabalhar e provê estas dependências.

Diferentemente da busca por dependências, os objetos não precisam fazer a cesso direto nem

buscar ativamente por suas dependências em um registro, um serviço especializado nisso (que

é um container de inversão de controle) faz toda a busca e a colocação dos objetos onde eles

são necessários, através de configurações em código ou em arquivos de configuração (como

arquivos XML específicos do container).

O uso da inversão de controle torna-se obrigatório especialmente em sistemas que exigem um

nível muito grande de independência entre seus recursos. Uma das necessidades de

independência mais comuns é a independência de bancos de dados, especialmente para

empresas que desenvolvem software de prateleira, pois elas precisam tentar atingir a maior

quantidade de clientes possíveis, não se prendendo a uma implementação ou banco de dados

específico. O uso da inversão de controle em um sistema pode facilitar essa independência.

O framework de inverão de controle utilizado no desenvolvimento do projeto foi o Spring

Framework, que além de ser o container de inversão mais utilizado do momento, provê vários

outros serviços para as aplicações que o utilizam, como constructos para trabalhar com

18

Page 19: Relatório final do projeto de pesquisa e-Teacher

programação orientada a aspectos em Java e distribuição transparente de objetos usando as

bibliotecas padrão do Java.

O crescimento e maturidade do Spring também causaram grandes mudanças na maneira de se

desenvolver aplicações para a web em Java, que normalmente dependiam de grandes

servidores de aplicação caríssimos da IBM, BEA e Oracle. As aplicações que utilizam o

Spring podem ter as mesmas funcionalidades rodando em máquinas mais leves e utilizando

servidores gratuitos como o Tomcat, fato que também resultou em uma mudança de

mentalidade e foco por parte das empresas que desenvolvem servidores de aplicação

comerciais.

3.1.4 Framework web

i Como no projeto Telecurso da Fundação Roberto Marinho.

ii Desenvolvido pela Qarbon e disponível em http://www.qarbon.com/

iii Um Managed Learning Enviroment é a junção de um sistema de gerenciamento de informações com um

ambiente de aprendizado virtual. Eles tem como objetivo facilitar a administração da educação e dos cursos para

alunos e professores, sendo muitas vezes utilizados tanto para ensino a distância como para a educação híbrida,

que reúne o ensino presencial ao uso de computadores e multimídia.

iv Disponível em http://moodle.org/

v Disponível em http://www.open.ac.uk/

vi O JCP (Java Community Process) é o orgão gestor da linguagem de da plataforma Java, mantido por várias

empresas que usam e produzem programas em Java, como IBM, Sun, BEA e Oracle. Ele é responsável pela

tomada de decisões sobre tudo o que é feito na linguagem e na plataforma, como por exemplo a criação e

implementação de provas-de-conceito de novas funcionalidades para a plataforma.19

Page 20: Relatório final do projeto de pesquisa e-Teacher

A interface web do sistema foi desenvolvida através de páginas JavaServer Pages que

geravam resultados em XHTML. O controle dessas páginas foi desenvolvido utilizando o

módulo Spring MVC do container Spring. Toda a aplicação segue o padrão de projeto Model-

View-Controller, onde o sistema é dividido em camadas que se comunicam entre si. As

páginas JSP, tendo responsabilidade apenas de mostrar resultados, não executavam lógica, já

que elas eram parte da camada View (ou visualização), os objetos do módulo Spring MVC

eram responsáveis pela camada Controller (controladora), que recebe as interações dos

usuários, acessa a camada Model (modelo), que contém as lógicas de negócio relacionadas a

aplicação e repassa os resultados mais uma vez para serem expostos na visualização.

Essa abordagem torna o desenvolvimento ou até mesmo a troca de interfaces gráficas pela

aplicação uma coisa simples, pois uma camada comunica-se apenas com a sua camada

diretamente superior ou inferior. A camada de visualização não pode acessar a camada do

modelo diretamente, apenas por chamadas a camada de controle, do mesmo modo que a

camada do modelo nunca acessa a camada de visualização diretamente, também precisa

passar pela camada controladora para fazer esse tipo de ação.

Arquiteturas em camadas intercomunicantes também ajudam na manutenção da aplicação, ao

ponto que elas formam uma separação semântica tanto visual como em código, evitando que

mudanças em uma das camadas afete as outras em um efeito dominó, porque sempre existe

uma “camada de contenção”, já que não é possível se comunicar com partes que estão muito

acima ou muito abaixo de onde o código está rodando.

3.1.5 Ambiente de desenvolvimento

20

Page 21: Relatório final do projeto de pesquisa e-Teacher

O ambiente de desenvolvimento integrado (IDE) utilizado na codificação do sistema foi o

plugin Java Development Toolkit (JDT) da plataforma Eclipse. O Eclipse é uma plataforma

que segue o padrão de container de plugins OSGI, tento uma gama de plugins que vão desde o

desenvolvimento em linguagens funcionais, como LISP, até geradores de relatórios e gráficos,

como o Business Intelligence and Reporting Tools. Ele foi desenvolvido originalmente pela

IBM e mais tarde foi doado para a recém criada Eclipse Foundation. O seu plugin mais

conhecido, o JDT, é atualmente o ambiente de desenvolvimento Java mais utilizado no

planeta, graças as suas diversas funcionalidades de auto-completação de código, refactoring

embutido e dicas para resolver problemas comuns no desenvolvimento.

3.2 Metodologia de Desenvolvimento

O projeto foi desenvolvido seguindo alguns dos preceitos da metodologia de desenvolvimento

Extreme Programming. A Extreme Programming é uma metodologia que tem foco no

desenvolvimento e geração de resultados para os clientes e esse foi, talvez, o maior problema

que foi encontrado pelo grupo no desenvolvimento do projeto. Como não havia um cliente

presente, já que o software estava sendo desenvolvido com o intuito de ser uma ferramenta

“de prateleira”, não havia a possibilidade de se ter um possível “cliente” disponível para

avaliar os resultados ou os caminhos que o sistema estava tomando.

Outras características, entretanto, puderam ser colocadas em prática no projeto, como o

desenvolvimento guiado pelos testes, integração contínua e iterações curtas para a geração de

resultados.

O uso de testes unitários delineou um caminho simples para a criação e testes das

funcionalidades do sistema e a integração foi feita sem maiores problemas graças ao uso da

ferramenta de gerência de projetos Apache Mavenvii .

21

Page 22: Relatório final do projeto de pesquisa e-Teacher

4. Resultados

4.1 Estado atual do sistema

O sistema desenvolvido no projeto encontra-se na sua primeira versão estável, mas devido ao

curso espaço de tempo ainda não demonstra todas as funcionalidades projetadas na sua

concepção. As funcionalidades atualmente implementadas são:

Inserção, edição e exclusão de Cursos, Disciplinas, Turmas, Semestres, Alunos, Professores,

Materais e Links relacionados;

Área especial para professores e alunos;

Blog de notícias e novidades para as disciplinas e professores, com a possível participação de

alunos;

Cadastro de novos alunos e matrículas em disciplinas e turmas específicas;

Controle da segurança dos materiais enviados;

As funcionalidades antes pensadas mas que ainda não foram adicionadas:

Fornecer mecanismo automático para avaliação dos alunos, com base em exercícios feitos

pelo próprio sistema;

Colocação das notas e geração das médias dos alunos;

Fórum especial para retirada de dúvidas dos alunos e discussão dos assuntos relacionados;

Avaliação dos alunos para os materiais disponibilizados nas áreas das disciplinas;

22

Page 23: Relatório final do projeto de pesquisa e-Teacher

4.2 Outros resultados

O sistema também obteve outros resultados que não o desenvolvimento do sistema. Foram

publicados 3 artigos desenvolvidos pelos membros do projeto, dois em um site especializado

em programação e outro e uma revista especializada em programação Java. Os materiais

publicados foram os seguntes:

Introdução ao Hibernate 3 – Disponível no Grupo de Usuários Java (GUJ) em

http://guj.com.br/java.tutorial.artigo.174.1.guj

Hibernate 3 Avançado – Disponível no Grupo de Usuários Java (GUJ) em

http://guj.com.br/java.tutorial.artigo.181.1.guj

Introdução a Inversão de controle com o framework Spring – Publicado na revista MundoJava

número 13, ano III

23

Page 24: Relatório final do projeto de pesquisa e-Teacher

5. Conclusão

O projeto gerou uma ferramenta que já pode ser utilizada como um gerenciador para os

conteúdos de disciplinas e aulas. Ela também já pode ser utilizada como um meio de se

organizar as matriculas dos alunos e controlar o acesso de estranhos a materiais específicos.

Graças a preocupação com a arquitetura simples e de fácil extensão, o sistema pode ser

facilmente aumentado e melhorado com as novas funcionalidades que estão planejadas e até

mesmo outras que ainda não foram pensadas. O uso de uma linguagem de programação muito

conhecida tanto no mercado quanto comercialmente para o seu desenvolvimento torna a

aplicação ainda mais fácil de ser extendida.

Durante o processo de pesquisa e desenvolvimento, alguns problemas surgiram, como a

pequena quantidade de informações sobre o histórico da educação a distância, a falta de

referência em livros e atualizada sobre a linguagem de programação Java e os frameworks

utilizados. Os artigos publicados pelo grupo continuam sendo ainda hoje trabalhos pioneiros

no Brasil sobre Hibernate 3 e Spring, demonstrando o baixo interesse das editora sobre estes

assuntos mais avançados, que também são fonte de aplicações mais robustas e mais fáceis de

serem estendias. O não investimento neste tipo de publicação mais especializada pode

aumentar ainda mais a distância do mercado brasileiro de software e suas principais

concorrências no mundo hoje, como a Índia, que tem um forte apoio dos estados unidos no

seu desenvolvimento tecnológico.

Com o desenvolvimento do projeto também foi possível perceber que nem sempre é válido o

desenvolvimento com vistas em evitar mudanças futuras. Muitas vezes, os planos adicionados

antes da hora ou de uma real necessidade do sistema foram engolidos por problemas reais que

surgiram. O planejamento do desenvolvimento ainda é de suma importância, mas ele 24

Page 25: Relatório final do projeto de pesquisa e-Teacher

mostrou-se mais confiável no curto prazo do que em iterações de desenvolvimento mais

longas. Lidando com prazos e tarefas menores foi possível manter um passo mais firme no

desenvolvimento e no controle de novas funcionalidades, pois muitas das funcionalidades

eram entrelaçadas entre si, causando diversos problemas quando elas não conseguiam se

comunicar e trabalhar corretamente em conjunto.

A comunicação entre o grupo de desenvolvedores também foi um dos pilares do

desenvolvimento do sistema. Com uma lista de discussão e fórum privado exclusivo para a

discussão dos assuntos relacionados ao projeto, o foco do desenvolvimento foi mantido e a

comunicação fluiu de forma natural, mesmo não sendo possível aplicar uma das práticas mais

importantes do método Extreme Programming, a programação em par.

A importância desse projeto também se deu graças a quantidade de novos conhecimentos que

foram gerados entre o grupo que o desenvolveu e o retorno que esse mesmo grupo pode fazer

a comunidade de desenvolvedores através dos três materiais publicados, sendo dois

disponíveis gratuitamente na Internet e o terceiro disponível em uma das edições de uma das

mais respeitadas revistas sobre a plataforma Java do Brasil.

Os objetivos do projeto, que eram desenvolver um sistema funcional e contribuir com novos

conhecimentos para a comunidade foram atingidos, especialmente no que se relaciona a

contribuição, pois o fim da pesquisa é contribuir para a melhora do mundo no qual habitamos.

25

Page 26: Relatório final do projeto de pesquisa e-Teacher

6. Bibliografia

KING, GAVIN; BAUER, CHRISTIAN; Hibernate In Action. Manning, 2004.

HARROP, ROB; MACHACEK, JAN; Pro Spring. Apress, 2005.

DEITEL, H. M.; DEITEL, P. J.; Java, como programar. 4 ed. – Porto Alegre: Bookman,

2003.

KUROSE, JAMES F.; ROSS, KEITH W.; Redes de Computadores e a Internet: Uma nova

abordagem. 1 ed. – São Paulo : Addison Wesley, 2003.

MASSOL, VINCENT; O’BRIEN, TIMOTHY; Maven: A Developer’s Notebook. O’Reilly,

2004.

D’ANJOU, JIM; FAIRBROTHER, SCOTT; KEHN, DAN; KELLERMAN, JOHN;

MAcCARTHY; The Java Developer’s Guide to Eclipse. 2º edição, Addison-Wesley.

TELES, VINÍCIUS MANHÃES; Extreme Programming: Aprenda como encantar seus

usuários desenvolvendo software com agilidade e alta qualidade. Novatec Editora, 2004

FREEMAN, ELIZABETH; FREEMAN, ERIC; SIERRA, KATHY; BATES, BERT; Head

First Design Patterns. O’Reilly, 2004.

26

Page 27: Relatório final do projeto de pesquisa e-Teacher

COLYER, ADRIAN; CLEMENT, ANDY; HARLEY, GEORGE; WEBSTER, MATTHEW;

Eclipse AspectJ: Aspect-Oriented programming whith AspectJ and the Eclipse AspectJ

Development Tools. Addison- Wesley, 2005.

HUSTED, TED; DUMOULIN, CEDRIC; FRANCISCUS, GEORGE; WINTERFELDT,

DAVID; Struts em Ação. Editora Ciência Moderna, 2004.

BASHAN, BRIAN; SIERRA, KATHY; BATES, BERT; Head Fist Servlets & JSP: Passing

the Sun Certified Web Component Developer Exam. O’Reilly, 2004.

Instituto Universal: http://www.institutouniversal.com.br/

UFLA – Universidade Federal de Lavras: http://www.ufla.br/

FAESA Online – Educação a Distância: http://ead.faesa.br/

Wikipedia – Online Learning: http://en.wikipedia.org/wiki/Online_learning

Wikipedia – E-Learning: http://en.wikipedia.org/wiki/E-learning

Wikipedia – Ensino assistido por computador: http://en.wikipedia.org/wiki/Computer-

based_training

27

Page 28: Relatório final do projeto de pesquisa e-Teacher

7. Apêndice - Notas

vii O Apache Maven é um gerenciador de projetos genérico desenvolvido pela Apache Software Foundation. Ele

funciona como uma base para a manutenção do ciclo de vida de sistemas, especialmente sistemas em Java,

passando entre o desenvolvimento, testes de todos os tipos (unitários, homologação, in container e outros),

avaliação de qualidade e métricas até a implantação do sistema em um servidor apropriado.28