Buscar

Relatório Parcial PI (rev 11 - 22 mai 2020_FINAL)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE VIRTUAL DO ESTADO DE SÃO PAULO 
 
 
 
 
Bruna de Paiva Gonçalves 
Felipe Ferreira Pereira 
Felipe Freitas de Oliveira 
Gabriel Felipe Reis Scarpari 
José Maria Fernandes Marlet 
Rodrigo Vieira Peres 
Tiago Tosca dos Santos 
 
 
 
 
DESENVOLVIMENTO DE UM REPOSITÓRIO OPEN SOURCE DE 
CÓDIGOS FONTE PARA RESOLUÇÃO DE PROBLEMAS EM 
ENGENHARIA 
 
 
 
 
Link do vídeo: a ser produzido 
 
Protótipo: em desenvolvimento 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
São José dos Campos – SP 
2020 
 
UNIVERSIDADE VIRTUAL DO ESTADO DE SÃO PAULO 
 
 
 
 
 
 
DESENVOLVIMENTO DE UM REPOSITÓRIO OPEN SOURCE DE 
CÓDIGOS FONTE PARA RESOLUÇÃO DE PROBLEMAS EM 
ENGENHARIA 
 
 
 
 
Relatório apresentado na disciplina de 
Projeto Integrador para o curso de 
Engenharia da computação da Fundação 
Universidade Virtual do Estado de São Paulo 
(UNIVESP). 
Tutor: Marcel Yuzo Kondo 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
São José dos Campos – SP 
2020 
 
GONÇALVES, Bruna de Paiva; MARLET, José Maria Fernandes; OLIVEIRA, Felipe 
Freitas de; PEREIRA, Felipe Ferreira; SCARPARI, Gabriel Felipe Reis; PERES, 
Rodrigo Vieira; SANTOS, Tiago Tosca. DESENVOLVIMENTO DE UM 
REPOSITÓRIO OPEN SOURCE DE CÓDIGOS FONTE PARA RESOLUÇÃO DE 
PROBLEMAS EM ENGENHARIA. __ f. Relatório Técnico-Científico (Engenharia da 
Computação) – Universidade Virtual do Estado de São Paulo. Tutor: Marcel Yuzo 
Kondo. Polo: São José dos Campos / Santana, 2020. 
 
RESUMO 
 
O presente trabalho foi desenvolvido a partir da identificação da necessidade de 
criação de uma ferramenta computacional de apoio aos laboratórios dos cursos de 
Engenharia. Para tal, realizaram-se pesquisas em formato de questionário que 
evidenciaram que a existência de uma plataforma agregadora de conteúdo 
estudantil que permitisse a interação entre alunos e professores para a resolução de 
problemas de Engenharia, fosse considerada de extrema utilidade. 
Através desta, o professor poderá criar diversas atividades como: laboratórios, 
exercícios, projetos, etc, que utilizem da computação como ferramenta para a 
criação de códigos abertos para soluções de problemas práticos reais de 
Engenharia. 
Com auxílio das respostas do questionário empregado, será desenvolvido um 
website com o objetivo de apresentar a proposta do projeto que servirá como um 
repositório de códigos fonte para a resolução de problemas de Engenharia diversos. 
O projeto foi dividido em três tópicos: hospedagem, banco de dados e linguagem de 
programação, sendo que cada um dos tópicos é diretamente dependente dos outros, 
ou seja, a hospedagem precisa suportar a linguagem de programação, que é 
diretamente relacionada à base de dados. 
A linguagem de programação utilizada para o desenvolvimento do conteúdo 
dinâmico foi o PHP, que foi escolhido para o projeto por ser uma linguagem não 
proprietária e com ampla difusão e utilização, além de linguagens de hipertexto 
HTML e de marcação CSS. Com a definição da linguagem de programação, foi 
possível definir a escolha por uma base de dados que trabalhe com a linguagem 
escolhida, para isso foi utilizada a base de dados MySQL. Já definidas a linguagem 
de programação e a base de dados foi possível optar por um ambiente de 
hospedagem com suporte a linguagem PHP e a base de dados MySQL. 
 
Palavras-chave: Repositório, Código fonte, Laboratório, Engenharia, PHP, MySQL, 
Pesquisa de opinião. 
GONÇALVES, Bruna de Paiva; MARLET, José Maria Fernandes; OLIVEIRA, Felipe 
Freitas de; PEREIRA, Felipe Ferreira; SCARPARI, Gabriel Felipe Reis; PERES, 
Rodrigo Vieira; SANTOS, Tiago Tosca. DESENVOLVIMENTO DE UM 
REPOSITÓRIO OPEN SOURCE DE CÓDIGOS FONTE PARA RESOLUÇÃO DE 
PROBLEMAS EM ENGENHARIA. __ f. Relatório Técnico-Científico (Engenharia da 
Computação) – Universidade Virtual do Estado de São Paulo. Tutor: Marcel Yuzo 
Kondo. Polo: São José dos Campos / Santana, 2020. 
 
