• Nenhum resultado encontrado

Para o desenvolvimento dessa aplicação, as seguintes tecnologias foram escolhidas:

∙ Java Server Pages(JSP)

Como é um sistema web dinâmico, necessitamos de um serviço de páginas que nos pos- sibilite esse recurso. Esta tecnologia também devido a maior familiaridade com a lingua- gem Java, do tempo reduzido para o aprendizado de uma nova tecnologia e pelo fato do JSP ser escrito nessa linguagem.

JSP é uma linguagem de script com especificação aberta que tem como objetivo primá- rio a geração de conteúdo dinâmico para páginas da Internet. Ela possibilita a criação de dinamismo nas páginas. Com HyperText Markup Language (HTML) puro, não con- seguiríamos fazer o dinamismo em nossas páginas, por exemplo, consultar por critérios específicos, uma lista de usuários, no banco de dados e exibir na interface do usuário.

Isso seria não seria possível com o HTML puro, no entanto, com a utilização do JSP, conseguimos realizar essa tarefa. Adicionamos código JSP no HTML, o servidor in- terpreta e gera o código HTML necessário. Como é gratuita e por ter sua especificação aberta, existem vários servidores que suportam JSP, entre eles podemos destacar: Tomcat, GlassFish, JBoos, entre outros. Em nosso Portal estaremos utilizando o GlassFish. Um servidor desses é imprescindível, pois, como já mencionado, ele irá interpretar o código JSP e apresentar ao usuário somente o HTML.

Mais sobre a especificação JSP pode ser encontrada em: http://www.oracle.com/ technetwork/java/javaee/jsp/index.html.

∙ Mysql Database

O Portal reunirá informações e dados que necessitam estar disponíveis permanentemente para diversos usuários, da mesma forma necessitamos garantir a consistência e integri- dade desses dados. Para que isso seja possível, necessitamos utilizar um Sistema de Ge- renciamento de Banco de Dados (SGBD) que garanta a consistência dos dados e realize este procedimento. Para o desenvolvimento do Portal utilizamos o Mysql.

O Mysql é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a lingua- gem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language) como interface. É atualmente um dos bancos de dados mais populares. Entre suas ca- racterísticas podemos destacar o excelente desempenho e estabilidade, e compatibilidade com diversas linguagens de programação.

O MySQL é um produto regido pela licença General Public License (GPL). E pode ser encontrado em https://www.mysql.com/.

∙ Hibernate ORM

O hibernate é um framework de mapeamento relacional para java. O hibernate é distri- buído com a licença LGPL v2.1, podendo ser utilizado gratuitamente tanto em projetos comerciais como projetos de código aberto.

O hibernate abstrai o processo de persistência no banco de dados. Todo processo de co- municação entre a aplicação e o banco de dados é intermediado por ele, essa característica contribui para que o desenvolvedor evite ter que ficar se preocupando em escrever instru- ções SQL para realizar operações de recuperação ou persistência de dados do software.

Todo o mapeamento do objeto relacional, ou seja, as tabelas do existentes no nosso banco de dados são representadas através de classes Java em nossa aplicação, no entanto nem todas as nossas classes vão representar tabelas, pois, há classes que necessitam ser persis- tidas, já outras funcionam apenas como Beans. O hibernate possui diversos métodos que são utilizados para operações de recuperação e persistência dos dados, isso evita que o programador fique se preocupando com instruções SQL como selects, join e entre outras. Além disso, o framework pode ser capaz até de resolver as particularidades com que cada Sistema de Gerenciamento de Banco de Dados - SGDB, funciona.

O hibernate será utilizado para gerenciar o processo de persistência dos dados no banco de dados evitando a criação manual de queries sql. Mais sobre o hibernate pode ser encontrado em: http://hibernate.org/orm/.

∙ Metro UI CSS

Framework css, que será utilizado para proporcionar ao portal uma interface mais amigá- vel.

Um framework css, serve para reduzir o esforço de entendimento e aprendizado do CSS, trazendo uma série de vantagens como, por exemplo: a padronização do estilo da página; arquivos modularizados; flexibilidade do estilo, que pode ser alternado e combinado de diversas maneiras dentro da página; redução de tempo, pois, os designer não precisará desenvolver o estilo da página do início, podendo assim, se preocupar apenas com outros aspectos particulares da página; e, reduz possíveis esforços de manutenção da página. O Metro UI CSS, é distribuído sob a licença MIT. Esta licença permite que seja obtida cópia gratuita do framework e seus arquivos associados. E ainda, entre outros usos, mo- dificar, mesclar, publicar e negociá-los sem restrições, dando os devidos créditos ao autor do framework, incluindo o aviso Copyright (c) 2012-2015 Sergey Pimenov nas cópias inteiras do software ou partes dela.

