Você está na página 1de 106

Ministério da Educação

Instituto Federal de Educação, Ciência e Tecnologia de Goiás


Câmpus Jataí
Coordenação do Curso de Tecnologia em Análise e
Desenvolvimento de Sistemas
Curso Superior de Tecnologia em Sistemas de Informação

SGTCC
SISTEMA GERENCIADOR DE TRABALHO DE CONCLUSÃO DE CURSO

Wagner Júnio da Paz

Jataí, junho de 2015.


Ministério da Educação
Instituto Federal de Educação, Ciência e Tecnologia de Goiás
Câmpus Jataí
Coordenação do Curso de Tecnologia em Análise e
Desenvolvimento de Sistemas
Curso Superior de Tecnologia em Sistemas de Informação

SGTCC
SISTEMA GERENCIADOR DE TRABALHO DE CONCLUSÃO DE CURSO

Trabalho de conclusão de curso apresentado


ao IFG / Câmpus Jataí como parte dos
requisitos necessários para obtenção do
título de Tecnólogo em Sistemas de
Informação.

Wagner Júnio da Paz


Orientador: Prof. Heverton Barros de Macêdo

Jataí, junho de 2015.


Paz, Wagner Júnio da.
PAZ/sgt SGTCC : Sistema de Gerência de Trabalho de Conclusão de
Curso / Wagner Júnio da Paz. - - Jataí: IFG – Campus
Jataí/Coordenação dos cursos de Informática – Tecnologia em
Sistemas de Informação, 2015.

Orientador: Prof. Dr. Heverton Barros de Macêdo.


Bibliografias: fls. 89; il.

1. Trabalho de Conclusão de Curso (TCC) – desenvolvimento de


software. 2. Tema para TCC. I. Macêdo, Heverton Barros de. II.
Título. III. IFG – Campus Jataí: Coordenação dos cursos de
Informática – Tecnologia em Sistemas de Informação.

CDD 005.1

Ficha catalográfica elaborada pela Seção Téc.: Aquisição e Tratamento da Informação


Bibliotecária – Rosy Cristina Oliveira Barbosa - IFG - Campus Jataí. Cod..F 021/15.
Wagner Júnio da Paz

SGTCC
SISTEMA GERENCIADOR DE TRABALHO DE CONCLUSÃO DE CURSO

Monografia apresentada à banca examinadora da Coordenação do Curso de


Tecnologia em Análise e Desenvolvimento de Sistemas do Instituto Federal de
Educação, Ciência e Tecnologia de Goiás – Campus Jataí, como parte dos
requisitos para a obtenção do título de Tecnólogo em Sistemas de Informação.

COMISSÃO EXAMINADORA

___________________________________
Prof. Esp. Danillo Vaz Borges de Assis
IF Goiás / Campus Jataí

___________________________________
Prof. Dr. Aladir Ferreira da Silva Júnior
IFG/ Câmpus Jataí-GO

___________________________________
Prof. Dr. Heverton Barros de Macêdo
IFG/ Câmpus Jataí-GO

Jataí, junho de 2015.


Agradecimentos

Gostaria de agradecer a Deus pela força, capacidade de raciocinar,


determinação, saúde e a tudo que me trouxe a concluir este sistema.

Agradeço a minha mãe Josefa Maria da Paz que nunca mediu esforços para
me oferecer o melhor conforto possível, o que me permitiu ganhar o tempo
necessário para terminar a análise e desenvolvimento.

Deixo também meus agradecimentos ao meu professor e orientador Heverton


Barros de Macêdo, um profissional que sempre auxiliou a sanar as dúvidas relativas
ao projeto.

Quero lembrar também da minha esposa Luana Jane Assis e Silva que
esteve ao meu lado quando eu precisava de palavras de apoio.

Por fim, agradeço a essa instituição e a todos os professores que


contribuíram de algum modo no meu aprendizado.
RESUMO

O Trabalho de Conclusão de Curso (TCC) é uma das etapas mais desafiadoras que
o aluno deve enfrentar durante o seu percurso na universidade. O início do
desenvolvimento do TCC pode trazer dificuldades ao aluno, visto que ele precisa
elaborar um tema adequado e escolher o orientador que o auxiliará durante o
desenvolvimento do trabalho. Na fase de elaboração do tema, a principal dificuldade
está associada à construção da ideia ou propósito a ser estudado, assim como a sua
delimitação. Quanto à escolha do orientador, é necessário que o aluno entre em
contato com vários professores, visando verificar as suas afinidades com o tema
proposto, além de suas disponibilidades para orientação, o que pode se tornar uma
busca desmotivadora. O presente trabalho propõe o desenvolvimento de um
software para reduzir as dificuldades encontradas pelos alunos na fase inicial de
elaboração do TCC. O software intitulado Sistema Gerenciador de Trabalho de
Conclusão de Curso (SGTCC) é um sistema desenvolvido para plataforma WEB e
foi projetado para se tornar acessível a partir de qualquer dispositivo com um
navegador (browser) moderno como o Mozilla Firefox, Google Chrome, etc. Na
construção do SGTCC foram empregadas linguagens como PHP, HTML, Javascript
e CSS, além de utilizar a biblioteca jQuery para requisições no servidor. A
persistência de dados é baseada no sistema gerenciador de banco de dados
MySQL. Como resultado do desenvolvimento do SGTCC é esperado que os alunos
possam reduzir o tempo gasto para iniciar o desenvolvimento do TCC, além de
prover recursos de gestão para a coordenação do curso.
Palavras-chave: TCC, trabalho de conclusão de curso, desenvolvimento de
software, tema para TCC.
ABSTRACT

The final course assignment or monograph is one of the most challenging steps that
a student must face during its course at the university. The beginning of the
monograph development can bring difficulties to the student, since it needs to
develop an appropriate theme and choose the leader who will assist during the work
development. The stage of theme preparation, the main difficulty is associated with
the construction of the idea or purpose to be studied, as well as its delimitation. As
for the choice of leader, it is necessary that the student contact several professors, in
order to verify their affinities with the theme, as well as their availability for orientation,
which can become a discouraging search. This paper proposes the development of a
software to reduce the difficulties encountered by students in the early stages of
preparing the TCC. The software titled Sistema Gerenciador de TCC (SGTCC) is a
system developed for Web platform and is designed to become accessible from any
device with a modern browser such as Mozilla Firefox, Google Chrome, etc. In
building the SGTCC were used languages like PHP, HTML, Javascript and CSS, and
use the jQuery library to requests on the server. The persistence of data is based on
the database management system MySQL. As a result of the development of
SGTCC it is expected that students can reduce the time taken to start the
development of monograph, in addition to providing management resources to the
course coordinator.
Keywords: Final course assignment, software development, monograph theme.
LISTA DE ILUSTRAÇÕES

FIGURA 1 - TELA INICIAL DO ASTAH .................................................................................................................... 22