ABSTRACT 
 
 
The present work was developed from the identification of the necessity of the 
creation of a computational support tool for the Engineering courses laboratories. For 
that, researches were made in the form of a survey which showed evidences that a 
student content aggregator platform allowing the interaction between students and 
teachers for Engineering problem solving was considered extremely useful. 
Through this, the teacher will be able to create many activities as: laboratories, 
exercises, projects, etc, which uses computing as a tool to create open source codes 
to solve real Engineering problems. 
With the answers of the applied survey, a website will be developed to presente the 
Project proposal and will act as a source code repositor for solving a wide range of 
Engineering problems. The project was divided into three topics: hosting, database 
and programming language, each of which is directly dependent on others, that is, 
the hosting needs to support the programming language, which is directly related to 
the database. 
The programming language used for the development of dynamic content was PHP, 
which was chosen for the project because it is a non-proprietary language with wide 
diffusion and use, as well as HTML hypertext and CSS markup languages. With the 
definition of the programming language, it was possible to define the choice for a 
database that works with the chosen language, for that the MySQL database was 
used. Once the programming language was defined and the database was possible 
to opt for a hosting environment with PHP language support and the MySQL 
database. 
 
 
Keywords: Repository, Source Code, Laboratory, Engineering, PHP, MySQL, 
Survey. 
 
 
Sumário 
1. INTRODUÇÃO ............................................................................................................................. 7 
2. DESENVOLVIMENTO ................................................................................................................ 8 
2.1 JUSTIFICATIVA E PROBLEMA ............................................................................................. 8 
2.2 OBJETIVOS DA PESQUISA ................................................................................................... 8 
2.3 OBJETIVO GERAL ................................................................................................................... 8 
2.4 OBJETIVOS ESPECÍFICOS ................................................................................................... 9 
2.5 FUNDAMENTAÇÃO TEÓRICA .............................................................................................. 9 
2.5.1 Comunidades Open-Source ................................................................................................. 9 
2.5.2 Ferramentas computacionais ............................................................................................. 12 
2.5.2.1 MATLAB ........................................................................................................................ 13 
2.5.2.2 Octave e Scilab ............................................................................................................. 14 
2.5.3 Linguagens C++, Java e Ambiente POO ......................................................................... 15 
2.5.3.1 POO ............................................................................................................................... 15 
2.5.3.2 C++ ................................................................................................................................. 16 
2.5.3.3 Java ................................................................................................................................ 16 
2.5.4 Modelamento problemas de engenharia .......................................................................... 17 
2.5.5 Design Thinking – Conceitos Básicos............................................................................... 18 
2.5.6 Metodologia Científica.........................................................................................................19 
2.5.6.1 Protótipo ........................................................................................................................ 19 
2.5.6.2 Metodologia ................................................................................................................... 19 
2.5.6.3 Tecnologia Empregada ................................................................................................ 19 
2.6 METODOLOGIA DA PESQUISA .......................................................................................... 20 
2.6.1 Elaboração das Perguntas ................................................................................................. 20 
2.6.2 Análise da Pesquisa ............................................................................................................ 21 
2.6.3 Design Thinking ................................................................................................................... 21 
2.6.4 Questionário ......................................................................................................................... 22 
2.6.5 Prototipagem ........................................................................................................................ 23 
2.6.6 Teste do Protótipo ............................................................................................................... 23 
2.6.7 Implementação da Solução ................................................................................................ 24 
3. RESULTADOS .......................................................................................................................... 24 
3.1 METODOLOGIA DO PROTÓTIPO ...................................................................................... 24 
3.1.1 Metodologias Estudadas ................................................................................................ 24 
3.2 TECNOLOGIA EMPREGADA ............................................................................................... 25 
3.3 FERRAMENTAS ..................................................................................................................... 26 
3.3.1 Linguagem de Programação .......................................................................................... 26 
3.3.2 Banco de Dados .............................................................................................................. 27 
3.3.3 Hospedagem .................................................................................................................... 27 
3.4 ANÁLISE E DISCUSSÕES DOS RESULTADOS .............................................................. 29 
4. CONSIDERAÇÕES FINAIS ..................................................................................................... 30 
REFERÊNCIAS ................................................................................................................................. 31 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1. INTRODUÇÃO 
A história da Open Source Initiative (Iniciativa Open Source – OSI) se iniciou 
em 1998 como um movimento educacional e defensor do importante momento 
histórico de desenvolvimento colaborativo que ocorreu nessa década, devido ao 
enorme interesse e participação de programadores no desenvolvimento do Linux e 
pelo anúncio da Netscape Communications Corporation de abrir o código fonte de 
seu produto mais popular à época, o “Netscape Communicator”. 
Pouco após este anúncio, em uma conferência hospedada em Palo Alto, 
California, um grupo de conferencistas motivados pela atitude da Netscape (uma 
empresa pragmática) achou que esta fosse uma valiosa oportunidade de engajar 
desenvolvedores e usuários de software e convencê-los a criarem e utilizarem 
códigos fontes abertos, participando deste movimento que foi rotulado de “Open 
Source”, termo cunhado por Christine Peterson. 
A adoção do termo foi rápida, tendo apoio de grandes figuras da comunidade 
como Linus Torvalds e dos fundadores do Sendmail, Perl, Python, Apache, 
representantes do IETF e do Internet Software Consortium. (OPENSOURCE, 2020) 
Como uma de suas primeiras medidas, a OSI rascunhou a definição de open 
source conhecida por OSD (Open Source Definition), utilizando-a para criar uma lista 
de licenças aprovadas pela OSI. Inicialmente esta lista contava com diversas 
licenças, sendo as quatro mais utilizadas à época: 
 
1) GNU General Public License (GPL): esta licença obriga que as alterações 
realizadas (resultando em softwares derivados) também sejam licenciados 
sob a GPL. Isso impede um indivíduo ou uma empresa de pegar este código 
fonte, alterá-lo e divulga-lo como um software proprietário. (GNU, 2020) 
2) GNU Library (LGPL): esta licença seria o meio termo de liberdade entre a 
GPL e a BSD, permitindo que programas que não estejam sob licenças GPL 
ou LGPL sejam associados, inclusive a softwares proprietários. (GNU, 2020) 
3) BSD License: em seus termos esta licença coloca o software como de 
domínio público, podendo ser modificado sem nenhuma restrição, permitindo 
inclusive que softwares distribuídos sob esta licença sejam incorporados a 
produtos proprietários sendo, portanto, mais livre que a GPL, por exemplo. 
(FSF, 2020) 
4) MIT License: em termos de permissividade é equivalente à BSD, porém 
possui um texto melhor redigido, mais simplificado e mais claro sob o os 
diretos de uso, cópia, modificação etc. (MIT, 2020) 
 
Tomando por base o movimento acima descrito, este projeto visa o 
desenvolvimento de um repositório open source de código fonte para resolução de 
problemas em engenharia, fomentando o trabalho em equipe e a interação entre 
alunos e professores das mais diversas esferas da Engenharia. 
 
2. DESENVOLVIMENTO 
 
2.1 JUSTIFICATIVA E PROBLEMA 
O projeto surgiu da detecção da necessidade de criação de uma ferramenta 
que promova acesso, controle e fomente o trabalho colaborativo entre alunos para a 
resolução de problemas diversos envolvendo computação sob a forma de trabalhos, 
projetos e laboratórios criados e organizados pelos seus respectivos professores, 
tutores e/ou orientadores. 
Este formato permite grande exposição de diferentes projetos o que pode 
atrair atenção do setor privado promovendo parcerias entre alunos, professores e 
Universidades. 
 
2.2 OBJETIVOS DA PESQUISA 
O objetivo desse trabalho é permitir que coloquemos em prática tudo o que 
aprendemos até o momento no curso de Engenharia de Computação, integrando as 
matérias estudadas no semestre, dando assim, a possibilidade de nos 
aprofundarmos em questões reais e o mais importante, nos dando a oportunidade 
de criarmos uma solução inovadora para essas questões. 
Outro objetivo é a utilização da pesquisa como meio para resolvermos os 
problemas, estimular o espírito de equipe, interdisciplinaridade e desenvolvimento de 
novas ideias. 
 
2.3 OBJETIVO GERAL 
O presente trabalho tem por objetivo o desenvolvimento de um repositório de 
códigos fonte, que permita aos diversos professores e alunos das mais diversidades 
Universidades de Engenharia interagirem entre si, discutindo e resolvendo os mais 
diversos problemas de Engenharia. 
 