O Metro UI CSS, está disponível para download na sua página http://metroui.org. ua/ e atualmente se encontra na versão 3.

∙ Vraptor 4

Framework que será utilizado para a padronização do projeto web, seguindo as especifi- cações do Padrão de Projeto Modelo Visão e Controle (MVC).

Um framework MVC, divide a representação da informação em três partes, Mo- delo(model), Visão(view) e Controle(controler). O modelo se trata dos dados da apli- cação, das regras de negócio, lógica e funções. A visão consiste nas saídas que repre- sentação os dados, como por exemplo, uma tabela com nome de pessoas cadastradas no banco de dados da aplicação. O controle é o responsável pela intermediação entre o modelo e a visão.

Atualmente o Vraptor, encontra-se na versão 4, mantido pela Caelum e disponibilizado sob os termos da Licença Apache. Download e mais informações sobre o framework podem ser encontradas em: http://www.vraptor.org/.

∙ Jquery

Biblioteca Javascript, que será utilizada para evitar a incompatibilidade de implemen- tação Javascript em diferentes navegadores. Jquery faz a compactação de tarefas que necessitam de várias linhas de código para serem representadas e disponibiliza funções que produzem os mesmos efeitos. Assim, o programador utiliza menos código para suas funções javascript.

Com Jquery é possível fazer manipulação do HTML e do CSS, fazer efeitos e animações na página, realizar chamadas assíncronas AJAX, entre outras funcionalidades genéricas. Em nosso portal utilizamos Jquery em muitas situações, por exemplo, para realizar a remoção de um projeto. O usuário visualiza os seus projetos, e seleciona a opção de excluir, o identificados do projeto é enviado ao método responsável no controle, após a remoção o projeto é removido da página. Isso, sem que a página toda seja enviada e recarregada. Assim economizamos a quantidade de informações enviadas pela rede ao servidor.

Jquery é distribuído sob os termos da Licença MIT, e disponibilizado gratuitamente no seguinte endereço: http://jquery.com/.

∙ GlassFish Server 4

GlassFish é um servidor de aplicação de código aberto liderado pela Sun Microsystems para a plataforma J2EE2. Glassfish também possui uma versão proprietária que é chamada Sun GlassFish Enterprise Server. A versão gratuita é software livre, que é distribuída sob

2Java Platform, Enterprise Edition, ou em português Plataforma Java, Edição Empresarial) é uma plataforma

os termos de duas licenças a Common Development and Distribution License (CDDL) e GNU General Public License (GPL).

Como mencionado mais acima, utilizaremos para geração de páginas dinâmicas o JSP. E para que consigamos utilizar as funcionalidades disponibilizadas pelo JSP, necessita- mos de um servidor que dê suporte à essa tecnologia. O Glassfish é o responsável por interpretar o JSP e disponibilizar o HTML resultante à interface do usuário.

Glassfish pode ser encontrado e baixado no seguinte endereço: https://glassfish. java.net/.

∙ API do OpenHub O OpenHub (antes Ohloh.net) é uma comunidade que online que ofe- rece resultados de análises de código de projetos de software livre.

A API - Application Programming Interface, em português Interface de Programação de Aplicações, disponibilizada pelo OpenHub é denominada API Ohloh e baseado em REST - Representational State Transfer, em português Transferência de Estado Representacio- nal. Através dela é possível obter diversas informações dos projetos, como por exemplo: total de linhas de código do projeto, total de comentários, total de linhas em branco, descrição do projeto, total de commits, entre outras.

Utilizamos a API para obtenção de dados e informações mais detalhadas sobre os projetos e assim evitar a replicação de trabalho para o cadastro de informações do projeto.

Para utilizar a API, primeiramente criamos uma conta e uma chave de API no OpenHub. É possível criarmos 5(cinco) chaves de API, e cada uma possibilita até 1000(mil) consultas diárias.