FIGURA 2 - TELA INICIAL DO NETBEANS ............................................................................................................... 23
FIGURA 3 - NETBEANS, PROJETO PHP. ............................................................................................................... 24
FIGURA 4 - TELA INICIAL MYSQL W ORKBENCH .................................................................................................... 25
FIGURA 5 - MYSQL W ORKBENCH TELA DE CONSULTAS ....................................................................................... 26
FIGURA 6 - HTML ESTRUTURA BÁSICA ................................................................................................................ 27
FIGURA 7 - PHP EXEMPLO DE UTILIZAÇÃO ........................................................................................................... 28
FIGURA 8 - JAVASCRIPT - EXEMPLO DE UTILIZAÇÃO ............................................................................................. 29
FIGURA 9 - JQUERY EXEMPLO DE USO ................................................................................................................. 31
FIGURA 10 - CSS EXEMPLO DE UTILIZAÇÃO......................................................................................................... 33
FIGURA 11. TRECHO DE CÓDIGO RESPONSÁVEL PELO ACESSO DE UM USUÁRIO A PÁGINA
TELACADASTROUSUARIO. .......................................................................................................................... 38
FIGURA 12 - PACOTES DO SISTEMA ...................................................................................................................... 41
FIGURA 13 - JAVASCRIPT UTILIZANDO JQUERY.................................................................................................... 42
FIGURA 14 – TELA CADASTRAR USUÁRIO ............................................................................................................. 45
FIGURA 15 - CADASTRAR USUÁRIO, LISTANDO PAPEIS DE USUÁRIO. .................................................................. 45
FIGURA 16 - CADASTRA USUÁRIO, INSERIDOS PAPÉIS DE USUÁRIO. ................................................................... 46
FIGURA 17 – DIAGRAMA DE SEQUÊNCIA (CADASTRANDO USUÁRIO PARTE 1). .................................................... 47
FIGURA 18 - DIAGRAMA DE SEQUÊNCIA (CADASTRANDO USUÁRIO PARTE 2)...................................................... 48
FIGURA 19 - BUSCANDO UM AUTOR...................................................................................................................... 49
FIGURA 20 - CADASTRANDO UM TEMA ................................................................................................................. 50
FIGURA 21 – DIAGRAMA DE SEQUÊNCIA (CADASTRANDO TEMA PARTE 1). ......................................................... 50
FIGURA 22 - DIAGRAMA DE SEQUÊNCIA (CADASTRANDO TEMA PARTE 2). .......................................................... 51
FIGURA 23 - MODERAÇÃO DE TEMAS ................................................................................................................... 53
FIGURA 24 - EXIBINDO DETALHES DO TEMA NA MODERAÇÃO .............................................................................. 53
FIGURA 25 – DIAGRAMA DE SEQUÊNCIA (MODERAÇÃO DE TEMA PARTE 1)......................................................... 54
FIGURA 26 - DIAGRAMA DE SEQUÊNCIA (MODERAÇÃO DE TEMA PARTE 2).......................................................... 55
FIGURA 27 - VISUALIZANDO TEMAS ...................................................................................................................... 56
FIGURA 28 – DIAGRAMA DE SEQUÊNCIA (VISUALIZANDO, EXCLUINDO TEMA PARTE 1). ...................................... 57
FIGURA 29 – DIAGRAMA DE SEQUÊNCIA (VISUALIZANDO, EXCLUINDO TEMA PARTE 2). ...................................... 58
FIGURA 30 - CASO DE USO CRIANDO PROJETO .................................................................................................... 59
FIGURA 31 - FLUXOGRAMA CRIANDO PROJETO .................................................................................................... 60
FIGURA 32 - DEFINIÇÃO DE INTEGRANTES ........................................................................................................... 61
FIGURA 33 - DEFINE TEMA .................................................................................................................................... 62
FIGURA 34 - ESCOLHE TEMA ................................................................................................................................ 62
FIGURA 35 - TEMA DEFINIDO................................................................................................................................. 63
FIGURA 36 - DADOS PROJETO .............................................................................................................................. 64
FIGURA 37 – DIAGRAMA DE SEQUÊNCIA ESCOLHENDO INTEGRANTES ................................................................ 65
FIGURA 38 – DEFININDO TEMA - PARTE 1............................................................................................................. 65
FIGURA 39 – DEFININDO TEMA PARTE 2 ............................................................................................................... 66
FIGURA 40 - CASO DE USO COMPONDO BANCA.................................................................................................... 68
FIGURA 41 - TELA COMPONDO BANCA .................................................................................................................. 69
FIGURA 42 - TELA SORTEIO EXAMINADORES ....................................................................................................... 70
FIGURA 43 - TELA AGUARDAR RESPOSTA EXAMINADORES. ................................................................................. 71
FIGURA 44 – TELA MOSTRANDO UMA BANCA COMPOSTA. ................................................................................... 72
FIGURA 45 - DIAGRAMA SEQUÊNCIA COMPONDO BANCA 1. ................................................................................ 72
FIGURA 46 - DIAGRAMA SEQUÊNCIA COMPONDO BANCA 2. ................................................................................. 73
FIGURA 47 – TELA PARA GERENCIAR TCCS PENDENTES. .................................................................................... 75
FIGURA 48 - DIAGRAMA SEQUÊNCIA TCCS PENDENTES 1 ................................................................................... 76
FIGURA 49 - DIAGRAMA SEQUÊNCIA TCCS PENDENTES 2. ................................................................................. 77
FIGURA 50 – TELA PARA EXCLUIR PROJETO. ....................................................................................................... 78
FIGURA 51 - TELA PARA EXCLUIR PROJETO, MOSTRANDO DETALHES. ................................................................ 79
FIGURA 52 - DIAGRAMA SEQUÊNCIA (EXCLUSÃO PROJETO 1). ............................................................................ 80
FIGURA 53 - DIAGRAMA SEQUÊNCIA (EXCLUSÃO PROJETO 2). ............................................................................ 81
FIGURA 54 - TELA RELATÓRIOS ADMINISTRADOR................................................................................................. 83
FIGURA 55 - DIAGRAMA DE SEQUÊNCIA (CADASTRO DE USUÁRIO)...................................................................... 92
FIGURA 56 - DIAGRAMA DE SEQUÊNCIA (CADASTRANDO TEMA). ......................................................................... 93
FIGURA 57 - DIAGRAMA DE SEQUÊNCIA (MODERANDO TEMA). ............................................................................ 94
FIGURA 58 - DIAGRAMA DE SEQUÊNCIA (VISUALIZANDO E EXCLUINDO TEMA). ................................................... 95
FIGURA 59 - DIAGRAMA DE SEQUÊNCIA (DEFININDO TEMA). ................................................................................ 96
FIGURA 60 - DIAGRAMA DE SEQUÊNCIA (COMPONDO BANCA). ............................................................................ 97
FIGURA 61 - DIAGRAMA DE SEQUÊNCIA (TCC'S COM BANCA PENDENTE)........................................................... 98
FIGURA 62 - DIAGRAMA DE SEQUÊNCIA (EXCLUINDO PROJETO). ........................................................................ 99
FIGURA 63 - DIAGRAMA DE CLASSES (CADASTRO USUÁRIO). ............................................................................ 100
FIGURA 64 - DIAGRAMA DE CLASSE (CADASTRO DE TEMA). .............................................................................. 101
FIGURA 65 - DIAGRAMA DE CLASSE (MODERAÇÃO DE TEMA). ........................................................................... 102
FIGURA 66 - DIAGRAMA DE CLASSE (CRIANDO UM PROJETO). ........................................................................... 103
FIGURA 67 - DIAGRAMA DE CLASSE (COMPONDO BANCA). ................................................................................ 104
FIGURA 68 - DIAGRAMA DE CLASSE (DEFININDO INTEGRANTES FALTANTES DE UMA BANCA). .......................... 105
FIGURA 69 - DIAGRAMA DE CLASSE (EXCLUINDO PROJETO).............................................................................. 106
SIGLAS E ABREVIATURAS

.NET: Trata-se de um framework que inclui uma plataforma para linguages de


programação como C#.

AJAX: Asynchronous Javascript and XML. Forma de utilizar Javascript e XML para
tornar páginas WEB mais dinâmicas.

CCI: Coordenação dos Cursos de Informática.

CSS: Cascading Style Sheets, linguagem de folha de estilos utilizada para estilizar
páginas WEB.

HTML: HyperText Markup Language (Linguagem de Marcação de Hipertexto).

IDE: Integrated Development Environment. Significa Ambiente Integrando de


Desenvolvimento.

JDBC: Java Database Connectivity, conjunto de classes JAVA responsável por


envio de instruções SQL.

JSP: JavaServer Pages, linguagem de programação WEB baseada em JAVA.

ODBC: Acrônimo de Open Database Connectivity. Padrão de acesso para sistemas


gerenciadores de banco de dados.

PHP: Acrônimo de Hypertext Preprocessor (pré-processador de hipertexto).

PHP-GTK: Extensão da linguagem PHP para desenvolvimento de sistemas desktop.

SGBD: Sistema de Gerenciamento de Banco de Dados.

SQL: Structured Query Language. Linguagem de Consulta Estruturada.

TADS: Tecnologia em Análise e Desenvolvimento de Sistemas.

TCC: Trabalho de Conclusão de Curso.

URL: Uniform Resource Locator.

XML: eXtensible Markup Language. Linguagem de marcação de texto recomendada


pela W3C.

WAMP: Acrônimo de Windows, Apache, MySQL e PHP.


W3C: Consórcio de Padronização Web.

WEB: Palavra inglesa com significado teia ou rede. Com o advento da internet
passou a referenciar a rede de computadores conectados.
SUMÁRIO

Resumo............................................................................................................ 6

Abstract ........................................................................................................... 7

Lista de Ilustrações ........................................................................................ 8

1 Introdução .............................................................................................. 15

2 Metodologia ........................................................................................... 18

2.1 Projetos similares ............................................................................. 19

3 Levantamento bibliográfico .................................................................. 21

3.1 Astah Community ............................................................................. 21


3.2 NetBeans.......................................................................................... 22
3.3 MySql WorkbencH............................................................................ 25
3.4 HTML ............................................................................................... 26
3.5 PHP .................................................................................................. 28
3.6 Javascript ......................................................................................... 29
3.7 JQuery .............................................................................................. 30
3.8 SQL .................................................................................................. 31
3.9 MYSQL ............................................................................................. 31
3.10 CSS .................................................................................................. 32
3.11 WAMP .............................................................................................. 33
3.11.1 Apache ....................................................................................... 33
3.11.2 MySQL e PHP ............................................................................ 34

4 Sobre o SGTCC...................................................................................... 35

4.1 Temas de TCC para o SGTCC ........................................................ 35


4.1.1 Estados de um tema..................................................................... 35
4.2 Papéis de Usuários .......................................................................... 36
4.3 Controle do acesso .......................................................................... 37
4.4 Funcionalidades do sistema ............................................................. 39
4.5 Interações por E-mail ....................................................................... 39
4.6 Detalhamento do processo interno do SGTCC ................................ 41

5 Resultados Alcançados ........................................................................ 44

5.1 Cadastrando um usuário .................................................................. 44


5.2 Cadastrando um tema ...................................................................... 48
5.3 Moderando um tema ........................................................................ 52
5.4 Visualizando e excluindo um tema ................................................... 56
5.5 Criando um projeto ........................................................................... 59
5.6 Compondo uma banca ..................................................................... 67
5.7 TCC’s com composição de bancas pendentes ................................ 74
5.8 Excluindo um projeto ........................................................................ 78
5.9 Exibindo relatórios ............................................................................ 81
5.9.1 TCC por data de apresentação .................................................... 82
5.9.2 TCC por aluno .............................................................................. 82
5.9.3 TCC por orientador ....................................................................... 82
5.9.4 Banca por examinador ................................................................. 82
5.9.5 Usuário por papéis ....................................................................... 82

6 Conclusão .............................................................................................. 84

6.1 Dificuldades encontradas ................................................................. 86


6.2 Projeto Futuros ................................................................................. 86
6.2.1 Alternativa de respostas para convites ......................................... 86
6.2.2 Acompanhamento de TCC ........................................................... 87
6.2.3 Criação de áreas para outras categorias de usuários .................. 87
6.2.4 Relatórios para outros papéis ....................................................... 87
6.2.5 Criação de relatório de ATA da Apresentação ............................. 87
6.2.6 Opção manual para composição de banca .................................. 88
6.2.7 Opção para cadastrar o documento inicial do TCC ...................... 88
6.2.8 Envio de cópia do TCC para os examinadores convocados ........ 88
6.2.9 Permitir edição de temas cadastrados ......................................... 88
6.2.10 Buscas de dados avançados ...................................................... 88
6.3 Considerações finais ........................................................................ 88

Referências Bibliográficas ........................................................................... 89

Apêndice A – Diagramas de sequência ...................................................... 92

Apêndice B – Diagramas de Classes ........................................................ 100


1 INTRODUÇÃO

O Trabalho de Conclusão de Curso (TCC) é um dos requisitos obrigatórios


para a conclusão do curso de Tecnologia em Análise e Desenvolvimento de
Sistemas (TADS) do Instituto Federal de Goiás (IFG), campus Jataí. De acordo com
COSTA (2013), é no TCC que o universitário mostrará para a instituição o que
aprendeu no decorrer do curso. Além disso, contribuirá para o avanço científico e
tecnológico não só do seu curso, mas também da profissão que escolheu. É através
desse trabalho que as instituições conseguirão detectar algumas qualidades que
farão do universitário um bom profissional, dentre elas, medir o conhecimento
específico, autonomia, capacidade e senso investigativo, bem como a flexibilidade
de um candidato a vaga de emprego ou pós-graduação.

Os passos iniciais para construção do TCC consistem na definição de um


tema e elaboração de um projeto, responsável por delinear as atividades a serem
desenvolvidas.

Além da definição do tema, é importante que o aluno escolha um orientador


para guiá-lo em sua pesquisa. Essa escolha deve ser realizada de acordo com o
tema a ser trabalhado, levando em conta outros aspectos, como por exemplo,
formação, afinidade, disponibilidade, dentre outros.

Um dos problemas a serem abordados nesse trabalho está diretamente


relacionado com a definição do tema e a escolha do orientador. Essas duas etapas
são os passos iniciais na construção do TCC e geralmente causam transtornos para
os alunos.

Atualmente a Coordenação dos Cursos de Informática (CCI), campus Jataí,


disponibiliza sugestões de temas no site da instituição. Os alunos visualizam os
temas propostos e posteriormente entram em contato com os professores que
apresentaram as ideias mais próximas de seus interesses. Caso o aluno não
encontre um tema de seu interesse ele pode criar a sua própria ideia de trabalho e
escolher um professor para orientá-lo em sua pesquisa.
Em um cenário ideal, cada aluno escolherá um tema e será orientado pelo
professor que sugeriu o tema escolhido. Caso contrário o aluno irá propor uma nova
ideia e escolher o orientador que julgar mais adequado para lhe orientar.

Geralmente os alunos precisam entrar em contato com diversos professores


para então conseguir estabelecer o vínculo de aluno-orientador.

Na prática, os temas disponíveis no site da instituição não são atualizados


com muita frequência. Mesmo que exista uma atualização constante não é possível
saber de imediato se o tema está disponível ou já está em execução por algum
aluno. Além disso, apenas os professores da coordenação podem propor um tema,
porém, seria interessante que outras pessoas também pudessem disponibilizar
ideias para a elaboração de um TCC.

Do ponto de vista dos alunos, a busca por um tema e/ou um orientador é uma
atividade desgastante e, dependendo da quantidade de professores negando a
orientação, pode ser extremamente desmotivadora.

Diante das dificuldades apresentadas pelos alunos durante o período de


matrícula no TCC surgiu à proposta do presente trabalho. Inicialmente foi pensado
em construir um banco de temas que passaria a ser uma opção para alunos com
dificuldade na elaboração de um. A construção de um banco de temas seria
interessante, mas ainda traria o desconforto de buscar por um professor que
estivesse disponível para orientação. Dessa forma, surgiu a ideia de construir um
sistema informatizado com o objetivo de disponibilizar temas e permitir que o aluno
possa definir um orientador para sua pesquisa em um único ambiente, o que
impulsionou para a seguinte pergunta: É possível informatizar a relação aluno-
orientador e aluno-tema na criação de um TCC?

Para responder a essa pergunta o presente trabalho trata sobre a construção


de um sistema com o objetivo de conceder aos estudantes maior facilidade na
elaboração de seu projeto, disponibilizando ideias para a produção do seu trabalho;
ideias essas que são registradas no sistema em forma de temas, que nada mais são
que sugestões para o desenvolvimento. O estudante pode também visualizar uma
lista de professores que estão aptos para exercer a função de orientador, além de
permitir a escolha de coorientadores, entre outras opções.
17

No desenvolvimento do sistema, que a partir de agora será chamado de


Sistema Gerenciador de Trabalho de Conclusão de Curso (SGTCC), foi empregado
a linguagem PHP em conjunto com HTML e a biblioteca jQuery, além do sistema
gerenciador de banco de dados MySql. As ferramentas escolhidas permitem que o
sistema seja disponibilizado na internet e possa ser executado em uma variedade de
navegadores, entre eles, o Mozilla Firefox, Google Chrome e Internet Explorer,
facilitando o acesso para o usuário a partir de dispositivos que possuem tais
navegadores (computadores, celulares, tablets, televisores e etc).

Como resultado é esperado que o SGTCC reduza as dificuldades iniciais dos


alunos que estão aptos a se matricular no TCC. Dentre outras funcionalidades, o
sistema permite que as bancas avaliadoras, que atualmente são formadas de forma
manual, possam ser realizadas com sorteio aleatório, convidando os integrantes da
banca através de mensagens enviadas por e-mail, além de produzir relatórios como
TCC’s em andamento, bancas formadas, dentre outros.

O restante do trabalho está estruturado da seguinte forma: A Seção 3


apresenta brevemente as ferramentas utilizadas no desenvolvimento do trabalho. A
Seção 4 descreve o que são considerados e como serão tratados os temas para
TCC, como funcionará o controle de acesso, as funcionalidades do SGTCC, detalha
como serão empregadas as interações por e-mail e exibe o detalhamento de como o
software funciona internamente. A Seção 5 trata sobre as funcionalidades do
sistema e quais os passos utilizados durante a execução de algumas delas. As
conclusões do presente trabalho são apresentadas na Seção 6.
18

2 METODOLOGIA

Durante o processo de desenvolvimento do SGTCC foi utilizado análise


orientada a objetos, o qual consiste em estruturar o processo baseado na
composição de objetos. Desta forma, é possível abstrair dados do mundo real e
representá-los na forma de objetos dentro do mundo virtual.

Para a programação orientada a objetos (POO) é necessário considerar que


tudo que existe no mundo pode ser representado como objetos. “A POO estrutura
um programa, dividindo-o em vários objetos de alto nível.” (SINTES, 2002:6). Assim
sendo, no contexto do desenvolvimento procurou-se abstrair os dados relativos ao
projeto considerando o processo proposto por POO, por exemplo, para uma situação
em que alunos criam projetos (TCC) no sistema, cada um deles foi definido como
objetos nomeados usuários.

Ao idealizar um sistema em toda a sua estrutura é necessário construir a


relação entre as classes. “Uma classe é a definição dos atributos e das ações de um
tipo de objeto...” (LIMA, 2013:19). Para esse detalhamento foi utilizada a Linguagem
de Modelagem Unificada - UML (Unified Modeling Language), uma “... linguagem de
modelagem de propósito geral que pode ser aplicada a todos os domínios de
aplicação.” (GUEDES, 2009:19).

Baseando-se na UML foram construídos diagramas de casos de uso, classe e


sequência. A modelagem auxilia o desenvolvedor a esquematizar de forma
padronizada os projetos.

Existem diversos modelos, metodologias e processos de desenvolvimento de


software atualmente no mercado, dentre eles o SCRUM, XP e RUP. A primeira é
voltada principalmente para o desenvolvimento, onde são agendadas reuniões
periódicas para verificar e definir os próximos passos que devem ser seguidos pela
equipe.

A metodologia XP prega a importância da proximidade do cliente, o usuário


final, além de ser comum o desenvolvimento em pares. De acordo com PORTAL
EDUCAÇÃO (2013), o objetivo dessa metodologia é simplificar o desenvolvimento
utilizando o mínimo possível de classes e métodos. Os problemas encontrados no
19

desenvolvimento de um sistema são encontrados mais rapidamente


consequentemente, resolvidos com mais antecedência.

Uma das principais características do Rational Unified Process - RUP ou


Processo Unificado é ser guiado por casos de uso através de um processo iterativo
e incremental cujo ciclo de vida consiste em quatro fases (concepção, elaboração,
construção e transição).

WAZLAWICK (2004: 23) salienta:

A fase de concepção incorpora o estudo de viabilidade e uma


parte da análise de requisitos. A fase de elaboração incorpora
a maior parte da análise de requisitos, a análise de domínio e o
projeto. A fase de construção corresponde a programação e
testes, e a fase de transição consiste na instalação e
manutenção do sistema.

O presente trabalho foi desenvolvido por apenas uma pessoa, o que dificulta
o emprego de modelos e metodologias como o SCRUM ou XP. Dessa forma, o
trabalho adotou os passos do desenvolvimento RUP durante grande parte do
desenvolvimento.

2.1 PROJETOS SIMILARES

Alguns estudantes já desenvolveram aplicações similares com o SGTCC,


como o Sistema de Gerenciamento de Trabalhos de Graduação (SGTG) que
segundo SCHMIDT (2011) é um sistema registrado na Universidade Federal do Rio
Grande do Sul (UFRGS).

Dentre as funções especificadas no SGTG destacam-se as trocas de


mensagens entre alunos e orientadores com a opção de envio e armazenamento de
arquivos que são disponibilizados entre as duas partes.

De acordo com SCHMIDT (2011), seu sistema propõe ainda a opção de troca
de mensagens entre o orientador e banca avaliadora do TCC em questão, banca
que anteriormente foi formada pelo próprio orientador, além de oferecer a opção de
acompanhamento das atividades realizadas entre orientador e aluno.
20

Outro trabalho relacionado é o dos autores BRAMBILA e MAHLMANN, que se


trata de um trabalho ligado a Universidade Luterana do Brasil (ULBRA Guaíba). O
intuito seria o desenvolvimento de um sistema também voltado para a gerência de
TCCs, intitulado, Sistema de Gerenciamento e Controle de Documentos de TCC e
Estágio.

Das funcionalidades do sistema proposto por BRAMBILA e MAHLMANN o


que mais se destaca é a possibilidade de acompanhar os TCCs em andamentos
através do software, onde o aluno juntamente com seu orientador pode cadastrar
esses dados relativos ao projeto que participam.
21

3 LEVANTAMENTO BIBLIOGRÁFICO

O SGTCC tem a finalidade de conceder aos universitários e colaboradores da


instituição um maior controle dos TCC’s que estão em andamento ou estão
concluídos. Para desenvolver o sistema foram utilizadas diversas ferramentas que
auxiliam o programador, desde o levantamento dos requisitos e modelação de
diagramas até a persistência dos dados. Na fase de programação foram
empregadas linguagens voltadas para aplicações WEB e linguagem de banco
dados. As ferramentas escolhidas no processo foram:

 Astah Community 6.8.0/d254c5


 NetBeans IDE 7.4
 MySql Workbenck 6.3.2.0 build 444
As linguagens de programação foram:
 HTML
 PHP
 Javascript

A persistência dos dados e a linguagem utilizada para esse intuito ficaram por
conta do sistema gerenciador de banco de dados e da linguagem SQL. Para esses
papeis foram utilizados:

 MySQL
 SQL

Também foi utilizada uma biblioteca que contém códigos Javascript prontos e
resumidos. Essa biblioteca foi:

 jQuery

3.1 ASTAH COMMUNITY

Para modelagem foi utilizada uma ferramenta chamada Astah, cujo propósito
é auxiliar o desenvolvedor na criação e edição de diagramas.
22

Segundo PAIVA (2011), o software Astah está entre os mais conceituados no


quesito de edição de diagramas, sendo uma ferramenta de fácil usabilidade e de boa
familiarização entre os usuários dela.

Essa ferramenta, segundo ASTAH (2015) pertence a uma empresa japonesa


chamada Change Vision, Inc, e é disponibilizada na versão paga e gratuita. Esta
última é chamada Astah Community. Os principais motivos da escolha foram
facilidade e praticidade proporcionadas pela aplicação.

A tela inicial do Astah apresenta algumas propagandas e opções de acesso


rápido para algumas funcionalidades, como a opção de criar um novo projeto.

A Figura 1 é a representação dessa tela, mostrando como acessar a opção


de criação de um projeto. O acesso a essa função pode ser realizado da forma que
está sendo mostrada na Figura 1 ou acessando a opção “File-New” da ferramenta.

Figura 1 - Tela inicial do ASTAH

Depois de acessada a opção o usuário poderá escolher qual o tipo de


diagrama a ser trabalhado e começar a desenvolver.

3.2 NETBEANS

O ambiente de desenvolvimento integrado - IDE (Integrated Development


Environment) que foi utilizado para a programação do SGTCC é o NetBeans, por ser
23

open source e permitir a escrita, compilação, execução, depuração de aplicações


baseadas em inúmeras linguagens de programação, provendo recursos importantes
para várias etapas no desenvolvimento do sistema proposto.

De acordo com GONÇALVES (2006:23), a IDE Netbeans foi fundada pela


Sun Microsystems em junho de 2000.

Essa ferramenta, segundo NETBEANS (2015), oferece suporte para


desenvolvimento WEB. Com ela, é possível criar projetos em PHP, possui recursos
de auto completar códigos, fornece mecanismos para depuração entre outras
funcionalidades.

A utilização do Netbeans durante o percurso na universidade contribuiu para a


escolha da ferramenta na abordagem de programação do sistema. Se considerado o
prazo para entrega de um projeto de TCC, torna-se inviável aprender a manusear
uma IDE desconhecida antes de fazer uso dela. Assim sendo, aproveitando o
conhecimento já adquirido na universidade, se ganha mais tempo para concluir o
projeto.

A Figura 2 ilustra o início da operação de criar um novo projeto utilizado


Netbeans. Essa opção pode ser encontrada clicando em um botão na tela inicial ou
acessando a opção “Arquivo-Novo Arquivo”.

Figura 2 - Tela inicial do Netbeans


24

Após acessar a opção de criar um projeto o usuário poderá escolher qual o


tipo de aplicação que ele deseja desenvolver. A Figura 3 ilustra uma escolha de
projeto do tipo PHP.

Figura 3 - Netbeans, projeto PHP.

Finalizando a escolha do tipo de projeto o usuário poderá então avançar e


confirmar, depois disso, ele poderá trabalhar no desenvolvimento do seu trabalho.

Atualmente existem outras IDE’s que podem ser utilizadas para programação
de aplicações WEB. Casos como o ECLIPSE que através de um plugin chamado
PDT fornece recursos necessários para depurar, auto completar, entre outras
opções que facilitam a programação com a linguagem PHP.

De acordo com ECLIPSE (2015), essa IDE ainda prove recursos como
assistente de conteúdo, formatador de código, refatoramento, modelos de códigos,
navegação nos códigos, validação de sintaxe, entre outras.

Ainda no contexto de programação WEB, existem outras IDE’s com recursos


para desenvolvimento em PHP, tais como PHP Designer, PhpED, PHPEdit, Komodo
IDE.

Apesar da infinidade de ferramentas disponíveis no mercado o conhecimento


em manusear a IDE Netbeans contribuiu para escolha da mesma para o processo
da programação.
25

3.3 MYSQL WORKBENCH

Mysql Workbench trata-se de “... uma ferramenta gráfica para modelagem de


dados...” (XAVIER, 2015). Essa ferramenta disponibiliza a opção de criar e editar um
banco de dados utilizando modelagem física, gerando em seguida o script SQL
correspondente à criação do banco, além de oferecer a possibilidade de realizar
engenharia reversa dos esquemas de banco de dados.

Executar scripts de inserção, deleção e atualização se torna uma tarefa


simples com o Mysql Workbench, levando em conta, se o usuário possui o
conhecimento da linguagem de consulta estruturada - SQL (Structured Query
Language).

A Figura 4 é uma imagem da tela inicial do Mysql Workbenck, a qual


apresenta uma forma de acesso à instância de banco de dados instalada. Depois de
acessa-la é possível efetuar inserção, deleção, atualização, seleção de dados
presentes no banco que for escolhido.

Figura 4 - Tela inicial Mysql Workbench

Acessando a instância a qual se encontra instalada o banco de dados a


ferramenta mostra várias opções, entre elas, criar uma nova aba onde é possível
realizar consultas e outras operações no banco de dados selecionado.
26

Figura 5 - Mysql Workbench tela de consultas

A Figura 5 mostra a tela onde é possível realizar essas operações e destaca o


botão que pode ser usado para acessar essas opções, além do banco de dados
selecionado.

3.4 HTML

A camada da aplicação do lado cliente no SGTCC foi desenvolvida com a


utilização do HTML, com seu significado em português, linguagem de marcação de
hipertexto.

Entre os vários benefícios que determinaram a utilização do HTML, deve-se


ao fato da mesma ter “por objetivo criar não apenas textos, mas hipertextos. Esses
textos caracterizam-se por serem rápidos e pequenos, facilitando o acesso dos
usuários da web.” (MARCONDES, 2012:41).

Sua utilização consiste em definir a estrutura de uma página. Trata-se de uma


linguagem de marcação a qual utiliza tags (etiquetas em português) para identificar
qual a espécie de conteúdo a ser exibido ao usuário, seja um título, parágrafo,
imagem.
27

MARCODES (2012:41) salienta “Por ser essencialmente uma linguagem para


criação e manipulação de textos, um programador HTML necessariamente não
precisa ter um grande embasamento de lógicas de programação.”.

Basicamente, as páginas em HTML podem ser criadas e editadas a partir de


qualquer editor de textos. Como ela consiste em texto apenas, basta criar um
documento com a estrutura da linguagem e salvar com extensão .HTM ou .HTML.

Na Figura 6 está ilustrado um código HTML e na primeira linha mostra uma


tag chamada <!DOCTYPE html> que, segundo EIS (2011), é responsável por
informar ao navegador qual o tipo do documento a ser carregado.

Figura 6 - HTML estrutura básica

EIS (2011) também diz que a tag <html> é responsável delimitar o conteúdo
que é escrito na linguagem HTML. A tag <head> deve conter tudo que é relativo ao
cabeçalho das páginas, enquanto a <title> se refere ao título da mesma. A tag <title>
é de suma importância, pois, quando a página é pesquisada através de sites de
busca é utilizada essa tag para informar o título do documento no resultado da
pesquisa.

Por fim, a tag <body> é pertinente ao restante do conteúdo do documento. Ela


se trata do corpo da página, ou seja, tudo que é exibido nela, como os textos,
imagens, links, entre outros.
28

3.5 PHP

PHP - “PHP é acrônimo de Hypertext Preprocessor (pré-processador de


hipertexto)...” (SOARES, 2008:28). Trata-se de uma “... linguagem de script open
source de uso geral, muito utilizada, e especialmente adequada para o
desenvolvimento web e que pode ser embutida dentro do HTML.” (PHP, 2015).

PHP é empregada no controle do processamento das informações do lado


servidor. A utilização da mesma justifica-se porque “... é repleto de recursos, serve
para diversas plataformas, é estável, rápido, claramente projetado, fácil de aprender
e funciona bem com outros produtos.” (CONVERSE e PARK, 2003:27).

A linguagem PHP não se limita a programação WEB. Segundo SOARES


(2008:28), existe a versão PHP-GTK para ambiente desktop.

De acordo com PHP (2015), essa linguagem é de uso simplificado sendo de


fácil aprendizagem para um iniciante, e apesar dessa simplicidade não deixa de
oferecer excelentes recursos para programadores profissionais.

A Figura 7 ilustra um código simples em HTML onde é empregado o uso do


PHP.

Figura 7 - PHP exemplo de utilização

O código exibido na Figura 7, se aplicado em uma página, e com um servidor


devidamente configurado, irá apenas exibir a frase “aqui está o php!”. O título que é
29

exibido geralmente na barra superior do navegador está delimitado pela tag <title> e
seu conteúdo é “título”.

3.6 JAVASCRIPT

Javascript, segundo NIEDERAUER (2007:41) é uma linguagem de


programação criada pela Netscape em 1995. Anteriormente, essa linguagem
chamava-se LiveScript e tinha o objetivo de auxiliar a interação com as páginas
WEB bem como conceder validações de formulários.

Ainda hoje é muito utilizada no quesito de interação com sites, pois, trabalha
do lado cliente, basicamente no navegador. Tem uma sintaxe muito parecida com a
linguagem Java, mesmo não tendo relação alguma com ela.

Como a linguagem HTML é estática, as páginas montadas com ela


necessitam de uma linguagem auxiliar no momento que é necessário atualizar
conteúdo dinamicamente, bem como validar formulários. Com Javascript isso é
possível.

Essa linguagem é de tipagem dinâmica e interpretada em tempo de


execução. Por trás de uma linguagem interpretada existe um mecanismo que
reconhece o código fonte e o interpreta em uma saída entendível para o usuário.

A Figura 8 ilustra um exemplo de utilização do Javascript, onde é mostrado


como exibir um alerta ao usuário.

Figura 8 - Javascript - exemplo de utilização


30

A utilização do javascript se aplica a várias situações como validação e


mascaramento de campos dos formulários, efeitos de rolagem de página,
preenchimento dinâmico de partes de tela, entre outras.

3.7 JQUERY

O jQuery é uma biblioteca Javascript. Segundo W3SCHOOLS (2015, a), a


finalidade dessa biblioteca é facilitar o uso de códigos Javascript nas páginas,
seguindo a ideologia “escreva menos, faça mais”.

O W3SCHOOLS (2015, a) ainda cita que o jQuery possui os seguintes


recursos:

 “HTML/DOM manipulation”.
 “CSS manipulation”.
 “HTML event methods”.
 “Effects and animations”.
 “AJAX”.
 “Utilities”.

Desta forma, tornou-se conveniente o uso do jQuery para comunicação com o


servidor, se beneficiando do recurso Ajax. Ajax, segundo o W3SCHOOLS (2015, b)
é a arte de trocar dados com um servidor, atualizando partes de uma página WEB
sem recarregar a página inteira. Portanto, o uso do jQuery ajuda no propósito do
SGTCC em se parecer com uma aplicação desktop, pois, com a utilização dessa
biblioteca não é necessário atualizar as páginas constantemente.

De acordo com BELEM (2010), para utilizar o jQuery é necessário indicar


onde se encontra o arquivo da biblioteca. Esse caminho deve ser mencionado no
<head> da página.

Na Figura 9 estão sendo ilustradas duas formas de utilização. Na primeira o


jQuery foi extraído da versão online hospedada pelo Google. Na segunda, a
utilização é direta. Neste caso, deve-se informar o caminho completo da URL.
31

Figura 9 - jQuery exemplo de uso

A biblioteca jQuery auxilia o SGTCC resumindo a quantidade de códigos que


precisam ser escritos para envio de formulário ou qualquer outra requisição que
necessita ser realizada pelo servidor.

3.8 SQL

A linguagem de consulta estruturada - SQL (Structured Query Language) é


padrão do banco de dados relacional. De acordo com DATE (2004:15) as vantagens
de utilização de banco de dados são inúmeras, destacando-se:

 Densidade: Não há necessidade de arquivos de papel,


possivelmente volumosos.
 Velocidade: A máquina pode obter e atualizar dados com
rapidez muito maior que o ser humano...
 Menos trabalho monótono: Grande parte do tédio de manter
arquivos à mão é eliminada. As tarefas mecânicas são sempre
feitas com melhor qualidade por maquinas.
 Atualidade: Informações precisas e atualizadas estão
disponíveis a qualquer momento sob consulta.
 Proteção: Os dados podem ser mais bem protegidos contra
perda não intencional e acesso ilegal.

3.9 MYSQL

De acordo com FERREIRA (2010), o MySQL foi criado por David Axmark,
Allan Larsson e o finlandês Michael “Monty” Widenius por volta do ano de 1980.

As principais características desse SGBD são a versatilidade e rapidez com


que trata as informações. Segundo FERREIRA (2010), empresas como NASA,
Friendster, Bradesco, Nokia, HP, Sony e Lufthansa utilizam o MySql como
gerenciador de banco dados padrão.
32

A integração do MySQL com PHP é uma característica marcante desse


gerenciador fazendo com que seja utilizado por grande parte dos sites hospedados
na WEB.

Por ser compatível com ODBC, JDBC e .NET, e oferecer uma interface para
as linguagens mais comumente utilizadas como PHP, JAVA, C++, entre outras, o
uso do MySQL se torna uma boa opção devido ao fato de que essas características
o tornam mais rápido, garantindo performance e estabilidade notáveis.

Além de rapidez e estabilidade, é possível trabalhar com o MySQL em


qualquer ambiente, como Windows, Linux, entre outros.

Existem outras opções de gerenciadores de banco disponíveis no mercado


tais como Microsoft SQL SERVER, desenvolvido pela Microsoft; o Oracle Database
da mesma empresa desenvolvedora do MySQL SERVER, entre outras.

3.10 CSS

Para um melhor resultado ao usuário no quesito interface, foi empregado o


uso de Folhas de Estilo em Cascata - CSS (Cascading Style Sheets). Trata-se de
uma linguagem baseada em scripts que tem por finalidade a estilização de páginas
da WEB. Abordado pela World Wide Web Consortium - W3C (Consórcio de
Padronização Web) o CSS “é um mecanismo simples para adicionar estilos (por
exemplo: fontes, cores, espaçamentos) aos documentos web.” (SILVA, 2008:49).

O CSS, de acordo com PEREIRA (2009), foi criado para estilizar as páginas,
visto que ao longo do tempo os estilos empregados pelo HTML foram se
diversificando criando problemas para desenvolvedores, pois, só com o HTML não
era possível padronizar estilos, fazendo com que todas as alterações de design em
site fossem realizadas página por página.

A criação do CSS facilitou a aplicação de estilos nas páginas além de


proporcionar maior flexibilidade nesse quesito. Sua utilização permite uma melhor
distribuição de tarefas das linguagens na estruturação de uma página, possibilitando
devolver ao HTML a sua principal característica, a marcação de textos.
33

A Figura 10 ilustra um exemplo de aplicação do CSS em uma página. O


código exibido nela está definindo o alinhamento que os textos devem adotar
quando introduzidos dentro da delimitação da tag <div>.

Figura 10 - CSS exemplo de utilização

Com a aplicação do CSS é possível adicionar formatação de texto, efeitos dos


mais variados tipos, design de tabelas, entre outras possiblidades.

3.11 WAMP

O WAMP é um software que fornece um conjunto de aplicações para o


desenvolvimento de um sistema WEB. A sigla WAMP, segundo BRITO (2013) é o
acrônimo de Windows, Apache, MySQL e PHP.

Essa ferramenta ao ser instalada disponibiliza praticamente todos os


requisitos necessários para começar a desenvolver um sistema WEB. A seguir,
serão detalhados esses recursos, trazendo maior ênfase ao Apache, visto que,
MySQL e PHP já têm uma subseção neste documento detalhando a sua utilização.

3.11.1 Apache

Apache é um servidor WEB desenvolvido pela Apache Software Foundation


(ASF). Ele processa requisições utilizando o protocolo de transferência de
hipertextos - HTTP (Hyper-Text Transfer Protocol) o protocolo padrão da WEB.

O Apache funciona no formato cliente-servidor onde as requisições são


realizadas por meio de um browser. O navegador envia uma solicitação para um
computador que está rodando o Apache, e o mesmo responde ao browser com uma
página na forma de HTML que é gerada por algum serviço instalado na máquina.
34

De modo geral, os computadores que rodam o servidor Apache tem a opção


de disponibilizar suas páginas na WEB.

Segundo a NETCRAFT (2015), no comparativo realizado ainda em maio de


2015 foi relatado que cerca de 46,74% dos computadores servidores utilizam o
Apache.

3.11.2 MySQL e PHP

WAMP fornece também os serviços do MySQL e PHP, oferecendo as opções


de gerenciar o banco de dados através da phpMyAdmin. Também instala os
arquivos do PHP e permite acesso às configurações desses serviços, como, por
exemplo, acessar o php.ini.
35

4 SOBRE O SGTCC

O SGTCC foi desenvolvido a partir pesquisas sobre as necessidades dos


alunos em encontrar temas e orientadores disponíveis para iniciar seus trabalhos.
Trata-se de um software de gestão de trabalhos de conclusão de curso que visa
conceder um melhor controle à Coordenação dos Cursos de Informática (CCI),
fornecendo relatórios dos alunos que estão envolvidos em TCC’s, dos TCC’s e suas
bancas avaliadoras, dos temas cadastrados entre outros.

4.1 TEMAS DE TCC PARA O SGTCC

No SGTCC serão considerados temas todas as ideias de trabalho. Ao citar os


temas é o mesmo que dizer ideia ou sugestão. Essas ideias poderão ser
cadastradas por qualquer pessoa que acessar o sistema.

O intuito é permitir que sugestões para o trabalho de conclusão de curso


possam ser registradas no sistema sem qualquer restrição de usuários, desta forma,
aumentando as possibilidades de temas para os alunos desenvolverem seus
projetos.

Todo usuário que cadastrar um tema terá a opção de se identificar como autor
do mesmo, para tanto, basta se cadastrar no sistema informando seus dados em
uma página especifica para isso. Esses cadastros são armazenados como usuários
que não tem qualquer outro papel (categoria) no sistema, a menos que tenham
vínculo com a instituição.

Existem casos em que o autor do tema é um orientador. Nestas situações,


quando o tema está sendo definido para um projeto (TCC), será aplicada uma regra
que define automaticamente o autor do tema como orientador do TCC em questão.

4.1.1 Estados de um tema

Temas podem ser cadastrados por qualquer usuário, no entanto, só serão


disponibilizados em alguns módulos dependendo de três regras que serão listadas
agora descrevendo suas utilidades:
36

Moderado: Temas cadastrados deverão passar por uma moderação que é


realizada por usuários do tipo administrador. Moderar é o ato de passar um tema do
estado de não moderado para moderado. Essa ação será mais bem explicada na
subseção 5.3.

Reservado: Os temas cadastrados no momento da criação de um projeto


ficam reservados para o aluno que está criando, até que ele conclua o projeto com a
escolha do tema que cadastrou ou decida por outro.

Vinculado: Temas que já foram adicionados a outros projetos não poderão


ser listados nas próximas escolhas, porque estarão vinculados a algum TCC. Caso o
projeto que adotou o tema em questão seja excluído, o vínculo será
automaticamente desfeito.

4.2 PAPÉIS DE USUÁRIOS

Todas as funções da aplicação visam garantir que os dados sejam salvos e


disponibilizados aos usuários respeitando a hierarquia dos níveis de acesso. Para
tanto, cada um que acessa o sistema é previamente cadastrado e recebe um ou
mais papéis (categoria) de usuário, com exceção daqueles que não tem ligação
alguma com a instituição. Usuários que acessam apenas para visualizar ou sugerir
temas não precisam ser cadastrados, a menos que desejem informar a si mesmo
como autor de um tema. Assim sendo, existem seis níveis de acesso padrões para o
sistema, são eles:

 Autor (pode cadastrar temas).


 Administrador (gerencia a maior parte dos dados).
 Aluno (cria um projeto).
 Orientador (administra alguns dados dos TCC’s que participa).
 Coorientador (apenas são selecionados e vinculados a um projeto).
 Examinador (faz parte da banca do projeto).

Cada usuário pode ter vários papéis, por exemplo, no mesmo instante que
alguém é um orientador também poderá ser administrador, mas somente poderá
orientar se for um orientador. Abaixo segue a lista dos papeis previamente definidos
37

com um pouco mais de detalhes sobre as permissões que eles garantem no


sistema:

Autor: Usuário que pode sugerir temas, sendo que, nestes casos, não é
necessário ter vínculo algum com a instituição. Por exemplo, qualquer pessoa que
acessar o sistema poderá sugerir um tema (ideia), tendo a opção de se cadastrar
como um autor ou não.

Administrador: Estes são usuários que tem direito de visualizar/alterar dados


dentro do sistema, tais como: cadastrar usuários e papéis de usuários, gerenciar
TCC’s que tem banca com integrantes incompletos, moderar temas (analisar se
temas cadastrados são passíveis de visualização/escolha), visualizar/excluir TCC’s,
emitir relatórios. Tem sua área dentro do sistema, ao acessá-la ele poderá interagir
coma as funcionalidades as quais esse papel dá direito.

Aluno: Usuários que criam os projetos, desde a definição de integrantes até a


escolha de orientador e coorientador. Tem sua própria área dentro do sistema com a
opção de visualizar os dados de seu projeto.

Orientador: Estes usuários podem ser escolhidos durante a criação do


projeto como orientador. Têm sua própria área dentro do sistema podendo visualizar
os TCC’s dos quais participa, sortear os integrantes da banca de um projeto, além
de agendar/alterar data e hora de apresentação dos TCC’s.

Coorientador: Usuários definidos com esse papel representam a relação de


coorientador com o projeto. Esses tipos de usuários são listados e escolhidos por
alunos.

Examinador: Participam da banca que avaliam o TCC. Os examinadores são


selecionados e vinculados a um projeto por meio de sorteio.

4.3 CONTROLE DO ACESSO

O controle de acesso às páginas do sistema é realizado durante o


carregamento das mesmas. Esse acesso é controlado de acordo com as permissões
do papel de usuário. Funciona da seguinte maneira, após realizar o login o sistema
busca no banco de dados os papéis que estão cadastrados para o usuário logado,
depois, verifica em outra tabela quais são as páginas que estão permitidas para os
38

papéis deste usuário. Posteriormente, guarda essas permissões na sessão do


navegador.

Quando a página é carregada, o sistema busca as permissões que estão na


sessão durante o acesso do usuário e dependendo do que estiver guardado decide
se abre ou não a página.

A Figura 11 é uma imagem do código que realiza a permissão do acesso a


uma página do sistema chamada “TelaCadastroUsuario”.

Figura 11. Trecho de código responsável pelo acesso de um usuário a página TelaCadastroUsuario.

De acordo com código na Figura 11, é realizado primeiro uma verificação da


existência de uma sessão nomeada “usuarioLogado”. Caso esta não exista, significa
que não foi realizado o login, e o acesso não será permitido.

Se existir a sessão, outra verificação de segurança é realizada. O sistema


então carregará uma outra sessão de nome “permissoesDesteUsuario”, a qual
guarda os papéis e as páginas permitidas para cada um deles. Em seguida, ocorre a
chamada de um método estático com nome “permiteNegaAcesso” o qual pertence a
uma classe chamada “EfetuarLogin”.

O método invocado recebe a sessão carregada (“permissoesDesteUsuario”) e


o nome da página que está sendo acessada. Quando o método é executado será
validado o login e havendo sucesso na validação, será retornado o nome do usuário
significando que a validação foi bem sucedida e o sistema cederá o acesso.
39

4.4 FUNCIONALIDADES DO SISTEMA

O sistema SGTCC possui diversas funcionalidades, as quais serão listadas


nessa sessão.

Cadastro de papeis de usuários: Opção que permite cadastrar os papéis de


usuários, que são os níveis (categoria). É através deles que são definidas quais as
páginas que um usuário pode acessar e em algumas páginas, o que ele pode
visualizar.

Cadastro de usuários: O sistema oferece a opção de cadastrar, editar e


excluir usuários. Sendo assim, todos que acessam o sistema devem ser cadastrados
e recebem uma senha, exceto aqueles que têm a mera intenção de visualizar o site
(isso inclui ver temas cadastrados) e sugerir ideias (temas) para projetos.

Cadastro de temas: Podem ser cadastradas e excluídas ideias ou sugestões


de desenvolvimento.

Moderação de temas: Função que permite moderar os temas. Quando se diz


moderar, é o mesmo que analisar o conteúdo do cadastro e definir se ele pode ser
visualizado ou escolhido para um projeto, levando em conta o fato de que qualquer
pessoa pode cadastrar um tema.

Cadastro, edição, exclusão de TCC’s: O sistema permite cadastro, edição e


exclusão de TCC.

Troca de orientador e coorientador: O sistema permite que um usuário com


papel de aluno efetue a troca do orientador e coorientador.

Composição de banca: Usuários de papel orientador podem através de


sorteio realizado pelo sistema, compor a banca dos TCC’s que ele orienta.

Emissão de relatórios: O sistema emite relatórios como: TCC por data de


apresentação, TCC por aluno, TCC por orientador, Banca por examinador, Usuário
por papéis de usuário.

4.5 INTERAÇÕES POR E-MAIL

Uma das características do sistema proposto é realizar interações com seus


usuários através de mensagens de e-mail. A intenção é facilitar a forma como o
40

usuário alimenta o sistema, evitando que seja necessário acessá-lo periodicamente.


Serão citados nos próximos parágrafos alguns exemplos de situações onde essa
característica é empregada.

Quando projetos são criados, orientadores e coorientadores são escolhidos


por alunos para participar dos trabalhos, e nesse momento, é necessário indagá-los
se desejam se associar ao projeto. As respostas dos orientadores e coorientadores
são facilitadas, pois, não há a necessidade de acessar o sistema pra isso. Quando
eles são escolhidos, o SGTCC os notifica no e-mail preferencial que há no seu
cadastro de usuário.

No e-mail que lhes foi enviado eles poderão responder se podem ou não
participar do projeto através de links específico para essa finalidade. Essas
respostas são validadas por meio de um código de segurança e posteriormente
gravadas no banco de dados. Em seguida, os integrantes alunos são avisados
dessas respostas também por e-mail.

Outra funcionalidade que trabalha por meio de interações de e-mail é a


composição de banca. Mais a frente essa funcionalidade terá uma explicação
detalhada. Por hora, o que se pode dizer dessa interação é que, quando o sorteio da
banca é realizado os selecionados são avisados, e desta forma, solicitados a
responder no e-mail se poderão fazer parte da banca.

Ainda sobre a composição da banca, quando há uma resposta negativa por


parte de algum usuário, um novo integrante é convidado para que possa participar
da avaliação do trabalho. Esse processo é realizado de forma automática.

Se não houver mais professores para formar uma banca completa, com três
integrantes, os administradores são notificados em seus e-mails sobre essa situação
e poderão acessar o sistema para definir os integrantes manualmente.

O SGTCC ainda utiliza interação por e-mail quando é necessário efetuar


trocas de senhas. Quando um usuário precisa executar essa funcionalidade um
código é enviado em seu e-mail, depois, é validado no ato de salvar a nova senha,
para garantir segurança durante a execução dessa operação.
41

4.6 DETALHAMENTO DO PROCESSO INTERNO DO SGTCC

O sistema internamente é separado por camadas. O intuito é tornar a


experiência do usuário parecida com um software desktop, atualizando apenas
partes das páginas. Para tanto, são utilizados códigos da biblioteca jQuery para
fazer as requisições pesadas no servidor. Se for necessário mostrar dados do banco
ao usuário, não será preciso atualizar a página inteira.

De acordo com esse princípio, nas páginas haverá o mínimo possível de


códigos da linguagem PHP, restando apenas o HTML. As páginas utilizarão o
Javascript para fazer algumas validações no próprio browser, depois, por meio da
jQuery, farão suas requisições via “post” (forma de envio de formulário utilizado
através de uma URL onde os dados não são visíveis aos usuários) e get (forma de
envio de formulário utilizado através de uma URL onde os dados são visíveis aos
usuários) para os controles da tela.

Esses controles são arquivos PHP que capturam os dados da jQuery e


preparam os mesmos de modo que sejam entendíveis para outras camadas
contidas em um pacote chamado manipulacoes. É esse pacote que contém as
classes que podem fazer requisições ao banco de dados. Para entender melhor a
função dos pacotes, será explicado abaixo como eles foram estruturados.

Figura 12 - Pacotes do sistema

A Figura 12 ilustra como os pacotes estão organizados.


42

Analisando a Figura 12 é possível visualizar o pacote view. Ele guarda todas


as páginas (telas) do sistema. Essas telas reproduzem tudo o que está visível ao
usuário. A maior parte do conteúdo delas é constituída por códigos da linguagem
HTML.

O pacote controles contém apenas arquivos do tipo PHP que não são
classes e, portanto, não podem ser instanciados, com exceção de um chamado
“ControlesMetodosComuns”. Eles são apenas controles das janelas (telas) e contém
códigos ocultos ao usuário. Sua existência tem o motivo de separar o PHP do
HTML, ou seja, nas páginas (telas do pacote view) do sistema serão evitados
sempre que possível o uso de códigos da linguagem PHP para facilitar o
entendimento e manutenção do HTML.

A relação entre as duas linguagens (PHP e HTML) ficará a cargo dos scripts
de um pacote chamado scriptsTelas. Por exemplo, quando o usuário precisa de
uma tabela carregada com dados do banco é necessário que a tela que ele está
visualizando faça uma requisição via jQuery para um arquivo controle, este
devolverá a tabela pronta e completamente carregada para ser utilizada em alguma
parte da página, e essa parte poderá ser preenchida utilizando Javascript. Na Figura
13 contém um código jQuery requisitando uma tabela de professores disponíveis
para composição de banca.

Figura 13 - Javascript utilizando jQuery.

Note na Figura 13 que são passados parâmetros via post para um controle e
o resultado é uma tabela e um botão prontos, codificados em HTML. A variável
43

div_a_alterar trata-se de um elemento HTML que recebe em seu conteúdo o que foi
devolvido pelo controle, desta forma, somente um pedaço da página será alterado.
Todo o processamento oculto foi efetuado pelo arquivo PHP.

Os arquivos do pacote manipulacoes são classes, e consequentemente


podem ser instanciadas por objetos. Para entender melhor esse pacote é necessário
ter ciência da existência de outro com o nome classes. De acordo com LIMA
(2013:19), “objetos são coisas do mundo real, como pessoas, animais, etc.” e “Uma
classe é a definição dos atributos e das ações de um tipo de objeto...”, portanto,
pode-se considerar dentro do SGTCC que um usuário é um objeto, assim como o
TCC, temas, entre outros. Os arquivos do pacote classes representam as
definições, atributos e ações desses objetos.

Os principais arquivos do pacote classes tem sua própria manipuladora que


contém métodos específicos para suas necessidades. Por exemplo, a classe
“Usuarios” tem como manipuladora uma classe do pacote manipulacoes
denominada “ManipulaUsuarios”. Quando é necessário salvar, editar, excluir ou
executar alguma outra operação relativa a um usuário essa manipuladora já tem
prontas validações e funções para tais situações.

O pacote conexoes contém apenas um arquivo PHP, que se trata de uma


classe, a qual é responsável por abrir e fechar conexões com o banco de dados,
além de executar scripts da linguagem SQL para efetuar transações de inserção,
deleção, exclusão entre outras no banco de dados. Já o pacote controlesAcesso,
possui apenas uma classe responsável por efetuar/desfazer logins, codificar senhas,
e validar permissões de usuários.

Os estilos aplicados nas tabelas, botões, links, entre outros elementos no


SGTCC ficam por conta dos arquivos contidos no pacote estilos, enquanto as
imagens utilizadas nas páginas estão dentro do pacote imagens.

Por fim, o pacote utilidades contém uma classe responsável pelo envio de e-
mail, outra contendo as constantes utilizadas no sistema e também outra que possui
várias funções utilizadas para os mais variados fins, tais como validar datas,
encerrar sessões em série, desmascarar valores de campos e ainda gerar códigos
de validação que são enviados por e-mail.
44

5 RESULTADOS ALCANÇADOS

A presente seção descreve algumas das principais funcionalidades presentes


no sistema.

A seção 5.1 especifica quais os passos necessários para cadastrar um


usuário. A 5.2 diz respeito às etapas que devem ser realizadas ao efetuar um
cadastro de tema. Na seção 5.3 é detalhada como é realizada a operação de
moderar os temas. Para visualizar temas cadastrados e também excluí-los o usuário
deve seguir as etapas descritas na seção 5.4. A seção 5.5 trata-se do detalhamento
dos passos a seguir quando um aluno está criando um projeto. Para realizar a
composição de banca, os passos descritos na seção 5.6 serão necessários. A seção
5.7 descreve como os TCC’s pendentes de banca têm seus integrantes adicionados.
Na seção 5.8 está descrito como é realizada a exclusão de um projeto. Por fim, a
seção 5.9 detalha os relatórios que podem ser emitidos pelo SGTCC.

5.1 CADASTRANDO UM USUÁRIO

Cadastrar um usuário que tenha vínculo com a instituição no SGTCC é uma


tarefa que pode ser executada somente por usuários com papel administrador. Para
tanto, este usuário deverá acessar a sua área (específica para administradores),
clicar sobre a opção “Cadastros Usuários” e preencher o formulário com os dados
como nome, CPF, e-mail preferencial, entre outros.

Realizado o preenchimento dos campos, o administrador deverá adicionar ao


menos um papel de usuário, preencher obrigatoriamente o campo nome, e-mail
preferencial, CPF e senha, caso contrário, o sistema não permitirá que o cadastro
seja salvo.

As Figuras 14, 15 e 16 são imagens da tela ilustrando a realização desse


cadastro.

A Figura 14 mostra uma imagem semelhante ao que o administrador


visualizará após ter preenchido o formulário de cadastro.
45

Figura 14 – Tela cadastrar usuário

A Figura 15 ilustra a tela que o administrador visualiza quando está


escolhendo os papéis deste usuário. A tabela de papéis permite selecionar ou
desmarcar um item com um clique, e depois, é necessário finalizar a escolha
acionando o botão “Confirma”.

Figura 15 - Cadastrar usuário, listando papeis de usuário.


46

A Figura 16 ilustra a tela de cadastro com os papéis selecionados para este


usuário em forma de tabela. Da mesma forma que os papéis foram inseridos
também poderão ser removidos, diferenciando apenas a forma como a lista deve ser
tratada. Ao contrário da inserção que permitia escolher vários papéis por vez, a
remoção só concederá a retirada de um a um. Veja a Figura 16 com os papéis
escolhidos para o usuário em questão.

Figura 16 - Cadastra usuário, inseridos papéis de usuário.

Depois de realizados todos os passos o administrador poderá finalmente


clicar no botão “Salvar”, o que fará com que o sistema efetue as validações
necessárias e posteriormente insira o cadastro no banco de dados.

As Figuras 17 e 18 fazem referência ao diagrama de sequência da operação


de cadastrar um usuário. Eles foram divididos em duas partes, sendo que, a versão
completa está disponível no Apêndice A, Figura 55.

As ações realizadas pelo sistema respeitam uma hierarquia de chamadas. A


cada vez que o usuário faz uma requisição à tela, ela aciona um ou mais arquivos do
pacote scriptsTela. Neste caso, é possível notar na Figura 17 que a chamada está
sendo realizada ao arquivo de nome “FuncoesComuns”.
47

No exemplo em questão a tela está solicitando ao arquivo de scripts um


espaço onde serão listados os papéis de usuário que o administrador irá definir para
o cadastro corrente.

Figura 17 – Diagrama de sequência (cadastrando usuário parte 1).

A Figura 18 é a continuação do diagrama exibido na Figura 17. Na situação


exposta nela, a sequência realizada pelo sistema segue o ciclo até chegar à classe
responsável por inserir, atualizar, excluir os dados no banco.

O primeiro passo é passar pelo controle da tela, uma classe que recebe os
dados enviados via jQuery através dos arquivos de scripts. Posteriormente os
controles acionam os métodos da classe manipuladora de nome
“ManipulaPapeisUsu”. Essa solicita a outra classe de nome “BancoDados” que
busque a lista de papéis de usuários disponíveis. Em seguida, a
48

“ManipulaPapeisUsu” devolve lista na mesma sequência da hierarquia de


chamadas, dessa vez inversamente até exibir na tela os dados para o usuário.

Figura 18 - Diagrama de sequência (cadastrando usuário parte 2).

Quando o botão “Salvar” é acionado, a mesma sequência é realizada, dessa


vez, para inserir os dados no banco.

5.2 CADASTRANDO UM TEMA

Os temas podem ser cadastrados por qualquer pessoa que acessa o sistema.
Para realizar tal tarefa é necessário preencher todos os campos do formulário de
cadastro, e para que o usuário que sugeriu o tema seja lembrado no SGTCC como
autor do tema proposto é necessário primeiro se cadastrar como tal. Para tanto,
basta acessar a opção “Cadastrar Autor”.

Depois ter se cadastrado, o usuário deverá adicionar a si mesmo como autor


do tema acionando o botão “Adicionar”. Quando fizer isso será aberto um espaço
onde ele deverá digitar o nome, id ou CPF para efetuar a busca do usuário a
adicionar como autor.
49

Em seguida, após o sistema ter localizado o usuário será necessário digitar a


senha do mesmo para efetivá-lo como autor. A Figura 19 ilustra uma busca de
usuário efetuada. Neste exemplo, será pressuposto que o usuário já tenha se
cadastrado como autor e está apenas vinculando a si mesmo ao tema.

Figura 19 - Buscando um autor

Digitando a senha e clicando no botão “Confirmar”, o sistema adicionará


temporariamente o usuário buscado em uma sessão do navegador. Essa inserção
de autores poderá ser repetida caso o tema tenha sido escrito por mais de uma
pessoa, considerando que, um tema pode ter vários autores.

A Figura 20 ilustra o usuário Heverton inserido em uma lista de futuros


autores deste tema.Com os autores informados e os campos título e conteúdo
preenchidos, o usuário finalmente poderá salvar a sua sugestão de tema. Daí em
diante o sistema irá inserir todos os dados no banco de dados.

Note na Figura 20 que a lista de autores do tema no cadastro é uma tabela


que pode ser preenchida com um ou vários autores. Se for necessário informar mais
de um, o usuário deverá acessar o botão “Adicionar” e repetir o mesmo
procedimento já citado, neste caso, digitar o nome, id ou CPF e acionar o botão
buscar para que o sistema faça uma consulta ao banco procurando usuários com
50

papel de autor levando em consideração os dados digitados pelo usuário que está
cadastrando o tema.

Figura 20 - Cadastrando um tema

As ações que são realizadas pelo sistema quando um tema está sendo
cadastrado estão nos diagramas das Figuras 21 e 22.

Figura 21 – Diagrama de sequência (Cadastrando tema parte 1).


51

A Figura 21 detalha o cadastro de temas em forma de diagrama de


sequência, o que foi dividido em duas partes. Em conjunto com a Figura 22
referenciam o diagrama completo disponível no Apêndice A, Figura 56.

O diagrama na Figura 21 representa a sequência realizada pelo sistema


quando um usuário solicita uma busca de autores disponíveis e os adiciona,
requisitando em seguida à “TelaCadastroTema” que acione um arquivo do pacote
scriptsTela nomeado “scriptsTemas”.

O arquivo “scriptsTemas” efetua as requisições necessárias a um arquivo do


pacote controles chamado “ContCadastroTemas” (ver Figura 22) que executará os
procedimentos de inserir um tema e seus autores no banco de dados.

Figura 22 - Diagrama de sequência (Cadastrando tema parte 2).

Depois que o tema é salvo ele fica temporariamente disponível na tela para
que o usuário tenha tempo de corrigir algum erro de digitação ou coerência ou até
mesmo excluia o tema.

Para realizar o cadastramento de uma nova ideia o botão chamado “Novo


Registro” deverá ser acionado. Feito isso, o campos do formulário serão limpos e
estarão disponíveis para uma nova digitação.
52

5.3 MODERANDO UM TEMA

Os temas cadastrados no sistema devem passar por uma moderação antes


de serem disponibilizados para escolha ou visualização. Essa moderação está
disponível na área dos administradores e só pode ser realizada por usuários
cadastrados com esse papel.

Moderação significa que o tema passará por uma análise de conteúdo antes
que usuários possam escolhê-lo para um projeto ou visualizar seu cadastro. Essa
condição se torna necessária se for considerado o fato de que a sugestão de temas
está disponível a qualquer pessoa que acesse o SGTCC e não há restrição de
conteúdo no ato do cadastramento.

Temas não podem ser editados no SGTCC, portanto, se não aprovados no


processo de moderação, deverão ser excluídos (não realizado na moderação) e
recadastrados. Se o tema não tiver um autor, qualquer um pode assumir a autoria no
recadastramento, caso contrário, basta acessar o cadastro desse autor ou gerar um
relatório que exibe o e-mail preferencial do mesmo e escolher uma forma de entrar
em contato para que ele mesmo refaça o cadastro.

Após se identificar, o usuário administrador poderá acessar a sua área onde


encontrará uma opção denominada “Moderar Temas”. Escolhendo essa
funcionalidade ele será direcionado para uma tela de nome “TelaModeracaoTemas”
e visualizará a janela que lhe permitirá verificar uma lista de temas que estão na
duas situações: moderados e não moderados.

Quando a opção “Não moderados” estiver marcada, a lista mostrará somente


os temas que ainda não passaram pela fase de moderação e um botão chamado
“Moderar” estará sendo mostrado. Caso contrário, a opção selecionada será
“Moderados”, neste caso, os temas listados serão somente os que passaram pela
etapa de moderação e um botão nomeado “Revogar moderação” estará disponível.

Se um tema na tabela for selecionado serão exibidos os detalhes do mesmo


tais como o título, os autores, a data de criação e o conteúdo.

A tabela muda o conteúdo cada vez que o administrador escolhe quais


visualizar, sejam moderados ou não moderados.
53

Se um tema da lista é moderado ele sai automaticamente da lista de não


moderado, da mesma forma se a situação for inversa.

Figura 23 - Moderação de temas

A Figura 23 ilustra a tela do sistema SGTCC na etapa de moderação. É


possível notar que existe um tema intitulado “Ligar ar condicionado remotamente”
que ainda não passou por moderação.

Figura 24 - Exibindo detalhes do tema na moderação


54

A Figura 24 mostra um tema selecionado na lista, abaixo da tabela está


exibido os detalhes desse tema.

O próximo passo a ser seguido pelo usuário será acionar o botão “Moderar”.
As Figuras 25 e 26 referenciam um diagrama de sequência dessa operação
disponível no Apêndice A, Figura 57. A imagem será dividida em duas partes, sendo
que, a primeira será o ato de o usuário solicitar à tela o que ele deseja ver. Os
diagramas de classe envolvidas nessa operação estão disponíveis no Apêndice B,
Figura 65.

Figura 25 – Diagrama de sequência (moderação de tema parte 1).

A Figura 25 exibe uma parte do diagrama de sequência da operação em


questão. Nela é possível notar a presença do administrador abrindo a tela de nome
“TelaModeracaoTemas”. Em seguida, a própria tela efetua requisições a um arquivo
do pacote scriptsTela nomeado “FuncoesComuns”.

O primeiro passo ilustrado na Figura 25 é carregar os temas que não estão


vinculados a nenhum projeto. Em seguida, quando o usuário seleciona algum item
da tabela de temas, a “TelaModeracaoTemas” faz outra requisição ao arquivo
“FuncoesComuns”, dessa vez, para mostrar os detalhes do tema que ele selecionou.

O processo de exibir os detalhes segue uma hierarquia de chamadas


construída na estruturação do SGTCC, a qual deve passar primeiro pelas telas do
pacote views. Depois, são chamadas funções dos arquivos do pacote scriptsTela
55

que são os responsáveis por efetuar uma primeira validação local, seja verificando
um campo vazio ou se um item de alguma tabela foi selecionado, entre outras.

Em seguida os arquivos de scripts requisitam as funções dos controles da tela


os quais se encontram no pacote controles. Esses preparam as requisições foram
realizadas pelos scripts por meio do jQuery e acionam as manipuladoras do pacote
manipulacoes.

Por fim, o fluxo de execução termina com as classes manipuladoras fazendo


as requisições para as classes que executam os scripts de inserção, atualização e
deleção no banco.

A Figura 26 ilustra a continuação da sequência iniciada na Figura 25.

Figura 26 - Diagrama de sequência (moderação de tema parte 2).

Efetuada a busca dos temas e dos detalhes relacionados com os que foram
selecionados na tabela, o usuário acionará o botão “Moderar” ou “Revogar
Moderação”, dependendo da circunstância. O sistema executará a mesma
56

hierarquia de chamadas proposta na estruturação do sistema para concluir a


operação.

5.4 VISUALIZANDO E EXCLUINDO UM TEMA

Todo usuário pode visualizar os temas que foram cadastrados no sistema,


respeitando a regra de que devem ser moderados antes disso. A função de
visualizar os cadastros de temas está disponível na página inicial do SGTCC e é
acessível através da opção nomeada “Temas Cadastrados”. A visualização é
permitida para qualquer usuário.

Além de visualizar, nessa mesma funcionalidade é possível também excluir os


temas, entretanto, essa opção só é permitida quando o usuário está logado e tem
em seu cadastro o papel de administrador.

Quando permitido, a página exibirá um botão chamado “Excluir”, dessa forma,


quando um tema for escolhido, o administrador poderá clicar sobre esse botão e
excluir o tema selecionado.

Figura 27 - Visualizando temas

A Figura 27 ilustra essa tela considerando que o usuário logado seja um


administrador.
57

As Figuras 28 e 29 referenciam um diagrama de sequência dessa operação


(visualização/exclusão de tema). Os diagramas estão divididos em duas partes,
preservando a completa no Apêndice A, Figura 58. Os diagramas das classes
envolvidas neste processo estão disponíveis no Apêndice B, Figura 65.

A Figura 28 é uma representação do administrador solicitando à


“TelaListaTemas” o que ele deseja ver, e a janela por sua vez, faz a requisição ao
arquivos do pacote scriptsTela chamados “scriptEscolhaTema” e
“FuncoesComuns”.

Figura 28 – Diagrama de sequência (visualizando, excluindo tema parte 1).

A Figura 29 é a continuação do diagrama, onde as solicitações realizadas


pela tela são passadas para os arquivos do pacote controles e daí em diante é
realizada as buscas e alterações necessárias no banco de dados, tudo de forma
oculta ao usuário.

A sequência mostrada nesses diagramas seguem a mesma hierarquia de


chamadas de proposta na estruturação do SGTCC até finalizar na classe
“BancoDados”.

Segundo os diagramas, primeiro o usuário abre a “TelaListaTemas”, depois,


essa mesma tela faz uso do arquivo chamado “scriptsEscolhaTema” para buscar as
ideias cadastradas de modo a exibir na tela.
58

O “scriptsEscolhaTema” realiza a chamada de uma função do arquivo


“FuncoesComuns” que por meio do jQuery solicita os temas disponíveis ao controle
da tela nomeado “ContEscolhaTemas”.

O controle aciona outro arquivo do mesmo pacote chamado


“ControlesMetodosComuns”. Este faz uso das classes do pacote manipulacoes que
já tem métodos prontos para terminar a o processo, requisitando por fim os métodos
da classe “BancoDados”.

Figura 29 – Diagrama de sequência (visualizando, excluindo tema parte 2).

Depois de buscados, os dados são retornados seguindo a mesma hierarquia


de chamadas, dessa vez, inversamente.
59

Para terminar o processo a sequência executada é a mesma, a diferença é


que ao contrário da busca dos temas os métodos invocados terão o objetivo de
excluir o tema selecionado.

5.5 CRIANDO UM PROJETO

Será exemplificado nesta seção como o SGTCC trabalha quando um usuário


de papel aluno cria um projeto. Neste exemplo será considerado que ele, outrora,
tenha efetuado login. Também será pressuposto que já existam temas e outros
alunos cadastrados.

Ao abrir o sistema, o usuário deverá acessar a sua área, em seguida terá que
escolher a opção que dá acesso ao seu projeto. O sistema irá pesquisar no banco
de dados se tal usuário já tem TCC criado, caso não haja, será mostrada uma tela
onde o aluno poderá escolher outros integrantes (usuários com papel de aluno) para
participar do projeto. O caso de uso na Figura 30 está representando essa ação.

Figura 30 - Caso de uso criando projeto

A Figura 31 é um fluxograma dos passos que o aluno deve seguir para a


criação do seu projeto. Essa imagem exibirá quais passo devem ser realizados para
que o aluno consiga criar o TCC.
60

Antes de analisar o fluxograma, é importante salientar que os projetos no


sistema são criados mediante a condição da escolha do tema.

Os passos de escolha de integrantes alunos que comporão o TCC não inclui


o ato de salvar o projeto no banco. Logo, se um usuário inicia a criação, ela será
guardada apenas em uma sessão do navegador até que ele conclua na tela de
definição do tema. A partir daí, escolhendo ou não um orientador o projeto já estará
salvo no banco de dados.

Caso o usuário deseja adicionar o orientador depois que o projeto foi criado
bastará que ele acesse a sua área, o detalhes do seu TCC e utilize a opção de troca
de orientador e coorientador.

Figura 31 - Fluxograma criando projeto

Considerando a Figura 31 serão descritos agora os três primeiros passos


exibidos na imagem:
61

Realiza login: O aluno deverá acessar o sistema e efetuar o login.

Acessa área: Após o passo anterior será disponibilizado um link para que o
usuário possa acessar a área destinada aos alunos.

Projeto existe: Função interna do sistema que verifica no banco se já existe o


TCC do aluno em questão, caso seja verdade, ele será direcionado a uma página
que lhe mostrará os detalhes de seu trabalho.

Para descrever melhor a trajetória do usuário quando o mesmo está criando


um projeto no sistema, serão utilizadas capturas de tela exemplificando essas
etapas. A Figura 32 é uma imagem da tela intitulada “TelaEscolhaIntegrantes”, onde
o usuário poderá definir os outros alunos que farão parte do seu projeto. Considera-
se neste exemplo que o usuário logado será o único integrante.

Figura 32 - Definição de integrantes

Efetuada a definição dos integrantes, o aluno será guiado para uma tela onde
poderá distinguir entre duas opções, escolher ou cadastrar um tema. Essa página se
intitula “TelaDefineTema”.

Nesta situação será considerado que o aluno decidiu escolher um tema


existente clicando sobre o botão “Escolher Tema”. Isso fará com que ele seja levado
para outra página intitulada “TelaEscolhaTema”. As Figuras 33 e 34 são imagens
que ilustram essas telas.
62

Note que na Figura 33 ainda não há informações de nenhum tema escolhido,


por isso, o usuário foi solicitado deverá clicar sobre o botão “Escolher Tema”.

Figura 33 - Define tema

Após clicar no botão de escolha do tema o usuário será direcionado para a


tela nomeada “TelaEscolhaTema” a qual contém um tabela onde são listados os
temas disponíveis. A cada clique na lista nos itens da tabela serão exibidos os
detalhes do tema que foi selecionado (veja Figura 34).

Figura 34 - Escolhe tema


63

Quando o botão confirmar for acionado o SGTCC guiará o usuário de volta


para a tela de definição do tema, onde ele poderá analisar sua escolha podendo
visualizar os dados do tema escolhido, optar por refazer a escolha ou cadastrar um
novo tema. Isso está sendo representado pela Figura 35.

Figura 35 - Tema definido

Na Figura 35 é possível notar ainda que o usuário logado está na área


especificada para alunos, e tal tela só pode ser acessada por usuários com esse
papel. A aluna em questão se chama Josefa, e o tema que ela escolheu não foi
escrito por nenhum orientador, se assim fosse, após o nome do autor teria a
descrição: “Orientador”. Como este não é o caso, o próximo passo para a criação do
projeto será escolher o orientador, ato que guiará o aluno para a tela especificada
para essa ação.

Ao finalizar todos os passos, o usuário será redirecionado para a área


destinada aos alunos, dali poderá acessar novamente a opção que dá acesso a seu
projeto.

Quando o aluno acessa a sua área e depois a página que exibe os dados do
seu projeto pode ser que ainda não esteja disponível a informação do orientador e
coorientador. Isso pode acontecer se o e-mail de confirmação que é enviado quando
o aluno convida os professores ainda não foi respondido, ou o aluno ainda não
64

escolheu os dois ou ainda houve falha no processo de envio. Nestes casos, o


usuário pode trocar o orientador e coorientador ou reenviar os e-mails selecionando
uma das duas opções.

A Figura 36 é uma imagem de da tela que exibe os detalhes de um TCC. Nela


é possível notar a informação do código identificador do projeto, o título do tema
escolhido, a data da matrícula, a data e hora da apresentação caso a banca desse
projeto já esteja formada e o nome do orientador escolhido.

Note que o fato de a informação do coorientador não estar disponível pode ter
sido causadas por vários motivos entre eles: o aluno não escolheu um professor
para essa função; o e-mail de confirmação ainda não foi respondido; houve falha no
processo de envio do e-mail. Para esta última situação existe a opção exibida da
imagem do reenvio do e-mail.

Figura 36 - Dados projeto

As Figuras 37 e 38 são alguns diagramas de sequência concernentes às


etapas que o usuário realizou. Nesse exemplo está sendo pressuposto que o aluno
escolheu ser o único integrante do projeto. O sistema tem suporte para inserção de
outros alunos como integrantes do mesmo TCC, porém, não será este o caso
analisado. A Figura 37 representa o diagrama de sequência da escolha dos alunos
que serão donos do TCC em questão.
65

Figura 37 – Diagrama de sequência escolhendo integrantes

Os próximos diagramas representam a etapa de definição do tema. Eles


foram divididos em duas partes. A versão completa está disponível na sessão
Apêndice A, Figura 59. O diagrama de classes relacionadas com essa ação está
disponível no Apêndice B, Figura 66.

Figura 38 – Definindo tema - parte 1

Se observadas as Figuras 38 e 39 será possível notar a presença de


controles de telas com nomes iniciados em “Cont”. Estes são arquivos do pacote
66

controles que são os responsáveis por fazer todas as operações não visíveis ao
usuário.

Figura 39 – Definindo tema parte 2

É importante salientar que o SGTCC separa ao máximo tudo o que é HTML


dos códigos PHP, e que a ponte de comunicação entre os dois fica a cargo do
Javascript. Sendo assim, toda página utiliza scripts personalizados para suas
necessidades os quais dispõem de códigos da biblioteca jQuery para fazer
requisições no servidor. Por exemplo, ao confirmar a definição do tema clicando no
botão “próximo” na janela “TelaDefineTema” é chamada a função
67

“processaAlteracoes()” de um arquivo Javascript nomeado “scriptsEscolhaTemas”,


essa ação solicitará ao controle da tela “ContDefineTema” que execute o método
“confirmar()”. Tal método realiza os demais passos que verificam se o tema em
questão está disponível, se os integrantes não estão participando de nenhum outro
projeto e consequentemente efetua a função de salvar o TCC.

A verificação da disponibilidade do tema e dos possíveis integrantes do


projeto é realizada duas vezes no momento em que o usuário está criando o TCC.

A primeira verificação de disponibilidade ocorre quando o usuário está


efetuando a escolha do tema e dos integrantes e a outra no ato de inserir o TCC no
banco de dados. As verificações se tornam necessárias para impedir que o usuário
escolha tema e integrantes que já estejam vinculados a algum projeto.

Durante as etapas de definição do tema e integrantes são criadas sessões no


navegador que permitem armazenar esses dados de forma temporária até que o
usuário finalize a criação do projeto. Neste contexto, essas escolhas ainda não
foram gravadas no banco de dados.

Supondo que outro usuário a quem vamos chamar de aluno 2 esteja criando
um projeto simultaneamente, ele conseguirá visualizar o mesmo tema e integrantes
que estão na sessão do usuário anterior, quem será chamado de aluno 1. Isso é
possível, dado que, a verificação da disponibilidade de temas e integrantes é
realizada no banco de dados com a condição de que não estejam vinculados a um
TCC. Como o aluno 1 ainda não havia finalizado a criação do seu projeto ele não
vinculou o tema e integrantes que escolheu ao seu TCC. Deste modo, se o aluno 2
finalizar o projeto primeiro, o tema será vinculado ao TCC dele e o aluno 1
visualizará a mensagem que o tema ou integrantes já não estão mais disponíveis.

5.6 COMPONDO UMA BANCA

Com projetos criados dentro do SGTCC é possível marcar a data e hora da


apresentação desses projetos, bem como, definir os integrantes da banca de
avaliação. Essa composição de banca é realizada mediante um sorteio de uma lista
de usuários que tem o papel de examinadores.
68

O caso de uso ilustrado na Figura 40 representa a ação realizada pelo


orientador do projeto ao compor a banca.

Figura 40 - Caso de uso compondo banca

Todo o processo é realizado pelo orientador do projeto. Ele poderá abrir o


sistema, se identificar, acessar sua área, seus TCCs e depois, visualizar a situação
desses TCCs.

Caso o projeto selecionado na tabela de TCCs não tenha uma banca


composta, o orientador visualizará uma tela denominada “TelaSorteioBanca” que lhe
dará a opção de formar uma.

A tela de composição de banca a principio deverá listar todos os


examinadores disponíveis e mostrar os campos para digitação da data e hora da
apresentação do TCC, dados que deverão ser informados manualmente pelo
orientador.

Quando o botão sortear é clicado e os campos de data e hora da


apresentação estiverem vazios, o sistema não permitirá a composição exibindo a
mensagem de que esses campos são obrigatórios, pois, quando o e-mail de
confirmação é enviado aos professores sorteados é necessário informá-los sobre a
data e hora que foi definida para a banca, dessa forma, eles terão a opção analisar e
decidir se poderão ou não participar.

Para diferenciar os usuários que podem participar das bancas eles devem ser
cadastrado com o papel de examinador. A única restrição para definir alguém como
examinador é que o mesmo não tenha o papel de aluno no seu cadastro.
69

A Figura 41 ilustra uma tela de composição que ainda não recebeu os valores
de data e hora de apresentação, e o, o sorteio ainda não foi realizado.

Figura 41 - Tela compondo banca

Depois de preenchidos os campos de data e hora o orientador deverá clicar


no botão “Sortear”. Feito isso, o sistema realizará o sorteio e mostrará o resultado
em forma de tabela.

Para entender a composição de banca será exemplificada uma situação onde


haja vinte usuários disponíveis com o papel de examinador. Quando o sorteio for
realizado será criada outra lista de examinadores com os vinte que estavam
disponíveis, e somente dois dessa nova lista serão indagados por e-mail se poderão
ou não participar.

A banca deve ser formada por dois integrantes mais o orientador. Se um dos
dois que receberam a notificação rejeitar a participação, o próximo da lista de
sorteados será notificado, e assim sucessivamente até que a banca tenha três
examinadores no total.

Ao findar a lista de sorteados, considerando que a quantidade de integrantes


da mesma seja menor que os três necessários, os administradores do sistema
receberão um e-mail informando-os de que o TCC em questão não obteve a
quantidade suficiente de examinadores para compor a banca. Nestes casos, um dos
70

administradores deverá intervir com outra funcionalidade do sistema chamada


“TCC’s pendentes de banca”, onde, eles poderão visualizar o TCC em questão e
inserir ou remover os integrantes da mesma, com exceção do orientador, cuja
presença é obrigatória na banca e automaticamente está participando.

Figura 42 - Tela Sorteio Examinadores

Depois que o orientador clicar no botão “Sortear”, a “TelaSorteioBanca” ficará


semelhante à Figura 42.

Após o término do sorteio, o orientador poderá prosseguir para outra página


nomeada “TelaAguardaRespostaExaminadores”, para tanto ele deverá clicar sobre o
botão nomeado “Prosseguir”.

Essa próxima tela a ser acessada terá os detalhes do TCC além de várias
tabelas, em que serão informados quais foram os usuários sorteados, os que
rejeitaram, aceitaram, os que não responderam e ainda os que não foram notificados
por falha no envio do e-mail.

Haverá ainda um botão nomeado “Reenviar Emails”, que ao ser clicado


executa a operação de notificar todos os que não receberam o aviso por qualquer
que seja o motivo.
71

A Figura 43 é a representação dessa tela. Nela é possível notar duas das


tabelas que são exibidas: os professores que foram sorteados e os que rejeitaram
participar.

Figura 43 - Tela aguardar resposta examinadores.

Sempre que o orientador acessa a opção “Meus TCC’s”, clicando em seguida


no botão “Ver situação da banca”, ele visualizará a página nomeada
“TelaAguardaRespostaExaminadores”, obviamente, se a composição da banca já foi
realizada.

Quando a composição estiver concluída, o conteúdo da


“TelaAguardaRespostaExaminadores” será outro. A partir daí, ainda haverá os
detalhes do TCC como o número identificador, os alunos integrantes do projeto, o
coorientador (se foi definido), o título do tema que está vinculado ao projeto, a data
de apresentação definida pelo orientador, bem como a hora de apresentação.

Depois é exibido um aviso de que a banca foi concluída. Mais adiante é


mostrada uma tabela com todos os integrantes da banca em questão.

É possível notar ainda que entre os detalhes do projeto exibidos na página,


não existe a informação do orientador. Esse dado não é exibido porque o usuário
responsável pela composição da banca sempre será o orientador do TCC,
descartando a necessidade de exibir essa informação a ele mesmo.
72

A Figura 44 ilustra um exemplo da tela que é exibida quando uma banca foi
formada com sucesso.

Figura 44 – Tela mostrando uma banca composta.

Em seguida, o diagrama de sequência da Figura 45 ilustra o processo de


composição da banca avaliadora, presumindo que o orientador acessou o botão “Ver
situação da banca” e está visualizando a página “TelaSorteioBanca”.

Figura 45 - Diagrama sequência compondo banca 1.

A imagem do diagrama está dividida em duas partes, deixando a versão


completa no Apêndice A, Figura 60.
73

A Figura 45 é apenas uma parte do diagrama onde o usuário solicita à tela


que busque através do Javascript os dados que ele precisa ver, tais como, os
detalhes do TCC presente no contexto e a lista de usuários com papel de
examinador.

Posteriormente o orientador aciona o botão “Sorteio” e depois, após o término


da operação ele pode prosseguir para a próxima tela.

Figura 46 - Diagrama sequência compondo banca 2.

A segunda parte mostra o restante do diagrama, representando as classes


controle fazendo as requisições não visíveis ao usuário, isso está sendo ilustrado na
Figura 46.

O diagrama das classes que são envolvidas no processo de composição da


banca está disponível no Apêndice B, Figura 67.
74

5.7 TCC’S COM COMPOSIÇÃO DE BANCAS PENDENTES

Na composição de banca é esperado que a mesma seja definida com três


integrantes. Não será possível realizar a formação automática se dentre todos os
examinadores que foram sorteados, a quantidade dos que aceitaram participar não
chegou a dois, visto que o orientador é um membro nato na formação da banca.
Nesses casos, o sistema marcará como pendentes de banca os projetos que se
encaixam nessa situação.

Foi desenvolvida no SGTCC uma funcionalidade denominada “TCC’s


pendentes de banca”. Tal função está disponível para usuários com papel de
administrador. Ela tem a finalidade de listar esses TCC’s que não obtiveram a
quantidade correta de examinadores para compor uma banca, e permite que o
administrador defina entre os que foram sorteados quais farão parte dela, com
exceção do orientador do projeto que não pode ser removido, visto que, sua
participação é obrigatória no TCC que ele orientou.

Para acessar essa opção o usuário terá que se identificar no sistema como
um administrador. Depois, ele deverá acessar sua área e escolher a opção “TCCs
pendentes de banca”.

Ao abrir a página da funcionalidade citada é possível visualizar uma tabela


que lista os TCCs que estão na situação de pendência de banca. Quando um dos
que estão na tabela é selecionado o sistema exibe os detalhes dele.

Na mesma tela é possível visualizar ainda duas tabelas, a primeira contendo


os usuários que foram sorteados e a segunda os integrantes que já foram definidos
para a banca. A tabela que mostra aqueles que aceitaram participar sempre exibirá
de forma obrigatória o orientador do projeto. Este não pode ser removido.

Quando o sistema exibe os detalhes do projeto é omitida a informação do


orientador. Isso acontece porque o mesmo será sempre listado entre os integrantes
que aceitaram participar banca o que torna desnecessário exibir os dados do
orientador.

A Figura 47 é uma ilustração de como essa página é preenchida. Note a


primeira tabela com a lista dos TCCs pendentes. Depois os detalhes do projeto
selecionado na tabela. Em seguida, estão sendo ilustradas as duas tabelas que
75

representam os professores sorteados e os que aceitaram particiapr. No exemplo, a


segunda tabela está preenchida com apenas um item, neste caso, o orientador do
projeto.

Figura 47 – Tela para gerenciar Tccs pendentes.

O gerenciamento dos integrantes de uma banca funciona de forma bem


simples. São mostradas ao usuário duas tabelas, uma com todos os examinadores
sorteados e a outra com os integrantes definidos. Para inserir um examinador como
integrante, o administrador precisa apenas clicar sobre o professor sorteado, e para
retirar (devolver para a tabela que representa os professores sorteados) é
necessário apenas clicar sobre o integrante a ser removido.

A cada clique nos itens das tabelas a troca acontece automaticamente, e as


alterações são salvas no banco de dados de forma automática também. O botão de
nome “Confirmar” apenas irá notificar por e-mail os integrantes que foram definidos
para a banca.
76

As Figuras 48 e 49 fazem referência a um diagrama disponível no Apêndice


A, Figura 61.

A primeira parte (Figura 48) é apenas a sequência que o sistema realiza


quando o administrador solicita à tela que busque todos os TCC’s pendentes. Em
seguida, ele visualiza os detalhes do TCC em questão e depois, insere ou remove
os integrantes da banca do projeto.

Para listar os TCC’s pendentes o usuário abre a tela


“TccsPendentesDeBanca”, depois, essa tela aciona seus scripts auxiliares
chamando uma função chamada “carregaTccs” do arquivo nomeado
“scriptTccsPendentesDeBanca”.

O arquivos que contém os scripts fazem chamadas via jQuery para os


controles da tela.

Figura 48 - Diagrama sequência Tccs pendentes 1

A segunda imagem (Figura 49) são as operações que ocorrem de forma


oculta ao usuário. O controle da tela chamado “ContTccsPendentesDeBanca” aciona
uma classe manipuladora chamada “ManipulaTcc”. Essa faz uso da classe
77

“BancoDados” para trazer os TCC’s pendentes e retorna esses dados seguindo a


mesma hierarquia de chamada, porém inversamente.

Após a exibição dos dados o usuário deve selecionar na tabela os TCCs que
ele deseja visualizar os detalhes, essa ação executa a mesma hierarquia de
chamadas, passando pelas telas, depois pelos scripts, mais adiante os controles, as
manipuladoras e por fim a classe responsável por efetuar as transações de inserção,
atualização e deleção no banco de dados.

Veja no diagrama de sequência na Figura 49 quais os passos realizados pelo


sistema a partir de quando as requisições passam pelos controles.

Figura 49 - Diagrama sequência TCCs pendentes 2.

Quando o usuário começa a clicar na lista de professores disponíveis para


incluir alguém na banca ou na de integrantes já definidos para remover dela, a cada
78

clique, dependendo da tabela selecionada, a tela solicita ao arquivo de scripts uma


função chamada “integraRemoveDaBanca” (Figura 48) o qual repetirá a hierarquia
de chamadas até remover ou adicionar o integrante no banco. Em seguida, quando
a função “confirmaIntegrantes” é chamada as requisições são novamente realizadas,
porém, com o objetivo de enviar os e-mails informando os integrantes que foram
definidos.

O diagrama de classes relacionadas com a gerência de TCCs com banca


pendente está disponível no Apêndice B, Figura 68.

5.8 EXCLUINDO UM PROJETO

A exclusão de projetos é mais uma das funcionalidades do SGTCC. Ela


permite que o usuário com papel de administrador consiga visualizar os detalhes de
um TCC e depois optar por excluí-lo. Para acessar essa opção é necessário que o
usuário se identifique como um administrador no sistema e em seguida acesse sua
área onde ele encontrará a funcionalidade com o nome “Cadastro TCC’s”.
Escolhendo essa opção, ele verá a tela que lista todos os projetos cadastrados.

Figura 50 – Tela para excluir projeto.

A Figura 50 ilustra um exemplo da “TelaCadastroTCC”. Nela é possível nota


que não há nenhum tema selecionado.
79

A Figura 51 mostra a mesma janela, mas dessa vez, o usuário já terá


escolhido o TCC que deseja visualizar.

Figura 51 - Tela para excluir projeto, mostrando detalhes.

É possível notar ainda pela imagem que são mostrados os detalhes do TCC,
tais como os alunos integrantes, o orientador, o título do tema e os integrantes que
já foram definidos para a banca, neste caso, somente um. Isso ocorre porque a
banca ainda não foi formada para esse projeto, no entanto, o orientador é um
membro nato dela, por esse motivo já está sendo listado com antecedência.

Um pouco adiante se encontra localizado o botão “Excluir”. Caso esse botão


seja clicado sem que nenhum TCC esteja selecionado, uma mensagem será
mostrada solicitando ao usuário que selecione um primeiro.

Caso algum item da tabela esteja selecionado, eventualmente o sistema


efetuará os procedimentos que levam à exclusão por completo do TCC.

A exclusão de um projeto não poderá ser desfeita, e o tema vinculado a ele


estará novamente disponível para escolha por outro aluno.

Serão excluídos também todos os integrantes alunos do projeto. Caso esses


usuários integravam o TCC tentarem acessar a área destinada a alunos e em
seguida a opção que mostra os detalhes do projeto, serão solicitados a criar um
novo TCC.
80

Para ilustrar a sequência executada pelo sistema quando um projeto está


sendo excluído serão utilizadas duas Figuras (52 e 53) que referenciam a outra
imagem com a união desses dois na sessão Apêndice A, Figura 62. Essa imagem
representa o diagrama de sequência completo da ação de excluir um projeto.

A Figura 52 ilustra a primeira etapa que o usuário realiza. Ele abre a tela de
cadastro de TCCs (“TelaCadastroTcc”) e a mesma requisita aos seus scripts
complementares (arquivos do pacote scriptsTela) que efetuem as buscas do
conteúdo desejado.

Figura 52 - Diagrama sequência (exclusão projeto 1).

Após a busca ser efetuada no banco, os TCCs são exibidos em uma tabela
que permite selecionar os itens contidos na mesma com um clique. Essa seleção
dos projetos na tabela é individual, ou seja, não é permitido selecionar mais que um
por vez.
81

A Figura 53, ilustra a continuação das etapas, onde os arquivos do pacote


controles recebem as requisições dos scripts e praticam as buscas no banco de
dados, com operações ocultas ao usuário.

O controle da tela nomeado “ContCadastroTccs” busca os TCC’s pendentes


chamando um método da classe manipuladora chamada “ManipulaTcc”. Essa classe
requisita a outra responsável pelas instruções no banco chamada “BancoDados”,
depois que os dados são encontrados eles retorna na mesma hierarquia de
chamada, dessa vez, de forma inversa.

Quando o botão “Excluir” é acionado ocorre uma sequência de chamadas


similares ao da busca, mas, neste caso, com o propósito de efetivar a exclusão.

Figura 53 - Diagrama sequência (exclusão projeto 2).

5.9 EXIBINDO RELATÓRIOS

O usuário administrador pode emitir relatórios acessando em sua área a


opção denominada “Relatórios”. Os relatórios disponíveis são:
82

5.9.1 TCC por data de apresentação

Mostra os detalhes de um projeto agrupados por data de apresentação. É


necessário informar o período desejado baseado na data de apresentação do TCC.

5.9.2 TCC por aluno

Detalha os projetos agrupados por alunos. Pode ser buscado pelo nome ou id
do aluno ou ainda exibir de todos os alunos.

O usuário pode ainda definir a situação dos TCC’s que deseja ver no relatório.
Essas situações podem ser “Não apresentados”, “Apresentados” ou “Todos”.

5.9.3 TCC por orientador

Exibe todos os TCC’s agrupados por todos ou somente um orientador


(necessita informar nome ou id).

5.9.4 Banca por examinador

Busca as bancas examinadoras de cada projeto filtrando por nome ou id.Caso


não seja informado um filtro, o sistema exibe todas as bancas.

Ainda é permitido mostrar somente os que estiverem nas situações definidas


pelo usuário, sendo elas, os “Não apresentados”, “Apresentados” ou “Todos”.

5.9.5 Usuário por papéis

Efetua a busca de todos os usuários cadastrados agrupados por papéis de


usuários e exibe na tela. Permite a opção de filtrar digitando a descrição ou id do
papel desejado.

As opções de relatórios existentes podem ser acessadas através de uma


única página que contém os botões responsáveis por efetuar as chamadas.

Todos os relatórios possuem alternativa de filtros definidos pelo sistema. A


primeira (TCC por data de apresentação) possui dois campos: data inicial e final. A
busca é efetuada respeitando o período informado. Esses campos são de
preenchimento obrigatório.

Os demais relatórios também possuem alternativa de filtro, porém, diferente


da primeira opção, não há obrigação de informá-los. Caso esses filtros não sejam
83

informados o sistema buscará todos os dados existentes no banco, baseado no


título dos relatórios.

A Figura 54 ilustra a tela chamada “TelaRelAdministrador”, onde os relatórios


podem ser escolhidos.

Figura 54 - Tela relatórios administrador

No presente trabalho foi desenvolvida a opção de emitir relatórios somente


para usuários com papel administrador. Futuramente é pretendida a programação de
uma maior variedade deles de modo que os usuários consigam emitir relatórios
relacionados com seus papéis no sistema.
84

6 CONCLUSÃO

O presente trabalho abordou o desenvolvimento de um software que visa


possibilitar um controle sobre os trabalhos de conclusão de curso que estão sendo
desenvolvidos por alunos da instituição, além de oferecer uma maneira
informatizada de criar e manter o vínculo entre alunos e orientadores, alunos com
temas de trabalhos, entre outros.

Ao longo da pesquisa sobre as necessidades de um universitário,


basicamente, no momento que é necessário estabelecer um tema, e no instante que
é preciso escolher/contatar o orientador que o guiará durante o processo de
desenvolvimento, percebeu-se que não é fácil encontrar um tema adequado, e
mesmo depois de escolher o tema, procurar um orientador disponível pode ser uma
tarefa tão difícil quanto.

Apesar do site da instituição listar os temas escritos por professores e outros


colaboradores não há informações a respeito da disponibilidade desses temas.
Também não há um meio informatizado no site que permita que o aluno cadastre um
tema de sua própria autoria e utilize no seu trabalho.

Outro fator observado foi o primeiro contato do aluno com o professor que ele
escolheu como orientador. Essa primeira tentativa de contato pode causar
contratempos se levado em conta o fato de possíveis desencontros que possam
ocorrer entre o aluno interessado e o provável orientador a ser definido.

Diante das questões levantadas foram abordadas maneiras de propiciar uma


alternativa para os problemas levantados. Depois da análise realizada descobriu-se
a necessidade de criar um sistema capaz de guardar e disponibilizar temas
sugeridos, manter uma lista de professores aptos para a orientação, permitir o
cadastro de TCC, emitir relatórios de assuntos relacionados aos trabalhos, manter
os projetos (TCC) armazenados e acessíveis para usuários, entre outras opções.

Com o software construído notou-se que uma solução para as situações


destacadas é aplicável, e apesar de existirem outras formas, o resultado esperado
foi satisfatório, embora, a implantação do sistema tenha sido destinada a projetos
futuros.
85

Para criar o sistema foi observada qual poderia ser a melhor forma de
disponibilizá-lo para alunos e colaboradores da instituição. A plataforma WEB foi
escolhida por ser mais abrangente e acessível a partir de qualquer dispositivo de
conexão com a internet.

A respeito das tecnologias empregadas, embora existam outras linguagens de


programação WEB, tais como, Python e JSP, a que foi adotada no desenvolvimento
do software foi PHP, por ser uma linguagem com uma boa documentação, rápida e
de fácil integração com o HTML.

Outras linguagens foram adotadas durante o desenvolvimento, tais como, a


linguagem de estilos CSS, a de marcação chamada HTML, e as que permitem uma
maior interação com os navegadores, como Javascript e a biblioteca jQuery.

Para persistir os dados foi aplicada a linguagem SQL e o gerenciador de


banco de dados MySQL, apesar de haver outras opções como o SQL SERVER,
Oracle, PostgreSQL, entre outros. A escolha se deu por conta da velocidade
proporcionada por MySQL, além de uma boa integração desse banco com o PHP.

A primeira questão abordada, referente à alternativa para os problemas


citados diz respeito à criação de TCC’s. O software construído permite que alunos
cadastrem um projeto (TCC). Ao escolher essa opção, o aluno é guiado por algumas
etapas que culminam na inserção do projeto no banco. Essas etapas consistem na
definição dos integrantes do projeto (alunos), na escolha de um tema e definição de
um orientador.

No que diz respeito a sugestões de trabalhos, essa é uma abordagem que se


traduziu em um banco de ideias (temas). O intuito é oferecer uma forma de manter
esses temas em um banco de dados e disponibilizá-los, de modo que possam ser
visualizados por alunos interessados, e escolhidos no ato da criação de um TCC, a
partir de um endereço na WEB.

Além de manter um banco com ideias cadastradas foi pensada uma forma de
permitir que usuários consigam incluir seu próprio tema ou sugiram ideias para
serem utilizadas em outros projetos. Dessa forma, depois de cadastrados esses
temas e gravados no banco de dados, os temas podem ser disponibilizados para os
usuários.
86

Outra situação observada diz respeito ao primeiro contato entre o aluno e o


orientador. Para essa situação, criou-se uma alternativa, onde, neste cenário, os
professores aptos a orientar são disponibilizados na WEB através do sistema e
podem ser escolhidos no ato da criação do projeto. Desta forma, a abordagem
realizada pelo aluno ao orientador fica por conta do software que avisa os
professores por e-mail concedendo-lhes a opção de aceitar ou recusar a orientação.

Para formação das bancas avaliadores dos TCC’s foi desenvolvida uma
funcionalidade. Até então, esses avaliadores são escolhidos pelo orientador e aluno,
depois notificados a partir de várias maneiras, seja verbalmente ou outros meios de
comunicação. A proposta é fazer com que essa definição seja realizada mediante
um sorteio baseado em uma lista de usuários aptos para compor bancas. O próprio
sistema notifica os integrantes por e-mail oferecendo a opção de aceitar ou recusar
o convite.

6.1 DIFICULDADES ENCONTRADAS

Pode ser apontada como a maior dificuldade encontrada no decorrer do


desenvolvimento a falta de material adequado para tecnologias recentes, como a
biblioteca jQuery. Embora existam livros a respeito desse assunto, eles não são de
fácil acesso restando como opção efetuar consultas pela internet, como a própria
documentação da biblioteca jQuery.

O presente trabalho inicialmente era composto por dois integrantes. Baseado


nessa situação, o planejamento era desenvolver mais opções para o SGTCC,
entretanto, no decorrer do processo, o planejamento precisou ser refeito devido ao
fato de que um dos integrantes desistiu do projeto.

6.2 PROJETO FUTUROS

O que será abordado agora são descrições de algumas funcionalidades que


foram destinadas para projetos futuros.

6.2.1 Alternativa de respostas para convites

O SGTCC em algumas funções notifica usuários por e-mail, oferecendo a


opção de aceitar ou recusar convites, tais como, orientar e compor bancas.
87

A forma como usuários podem responder até então é somente pelo e-mail
que lhes foi enviado. A proposta futura é permitir que essas respostas sejam
realizadas também através de uma opção dentro do sistema. Neste cenário, os
usuários acessariam o SGTCC e teriam a alternativa de abrir seus convites para
analisar se aceitam ou não.

6.2.2 Acompanhamento de TCC

O sistema permite que projetos sejam cadastrados, editados, excluídos, etc. A


partir de um TCC gravado é possível compor bancas e visualizar detalhes do desses
TCC’s.

Uma funcionalidade planejada para futuros projetos é acompanhar o


andamento desses TCC’s, marcando as reuniões realizadas entre orientador e
aluno. Gravar as atividades planejadas para cada reunião. Permitir adicionar dúvidas
às reuniões para serem discutidas nos próximos encontros.

6.2.3 Criação de áreas para outras categorias de usuários

No SGTCC cada usuário tem um papel (categoria), e para alguns papéis são
disponibilizadas áreas de acesso onde os usuários com esses papéis podem
acessar opções destinadas para essas categorias.

Até o fim da construção do sistema foram criadas áreas para os papéis de


administrador, aluno e orientador. Em projetos futuros, pretende-se expandir essas
áreas para os outros papéis, como examinadores, coorientadores e autores, de
modo que todos tenham acesso a mais funcionalidades, como por exemplo,
visualizar relatórios pertinentes a suas participações nos projetos.

6.2.4 Relatórios para outros papéis

Os relatórios oferecidos no sistema estão disponíveis apenas para


administradores. Entende-se que um orientador, bem como alunos, examinadores e
coorientadores necessitam emitir relatórios de seus interesses. Isso foi pensado e
está classificado para projetos futuros.

6.2.5 Criação de relatório de ATA da Apresentação

Criar relatório de ATA da apresentação dos TCC’s cadastrados no sistema.


88

6.2.6 Opção manual para composição de banca

Programar outra possibilidade de composição de banca, dessa vez,


permitindo que o orientador defina de forma manual os professores que farão parte
da banca avaliadora.

6.2.7 Opção para cadastrar o documento inicial do TCC

Permitir que usuários consigam armazenar o documento inicial que deve ser
escrito para aceitação de matrícula no TCC.

6.2.8 Envio de cópia do TCC para os examinadores convocados

Criar a opção que permita enviar uma cópia do TCC para os professores que
foram convocados a participar de uma banca avaliadora.

6.2.9 Permitir edição de temas cadastrados

Desenvolver uma opção que permita aos autores editarem os temas que
escreveram.

6.2.10 Buscas de dados avançados

Programa e padronizar buscas avançadas de dados presentes no banco de


dados, tais como, temas, TCC’s em andamentos ou pendentes de banca, entre
outros.

6.3 CONSIDERAÇÕES FINAIS

A construção do Sistema de Gerenciamento de Trabalhos para Conclusão de


Curso (SGTCC) colaborou para a aplicação de todo o conhecimento adquirido no
curso de Sistemas de Informação. A pesquisa sobre as necessidades de alunos ao
iniciar os seus trabalhos finais (TCC), e a busca de uma solução para gerenciar os
TCC’s se tornaram uma fonte inspiradora para a procura de mais conhecimento.
Essas situações impulsionaram um estudo aprofundado sobre a análise e
desenvolvimento de sistemas.
89

REFERÊNCIAS BIBLIOGRÁFICAS

ASTAH. Astah community. Disponível em: <http://astah.net/editions/community>


(acesso em 15 de maio de 2015).

BELEM, Thiago (2010). O que é e como funciona o jQuery. Disponível em:


<http://blog.thiagobelem.net/o-que-e-e-como-funciona-o-jquery//> (acesso em 18 de
maio de 2015).