2.4 OBJETIVOS ESPECÍFICOS 
O objetivo específico deste projeto integrador é o desenvolvimento de uma 
plataforma que permita aos professores universitários da área de engenharia 
criarem trabalhos, projetos e laboratórios para as suas respectivas disciplinas, que 
façam uso de ferramentas computacionais a serem desenvolvidas pelos seus 
respectivos alunos. 
Como o projeto integrador será executado em duas fases, o foco inicial foi 
direcionado para a revisão bibliográfica sobre o tema, com imersão em literaturas de 
Open Source Initiative, Open Source Definition, software livre, repositórios digitais, 
tendo como sequencia o marco final da primeira fase: o protótipo da semântica de 
lógica da solução doproblema (modelo). 
Na segunda fase, que será desenvolvida no próximo bimestre, serão 
apresentadas as análises referentes à viabilidade do projeto, desenvolvimento de 
um protótipo a partir do modelo construído na primeira etapa, apresentação de 
exemplos e experiências de uso da ferramenta projetada, entre outros. 
Para definição dos objetivos específicos, foi utilizada a ferramenta de mapa 
mental, e em reuniões de brainstorm foram discutidos detalhes fundamentais para a 
sequência do projeto. Sempre utilizando o Design Thinking, foi mantido contato com 
possíveis clientes finais (cursos de engenharia de universidades). As perguntas 
disparadoras foram fundamentais para elaboração. 
 
 
2.5 FUNDAMENTAÇÃO TEÓRICA 
2.5.1 Comunidades Open-Source 
Na década de 1960 os softwares eram compartilhados gratuitamente, nos 
anos seguintes, com crescimento do mercado, eles começaram a ser vendidos, pois 
as empresas como modo de proteger seus códigos, começaram a patentear seus 
softwares, isto originou os softwares proprietários. No começo da década de 1980, 
movimento de softwares livres começa a surgir com Projeto GNU, que depois criou 
FSF (Free Software Foundation), que discorria os reflexos do software proprietário e 
desempenhava no desenvolvimento de um software livre. No ano final da década de 
1990, o movimento acaba por se estabelecer em dois grupos: o grupo free, que tem 
como missão a liberdade dos softwares e uso exclusivo dela, e o grupo open que, 
além da luta pela liberdade do softwares, também usa de modelos de livre 
licenciamento de software. Posteriormente temos a Free Software Foudation como 
melhor representação do grupo free e a Open Source Initiative como melhor 
representação do grupo open (EVANGELISTA, 2020; IWASAKI, 2020). 
 Segundo a Free Software Foudation (2020): 
 
 “O movimento Free Software e o movimento Open Source 
são como dois campos políticos dentro da comunidade de 
software livre. 
 Grupos radicais na década de 1960 desenvolveram 
reputação de facções: organizações que se dividem devido 
discordâncias em detalhes das estratégias, e ai se tratavam 
mutuamente como inimigas. Ou ao menos esta é a imagem 
que as pessoas têm delas, seja ou não verdadeira. 
 O relacionamento entre o movimento Free Software e o 
movimento Open Source é justamente o oposto deste. Nós 
discordamos nos princípios básicos, mas concordamos (mais 
ou menos) nas recomendações práticas. Assim nós podemos e 
de fato trabalhamos juntos em diversos projetos específicos. 
Nós não vemos o movimento Open Source como inimigo. O 
inimigo é o software proprietário.” 
O tema do projeto integrador para esse semestre tem como base uma 
comunidade código aberto (open source). A ideia é que os softwares disponíveis 
dessa comunidade não sejam somente freeware, mas também que eles possam ser 
alterados ou aperfeiçoados conforme a necessidade do usuário, com ele tendo a 
possibilidade depois de querer ou não compartilhar suas alterações. Lévy (1999), 
discorre sobre as comunidades open source dizendo: 
 
 “Quanto mais os processos de inteligência coletiva se 
desenvolvem [...], melhor a apropriação, por indivíduos e por 
grupos, das alterações técnicas, e menores são os efeitos de 
exclusão ou de destruição humana resultantes da aceleração 
do movimento tecno-social.” 
 
A internet, que por sua vez consegue reunir um número de pessoas com o 
mesmo interesse, estimula a comunidade cada vez mais a crescer. Castells (2003), 
discorre como a internet ajudou o movimento: 
 
 “Só uma rede de centenas de milhares de cérebros 
trabalhando cooperativamente, com divisão do trabalho 
espontâneo, e coordenação maleável, mas eficiente, poderia 
levar a cabo a tarefa extraordinária de criar um sistema 
operacional capaz de lidar com a complexidade de 
computadores cada vez mais potentes interagindo por meio da 
internet.” 
 
A comunidade open source tem diversas vantagens e desvantagens, a seguir 
algumas de suas vantagens: 
 
 Formação: há um crescente número de profissionais surgindo com 
interesse e qualificação na temática do código aberto. 
 Suporte: com a informação é aberta muitas pessoas podem atualizar, 
testar e corrigir o código. 
 Qualidade: a ferramenta permite que o código possa ser corrigido por 
milhares usuários. 
 Independência: preferência por protocolos e interfaces padrões, 
criando uma independência na escolha de solução mais adequada. 
 Longevidade: a comunidade pode ser tanto consumidora quanto 
produtora. 
 Segurança: a comunidade com seus usuários, pode trazer consigo uma 
contínua análise do código para que ache erros. 
 Licenças: alguns licenciamentos que garantem os direitos autorais dos 
códigos: GPL- General Public License (proíbe que se pegue um código aberto 
e o deixe como código proprietário), OSD- Open Source Definition (não obriga 
ao usuário compartilhar suas alterações do código) e BSD-Berkely System 
Distribution (coloca restrições para copias) 
 Migração: podendo ter migrações, pois muitos códigos abertos são 
compatíveis com os proprietários. 
 Custo Real: em muitos casos o custo é menor que o proprietário. 
 
 Em contraposto a comunidade também tem desvantagens, como por 
exemplo: 
 
 Falta de Informação: falta de conhecimento sobre o movimento, porém 
cada vez mais essa dificuldade está diminuindo 
 Preconceitos: receios com o código aberto por falta de conhecimento. 
 Questões da Atualidade: um dos principais problemas enfrentados é na 
questão dos direitos autorais em cima do código. 
 
Tendo cada vez mais relevância pelo seu meio de compartilhamento de 
informação, o movimento tem ajudando o a distribuição do conhecimento. A 
Instituições MIT (Massachusetts Institute of Technology) criou a iniciativa MIT 
OpenCourseWare, MIT OCW, tendo a ideia como base, que oferece conteúdos 
educacionais de forma livre e aberta para seus alunos e pesquisadores, ou seja, a 
mesma ideia aplicada de forma diferenciada. No Brasil, iniciativas como estas são 
conhecidas como Ambientes Virtuais de Aprendizagem. O Brasil já foi conhecido 
como “o maior e melhor amigo do software aberto” (BENSON, 2005; FESTA, 2001. 
KINGSTONE, 2005). 
Conhecendo melhor o movimento open source e vendo que uma ideia similar 
já foi aplicada em meio educacional, e que também já é reconhecida no Brasil, 
desenvolveu-se o protejo desse semestre: DESENVOLVIMENTO DE UM 
REPOSITÓRIO OPEN SOURCE DE CÓDIGOS FONTE PARA RESOLUÇÃO DE 
PROBLEMAS EM ENGENHARIA 
 