Por ser um serviço baseado em REST, o Portal realiza a consulta de informações de um projeto por meio do nome. Caso o projeto exista no OpenHub, as informações são retor- nadas no formato XML, que após processamento damos ênfase somente nas informações que são adequadas às nossas necessidades.

A página do OpenHub na internet pode ser acessada por meio do endereço https:// www.openhub.net. A API, possui mais informações de uso e está disponível no GitHub através do seguinte endereço https://github.com/blackducksw/ohloh_api.

A permissão de uso da API é desprovida de qualquer empecilho, sendo possível até ven- der cópias do Software sendo necessário que se faça a inclusão de aviso de copyright

"Copyright (c) 2013 Black Duck Software, Inc. and its contributors"em todas as cópias ou partes substanciais.

∙ Tinymce

TinyMCE é uma plataforma web independente, um editor de texto baseado em Javascript, HTML e controle de edição WYSIWYG. Sua utilização e distribuição é como Código Aberto sob as condições da Licença LGPL.

Muitas vezes necessitamos inserir informações formatadas como título em negrito, lis- tas com marcadores, tabelas, texto e imagens, entre outros. Isso é muito complicado utilizando-se a área de texto que é o componente HTML padrão. Para conseguir um efeito, por exemplo, de título em negrito o usuário deveria ter conhecimento de HTML para esse fim. Com a utilização de um editor como o TinyMCE, o usuário tem um fer- ramenta com opções familiares às encontradas em editores de texto como o Microsoft Word, tornando mais fácil, rápido e produtiva a inserção de informações formatadas. No Portal o editor é utilizado para fornecer uma forma familiar para o usuário poder formatar adequadamente as informações no momento do cadastro das informações do projeto.

O TyniMCE pode ser baixado em sua página http://www.tinymce.com/. ∙ Highcharts

O Highcharts é uma plataforma desenvovida em JavaScript, para geração de diversos tipos de gráficos dinâmicos em páginas web. Sua utilização é gratuita para fins não comerciais, para fins comerciais é necessário obter uma licença de uso. Em qualquer uma das licenças, gratuita ou não, o usuário tem permissão para baixar o código fonte e fazer suas próprias edições. Isto permite modificações pessoais e uma grande flexibilidade.

No Portal ele é utilizado para geração dos gráficos referentes ao projeto, como o gráfico de linguagens e o gráfico sobre o código.

5 CONCLUSÕES

Neste trabalho, realizamos a implementação de um Portal Web para auxiliar novatos em projetos de software livre, possibilitando que informações sobre diversos projetos sejam disponibilizados para os novatos. Para este trabalho, utilizamos os requisitos obtidos na litera- tura que tratava sobre as barreiras enfrentadas pelos novatos em projetos de software livre para realizarem sua primeira contribuição e também para continuarem participando dos projetos. O modelo de barreiras descrito por Steinmacher et al. (2014), forneceu embasamento para a reali- zação deste trabalho, visto que se trata de uma pesquisa aprofundada sobre novatos em software livre.

Do processo de desenvolvimento desse Portal, como todo trabalho desse tipo possuem, houve muitas dificuldades e aprendizados. Desenvolver um projeto como trabalho de conclusão de curso e sozinho, é uma tarefa complicada, sobretudo quando se está iniciando no desenvolvi- mento de software e se tem de conciliar o projeto com o trabalho, vida social e outras disciplinas do curso.

Devido à característica do projeto, o número de tecnologias utilizadas foi, até certo ponto, grande. E aprender utilizar todas essas tecnologias foi um desafio que exigiu certo grau de dedicação. No entanto, apesar do processo exigente, no final o conhecimento adquirido nas tecnologias servem para aperfeiçoar e aumentar o nível de conhecimento.

Sobretudo, ter a consciência de que esse pode ser o início de algo que venha a ser útil para alguém, é algo muito satisfatório. É fato, que vale destacar que o projeto ainda precisa de muitos ajustes, o que é normal para qualquer tipo de software. Nenhum projeto nasce grande, abrangente e completo o suficiente para não ser atualizado e melhorado. Assim, esperamos que o projeto seja aprimorado e melhorado no intuito de servir como uma ferramenta de apoio para muitos novatos e também não novatos, que queiram contribuir com o mundo do software livre. Como prosseguimento e melhoria deste portal, seria interessante, em trabalhos futuros,