BRAMBILA, Marcelo Karpinski e MAHLMANN, Luiz Gustavo Galves. Sistema de


Gerenciamento e Controle de Documentos de TCC e Estágio. Disponível em:
<http://guaiba.ulbra.br/seminario/eventos/2006/artigos/sistemas/133.pdf > (acesso
em 13 de junho de 2015).

BRITO, Edivaldo (2013). WampServer. Disponível em:


<http://www.techtudo.com.br/tudo-sobre/wampserver.html> (acesso em 19 de maio
de 2015).

CONVERSE, Tim e PARK, Joyce. PHP a Bíblia. Tradução da 2ª Edição. Rio de


Janeiro: Elsevier Editora Ltda, 2003.

COSTA, Glailton. Sobre a Importância do TCC na Formação Acadêmica.


Disponível em: <http://tiqx.blogspot.com.br/2013/08/sobre-importancia-do-tcc-na-
formacao.html> (acesso em 10 de fevereiro de 2014).

DATE, Christopher. Introdução a Sistemas de BANCO DE DADOS. Rio de


Janeiro: Elsevier Editora Ltda, 2004.

ECLIPSE. PHP Development Tools. Disponível em: <https://eclipse.org/pdt/>


(acesso em 13 de junho de 2015).

EIS, Diego. O básico: O que é HTML? Disponível em: <http://tableless.com.br/o-