2.5.2 Ferramentas computacionais 
As ferramentas computacionais tornaram-se praticamente indispensáveis ao 
ambiente de ensino e prática da engenharia, pois elas auxiliam os alunos a resolver 
problemas que possivelmente enfrentarão na sua carreira profissional de forma mais 
eficiente e dinâmica, em que o domínio da sua utilização representa uma vantagem 
competitiva. Também, as ferramentas computacionais ajudam no processo de 
ensino-aprendizado à medida que possibilita o usuário variar as condições de sua 
simulação e entender as relações de causa-efeito do modelo concebido. Não é à toa 
que cursos de engenharia empregam cada vez mais ferramentas como o MATLAB, 
Scilab e Octave no ensino de seu conteúdo. 
 
2.5.2.1 MATLAB 
A palavra MATLAB é derivada das palavras em inglês matrix e laboratory 
(matriz e laboratório em português). O software utiliza uma linguagem de alto nível e 
é uma plataforma de programação destinada à computação numérica e manipulação 
de vetores e matrizes, oferecendo elementos gráficos de visualização de repostas 
em duas e três dimensões. A larga penetração do MATLAB nas áreas de pesquisa e 
engenharia se deve em grande parte à facilidade com que um usuário iniciante pode 
aprender a usar um ambiente de programação com pouco esforço (MATHWORKS, 
2020). 
O MATLAB oferece aos engenheiros e pesquisadores do campo das ciências 
exatas umalinguagem intuitiva para expressar problemas lineares e não-lineares e 
suas soluções de maneira matemática e gráfica. Isso é feito integrando computação, 
programação e visualização em um ambiente flexível, aberto e extensível. Assim, 
problemas numéricos e simbólicos complexos podem ser resolvidos em uma fração 
do tempo necessário com outras linguagens de programação como C, Fortran ou 
Java, mesmo que o MATLAB compartilhe alguma sintaxe e até alguns detalhes de 
implementação com linguagens de programação como C ou Java (YÁNEZ-
MÁRQUEZ et al., 2014). 
Outro aspecto atraente do MATLAB é a sua caixa de ferramentas: coleções 
de algoritmos, funções, estruturas de dados e módulos, criados para resolver 
problemas específicos de um campo específico. Assim, existem caixas de 
ferramentas para processamento de imagens, processamento de sinais, ajuste de 
curvas, bioinformática ou caixa de ferramentas aeroespacial uniforme. No entanto, o 
MATLAB não é de código aberto, sendo uma ferramenta bastante cara e pouco 
acessível para muitas instituições de ensino, pequenas empresas e profissionais no 
início de carreira. 
 
2.5.2.2 Octave e Scilab 
Como alternativa, tem-se ferramentas equivalentes de código aberto como a 
plataforma Octave e a plataforma Scilab, que podem usar linguagem compatível 
com o MATLAB. O Octave foi criado originalmente por James B. Rawlings, da 
Universidade de Wisconsin-Madison e John G. Ekerdt, da Universidade do Texas, 
sendo desenvolvido usando C e C ++ sob a Licença Pública Geral GNU. O Octave 
possui ferramentas abrangentes para resolver problemas comuns de álgebra linear 
numérica, encontrar as raízes de equações não lineares, integrar funções comuns, 
manipular polinômios e integrar equações diferenciais e algébricas diferenciais-
algébricas comuns (GNU, 2020). Ele é um software livremente redistribuível, 
disponível para download livre em: https://www.gnu.org/software/octave/. 
O Scilab, programa utilizado na execução dos exemplos desse trabalho, é um 
software gratuito e de código aberto sob a licença GPL, utilizado para computação 
numérica. A ferramenta também oferece um poderoso ambiente de computação 
para aplicações científicas e de engenharia, disponível nos sistemas operacionais 
GNU/Linux, Mac OS X e Windows. O Scilab possui um grande número de 
funcionalidades como funções embutidas de operações matemáticas para 
aplicações de engenharia e científicas, funções gráficas para visualizar dados, 
algoritmos para resolver problemas de otimização contínua e discreta, ferramentas 
para executar análise e modelagem de dados, modelagem de sistemas mecânicos, 
circuitos hidráulicos, sistemas de controle, entre outros. O programa também pode 
atuar como uma plataforma exclusiva para reunir códigos escritos em diferentes 
linguagens de programação em uma única linguagem unificada, facilitando sua 
distribuição, backup e uso (SCILAB, 2020). Ele está, disponível para download livre 
em: https://www.scilab.org/. 
Almeida, Medeiros e Frery (2012) avaliaram o desempenho das três 
ferramentas computacionais descritas, para efeito comparativo dos algoritmos 
empregados, através de estudo estatístico de Monte Carlo de um conjunto padrão 
de dados com valores certificados que levou em consideração o número de 
algarismo significativos corretos fornecidos por cada programa. O Scilab obteve 
https://www.gnu.org/software/octave/
https://www.scilab.org/
bons resultados em que, em alguns quesitos, teve um desempenho superior ao 
Octave e MATLAB. Assim, além de ser uma ferramenta computacional acessível, o 
Scilab demonstra ser um recurso confiável para computação numérica e resolução 
de problemas, sendo adequado para introdução nos cursos de engenharia. 
 
2.5.3 Linguagens C++, Java e Ambiente POO 
2.5.3.1 POO 
Dentro do contexto do trabalho de PI, a saber "DESENVOLVIMENTO DE UM 
REPOSITÓRIO OPEN SOURCE DE CÓDIGOS FONTE PARA RESOLUÇÃO DE 
PROBLEMAS EM ENGENHARIA", é interessante aumentar a portabilidade dos 
códigos fonte disponíveis, tornando-os disponíveis para várias plataformas. 
Neste contexto, conforme Nørmark (2011) a Programação Orientada a 
Objetos (POO) assume um papel de relevância. A POO trabalha com o paradigma 
procedural e tem com uma das características o encapsulamento de rotinas, que são 
acessórias para o código fonte principal. Suponha um programa básico de 
engenharia, por exemplo: na área de Fenômenos de Transporte, onde seja 
necessária a resolução de sistemas de equações diferenciais e mais o código fonte 
principal deve rodar em várias plataformas, desde um computador pessoal até um 
tablet. Usando o paradigma procedural com POO seria possível conciliar essas 
necessidades distintas, sem sobrecarregar o programador com detalhes de grande 
complexidade e que não são o objetivo principal da resolução do código fonte 
original. 
A POO baseia-se na interação de diversas entidades denominadas de 
objetos, que são agrupados em classes. Cada objeto tem seus atributos e cada 
atributo por sua vez tem seu método associado. Pode-se entender cada objeto como 
uma instância de classes. 
Hoje em dia, muitas das linguagens de programação mais utilizadas 
empregam o paradigma procedural com suporte POO, entre elas: C++, C#, Java, 
Python, Ruby entre outras. Dada a sua aplicabilidade, a POO ainda deve ser 
relevante por muito tempo. Existem também correntes contrárias à POO, que dizem 
que a “POO não satisfaz os objetivos de reusabilidade e modularidade, e dá-se 
ênfase demasiada em design e modelamento de software em detrimento de outros 
aspectos (computabilidade/algoritmos)”. 
Neste trabalho de PI, o foco será mantido em POO, a partir das linguagens 
C++ e Java, descritos brevemente a seguir. 
 