a aplicação de um sistema próprio de obtenção de dados dos projetos, baixando o código dire- tamente dos repositórios de código fonte e aplicando métricas de software. Com essa comple- mentação seria possível obter dados mais específicos e adequados às necessidades dos novatos e eliminaria a dependência dos dados disponíveis no OpenHub. Também como trabalho futuro, é necessário conduzir testes de usabilidade e experiência de usuário no portal.

REFERÊNCIAS

ALENCAR, A. F. d.; MACHADO, M. B.; EVANGELISTA, R.; SILVEIRA, S. A. d.; AGUIAR, V. M. Software livre cultura hacker e ecossistema da colaboração. Produção de Terceiros So- bre Paulo Freire (PTPF); Livros, 2009.

CAPRA, E.; WASSERMAN, A. I. A framework for evaluating managerial styles in open source projects. In: Open Source Development, Communities and Quality. [S.l.]: Springer, 2008. p. 1–14.

COSTA, R. Candido da. Conhecendo o software livre. In: Anais do Congresso Nacional Uni- versidade, EAD e Software Livre. [S.l.: s.n.], 2012. v. 1, n. 1.

CUBRANIC, D.; MURPHY, G. C.; SINGER, J.; BOOTH, K. S. Hipikat: A project memory for software development. Software Engineering, IEEE Transactions on, IEEE, v. 31, n. 6, p. 446–465, 2005.

FOGEL, K. Producing open source software: How to run a successful free software project. [S.l.]: "O’Reilly Media, Inc.", 2005.

GNU. O Sistama Operacional Linux. 2014. Disponível em: {http://www.gnu.org/ philosophy/free-sw.html}.

HIMANEN, P. A ética dos hackers e o espírito da era da informação: a importância dos explo- radores da era digital. Rio de Janeiro: Campus, 2001.

JUNIOR, G. C. S.; SOARES, D. d. Q. A forca da ação voluntária em comunidades de softaware livre: uma reflexão antropológica. VI Jornada Internacional de Políticas Públicas, 2013. MACIEL, A. C. Padrões de socialização de novatos em projetos de software livre. Campo Mou- rao, 2014.

MADEY, G.; FREEH, V.; TYNAN, R. The open source software development phenomenon: An analysis based on social network theory. AMCIS 2002 Proceedings, p. 247, 2002.

NASCIMENTO, L.; SANTORO, F. Análise de interações nas comunidades virtuais de software livre. Simpósio Brasileiro de Sistemas de Informação, Brasília: Brasil, 2009.

PARK, Y.; JENSEN, C. Beyond pretty pictures: Examining the benefits of code visualization for open source newcomers. In: IEEE. Visualizing Software for Understanding and Analysis, 2009. VISSOFT 2009. 5th IEEE International Workshop on. [S.l.], 2009. p. 3–10.

RAYMOND, E. S. A catedral e o bazar. 1998. URL: http://www. geocities. com/CollegePark/Union/3590/pt-cathedral-bazaar. html, 2002.

SANTOS, F. C. d. Peripécias de agosto: alguns episódios da cena hacker. Fronteiras, São Leopoldo-RS, v. 4, n. 2, p. 79–101, 2002.

SOUZA, M. S. Software Livre e o mito do voluntariado. 2014.

Disponível em: {http://jornalggn.com.br/blog/luisnassif/

software-livre-e-o-mito-do-voluntariado}.

STEINMACHER, I.; SILVA, M. A. G.; GEROSA, M. A. Barriers faced by newcomers to open source projects: a systematic review. In: Open Source Software: Mobile Open Source Tech- nologies. [S.l.]: Springer, 2014. p. 153–163.

STEINMACHER, I.; WIESE, I. S.; CHAVES, A. P.; GEROSA, M. A. Newcomers withdrawal in open source software projects: Analysis of hadoop common project. In: IEEE. Collaborative Systems (SBSC), 2012 Brazilian Symposium on. [S.l.], 2012. p. 65–74.

STEINMACHER, I.; WIESE, I. S.; GEROSA, M. A. Recommending mentors to software pro- ject newcomers. In: IEEE. Recommendation Systems for Software Engineering (RSSE), 2012 Third International Workshop on. [S.l.], 2012. p. 63–67.

ZHOU, M.; MOCKUS, A. What make long term contributors: Willingness and opportunity in oss community. In: IEEE PRESS. Proceedings of the 34th International Conference on Software Engineering. [S.l.], 2012. p. 518–528.

Documentos relacionados