que-html-basico/> (acesso em 17 de maio de 2015).

FERREIRA, Felipe (2010). Mysql – Saiba Tudo Sobre Esse Poderoso Banco De
Dados. Disponível em: <http://www.artigonal.com/hospedagem-artigos/mysql-saiba-
tudo-sobre-esse-poderoso-banco-de-dados-1790916.html> (acesso em 18 de maio
de 2015).
90

GUEDES, Gilleanes Thorwald Araujo. UML 2 Uma Abordagem Prática. São Paulo:
Novatec Editora Ltda, 2009.

GONÇALVES, Edson. Dominando o NetBeans. Rio de Janeiro: Editora Ciência


Moderna Ltda, 2006.

LIMA, Adilson da Silva. UML 2.3: Do Requisito à solução. 1ª Edição. São Paulo:
Editora Érica Ltda, 2013.

MARCONDES, Christian Alfim. HTML 4.0 Fundamental. 2ª Edição. São Paulo:


Editora Érica Ltda, 2012.

NETBEANS. NetBeans IDE Features. Disponível em:


<https://netbeans.org/features/php/index_pt_BR.html> (acesso em 15 de maio de
2015).

NETCRAFT. May 2015 Web Server Survey. Disponível em:


<http://news.netcraft.com/archives/2015/05/19/may-2015-web-server-survey.html>
(acesso em 13 de junho 2015).