2.5.3.2 C++ 
Deitel e Deitel, além de Stroustrup, dizem que a linguagem C++ é uma 
linguagem de programação compilada e orientada a objetos. O C++ foi desenvolvido 
por Bjarne Stroustrup no Bell Laboratories. Desde a década de 1990 é uma das 
linguagens comerciais mais utilizadas tanto pela Academia, quanto pelas indústrias. 
Outro ponto importante da linguagem C++ é o fato de ter várias versões 
padronizadas pela ISO (International Organization for Standardization – 
www.iso.org) sendo a versão mais recente: ISO/IEC 14882:2017 (15 de dezembro 
de 2017). Esta padronização é importante por melhorar a portabilidade dos códigos-
fonte desenvolvidos. 
Deitel e Deitel apresentam, de forma bastante detalhada, a linguagem C, 
baseada em programação procedural e projeto de programa top-down. Na 
sequência, apresentam a linguagem C++ como uma evolução da linguagem C, onde 
foram incorporados dois paradigmas de programa adicionais, a saber: programação 
orientada a objeto e programação genérica. A linguagem C++ foi desenvolvida, 
oferecendo recursos que permitem aumentar a produtividade e também as chances 
de reutilização do software, que é um dos objetivos básicos deste trabalho de PI. 
 
2.5.3.3 Java 
Deitel e Deitel explicam a linguagem Java, como sendo uma linguagem de 
programação orientada a objetos desenvolvida na década de 90 por James Gosling 
e sua equipe na empresa Sun Microsystems, que foi comprada pela Oracle 
Corporation em 2008. 
Alguma das características da linguagem Java são: 
 
 Orientação a objetos. 
 Portabilidade, independente da plataforma. Na comunidade Java diz-se: 
“escreva uma vez, execute em qualquer lugar”. 
 Recursos em rede e segurança. 
 Apresenta sintaxe similar à linguagem C++. 
http://www.iso.org/
https://pt.wikipedia.org/wiki/C%2B%2B17
https://pt.wikipedia.org/wiki/2017
 
Outro detalhe interessante é o fato da Sun Microsystems ter liberado partes 
do Java como software livre, sob a licença GNU General Public License, o que 
aumenta a atratividade desta linguagem de programação. 
Deitel e Deitel apresentam, de forma bastante detalhada, a linguagem Java 
com seus componentes principais, baseados em métodos e classes, instanciação,reutilização, atributos e variáveis de instância, encapsulamento, herança, interface 
entre outros. 
 
2.5.4 Modelamento problemas de engenharia 
A Engenharia está diretamente ligada com as habilidades de conhecimento, 
criatividade, liderança e planejamento, são habilidades que o engenheiro deve 
desenvolver para ter sucesso. Além das habilidades o engenheiro utiliza várias 
ferramentas que auxiliam no desenvolvimento do seu trabalho, uma delas é a 
modelagem. 
 
A modelagem de problemas mostra como os engenheiros chegam a solução 
de problemas no dia a dia, sendo necessário uma base de conhecimento 
indispensável para obter sucesso. A modelagem é a representação do produto final 
antes de sua conclusão. A modelagem segue alguns passos que são: 
 
1. Definir o problema 
2. Construir o modelo 
3. Solucionar problemas que ocorrerem no modelo 
4. Validar o modelo 
5. Implantar o modelo. 
 
Quando a modelagem é realizada de forma correta para o sistema que está 
em desenvolvimento, os problemas são solucionados de forma mais clara, por isso a 
importância de realizar a modelagem. 
 
 
 
 
https://pt.wikipedia.org/wiki/Software_livre
https://pt.wikipedia.org/wiki/GNU_General_Public_License
2.5.5 Design Thinking – Conceitos Básicos 
A utilização do conceito de Design Thinking que preconiza a adoção das 5 
etapas, a saber: 
 
1- Identificar onde encontrar oportunidades de inovação 
. 
Trata de descobrir onde encontrar caminhos para inovar a partir do 
conhecimento próprio e do ambiente externo. 
2- Descobrir a Oportunidade de Inovação 
 
Nesta etapa busca-se ampliar a abrangência das ideias identificadas no item 
anterior e já se inicia a mapear o mercado para saber da atratividade da ideia. 
 
3- Desenvolver a Oportunidade de Inovação (Produto ou Serviço) 
 
A partir das etapas anteriores, inicia-se a etapa de desenvolvimento do 
produto. 
 
4- Testar as ideias — protótipos 
 
À medida que o desenvolvimento do produto avançar, é iniciado um processo 
de PDCA (“Plan, Do, Check, Act”). A ideia é trazer o cliente/usuário do produto 
desenvolvido para próximo do ambiente de desenvolvimento, de modo a 
desenvolver um produto “sob medida” e que efetivamente atenda às suas 
necessidades. 
 
 
5- Implementar a solução 
 
A etapa de implementação do produto começa quando forem executados 
todos os passos anteriores. 
 
 
2.5.6 Metodologia Científica 
2.5.6.1 Protótipo 
O protótipo é a melhor maneira de definir um projeto, trazendo rapidez e 
economia ao definir e testar um projeto. 
 
2.5.6.2 Metodologia 
O protótipo será desenvolvido com o intuito de disponibilizar um espaço na 
rede mundial de computadores para que professores e alunos possam interagir 
colaborativamente na resolução de problemas de engenharia diversos que envolvam 
recursos computacionais. O protótipo será desenvolvido em plataforma web e 
disponibilizado no endereço eletrônico http://www.piunivesp.com.br/sistema, onde 
terão informações sobre o projeto junto à ferramenta que será desenvolvida. 
 
2.5.6.3 Tecnologia Empregada 
Ao desenvolver uma aplicação em ambiente web, é necessário prover 
condições favoráveis para a Interação do usuário com o sistema. É preciso pensar 
em sistemas que reduzam o ruído de comunicação e facilitem a visualização das 
informações, sem causar desconforto ou dificuldade de entendimento (CYBIS, 
2003). 
A interação entre o usuário e o programam é dada por meio da interface, 
onde são disponibilizadas mensagens inteligíveis como as sonoras, verbais e 
icônicas para os usuários e sinais elétricos para os programas. É necessário criar 
um ambiente propício à recepção da mensagem, seja ela por meio de textos, áudios 
ou vídeos. 
Para a interação proposta é preciso entender como as pessoas utilizam a 
tecnologia da informação, para isso é utilizada a interação humano-computador para 
observar como o homem interage com um sistema computadorizado, a fim de avaliar 
o design de sistemas interativos e seus fenômenos, bem como atributos de 
usabilidade. 
Sabendo como o usuário utiliza a tecnologia, podemos desenvolver a 
interface com base em ergonomia e usabilidade, estas dispostas pela ISO 9241 que 
determina que a extensão em que um produto pode ser usado por usuários 
específicos para alcançar objetivos específicos de uso. A interface será 
desenvolvida com as tecnologias que são os pilares do Web Designer Responsivo, 
HTML5, JavaScript e CSS, disponibilizando ao usuário uma experiência rica 
independente se o acesso é dado por dispositivo móveis como smartphones e 
tablets ou por computadores desktops. 
 
 
2.6 METODOLOGIA DA PESQUISA 
Este trabalho foi dividido em quatro capítulos. O primeiro capítulo apresenta a 
introdução do trabalho com sua contextualização e breve objetivo. No capítulo dois 
tem-se a explicação do problema, os objetivos gerais e específicos do trabalho, 
fundamentação teórica com uma breve apresentação sobre comunidades open 
source, ferramentas computacionais e outros. No capítulo três foram discutidos os 
resultados da pesquisa, as metodologias estudadas e empregadas no protótipo, as 
ferramentas necessárias para o seu desenvolvimento e a idealização do protótipo 
em si e seu funcionamento. As considerações finais foram apresentadas no capítulo 
quatro. 
 
