Escolar Documentos
Profissional Documentos
Cultura Documentos
Catalogação na Fonte preparada pela Biblioteca Comunitária “Wolgran Junqueira Ferreira” do IFSP –
Câmpus São João da Boa Vista
À 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.
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.
SO Sistema Operacional.
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
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
• Implementar o software.
1.3. Organização Deste Trabalho 21
2 REVISÃO DA LITERATURA
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.
• 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.
• 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.
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:
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.3 Vantagens
• 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.
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.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.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.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.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.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.1 A pesquisa
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
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.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
3.3.6 Usuário
Usuario é o utilizador do sistema e pode ser dividido em dois tipos:
4 RESULTADOS
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".
4.5 O PROJETO
Ao clicar no novo projeto será exibida a tela a seguir:
4.5. O Projeto 45
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.
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
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
5 CONCLUSÕES
REFERÊNCIAS