NIEDERAUER, Juliano. Web Interativa com AJAX e PHP. São Paulo: Novatec
Editora, 2007.

PAIVA, Samuel. Astah Community, um software para trabalha com UMLs!


Disponível em: <http://www.plantaonerd.com/blog/2011/04/18/astah-community-um-
software-para-trabalha-com-umls/> (acesso em 15 de maio de 2015).

PEIXOTO, Paulo (2015). Como Citar as Fontes Consultadas? Disponível em


<www4.fe.uc.pt/fontes/citar.htm > (acessado em 24 de maio de 2015).

PEREIRA, Ana Paula (2010). O que é CSS? Disponível em:


<http://www.tecmundo.com.br/programacao/2705-o-que-e-css-.htm> (acesso em 18
de maio de 2015).

PORTAL EDUCAÇÃO (2013). Metodologia XP e SCRUM. Disponível em


<http://www.portaleducacao.com.br/informatica/artigos/51127/metodologia-xp-e-
scrum> (acesso em 13 de junho de 2015).

PHP. O que é o PHP? Disponível em: <https://php.net/manual/pt_BR/intro-


whatis.php> (acesso em 17 de maio de 2015).
91

SCHMIDT, Marcelo Augusto. Sistema de Gerenciamento de Trabalho de


Graduação – SGTG. 2011. 50 f. Trabalho de Graduação (Curso de Ciência da
Computação) – Universidade Federal do Rio Grande do Sul, Instituto de Informática,
Porto Alegre, 2011.