2.6.1 Elaboração das Perguntas 
Primeiramente, foi definida a realização de um questionário voltado para 
cursos de engenharia de diversas universidades que potencialmente poderiam se 
favorecer com uma eventual solução desenvolvida pelo Projeto Integrador. 
As perguntas do questionário foram definidas de acordo com os objetivos 
previamente expostos do Projeto Integrador, relacionados à criação de uma 
comunidade open source. As perguntas foram do tipo abertas, pedindo aos 
entrevistados para escrever comentários, opiniões ou qualquer outro tipo de texto de 
resposta livre. Elas tiveram o caráter simples e direto, utilizando a linguagem da 
maioria dos respondentes. No caso da utilização de algum jargão técnico ou 
conceito pouco difundido nas perguntas, o mesmo foi explicado ao respondente. 
Também, cada pergunta feita abordou uma ideia por vez para não gerar confusão na 
interpretação da mesma. Finalmente, as perguntas foram equilibradas e objetivas 
para que não gerassem vícios e interpretações tendenciosas. 
Foram obtidos feedbacks sobre a pesquisa, os quais serão utilizados na 
revisão do questionário e elaboração da pesquisa final. 
 
 
2.6.2 Análise da Pesquisa 
Após a coleta das respostas da pesquisa, os dados obtidos foram 
organizados e tabulados para análise. Serão realizadas análises qualitativas e 
quantitativas das informações prestadas. Filtros e tabulações cruzadas serão 
aplicados para restringir o foco a temas comuns às universidades questionadas. As 
informações analisadas serão utilizadas no desenvolvimento da plataforma para o 
cumprimento dos objetivos estabelecidos para esse projeto. 
2.6.3 Design Thinking 
Neste projeto adotou-se a abordagem do Design Thinking. De acordo com a 
organização global sem fins lucrativos Endeavor.org, o Design Thinking “é uma 
abordagem que busca a solução de problemas de forma coletiva e colaborativa, em 
uma perspectiva de empatia máxima com seus stakeholders (interessados): as 
pessoas são colocadas no centro de desenvolvimento do produto – não somente o 
consumidor final, mas todos os envolvidos na ideia (trabalhos em equipes 
multidisciplinares são comuns nesse conceito)”. 
A abordagem do Design Thinking preconiza a adoção de algumas etapas. 
Apresenta-se a seguir, a forma como cada etapa relacionou-se com este trabalho. 
 
1- Identificar onde encontrar oportunidades de inovação 
No caso deste projeto, o grupo adotou uma série de reuniões, até que optou 
pelo desenvolvimento de uma ferramenta de apoio às universidades para a 
resolução de problemas diversos de engenharia. Vários foram os pontos fortes 
identificados nesteprojeto: 
 
● O tema tem grande potencial a ser explorado. 
● O tema é aderente à temática central do Projeto Integrador: “Ferramentas 
Computacionais para Laboratórios de Cursos de engenharia”. 
● O projeto fomenta o trabalho colaborativo, característica extremamente 
importante e desejada por empresas em seus colaboradores. 
 
2- Descobrir a Oportunidade de Inovação 
A fim de identificar as oportunidades de inovação, o questionário foi elaborado 
buscando-se entender quais as necessidades dos laboratórios das Universidades de 
Engenharia. Uma vez definidas as necessidades comuns, realizamos uma sessão 
de brainstorming para gerar ideias que pudessem abarcar o problema. Chegamos a 
três possíveis soluções com potencial de sucesso. 
A partir da ideia vencedora, fizemos um esboço do que será a solução. Assim, 
as universidades poderão visualizar o conceito do projeto e compartilhar opiniões e 
soluções antes da fase de criação do protótipo, permitindo um refino do conceito. 
 
3- Desenvolver a Oportunidade de Inovação 
A partir das respostas obtidas serão levantadas as oportunidades de inovação 
que aprimorarão a ferramenta desenvolvida. 
 
4- Testar as ideias — protótipos 
 Foi desenvolvido um primeiro conjunto de questões que compõem a revisão 
inicial do protótipo. 
5- Implementar a solução 
A partir das respostas ao questionário, serão avaliadas as possibilidades de 
se implementar as soluções desejadas pelas universidades. 
2.6.4 Questionário 
Conforme demonstrado na fundamentação teórica vista previamente, a fim de 
bem compreender as necessidades dos usuários potenciais para este trabalho, foi 
desenvolvido um questionário para a realização de uma pesquisa de campo. 
Desta forma pode-se saber a opinião de alguns possíveis usuários da 
ferramenta quando em seu estágio final. As perguntas do questionário foram 
definidas de acordo com os objetivos previamente expostos do Projeto Integrador. 
As perguntas foram do tipo abertas, pedindo aos entrevistados para escrever 
comentários, opiniões ou qualquer outro tipo de texto de resposta livre. Elas tiveram 
o caráter simples e direto, utilizando a linguagem da maioria dos respondentes. No 
caso da utilização de algum jargão técnico ou conceito pouco difundido nas 
perguntas, o mesmo foi explicado ao respondente. Também, cada pergunta feita 
abordou uma ideia por vez para não gerar confusão na interpretação da mesma. 
Finalmente, as perguntas foram equilibradas e objetivas para que não gerassem 
vícios e interpretações tendenciosas. Eis o questionário: 
1) Vocês possuem laboratórios para desenvolvimento prático de atividades voltadas 
aos cursos de Engenharia? 
 
2) Como funciona atualmente a parte prática dessas disciplinas? 
 
3) Vocês incluem recursos computacionais no desenvolvimento dessas atividades? 
 
4) Como você acredita ser possível o uso de recursos computacionais juntamente às 
disciplinas dos cursos de Engenharia? 
 
5) Qual recurso você gostaria de ter, que você considera que te ajudaria a ministrar, 
administrar ou mesmo auxiliar com as disciplinas de Engenharia de sua instituição? 
 
