Você está na página 1de 54

Instituto Federal de Educação, Ciência e

Tecnologia de São Paulo


Campus São João da Boa Vista

Lucas Henrique Barbosa Silva

PLATAFORMA OPEN-SOURCE PARA


APOIO AO DESENVOLVIMENTO DE
TRABALHOS ACADÊMICOS DE
CONCLUSÃO DE CURSO DE
GRADUAÇÃO

São João da Boa Vista - SP


2017
Lucas Henrique Barbosa Silva

PLATAFORMA OPEN-SOURCE PARA


APOIO AO DESENVOLVIMENTO DE
TRABALHOS ACADÊMICOS DE
CONCLUSÃO DE CURSO DE
GRADUAÇÃO

Trabalho de conclusão de curso


apresentado ao Instituto Federal de
São Paulo, como parte dos requisitos
para a obtenção do grau de Tecnólogo
em Sistemas para Internet.

Área de Concentração: Desen-


volvimento Web

Orientador: Prof. Me. David Buzatto

São João da Boa Vista - SP


2017
Folha destinada à inclusão da Catalogação na Fonte - Ficha Catalográfica (a ser solicitada à
Biblioteca IFSP – Câmpus São João da Boa Vista e posteriormente impressa no verso da Folha de Rosto
(folha anterior).

Catalogação na Fonte preparada pela Biblioteca Comunitária “Wolgran Junqueira Ferreira” do IFSP –
Câmpus São João da Boa Vista

Lucas Henrique Barbosa Silva


PLATAFORMA OPEN-SOURCE PARA APOIO AO DESENVOLVIMENTO DE
TRABALHOS ACADÊMICOS DE CONCLUSÃO DE CURSO DE GRADUAÇÃO/
Lucas Henrique Barbosa Silva. – São João da Boa Vista - SP, 2017-
52 p. : il. (algumas color.) ; 30 cm.

Orientador: Prof. Me. David Buzatto

Tipo – Instituto Federal de Educação, Ciência e Tecnologia de São Paulo


Campus São João da Boa Vista , 2017.
1. Palavra-chave 1. 2. Palavra-chave 2. 3. Palavra-chave 3. I. Orientador. II.
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo. III. Título
AGRADECIMENTOS

À instituição por fornecer todos os meios para que esta graduação chegasse ao fim
e conseguentemente esse trabalho pudesse ser desenvolvido.
Aos meus pais pela dedicação e oportunidade de ser quem eu sou devido a seus ensina-
mentos.
Aos amigos e família por suportar a distancia sem se afastar e entender a importancia de
tudo que estava sendo feito.
Ao meu orientador que não desistiu de mim nos momentos em que me afastei e sempre
esteve do meu lado.
Aos professores dessa instituição que tanto admiro pelo profissionalismo e dedicação,
mesmo com vários problems sempre estavam ali prontos para ajudar.
Aos meus amigos das republicas pelas quais passei que foram bem mais que amigos, se
tornaram minha família fora de casa e fizeram com que uma casa qualquer se tornasse um lar
“Any fool can write code that a
computer can understand. Good
programmers write code that
humans can understand”.

Martin Fowler
SILVA, Lucas Henrique Barbosa. Plataforma open-souce para apoio ao desenvol-
vimeto de trabalhos acadêmicos de conclusão de curso de graduação :. 2017.
Graduação – Instituto Federal de São Paulo, São João da Boa Vista. 2017.

RESUMO
Este trabalho apresenta o desenvolvimento de um software para o apoio ao desenvolvimento
de trabalhos de conclusão de curso, dado as dificuldades que os graduandos encontram
nessa fase da vida acadêmica. Sistemas de controle de versão tem sido um grande aliado
de empresas no desenvolvimento de software e projetos em geral. Neste contexto, o
gerenciamento de documentos no desenvolvimento do TCC, vem como uma ferramenta de
auxilio ao graduando trazendo soluções úteis para seu desenvolvimento. No desenvolvimento
deste trabalho foram aplicadas técnicas de controle de versão e geração de arquivos, assim
como um editor para facilitar a escrita do autor. Primeiramente foram definidos os
objetivos, então uma revisão bibliográfica foi escrita com conteúdos relevantes ao assunto,
após isso o sistema foi modelado e prototipado, por fim o projeto foi concebido sobre uma
plataforma que utiliza PHP e MySQL como alicerces. Espera-se que com o software em
produção o desenvolvimento de trabalhos de conclusão de curso sejam facilitados através
das ferramentas fornecidas pela ferramenta, assim como a interação orientador-orientado
seja mais simples e direta.

Palavras-chave: Controle de versão; Repositório; TCC.


SILVA, Lucas Henrique Barbosa. Plataforma open-souce para apoio ao desenvol-
vimeto de trabalhos acadêmicos de conclusão de curso de graduação :. 2017.
Graduação – Instituto Federal de São Paulo, São João da Boa Vista. 2017.

ABSTRACT
This paper presents the development of support software to final projects development,
given the challenges faced by undergraduate students in this part of their course. Version
control systems have been a great ally to software development companies and general
projects. In this context, the management of documents during a final project development,
comes as a tool of assist undergraduates, bringing useful solutions for their development
process. Version control and files generation techniques have been applied in the devel-
opment of this paper to improve and assist the author writing. The first step was the
goals definition, then a bibliographic review was written with the relevant content to the
paper subject, after that the system was modeled and prototyped, finally the project was
conceived on a platform that uses PHP and MySQL as a foundation. It is expected that
as the software is released the development of final projects will be improved through the
tools provided by the support software, as well as the professor and student communication
in a simpler and easier.

Keywords: Control Version; Repositories; TCC.


LISTA DE ILUSTRAÇÕES

Figura 1 – Esquema Update, Commit em sistemas Centralizados . . . . . . . . . . 27


Figura 2 – Esquema commit, update para sistemas distribuídos. . . . . . . . . . . 27
Figura 3 – Esquema do funcionamento Push e Pull . . . . . . . . . . . . . . . . . 29
Figura 4 – Base de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Figura 5 – Tela - Novo Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Figura 6 – Tela - Sessões e Versões . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Figura 7 – Tela - Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Figura 8 – Tela - Classe de compilação . . . . . . . . . . . . . . . . . . . . . . . . 40
Figura 9 – Tela - Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Figura 10 – Tela - Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Figura 11 – Tela - Lista de Projetos . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Figura 12 – Tela - Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Figura 13 – Tela - Projeto Sessão . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Figura 14 – Tela - Projeto Versão . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Figura 15 – Tela - Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Figura 16 – Tela - Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Figura 17 – Tela - Área do orientador . . . . . . . . . . . . . . . . . . . . . . . . . 48
LISTA DE TABELAS

Tabela 1 – Requisitos do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 36


LISTA DE ABREVIATURAS E SIGLAS

CVCS Centralized Version Control System (Sistemas de Controle de Versão


Centralizados).

SCV Sistema de Controle de Versões .

SO Sistema Operacional.

SCCS Source Code Control System.

RCS Revision Control System.

GNU General Public License Version


SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.1 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3 Organização Deste Trabalho . . . . . . . . . . . . . . . . . . . . . . . 21

2 REVISÃO DA LITERATURA . . . . . . . . . . . . . . . . . . . . . . 23
2.1 Engenharia de Software . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.1 Processo de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1 Tipos de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 Software Open-Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3 Sistemas de Controle de versão . . . . . . . . . . . . . . . . . . . . . 25
2.3.1 Histórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4 Tipos de Controle de Versão . . . . . . . . . . . . . . . . . . . . . . . 26
2.4.1 Sistemas centralizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4.2 Sistemas Distribuídos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.3 Vantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.4 Como funciona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5 Principais SVCs no mercado . . . . . . . . . . . . . . . . . . . . . . . 29
2.5.1 Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.5.2 Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.5.3 Mercurial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6 Repositórios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.7 Objetos de aprendizagem . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.7.1 Recursos tecnológicos na educação . . . . . . . . . . . . . . . . . . . . . . 31
2.8 Repositórios de Objetos de Aprendizagem . . . . . . . . . . . . . . . 31
2.8.1 Dspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.9 Processadores de texto . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.9.1 TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.10 Redes Sociais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.10.1 Principais Redes Sociais . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.10.2 Orkut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.10.3 Facebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.10.4 Fórum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.11 Redes Sociais para o apoio acadêmico . . . . . . . . . . . . . . . . . 32
2.11.1 Ebah . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.11.2 Passei Direto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.12 Educação a distância . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.12.1 Fóruns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1 O processo de pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.1 A pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 O desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.1 Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.2 Levantamento de requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.3 Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.4 Base de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3 Objetos e atores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.1 Projetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.2 Sessões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3.3 Versões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3.4 Editor Latex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.5 Classe de complilação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.6 Usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.1 O Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3 Tela inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.4 Novo Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.5 O Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.6 Área do orientador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.7 Gerador Latex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5 CONCLUSÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1.1 Editor Latex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1.2 Banco de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
19

1 INTRODUÇÃO

Este trabalho tem como foco o desenvolvimento de uma plataforma de código


aberto – Open-Source – para o auxílio no desenvolvimento de trabalhos de conclusão de
curso, onde o aluno poderá sanar dúvidas quanto ao seu projeto com a ajuda de terceiros
que irão acessar a plataforma, além de poder consultar normas ABNT e outras regras
para que seu desenvolvimento seja rápido e conciso, ainda servirá como um repositório
para os trabalhos já desenvolvidos e aprovados.
Softwares Open-Source têm sido muito úteis para a evolução de ferramentas, pois
qualquer pessoa pode alterar e incluir novas funcionalidades, de modo que uma comunidade
se forme em torno do software, fazendo com que ele se torne mais conciso no mercado.
O software para controle de versão tem sido um grande aliado da engenharia de soft-
ware, sendo utilizada de pequenos a grandes projetos, desta forma auxiliando no trabalho
em equipe e desenvolvimento modular. Ao trazer estes conceitos para o desenvolvimento
de TCC, pode-se agilizar a produção e validação dos documentos, sempre mantendo o
passo anterior, para consulta e possível rollback.
Repositórios são utilizados no dia a dia em todas as plataformas e áreas que utili-
zam sistemas de informação, um exemplo disso são as distribuições Linux, onde softwares
podem ser instalados a partir de repositórios de arquivos facilitando assim a obtenção e
atualização do programa, são utilizados em larga escala em plataformas educacionais e de
pesquisa acadêmica.
No dia a dia de um aluno em processo de desenvolvimento do TCC muitas di-
ficuldades são encontradas e devem ser levadas em consideração para que o projeto do
desenvolvimento seja o mais completo e simples de ser realizado possível, por exemplo,
contato com o orientador, respostas direcionadas diretamente para o seu problema, controle
de arquivos e referências, busca por normas ABNT entre outras dúvidas tão comuns nessa
fase da vida acadêmica.
Para sanar os problemas supracitados existem softwares e sites que visam o aprimo-
ramento destas atividades, como o GitHub para gerenciamento de versões e KnowledgeTree
para gerenciamento de arquivos, porém hoje não é possível utilizar apenas uma ferramenta
para todas estas ações.
Desta forma o sistema foco deste trabalho deverá ser a aplicação que ajudará na
performance e qualidade da escrita do documento de TCC ajudando o aluno desde a
pesquisa de referências, passando pelo desenvolvimento e normas até o repositório onde o
trabalho ficará armazenado para que outros alunos repitam o ciclo e a plataforma possa
cada vez mais mostrar sua utilidade.
20 Capítulo 1. Introdução

1.1 JUSTIFICATIVA
Atualmente boa parte dos graduandos têm dificuldades ao desenvolver certas partes
do seu TCC ou possuem dúvidas se o que foi feito está correto ou não. Uma pesquisa
realizada por Oliveira (2014) apontou que entre as principais dificuldades no decorrer
do desenvolvimento do TCC está a dificuldade de acesso a bibliografia atualizada sendo
citada por 40 % dos alunos. Além disso, também foram citadas o desconhecimento das
normas da ABNT (70%) e a falta de disponibilidade de tempo do orientador (50%).
O desenvolvimento deste trabalho irá sanar o acesso a bibliografia, pois será um
repositório que, a longo prazo, poderá ser utilizado para esse fim. O sistema também con-
tará com o acesso as normas ABNT de modo que também poderá resolver este problema e
por último, com o acesso ao fórum e controle de versão, o orientador tem maior autonomia
para ajudar usando menos tempo e recursos, podendo estar mais presente no dia a dia de
desenvolvimento do seu orientado.
Desta forma um software que permite essa interação e velocidade na obtenção de
uma opinião ou informação, aliado ao repositório que servirá como base de pesquisa e
exemplos, tem grande valia para a instituição, pois pode ser aplicado como método padrão
para armazenamento dos projetos desenvolvidos ao longo dos anos, criando assim uma
biblioteca digital própria para consulta.

1.2 OBJETIVOS

1.2.1 Objetivo Geral


Desenvolver um software para apoio ao desenvolvimento de trabalhos de conclusão
de curso.

1.2.2 Objetivos Específicos

• Revisar a literatura, buscando por ferramentas desenvolvidas para apoiar estudantes


no desenvolvimento de seus trabalhos acadêmicos;

• Estudar o funcionamento de sistemas de controle de versão;

• Levantar os requisitos para o desenvolvimento da ferramenta proposta;

• Implementar o software.
1.3. Organização Deste Trabalho 21

1.3 ORGANIZAÇÃO DESTE TRABALHO


Este trabalho está dividido em tês capitulos. No primeiro, é apresenada a introdução,
justificativa e os objetivos do projeto, no segundo capítulo é apresentada a referência
bibiográfica do trabalho, passando por engenharia de software, tipos e processos de software,
entrando nas especificidades deste projeto e tocando nos assuntos de controle de versão,
softwares de controle de versão, objetos de aprendizagem e seus principais repositórios,
processadores de texto. Neste capitulo também se encontra breve históricos das principais
redes sociais e redes sociais de apoio acadêmico, além de tópicos sobre educação a distância
e fóruns de discussão.
No Capítulo três são especificados os requisitos, recursos e processos de construção do
software.
23

2 REVISÃO DA LITERATURA

2.1 ENGENHARIA DE SOFTWARE


Segundo Sommerville (2007) engenharia de software pode ser definida por uma ma-
téria da engenharia que se relaciona a todos os aspectos da produção de um software, desde
os estágios de especificação até o estágio de manutenção, passando pelo desenvolvimento,
teste e gerencia de equipe.

2.1.1 Processo de Software


Ainda de acordo com Sommerville (2007), um processo de software é um conjunto
de atividades e resultados que tem como resultado um produto de software e podem ser
divididos em quatro atividades fundamentais que devem ser comuns a todos os processos
de desenvolvimento de um software, são elas:

• Especificação do Software: as partes interessadas definem o software e suas restrições.

• Desenvolvimento de Software: momento onde o software é desenvolvido.

• Validação de Software: momento onde são realizados os testes e validação dos


requisitos desenvolvidos.

• Evolução do software: quando o software passa a receber alterações.

2.2 SOFTWARE
Segundo Paulino (2015), software é uma sequência de instruções a serem seguidas
ou executadas, na manipulação de um dado ou acontecimento, é também o nome dado
ao comportamento de um computador ao executar essa sequência de comandos. Também
existe a definição para Engenharia de software que não inclui somente o código, mas
toda a documentação, manuais e especificações. Para a contabilidade software é um bem
financeiro.

2.2.1 Tipos de Software


Paulino (2015), especifica em seu artigo “Tipos de Software - Você realmente sabe
o que é um Software?” os tipos de software encontrados atualmente no mercado, são eles:
24 Capítulo 2. Revisão da Literatura

• Software de sistema: Dividido em sistemas operacionais e programas utilitários, onde


o primeiro é o programa principal de um computador que provê a plataforma para
que os programas utilitários façam seu papel, este segundo, por sua vez, realizam
ações especificas dentro do sistema operacional como, verificação de disco, memória,
informações do sistema, etc.

• Software aplicativo: São programas que o usuário utiliza para realização de tarefas
específicas, por exemplo: Word, Netbeans, Paint, entre outros.

• Linguagem de programação: Com este tipo de software pode-se criar novos softwares
com as mais distintas características.

• Software como serviço: Conhecido como SaaS (Software as a Service) é uma modali-
dade de software onde o mesmo não é instalado localmente e sim acessado em uma
plataforma web, o facebook é um exemplo.

• Software de exercitação: Onde além de ensinar um conteúdo há uma interação maior


com o usuário.

• Software de investigação: ferramenta onde se pode encontrar diversas informações,


enciclopédias podem ser usadas como exemplo.

• Softwares de Simulação: são aqueles que reproduzem com a maior fidelidade possível
coisas do mundo real, por exemlo: Simuladores de Avião e Construção civil.

• Software de jogos: Relacionados a entretenimento, através da interação com usuário


o personagem reage de uma determinada maneira.

Pressman cita em seu livro Engenharia de Software (2011) a primeira página da Revista
“Bussiness Week”, onde a manchete era “Software: A Nova Força Propulsora”, porém
o software passou por problemas de defasagem a o mesmo livro cita uma manchete,
agora do renomado jornal “The Furtune” onde o texto era acompanhado do título “Uma
Crescente Defasagem de Software” que demonstrava a preocupação do mercado com a
qualidade dos softwares, outras matérias no decorrer da década de 80 e 90 reforçavam
esse problema, confiar ou não na automatização de processos através dos softwares, estas
manchetes demonstraram a criação de uma consciência sobre a importância dos padrões de
desenvolvimento de software e os perigos que um software mal produzido pode representar.
Sommerville (2007) define que, um bom software deve ter quatro atributos básicos, são
eles:

• A facilidade de manutenção: O software deve ser produzido de modo que a manutenção


e a evolução sejam realizadas de maneira simples e corriqueira, este é um atributo
fundamental pois a mudança de um software é algo inevitável.
2.3. Sistemas de Controle de versão 25

• Confiança: Um software confiável possui algumas características entre elas se destacam


a confiabilidade a proteção e a segurança. Um software confiável, em caso de falha,
não deve causar danos físicos ou econômicos.

• Eficiência: O software deve usar de maneira adequadas os recursos do sistema.

• Usabilidade: O software deverá apresentar interface compatível com o tipo de usuário


que deverá utilizá-lo.

2.2.2 Software Open-Source


A licença criada pela Open Souce Iniciative (OSI) determina que o programa de
código aberto deve garantir a livre distribuição, não deve de maneira nenhuma restringir
que o software seja vendido ou distribuído, sendo ele parte de outro programa ou não,
segundo Simeone (2015).

2.3 SISTEMAS DE CONTROLE DE VERSÃO


Segundo Mason (2006), um SCV é definido por: um local para armazenamento
de artefatos gerados durante o desenvolvimento de sistemas de software. Ainda segundo
Mason, ao utilizar um Controle de versão o usuário não sabe exatamente onde os arquivos
estão sendo salvos e o que realmente acontece é que estes elementos são armazenados em
repositórios, que são representadas como uma das partes de um sistema de controle de
versão.
Em grande parte dos Sistemas de Controle de Versão é implementado um repositório
como principal meio de armazenamento de copias principais para as versões de determinado
software, eles podem ser utilizados como banco de dados ou arquivos salvos em discos, em
alguns casos podem ser utilizados em conjunto. Permite reverter arquivos e documentos a
um estado anterior, comparar as mudanças realizadas através do tempo, verificar o autor
da alteração. Podem ser divididos em três categorias: locais, centralizados ou distribuídos.

2.3.1 Histórico
Na decada de 60 com o marco da computação, houve criação do SO Unix. O
Unix foi inicialmente desenvolvido em Assembly e depois traduzido para C. já na decada
de 70 encontrou-se uma grade dificuldade entre o controle das versões dos kernels para
varios desenvolvedores, para sanar o problema Malcolm Douglas McIlroy decidiu criar
a ferramenta diff, utilizou como base um artigo publicado com James W. Hunt (22). O
problema original do do diff era encontrar a maior subsequência comum ou “Longest
Common Subsequence (LCS) Problem”, em inglês, para identificar onde inserções ou
remoções foram realizadas em um arquivo. Pouco tempo depois ainda na década de
26 Capítulo 2. Revisão da Literatura

70, Larry Wall, criou uma ferramenta de nome patch para que mudanças baseados em
diferenças encontradas pelo diff pudessem ser incluídas no arquivo, ainda hoje o diff é
utilizado em SCV atuais. O SCCS foi o primeiro SCV desenvolvido pela Bell em 1972,
foi amplamente utilizado e só caiu em depreciação com o lançamento do RCS em 1982
desenvolvido por Walter F. Tichy. Apesar de possuir mais recursos que o SCCS o RCS
ainda trabalhava com apenas um arquivo por vez e também não havia acesso a redes. No
meio da década de 80, Dick Grune, criou uma série de scripts com a finalidade de adicionar
novas características ao RCS que foram utilizados por Brian Berliner quando escreveu
um programa que se tornou base para o CVS que facilitou o trabalho e colaboração na
evolução do desenvolvimento de códigos, onde era possível trabalhar através de uma rede
de computadores.
Assim se inicia a segunda geração dos SCV. Em 1999, a recém criada CollabNet,
iniciou um projeto para substituir o CVS que foi lançada com o nome de Subversion.
Tinha como principal intenção criar um SVC a partir do CVS, porém melhor desenvolvido,
com menos bugs e mais funcionalidades. Atraves da colaboração de desenvolvedores que
procuravam algo além do CVS, a CollabNet conseguiu evoluir usando o conhecimento já
existente. Dessa forma, o desenvolvedor que já utilizava o CVS poderia facilmente migrar
para o subversion, pois os sistemas eram parecidos Porém ainda havia o problema da
centralização, a maioria das operações necessitavam de acesso ao servidor. A quebra desse
paradigma perimitiu que outros SVC fossem criados, eles foram chamados de terceira
geração, onde a principal caracteristica era adotar o modelo distribuído. Estes SCVs foram
desenvolvidos e estão sendo utilizados atualmente em grandes sistemas como GitHub,
Launchpad e GoogleCode (MOURA, 2013).

2.4 TIPOS DE CONTROLE DE VERSÃO


2.4.1 Sistemas centralizados
Onde os arquivos de desenvolvimento são salvos em apenas um servidor e comparti-
lhado entre vários usuários, através de um CVCS, baseado na arquitetura cliente-servidor.
Pontos positivos: gerenciamento do repositório e arquivos realizado por um software.
Pontos negativos: centralização do repositório, velocidades de download e upload baseadas
na rede.
O esquema de commit e update de sistemas centralizados pode ser visualizado na
figura abaixo. (DEVMEDIA, 2016).
2.4. Tipos de Controle de Versão 27

Figura 1 – Esquema Update, Commit em sistemas Centralizados

2.4.2 Sistemas Distribuídos


Cada usuário possui uma cópia completa do repositório que é atualizada de acordo
com informações salvas por outros usuários. Pontos positivos: gerenciamento do repositório
e arquivos realizado por um software, descentralização do repositório. Pontos negativos:
velocidades de download e upload baseadas na rede, necessidade de um maior conhecimento
da ferramenta. O esquema de commit e update de sistemas Distribuídos pode ser visualizado
na figura abaixo. (DEVMEDIA, 2016)

Figura 2 – Esquema commit, update para sistemas distribuídos.

2.4.3 Vantagens

• Controle do histórico: Traz a facilidade de desfazer alguma ação realizada em um


projeto, sendo possível a analise do projeto, recuperação de versões antigas, descrição
de responsabilidade e comparação de códigos;
28 Capítulo 2. Revisão da Literatura

• Trabalho em equipe: Permite que muitas pessoas trabalhem nos mesmos documentos
ou em documentos dependentes um do outro ao mesmo tempo, minimiza os erros
causados por alterações indevidas que impactam no restante do projeto.

• Controle de estabilidade: Controla e marca as versões estáveis do sistema, criando


cópias para que possam ser revertidas no futuro, se necessário;

• Ramificação: Permite que versões diferentes sejam desenvolvidas ao mesmo tempo,


trabalhando paralelamente sem que um interfira o outro. (PRONUS, 2016)

2.4.4 Como funciona


O sistema depende basicamente de um servidor que possui um ou mais repositórios,
onde as versões são salvas e podem ser recuperadas, este servidor grava estas informações
de forma persistente, cada desenvolvedor possui uma cópia do arquivo em sua área de
trabalho, que pode variar de acordo com o tipo de disposição do sistema que é adquirido
através de um update, e pode ser chamada também de cópia de trabalho, a cada atualização
do arquivo é necessário realizar uma submissão ou, como é comumente chamado, commit.
A principal característica do SCV é disponibilizar as versões do sistema de forma
ordenada e segura para que uma versão anterior possa ser restaurada quando necessário.
Outra função importante do SCV é permitir que arquivos sejam trabalhados por usuários
diferentes e que eles não apresentem problemas quando o commit for realizado Quando
mais de um usuário edita o mesmo e salva um arquivo ao mesmo tempo, o sistema verifica o
problema e permite que o arquivo seja mesclado, mostrando as alterações, onde o processo
pode ser automático ou manual de acordo com o SCV e a opção do usuário, este processo
pode ser chamado de sincronização, conforme visualizado na figura 3.
Essa sincronização é realizada através dos, já citados, comandos chamados “commit”
ou “check-in” e, “update” nos sistemas centralizados e distribuídos, além dos comandos
pull e push apenas para os distribuídos. O commit envia ao SCV um pacote com as
modificações realizadas, informações sobre autores, data e hora, para que seja verificada a
versão e se o arquivo alterado foi modificado previamente por outro usuário. O update
envia ao SVC o arquivo de fato para que possa ser salvo. Cada commit gera uma nova
revisão contendo as informações passadas no pacote inicial. Cada revisão funciona como
um backup dos arquivos e pode ser comparado e sincronizado com o usuário, um conjunto
de revisões é o histórico do projeto, O Pull atualiza o repositório local com as alterações
de outro repositório enquanto o Push atualiza outro repositório com as alterações locais,
este processo está exemplificado na figura a seguir (PRONUS, 2016)
2.5. Principais SVCs no mercado 29

Figura 3 – Esquema do funcionamento Push e Pull

2.5 PRINCIPAIS SVCS NO MERCADO

2.5.1 Subversion
SCV de código aberto – Open-Source – desenvolvido pela CollabNet e Atualmente
mantido pela Apache Software Fundation é um dos sistemas mais aceitos entre os desen-
volvedores é, inclusive, utilizado pelo Google no projeto Code. Pode ser utilizado através
de clients que são desenvolvidos para cada sistema operacional, os mais utilizados são:
TortoiseSVN para Windows, Xcode para MAC e RabbitVCS para Linux.

2.5.2 Git
"O Git é um sistema de controle de versão distribuído. Inicialmente, ele foi desen-
volvido pelo Linus Torvalds, e assim usado no desenvolvimento do Kernel do Linux. O
invento deve-se ao fato que Torvalds estava em busca de algo relativamente rápido para
conseguir lidar com uma série constante de atividades ligadas ao Linux. Sem sucesso em
algo que pudesse ser útil, desenvolveu o Git."(PRONUS, 2015)

2.5.3 Mercurial
O Mercurial é um sistema de código aberto que utiliza a arquitetura distribuída. É
considerado um dos SCVs mais rápido do mercado além de ser recomendado para sistemas
mais robustos, é distribuído sob a licença GNU.
30 Capítulo 2. Revisão da Literatura

2.6 REPOSITÓRIOS
Repositórios digitais são coleções de informação digital, que podem ser construídas
de diferentes formas e com diferentes propósitos. Podem ser colaborativos e com um
controle suave dos conteúdos e da autoridade dos documentos, tal como as dirigidas para o
público em geral (a Wikipedia é um exemplo). Mas podem, também, ter um alto nível de
controle e ser concebidas para promover o ensino e uma aprendizagem responsável, dirigidos
a públicos específicos de utilizadores, como, por exemplo, os estudantes.(MARTINS, 2015)

2.7 OBJETOS DE APRENDIZAGEM


A tecnologia é capaz de realizar mudanças profundas no modo como as coisas
são realizadas acompanhadas de grandes inovações tecnológicas, a internet é uma delas.
Após varias mudanças em várias áreas da atuação humana essas inovações estão sendo
utilizadas no modo como se aprende e na forma como o material de aprendizagem é
desenvolvido e distribuído, a tecnologia que se destaca nesse cenário é chamada de objeto
de aprendizagem. Os objetos de aprendizagem baseiam-se no conceito da programação
orientada a objetos (POO), onde componentes nomeados “Objetos” podem ser reutilizados
em outros contextos. Desta forma podem ser desenvolvidos pequenos OAs que podem
ser reutilizados por outros desenvolvedores, além disso a forma como são distribuídos
fazem com que a vantagem sobre outros métodos instrucionais aumente, pois podem ser
acessados via internet a qualquer momento e lugar, diferente dos métodos tradicionais,
o usuário ainda poderá se beneficiar de atualizações e ter acesso a novos conteúdos em
tempo real. Um professor, usualmente, segmenta o material a ser estudado em partes
pertinentes para que o processo seja facilitado. A segmentação dos OAs permite que esse
processo seja acelerado, pois já é entregue ao professor da forma como deve ser aprendido.
(WILEY, 2000)
“Objetos de aprendizagem são recursos digitais dinâmicos, interativos e reutilizáveis
em diferentes ambientes de aprendizagem elaborados a partir de uma base tecnológica”.(
AUDINO; NASCIMENTO 2010 , p. 141).
“O Objeto de Aprendizagem é definido como uma entidade, digital ou não-digital,
que pode ser usada, reusada ou referenciada durante o ensino com suporte tecnológico.
Exemplos de ensino com suporte tecnológico incluem sistemas de treinamento baseados no
computador, ambientes de aprendizagem interativa, sistemas instrucionais auxiliados por
computador, sistemas de ensino a distância e ambientes de aprendizagem colaborativa.
Exemplos de Objetos de Aprendizagem incluem conteúdo multimídia, conteúdos instruci-
onais, objetivos de ensino, software instrucional e software em geral bem como pessoas,
organizações ou eventos referenciados durante a aprendizagem apoiada por tecnologia”.
(LOM, 2000).
2.8. Repositórios de Objetos de Aprendizagem 31

2.7.1 Recursos tecnológicos na educação


Para Braga (2013) a utilização de recursos tecnológicos cria um novo significado
para a forma como o processo educacional é aplicado, levando em conta a velocidade que a
informação chega ao aluno e como ele pode aplicar no seu dia a dia. Ainda segundo Braga
(2013) com o crescente interesse de profissionais da área de desenvolvimento de software a
quantidade de programas, aplicativos e jogos com o foco educacional tem aumentado de
forma exponencial. Porém também há professores, pesquisadores e alunos que utilizam e
difundem o sistema educacional utilizando recursos digitais.

2.8 REPOSITÓRIOS DE OBJETOS DE APRENDIZAGEM


Repositórios de objetos de aprendizagem são utilizados para divulgação, manutenção
e disponibilização de objetos te aprendizagem.

2.8.1 Dspace
É um software que foi desenvolvido para que repositórios digitais pudessem ser
criados com facilidade podendo, armazenar, gerenciar, preservar e possibilitar a visibilidade
da produção intelectual. Os repositórios do Dspace permitem a gerencia do conteúdo
cientifico digital, melhorando a visibilidade e garantido a acessibilidade por um longo
período. (IBICT, 2012)

2.9 PROCESSADORES DE TEXTO


Processadores de texto, são sistemas que através de uma sintaxe podem gerar
formatações para textos e documentos, é possível também fazer o uso de variáveis e outras
ferramentas pertinentes a linguagens de programação.

2.9.1 TEX
É uma linguagem de código aberto, que permite que textos possam ser criados
através de tags e convenções, desta forma o usuário entra apenas com o texto e o processador
gera o documento de acordo com os parâmetros selecionados. Existem interfaces amigáveis
para o desenvolvimento de textos usando a linguagem TEX, são implementações como:
MikTEX, TEXmaker, TEXstudio, entre outros.
O LATEX é um pacote feito para a preparação de textos impressos de alta qualidade,
especialmente para textos matemáticos. Ele foi desenvolvido por Leslie Lamport a partir
do programa TEX criado por Donald Knuth. (SANTOS, 2012)
32 Capítulo 2. Revisão da Literatura

2.10 REDES SOCIAIS


"Redes sociais são sites criados para que pessoas estabeleçam vínculos de amizade
e relacionamentos, se transforma de acordo com as necessidades para oferecer uma melhor
forma de interação para seus usuários. Elas permitem que sejam compartilhadas vídeos,
imagens, documentos entre outras informações."(MATA, 2012)

2.10.1 Principais Redes Sociais

2.10.2 Orkut
O Orkut foi a primeira grande rede social, lançada em 2004 sem muito alarde pela
gigante do vale do silício Google, foi a rede social mais utilizada do mundo até meados
de 2012. Com comunidades e os recados conhecidos como ‘screps’, além dos famigerados
depoimentos o Orkut foi a sensação dos anos 2000 entre os adolescentes e até adultos.
Porém a falta de novos recursos e a “infantilização” do site fez com que os usuários
partissem para outras redes sociais. Hoje o Orkut foi desativado pela Google.

2.10.3 Facebook
Segundo (MATA (2012), p19), “O Facebook é a expressão máxima do impacto que
uma rede social pode causar na sociedade digital”. Atualmente a maior rede social com a
maioria esmagadora dos usuários, além de ser profissional, com, inclusive, a possibilidade
de se trabalhar através dela, moldou uma nova era nas redes sociais a era em que as redes
sociais não são mais banalizadas como um passa tempo e sim como uma ferramenta útil
no dia a dia, pessoal e profissional.

2.10.4 Fórum
Fórum é outra modalidade de rede social onde usuários se encontram em um site
dividido por interesses e tópicos. Os assuntos abordados são pertinentes aos tópicos e vão
desde discussão de política a reviews de equipamentos eletrônicos.

2.11 REDES SOCIAIS PARA O APOIO ACADÊMICO


Com a necessidade de se conectar mais rapidamente e obter melhores respostas,
surgiram opções de redes sociais voltadas para o meio acadêmico, essas redes sociais se
focam em vídeo aulas de assuntos diversos, fóruns de dúvidas e repositório de documentos.
Os principais no Brasil são o Ebah e Passei Direto.
2.12. Educação a distância 33

2.11.1 Ebah
Segundo o site oficial “O Ebah é uma rede social dedicada exclusivamente ao campo
acadêmico e tem como principal objetivo o compartilhamento de informação e materiais
entre alunos e professores”.

2.11.2 Passei Direto


Passei direto é uma plataforma para o auxilio aos estudos, disponibiliza vídeo aulas
e exercícios resolvidos de temas diversos.

2.12 EDUCAÇÃO A DISTÂNCIA


O desenvolvimento das tecnologias digitais tem favorecido novos paradigmas de
aprendizagem, se distanciando do conceito de uma aquisição formal de conhecimento,
e elaborando um processo social, que requer interação no âmbito do desenvolvimento e
novas competências permitindo que o processo de aprendizagem ocorra por relações e por
um procedimento de construção coletiva e autônoma. Com isso, houve um aumento das
tecnologias que favorecem estes processos de aprender colaborativamente, como a educação
a distancia, EAD. (SOARES, 2014)
Para SOUZA, 2015 a educação sempre esteve em processo de mudanças e acréscimos.
Com a modalidade “a distância” não foi diferente. A 1a Geração de Educação a Distância
(EAD) no Brasil, começou em 1904, por correspondência. A 2a Geração de EAD, com seu
início através do Rádio e, após, pela televisão. Esse início através do Rádio deu-se em
1923, com transmissões educativas pela Rádio Sociedade Rio de Janeiro. Nas décadas de
1970 e 1980 iniciava-se a oferta de cursos supletivos à distância, no modelo de teleducação.
Em 1994 tem início a expansão da Internet no ambiente universitário surgindo, então, a 3a
geração de educação à distância, sendo a 4o e 5o geração com a integração e na perspectiva
sistêmica no uso das diferentes mídias nos espaços de aprendizagem.
A EAD é uma ferramenta interativa, utilizada para facilitar a construção da apren-
dizagem, priorizando a interação entre os participantes do curso. Portanto, os cursos à
distância têm que se adaptar à evolução das novas tecnologias, para atender a demanda
de mercado e a inserção dos profissionais que estão se formando, a partir desta nova
modalidade de ensino.(BARROS, 2014)

2.12.1 Fóruns
Frente a este desenvolvimento e a necessidade de criação de tecnologias que aten-
dam essa demanda, algumas ferramentas são utilizadas, como por exemplo, o fórum de
34 Capítulo 2. Revisão da Literatura

discussão. Ele é considerado uma técnica de comunicação onde várias pessoas conversam
sobre um tema de interesse comum, ou seja, um espaço para debates onde possa acontecer
o vinculo de construção e desconstrução de um determinado assunto em um ambiente
centrado na interação online, com questionamentos e respostas, em busca de alternativas
aos que utilizam, sendo então uma ferramenta assíncrona, que não depende de tempo e
lugar, podendo inovar o processo de interação com professores e estudantes. (BARROS,
2014; LINS, 2009)
35

3 METODOLOGIA

3.1 O PROCESSO DE PESQUISA


Nesta seção serão descritas as principais linhas de estudo para o desenvolvimento
do software, assim como suas arquiteturas, linguagens, ferramentas e documentação.

3.1.1 A pesquisa

A pesquisa foi baseada em livros e conteúdo relevante encotrados na internet, para


a construção de uma base sólida para cada um dos temas que foram tratados durante
o desenvolvimento do software. Foi realizado pelo aluno Lucas Henrique Barbosa Silva,
graduando do curso de Tecnologia em Sistemas para Internet do IFSP campus São João
da Boa Vista entre os anos de 2015 e 2017.

3.2 O DESENVOLVIMENTO
O sistema foi desenvolvido utilizando-se de um template open-source encontrado na
internet, este template foi customizado para que pudesse dar suporte as funcionalidades que
serão descritas abaixo, também foram utilizadas como suporte a classe "pdfLatex.php"que
permite que os arquivos latex sejam compilados em PDF, através de ums distribuição latex
instalada no servidor. Também foi utlizada a biblioteca "highlight.js", que permitiu que
as sintaxes dentro do editor pudessem ser marcadas, facilitando a visualização e edição.
O sistema de templates foi todo desenvolvido pelo autor utilizando a template engine
"dwoo.php", que permite através de sintaxe própria a apresentação de views.

3.2.1 Recursos

O sistema foi desenvolvido utilizando um servidor com sistema operacional Ubuntu


14.06 com apache e MySQL 5.6, o servidor e roda em um computador com processador
intel core i5 1.6 Ghz, 8 Gb de memória ram.
Foi utilizado a IDE Netbeans na versão 8.2, o editor de textos Sublime Text na versão 3 e
o Gerenciador de Banco de dados DBForge studio for MySQL express na versão 7.2.
Para o desenvolvimento de protótipos de baixa fidelidade foi utilizado o programa Balsamiq
Mockup na versão 3.5.9.
36 Capítulo 3. Metodologia

3.2.2 Levantamento de requisitos


Foi realizado o levantamento de requisitos, representados na tabela 1, para que as
reais necessidades do projeto sejam executadas, dentro do tempo e esforço disponíveis.
Nessa fase foram avaliadas todas as ferramentas que serão desenvolvidas e aquelas que não
serão necessárias ou possíveis de ser implementadas, será também onde o escopo final será
definido para que o desenvolvimento seja conciso e de acordo com as reais necessidades
expostas nesse trabalho.

Tabela 1 – Requisitos do Sistema


Requisito
O sistema deverá permtir que usuários acessem a área restrita usando um usuário e senha.
O sistema deverá permitir que o usuário com perfil de aluno, crie Projeto, sessão e versão
O sistema deverá sinalizar ao orientador que existem versões de um sessão que ainda não foi respondida
O sistema deverá permitir que o orientador possa visualizar os projetos de seus orientandos
O sistema deverá permitir que o orientador responda a versões criadas por seus orientandos
O sistema deverá permitir que o usuário edite latex dentro da própria plataforma
O sistema deverá possuir a capacidade de criar arquivos PDF através de um compilador LATEX

Fonte: Elaborada pelo autor

3.2.3 Implementação
O processo de desenvolvimento utilizado foi orientado a objetos, foram desenvolvidas
as classes dos objetos que serão utilizados no sistemas e criados as views, models, controllers
e DAOs de cada modulo.

3.2.4 Base de Dados


A base de dados desenvolvida para o projeto pode ser visualizada no diagrama
abaixo.
3.3. Objetos e atores 37

Figura 4 – Base de Dados

Fonte: Elaborada pelo autor

3.3 OBJETOS E ATORES


3.3.1 Projetos
Um projeto é a representação do TCC dentro do software, um projeto possui nome,
orientador e descrição. Projetos possuem sessões e versões, que serão demonstradas nas
próximas sessões. A imagem abaixo demonstra a tela de criação de projetos.
38 Capítulo 3. Metodologia

Figura 5 – Tela - Novo Projeto

Fonte: Elaborada pelo autor

3.3.2 Sessões
Uma sessão é a representação de um capítulo do TCC, é diretamente relacionada
ao seu projeto, uma sessão possui título e é a responsável por conter as versões de cada
capítulo do projeto.

3.3.3 Versões
Uma versão nada mais é que o versionamento da sessão a ser avaliada pelo orientador,
após criada o orientador é capaz de visualizar e dar seu parecer sobre o texto escrito pelo
seu orientado. A tela de versões apresenta todas as sessões de um projeto e cada versão
dessas sessões, conforme a imagem a seguir.
3.3. Objetos e atores 39

Figura 6 – Tela - Sessões e Versões

Fonte: Elaborada pelo autor

3.3.4 Editor Latex


O editor latex, permite que o usuário edite suas versões dentro do próprio software,
é capaz de inserir uma tag latex através de seu menu de tags ou pressionando a tecla
"contra-barra"onde será apresentado a lista de comandos disponíveis, também mostra a
última resposta do orientador para que o aluno possa saber todas as solicitações.

Figura 7 – Tela - Editor

Fonte: Elaborada pelo autor

3.3.5 Classe de complilação


Uma das classes mais importantes do projeto é a que permite a integração entre o
servidor web e o compilador latex instalado no servidor, segue o código.
40 Capítulo 3. Metodologia

Figura 8 – Tela - Classe de compilação

Fonte: Elaborada pelo autor

3.3.6 Usuário
Usuario é o utilizador do sistema e pode ser dividido em dois tipos:

• Aluno: O tipo de usuário aluno, é capaz de criar projetos, sessões e versões.

• Orientador: O tipo de usuário orientador é capaz de responder a versões criadas em


3.3. Objetos e atores 41

projetos onde ele é orientador.


43

4 RESULTADOS

Como resultado deste projeto aqui está apresentado o software desenvolvido.

4.1 O SOFTWARE

4.2 LOGIN
Ao acessar o sevidor do sistema o usuário irá se deparar com a tela de login, em
posse das credenciais, deverá digita-las e clicar no botão "Entrar".

Figura 9 – Tela - Login

Fonte: Elaborada pelo autor

4.3 TELA INICIAL


Após realizado o login o usuário, do tipo aluno, irá se deparar com a tela "meus
projetos", onde serão listados os projetos que o usuário possui. Para criar um projeto
o usuário deverá clicar no botão "Novo Projeto"e a tela de criação de projetos será
renderizada.
44 Capítulo 4. Resultados

Figura 10 – Tela - Projeto

Fonte: Elaborada pelo autor

4.4 NOVO PROJETO


Um projeto deve ser criado quando um TCC for iniciado e possui, primariamente,
Título, Orientador e Descrição.
Após preencher os dados, o usuário deverá clicar em salvar, então o sistema irá
redirecionar para a tela inicial e mostrar o ultimo projeto criado no topo da lista.

Figura 11 – Tela - Lista de Projetos

Fonte: Elaborada pelo autor

4.5 O PROJETO
Ao clicar no novo projeto será exibida a tela a seguir:
4.5. O Projeto 45

Figura 12 – Tela - Projeto

Fonte: Elaborada pelo autor

O próximo passo é criar uma sessão. Ao clicar no botão, "Nova Sessão"o sistema
mostrará uma tela para a inclusão de uma nova sessão, após a sua criação, a sessão será
exibida na tela de trabalho, conforme imagem abaixo.

Figura 13 – Tela - Projeto Sessão

Fonte: Elaborada pelo autor

Cada sessão do projeto pode possuir várias versões, ao clicar no nome do projeto
serão exibidas as versões existentes e a opção de criar uma nova versão, ao clicar no botão
"Nova Versão"o sistema carregará a tela para criação de uma nova sessão.
46 Capítulo 4. Resultados

Figura 14 – Tela - Projeto Versão

Fonte: Elaborada pelo autor

Nesta tela é possível selecionar uma versão anterior, selecionando no dropdown


"Carregar outras versões". Na caixa "Digite seu texto", poderá ser digitado de forma simples
o texto em latex que será adicionado como nova versão. Ao clicar no botão "Abrir no
Editor", o editor latex será exibido.
4.5. O Projeto 47

Figura 15 – Tela - Editor

Fonte: Elaborada pelo autor

O editor é pode ser utilizado de duas maneiras, a primeira delas é clicando em um


dos botões que irá adicionar uma tag latex ao texto a outra é digitar a tecla "contrabarra",
então será exibida uma lista com os comandos disponíveis.

Figura 16 – Tela - Editor

Fonte: Elaborada pelo autor

Ao salvar o sistema entenderá que a versão foi concluída e voltará para a tela de
sessões, para que o usuário crie uma nova versão ou sessão, para dar continuidade ao
projeto.
48 Capítulo 4. Resultados

4.6 ÁREA DO ORIENTADOR


A área do orientador é bastante simples, ao clicar no projeto, será exibida a tela
de sessões, ao clicar em uma versão, serão exibidas as versões, aquelas que estão em cor
laranja são as que o orientador ainda não respondeu, ao responder o usuário poderá ver o
parecer do seu orientador.

Figura 17 – Tela - Área do orientador

Fonte: Elaborada pelo autor

4.7 GERADOR LATEX


Ao finalizar todas as sessões e elas serem revisadas pelo orientador, o usuário poderá
gerar um arquivo latex, na tela do projeto, o aluno deverá clicar no botão "Gerar Latex"se
tudo estiver correto, uma mensagem com a confirmação será exibida, depois deverá clicar
em "Download último latex"o sistema deverá realizar o download do arquivo criado com
todas as sessões e suas últimas versões.
49

5 CONCLUSÕES

Ao final do desenvolvimento a avaliação é positiva. O objetivo geral, que diz respeito


ao desenvolvimento de um software para a elaboração de trabalhos de conclusão de curso,
foi plenamente alcançado. A literatura foi revisada conforme o esperado e pôde dar base
ao desenvolvimento do controle de versão das seções, os requisitos foram levantados e
desenvolvidos na aplicação, o software foi implementado em um servidor web de acordo
com o que foi planejado.

5.1 TRABALHOS FUTUROS


5.1.1 Editor Latex
A dificuldade em se trabalhar com editores web, principalmente no tocante de
posicionamento de cursor e foco atrapalhou um pouco o desempenho do projeto, algo que
deve ser mais estudado e aprimorado para facilitar a interação do usuário.

5.1.2 Banco de dados


Ao decorrer do projeto, pode-se observar que para o armazenamento de projetos,
seria interessante usar um banco de dados orientado a documentos, como o mongoDB,
por exemplo, pois o banco relacional padrão oferece algumas dificuldades para inserção de
novos campos e verificação de atributos dos projetos.
51

REFERÊNCIAS

AUDINO, D. F.; NASCIMENTO, R. da S. Objetos de aprendizagem - Diálogo


entre conceitos e uma nova preposição aplicada à educação. 2010. Disponível em:
<https://revistas.ufrj.br/index.php/rce/article/view/1620/1468>. Acesso em: 12 de
Novembro de 2016. Citado na página 30.
BARROS, J. O fórum de discussão em EAD e a promoção da Aprendizagem Colaborativa:
as estratégias interacionais utilizadas pelo tutor. 2014. Disponível em: <https:
//www.ufpe.br/nehte/hipertexto2009/anais/m-o/o-forum-de-discussao-em-ead.pdf>.
Acesso em: 30 de maio de 2017. Citado 2 vezes nas páginas 33 e 34.
BRAGA, J. Fundamentos EAD. 2013. Disponível em: <http://nte.ufabc.edu.br/
cursos-internos/ntme/wp-content/uploads/2015/09/FundamentosEaD_Unidade6.pdf>.
Acesso em: 30 de Outubrol de 2016. Citado na página 31.
DEVMEDIA. Sistemas de Controle de Versão. 2016. Disponível em: <http:
//www.devmedia.com.br/sistemas-de-controle-de-versao/24574>. Acesso em: 30 de
Outubro de 2016. Citado 2 vezes nas páginas 26 e 27.
IBICT. Sistema para Construção de Repositórios Institucionais Digitais (DSpace). 2012.
Disponível em: <http://www.ibict.br/pesquisa-desenvolvimento-tecnologico-e-inovacao/
Sistema-para-Construcao-de-Repositorios-Institucionais-Digitais>. Acesso em: 12 de
Novembro de 2016. Citado na página 31.
LINS, R. M. Interatividade na Educação a Distância. 2009. Disponível em:
<http://www.abepro.org.br/biblioteca/ENEGEP2006_TR540364_8555.pdf>. Acesso em:
29 de maio de 2017. Citado na página 34.
MARTINS, A. B. Repositórios Digitais. 2015. Disponível em: <http://www.rbe.min-edu.
pt/news/newsletter3/repositorios.pdf>. Acesso em: 10 de Novembro de 2016. Citado na
página 30.
MASON, M. Pragmatic Version Control: Using Subversion. [S.l.]: Pragmatic Bookshelf,
2006. Citado na página 25.
MATA, D. F. da. O Impacto das Redes Sociais na Sociedade Digital. 2012. Disponível em:
<http://www.fatecsp.br/dti/tcc/tcc00062.pdf>. Acesso em: 12 de Novembro de 2016.
Citado na página 32.
MOURA, M. Comparação Entre Desenvolvedores de Software a partir de
Dados Obtidos em Repositório de Controle de Versão. 2013. Disponível em:
<http://www.inf.ufg.br/mestrado/sites/www.inf.ufg.br.mestrado/files/uploads/
Dissertacoes/marcellomoura_dissertacao.pdf>. Acesso em: 2 de Abril de 2016. Citado na
página 26.
PAULINO Daniel. Tipos de Software - Você realmente sabe o que é um Software? 2015.
Disponível em: <https://www.oficinadanet.com.br/artigo/1908/tipos_de_software_-_
voce_realmente_sabe_o_que_e_um_software>. Acesso em: 15 de Novembro de 2016.
Citado na página 23.
52 Referências

PRESSMAN, R. Engenharia de Sofware - Uma Abordagem Profissional. [S.l.]: AMGH,


2011. Citado na página 24.

PRONUS. O Que é o GitHub. 2015. Disponível em: <https://www.oficinadanet.com.br/


post/14791-o-que-github>. Acesso em: 10 de Maio de 2016. Citado na página 29.

PRONUS. Tipos de Ramos do Controle de Versão. 2016. Disponível em: <http:


//www.pronus.eng.br/artigos_tutoriais/gerencia_configuracao/conceitos_basicos_
controle_versao_centralizado_e_distribuido.php?pagNum=3>. Acesso em: 20 de Agosto
de 2016. Citado na página 28.

SANTOS, R. J. Introdução ao Latex. 2012. Disponível em: <http://www.mat.ufmg.br/


~regi/topicos/intlat.pdf>. Acesso em: 12 de Novembro de 2016. Citado na página 31.

SOARES, L. R. Fóruns de discussão: análise de artigos apresentados no SBIE e no ESUD.


2014. Disponível em: <http://esud2014.nute.ufsc.br/anais-esud2014/files/pdf/127404.
pdf>. Acesso em: 29 de Maio de 20176. Citado na página 33.

SOMMERVILLE ian. Engenharia de Sofware. [S.l.]: Pearson Education do Brasil, 2007.


Citado na página 23.

SOUZA, C. de Fátima de. O Que é o GitHub. 2015. Disponível em:


<FÓRUMCOMOFERRAMENTADEAPRENDIZAGEMCOLABORATIVANAEDUCAÇ~AOADISTÂNCIA
Acesso em: 31 de Maio de 2017. Citado na página 33.

WILEY, D. A. Connecting Learning Objects to Instructional Design Theory. [S.l.]: Utah


State University, 2000. Citado na página 30.

Você também pode gostar