SINTES, Tony. Aprenda Programação Orientada a Objetos em 21 Dias. São


Paulo: Pearson Education do Brasil, 2008.

SILVA, Maurício Samy. Construindo Sites com CSS e (X) HTML. São Paulo:
Novatec Editora, 2008.

SOARES, Walace. PHP 5: Conceitos, programação e integração com banco de


dados. 5. Ed. São Paulo: Editora Ética Ltda, 2008.

XAVIER, Andressa. Mysql Workbench. Disponível em:


<http://www.baixaki.com.br/download/mysql-workbench.htm/> (acesso em 17 de
maio de 2015).

W3SCHOOLS (a). jQueryIntroduction. Disponível em:


<http://www.w3schools.com/JQuery/jquery_intro.asp> (acesso em 10 de maio de
2015).

W3SCHOOLS (b). jQuery - AJAX Introduction. Disponível em:


<http://www.w3schools.com/jquery/jquery_ajax_intro.asp> (acesso em 10 de maio
de 2015).

WAZLAWICK, Raul Sidnei. Análise de Projeto de Sistemas de Informação


Orientados a Objetos. 8ª reimpressão il. Rio de Janeiro: Elsevier, 2004.
92

APÊNDICE A – DIAGRAMAS DE SEQUÊNCIA

