• Nenhum resultado encontrado

4 Proposta

4.4 Tecnologias Utilizadas

A construção de todo o projeto do PuzzlEdu envolveu diversas tecnologias, desde a parte de modelagem até a parte de desenvolvimento e controle de versão. Por ser concebido com fortes perspectivas de crescimento e continuidade, todas as soluções de tecnologias utilizadas são atualizadas e atuais. Ainda, por também buscar uma maior abrangência de utilização e distribuição, o PuzzlEdu foi concebido com código aberto, ou seja, disponível para toda a comunidade, através de licença GPL51, utilizando-se também de tecnologias com licenças semelhantes, de maneira a não proibir ou coibir sua utilização. Espera-se para o futuro contribuir ainda mais para comunidade, passando a disponibilizá-lo como um software público brasileiro.

As ferramentas utilizadas no desenvolvimento do PuzzlEdu foram escolhidas com base, além dos conceitos do parágrafo anterior, nos objetivos da dissertação, ou seja, integrar o desenvolvimento de um software com os objetivos educativos, e isso sendo disponibilizado como serviço para os usuário. Por não ser o foco desta dissertação, as principais e mais relevantes tecnologias/ferramentas utilizadas no desenvolvimento do PuzzlEdu serão apenas brevemente explicadas na lista de marcadores a seguir.

IDE Eclipse: projeto de código aberto e gratuito, escrito em Java e desenvolvido pela IBM, com rápida aceitação entre a comunidade de desenvolvedores de sistemas, sendo um dos IDEs mais utilizados para desenvolvimento de software

51 General Public License – Licença Pública Geral. Detalhes em http://www.gnu.org/licenses/gpl.html. Acesso em: junho de 2011.

83 para as mais variadas linguagens, haja vista empregar plug-ins com tal suporte e ainda fornecer um forte apoio para o desenvolvimento baseado em Java (GUERMEUR e UNRUH, 2010), (MURPHY, KERSTEN e FINDLATER, 2006). Sua escolha foi influenciada pelos plug-ins disponíveis da Google para esse IDE, de forma a facilitar o desenvolvimento de aplicações para uso na sua nuvem computacional;

Linguagem Java: linguagem de programação orientada a objetos desenvolvida pela Sun Microsystems e bastante difundida ao redor do mundo (SILVEIRA, 2003). Sua escolha foi influenciada principalmente pela Plataforma como Serviço (PaaS) escolhida para implantação do PuzzlEdu, neste caso o Google App Engine;

Google Web Toolkit (GWT): é um conjunto completo de ferramentas (framework) para desenvolvimento de complexas aplicações Web baseadas em AJAX52 usando Java (GUERMEUR e UNRUH, 2010). É gratuito e possui plug-

in para uso dentro do Eclipse. A utilização do GWT facilita o desenvolvimento

de aplicações para Web, plataforma base do PuzzlEdu;

SmartGWT53: é um framework baseado em GWT com diversas bibliotecas de

widgets54 disponíveis para desenvolvimento das interfaces com o usuário, facilmente integrável aos IDEs de desenvolvimento, principalmente que utilizam o GWT, como o Eclipse;

Google App Engine (GAE): é uma plataforma e um SDK (Software

Development Kit – Kit de Desenvolvimento de Software) para desenvolver e

hospedar aplicações Web usando toda a infraestrutura e servidores da Google, suportando os ambientes de execução e SDKs das linguagens Java e Python (ROCHE e DOUGLAS, 2009). Sua escolha levou em consideração a oferta de cotas gratuitas generosas de espaço e processamento dentro da nuvem

52 Asynchronous JavaScript and XML – JavaScript e XML Assíncronos. Não é uma linguagem de programação e sim, uma técnica para criação de páginas Web rápidas e dinâmicas, realizando comunicações com o servidor sem carregar a página por inteira. Disponível em: http://www.w3schools.com/ajax/default.asp. Acesso em: junho de 2011.

53http://code.google.com/p/smartgwt/. Acesso em: junho de 2011. 54

84 computacional da Google, além da facilidade de integração a partir de um plug-

in próprio para o Eclipse, neste caso, com o GWT;

BigTable: desenvolvido pela Google, é um sistema de armazenamento distribuído para gerenciamento de dados estruturados de larga escala e alto desempenho (CHANG et al, 2008). A princípio, o usuário ao utilizar o PuzzlEdu não irá armazenar nenhuma informação, porém, durante o desenvolvimento do projeto, poderá sentir a necessidade de salvar o estado atual para posterior desenvolvimento e, nesse momento, as informações são gravadas utilizando-se essa tecnologia de armazenamento de dados;

MagicDraw: para a modelagem dos casos de uso e fluxo de execução foi utilizado o MagicDraw55, uma ferramenta para modelagem visual UML. Apesar de não ser gratuito, possui licença disponível somente para uso acadêmico e não comercial. Como para liberação do software ele não é requerido, a questão da licença não se torna relevante ao projeto nesse momento;

Microsoft Visio: utilizado para construção da arquitetura do PuzzlEdu, o Visio56 é um software para construção de diagramas técnicos e profissionais, de fácil manipulação, com diversos recursos para desenho. Por não ser gratuito, assim como o MagicDraw, seu uso também não é impeditivo para liberação do

software, tendo sido utilizado apenas para desenho da arquitetura;

Subversion: para controle de versões do PuzzlEdu, utilizou-se o Subversion, um sistema próprio para controle de versão, gratuito e de código aberto, feito para gerenciar arquivos e diretórios, permitindo recuperar e verificar todas as versões ao longo do desenvolvimento (COLLINS-SUSSMAN, FITZPATRICK e PILATO, 2004). Todo o código do PuzzlEdu foi hospedado57 também na infraestrutura da Google, no serviço chamado de Google Code58, de acesso público, possibilitando a comunidade interagir com os desenvolvedores do

software.

55https://www.magicdraw.com/. Acesso em: junho de 2011.

56http://office.microsoft.com/pt-br/visio/. Acesso em: junho de 2011.

57http://code.google.com/p/puzzledu/. Disponibilizado gratuitamente pela Google. 58

85 A opção por utilizar tais tecnologias e ferramentas, além das perspectivas futuras e liberdade de utilização, foi de proporcionar maior seriedade e celeridade ao projeto. Durante o processo de desenvolvimento, diversas ferramentas e tecnologias foram estudadas e avaliadas, sempre com intuito de encontrar as melhores estratégias para o desenvolvimento, dentro das condições e planejamentos do projeto. A isso se soma o estudo e adoção dos mais variados processos de desenvolvimento, padrões arquiteturais e avaliação do software e outros.