6) Quais outras necessidades da Universidade você identificaria, que sejam relativas 
à possibilidade de união entre ferramentas computacionais e as disciplinas de 
engenharia? 
2.6.5 Prototipagem 
O protótipo a ser desenvolvido será uma plataforma web programada com 
PHP (Hypertext Preprocessor), uma linguagem simples bastante difundida que pode 
ser embutida no HTML e que é de conhecimento dos membros do grupo. 
 
2.6.6 Teste do Protótipo 
O protótipo desenvolvido será testado com o grupo de referência (os cursos 
de Engenharia das faculdades e universidades pesquisadas) em uma sessão de 
cocriação em que os envolvidos interagirão com a plataforma e indicarão as suas 
experiências de uso, podendo propor ajustes na interface das páginas. 
2.6.7 Implementação da Solução 
Uma vez validado o protótipo, far-se-ão os ajustes necessários para 
disponibilizar a plataforma para os interessados e realizaremos estudos mais 
aprofundados do mercado para compor um modelo de negócio e definir estratégias 
de lançamento do serviço. 
 
3. RESULTADOS 
3.1 METODOLOGIA DO PROTÓTIPO 
O protótipo será desenvolvido com o intuito de captar e oferecer códigos para 
diversos problemas computacionais e em diversas linguagens de programação, 
onde os usuários poderão incluir seus códigos, ou dúvidas no desenvolvimento 
desses códigos, para que outros usuários consigam apresentar soluções ou auxiliar 
na construção de uma solução. O protótipo será desenvolvido em plataforma web e 
disponibilizado no endereço eletrônico http://piunivesp.com.br/labcod/exibe.php, 
onde terão informações sobre o projeto e arquivos de exemplo do funcionamento da 
ferramenta. 
 
3.1.1 Metodologias Estudadas 
 Espiral: após o termino do desenvolvimento, volta-se ao início 
para que novas funcionalidades possam ser agregadas ao projeto. 
 Processo Unificado: as fases anteriores não são finalizadas 
com o início da seguinte. Cada fase do processo é sobreposta à outra, 
permitindo que alterações ocorram durante o projeto. 
 Cascata: fases sequenciais podendo haver uma 
retroalimentação da fase atual para a fase anterior. 
 Linear: etapas executadas em ordem pré-definida, com 
processo unidirecional de resolução de problemas. 
Para o desenvolvimento do website foi utilizada a metodologia espiral, pois o 
projeto teve poucas etapas a serem desenvolvidas e programadas. No termino do 
desenvolvimento não foram identificadas novas funcionalidades a serem agregadas 
ao projeto. 
Foram realizadas conferências de planejamento para definir o mapa do site, 
os conteúdos, as funcionalidades e as tecnologias empregadas no website. As 
reuniões ocorreram por meio do software Skype, aplicativo de chamada por VoIP 
(Voice over Internet Protocol, ou voz por ip). 
 
3.2 TECNOLOGIA EMPREGADA 
Ao desenvolver uma aplicação em ambiente web, é necessário prover 
condições favoráveis para a Interação do usuário com o sistema. É preciso pensar 
em sistemas que reduzam o ruído de comunicação e facilitem a visualização das 
informações, sem causar desconforto ou dificuldade de entendimento (CYBIS, 
2003). 
A interação entre o usuário e o programam é dada por meio da interface, 
onde são disponibilizadas mensagens inteligíveis como as sonoras, verbais e 
icônicas para os usuários e sinais elétricos para os programas. É necessário criar 
um ambiente propício à recepção da mensagem, seja ela por meio de textos, áudios 
ou vídeos. 
Para a interação proposta é preciso entender como as pessoas utilizam a 
tecnologia da informação, para isso é utilizada a interação humano-computador para 
observar como o homem interage com um sistema computadorizado, a fim de avaliar 
o design de sistemas interativos e seus fenômenos, bem como atributos de 
usabilidade. 
Sabendo como o usuário utiliza a tecnologia, podemos desenvolver a 
interface com base em ergonomia e usabilidade, estas dispostas pela ISO 9241 que 
determina que a extensão em que um produto pode ser usado por usuários 
específicos para alcançar objetivos específicos de uso. A interface será 
desenvolvida com as tecnologias que são os pilares do Web Designer Responsivo, 
HTML5, JavaScript e CSS, disponibilizando ao usuário uma experiência rica 
independente se o acesso é dado por dispositivo móveis como smarthphones e 
tablets ou por computadores desktops. 
Para que o objetivo proposto seja alcançado, o protótipo será desenvolvido 
primeiro para dispositivos móveis, utilizando para isso as técnicas do “Mobile Fist” 
(Castro, 2013). Vivemos uma explosão da tecnologia mobile onde os dispositivos 
são renovados com uma velocidade e frequência muito alta. O desenvolvimento do 
layout para dispositivos móveis implica em otimização de ações e dados que gera o 
descarte de elementos desnecessários e possibilita a geração de conteúdo rico. 
3.3FERRAMENTAS 
O projeto foi dividido em três tópicos: linguagem de programação, banco de 
dados e hospedagem sendo que cada um dos tópicos é diretamente dependente 
dos outros, ou seja, a hospedagem precisa suportar a linguagem de programação, 
que é diretamente relacionada à base de dados. 
 
3.3.1 Linguagem de Programação 
A linguagem de programação utilizada para o desenvolvimento do conteúdo 
dinâmico foi o PHP, acrônimo recursivo para PHP: Hypertext Preprocessor 
(originalmente Personal Home Page). O PHP foi escolhido para o projeto por ser 
uma linguagem não proprietária e com ampla difusão e utilização. 
 
A linguagem PHP, é uma linguagem Server Site, ou seja, ela é processada do 
lado do servidor e é a responsável pela conexão com a base de dados. Para o 
protótipo foi utilizada a instrução select para a seleção dos dados das tabelas do 
Banco de Dados conforme representado na tabela abaixo. 
 
 
Tabela 1 – Instrução SELECT para selecionar dados do banco de dados 
 
"SELECT * FROM proj1_organizacao"; Selecionar todos os dados de todas as 
colunas contidos na tabela 
proj1_organização. 
"SELECT * FROM proj1_organizacao 
WHERE id_organizacao = 
'$rec_organizacao'"; 
 
Selecionar todos os dados de todas as 
colunas contidos na tabela 
proj1_organização enquanto o dado da 
coluna id_organizacao for igual ao valor 
da variável $rec_organização. 
"SELECT * FROM proj1_experimento 
WHERE id_exp = '$id_experiment'"; 
 
Selecionar todos os dados de todas as 
colunas contidos na tabela 
proj1_experimento enquanto o dado da 
coluna id_exp for igual ao valor da 
variável $id_experiment. 
"SELECT * FROM proj1_solucao WHERE 
id_solucao = '$rec_programa '"; 
 
Selecionar todos os dados de todas as 
colunas contidos na tabela proj1_solucao 
enquanto o dado da coluna id_solucao for 
igual ao valor da variável $rec_programa. 
 
Fonte: Produção própria, 2020. 
 
 
 