Imagem referente ao diagrama de sequência que representa os passos


realizados pelo sistema ao cadastrar um usuário.

Figura 55 - Diagrama de sequência (cadastro de usuário).


93

Diagrama de sequência que detalha como um tema é inserido no banco de


dados no momento que está sendo cadastrado.

Figura 56 - Diagrama de sequência (cadastrando tema).


94

Diagrama de sequência. Representa os passos realizados pelo usuário ao


moderar um tema.

Figura 57 - Diagrama de sequência (moderando tema).


95

Diagrama de sequência. Descreve os passos realizados ao visualizar e excluir


um tema.

Figura 58 - Diagrama de sequência (visualizando e excluindo tema).


96

Diagrama de sequência. Representa a ação de definir o tema do projeto. Essa


ação inclui o ato inserir o projeto no banco de dados.

Figura 59 - Diagrama de sequência (definindo tema).


97

Diagrama de sequência. Representa as etapas realizadas ao compor uma


banca.

Figura 60 - Diagrama de sequência (compondo banca).


98

Diagrama de sequência. Descrevem as etapas realizadas pelo sistema


quando o administrador está defininindo os integrantes faltantes nos TCC’s
pendentes de banca.

Figura 61 - Diagrama de sequência (TCC's com banca pendente).


99

Diagrama de sequência. Referenciam os passos que o sistema efetua quando


o usuário está excluindo um projeto (TCC).

Figura 62 - Diagrama de sequência (excluindo projeto).


100

APÊNDICE B – DIAGRAMAS DE CLASSES

Diagrama de classes relacionadas ao realizar o cadastro de usuários

Figura 63 - Diagrama de classes (cadastro usuário).


101

Diagrama de classes envolvidas no cadastro de temas.

Figura 64 - Diagrama de classe (cadastro de tema).


102

Diagramas de classes relativas à moderação, visualização e exclusão de


temas.

Figura 65 - Diagrama de classe (moderação de tema).


103

Diagrama de classes envolvidas no processão de criação de um projeto


(TCC).

Figura 66 - Diagrama de classe (criando um projeto).


104

Diagrama de classes relacionadas à composição de uma banca.

Figura 67 - Diagrama de classe (compondo banca).


105

Diagrama de classes envolvidas com o processo de definir os integrantes dos


TCCs que não obtiveram a quantidade suficiente de integrantes para compor uma
banca.

Figura 68 - Diagrama de classe (definindo integrantes faltantes de uma banca).


106

Diagrama de classes requisitadas para exclusão de um projeto (TCC).

Figura 69 - Diagrama de classe (excluindo projeto).

Você também pode gostar