3.3.2 Banco de Dados 
Com a definição da linguagem de programação, foi possível definir a escolha 
por uma base de dados que trabalhe com a linguagem escolhida, para isso foi 
utilizada a base de dados MySQL. 
Na visão de Elmasri (2011), a utilização de uma abordagem baseada em 
SGBDs tem como vantagem o controle de redundância, o controle de acesso, a 
persistência para programas e estrutura de dados, eficiência no processamento de 
consultas, o oferecimento de backup e recuperação e garantia de integridade. Esses 
recursos garantem que os padrões sejam seguidos, reduz o tempo de 
desenvolvimento de aplicações além de proporcionar flexibilidade e disponibilidade 
gerando economia de escala. 
 
Figura 1 – Modelo entidade relacionamento 
 
Fonte: Produção própria, 2020. 
 
3.3.3 Hospedagem 
Já definidas a linguagem de programação e a base de dados foi possível 
optar por um ambiente de hospedagem com suporte a linguagem PHP e a base de 
dados MySQL. Além da linguagem de programação PHP, foram utilizadas as 
linguagens de hipertexto HTML (Hyper Text Markup Language) e de marcação CSS 
(Cascading Style Sheets) para marcar e organizar as informações. 
Para a publicação dos arquivos no servidor de hospedagem da internet, foi 
utilizado o protocolo de transferência de arquivos FTP (File Transfer Protocol) por 
meio do software FileZilla. 
O endereço na internet, ou domínio, utilizado para a publicação do site foi 
contratado junto ao órgão regulador NIC.BR e está disponível em 
http://piunivesp.com.br/labcod/exibe.php 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3.4 ANÁLISE E DISCUSSÕES DOS RESULTADOS 
 
A fazer. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4. CONSIDERAÇÕES FINAIS 
 
 
A fazer. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
REFERÊNCIAS 
 
ALMEIDA, E.; MEDEIROS, A.; FRERY,A. How good are MatLab,Octave and 
Scilab for computational modelling?. Computational and Applied Mathematics, 
vol. 31, n. 3, p. 523-538, 2012. 
CAMPOS, AUGUSTO. O que é software livre. Disponível em: 
http://www.engwhere.com.br/empreiteiros/O-que-e-software-livre.pdf. Acesso em: 12 
de maio de 2020. 
CASTRO, Arthur, O que é esse tal de Mobile First?, 2013. Disponível em: 
http://www.ideiademarketing.com.br/2013/04/24/o-que-e-esse-tal-de-mobile-first; 
Acesso em: 15 de Maio de 2020. 
CYBIS, Walter de Abreu. 2003. Engenharia de usabilidade: uma abordagem 
ergonômica. Disponível em http://www.labiutil.inf.ufsc.br/hiperdocumento/index.html. 
Acesso em 15 de Maio de 2020. 
DEITEL, PAUL E DEITEL, HARVEY; “Java – Como programar”; ISBN: 978-85-430-
0479-2; 10ª edição; Edit. Pearson Education do Brasil; 2017. 
ELMASRI, RAMEZ; NAVATHE, SHAMKANT B. Sistemas de Banco de Dados. 
Pearson, 6a edição, 808p., 2011. 
ENDEAVOR. Design Thinking: o que é e como aplicar. Disponível em: 
https://endeavor.org.br/tecnologia/design-thinking-inovacao/. Acesso em: 10 de maio 
2020. 
EVANGELISTA, R. O movimento software livre do Brasil. Horizontes 
Antropológicos. Disponível em: https://journals.openedition.org/horizontes/578. 
Acesso em: 12 de maio de 2020. 
FOUNDATION, Free Software. FSF Licensing & Compliance Team. Disponível 
em: https://www.fsf.org/. Acesso em: 11 de maio de 2020. 
GNU. GNU Octave. Diposnível em : https://www.gnu.org/software/octave/. Acesso 
em: 25 abr. 2020. 
GNU. Licenças - Projeto GNU. Disponível em: 
https://www.gnu.org/licenses/licenses.html. Acesso em: 10 de maio de 2020. 
http://www.engwhere.com.br/empreiteiros/O-que-e-software-livre.pdf
https://endeavor.org.br/tecnologia/design-thinking-inovacao/
https://journals.openedition.org/horizontes/578
https://www.fsf.org/
https://www.gnu.org/software/octave/
https://www.gnu.org/licenses/licenses.html
INITIATIVE, Open Source. History of the OSI. Disponível em: 
https://opensource.org/history. Acesso em: 11 de maio de 2020. 
IWASAKI, E. Movimento Open Source. Disponível em: http://mail.dicas-
l.com.br/download/movimento_open_source.pdf. Acesso em: 12 de maio de 2020. 
KURT NØRMARK, Object-oriented Programming in C# for C and Java 
programmers. 2011. http://people.cs.aau.dk/~normark/oop-
csharp/html/notes/theme-index.html. Acesso em 10 maio 2020. 
LUÍS DE SOUZA DUTRA, RENATO; MARGARIDA ROCKENBACH TAROUCO, 
LIANE. Recursos Educacionais Abertos (Open Educational Resources). 
Disponível em: https://seer.ufrgs.br/renote/article/view/14171/8099. Acesso em: 12 
maio 2020. 
MATHWORKS. MATLAB. Diposnível em : 
https://www.mathworks.com/products/matlab.html. Acesso em: 25 abr. 2020. 
PETETIM LEAL FERREIRA, JOÃO; ALEXANDRE. Open Source Software. 
Disponível em: https://student.dei.uc.pt/~ajfer/CP/CP%20Artigo%20-
%20Open%20Source%20Software.pdf. Acesso em 12 de maio de 2020. [4] 
SCILAB. About. Diposnível em : https://www.scilab.org/about. Acesso em: 25 abr. 
2020. 
STROUSTRUP, BJARNE, The Design of C++, em: 
https://indico.cern.ch/event/67017/attachments/1019984/1451797/CERN_design.pdf. 
Acesso em: 10 de maio de 2020. 
YÁNEZ-MARQUES, C. et al. Emerging Computational Tools: Impact on 
Engineering Education and Computer Science Learning. International Journal of 
Engineering Education, v. 30, n. 2, p. 1-10, 2014. 
https://opensource.org/history
http://mail.dicas-l.com.br/download/movimento_open_source.pdf
http://mail.dicas-l.com.br/download/movimento_open_source.pdf
http://people.cs.aau.dk/~normark/oop-csharp/html/notes/theme-index.html
http://people.cs.aau.dk/~normark/oop-csharp/html/notes/theme-index.html
https://seer.ufrgs.br/renote/article/view/14171/8099
https://www.mathworks.com/products/matlab.html
https://student.dei.uc.pt/~ajfer/CP/CP%20Artigo%20-%20Open%20Source%20Software.pdf
https://student.dei.uc.pt/~ajfer/CP/CP%20Artigo%20-%20Open%20Source%20Software.pdf
https://www.scilab.org/about
https://indico.cern.ch/event/67017/attachments/1019984/1451797/CERN_design.pdf

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes