Escolar Documentos
Profissional Documentos
Cultura Documentos
<Link Youtube>
Guaratinguetá - SP
2020
UNIVERSIDADE VIRTUAL DO ESTADO DE SÃO PAULO
Guaratinguetá - SP
2020
1
GONÇALVES Felipe Augusto Vieira; MIRANDA, Raphael Barros; ANANIAS, Thiago
de Vasconcelos.
Projeto de um repositório open source de códigos fonte para resolução de
problemas em engenharia. 00f. Relatório Técnico-Científico (Engenharia da
Computação) – Universidade Virtual do Estado de São Paulo. Tutor:. Polo
Guaratinguetá, 2020.
RESUMO
2
GONÇALVES Felipe Augusto Vieira; MIRANDA, Raphael Barros; ANANIAS, Thiago
de Vasconcelos.
Projeto de um repositório open source de códigos fonte para resolução de
problemas em engenharia. 00f. Relatório Técnico-Científico (Engenharia da
Computação) – Universidade Virtual do Estado de São Paulo. Tutor:. Polo
Guaratinguetá, 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 luto 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.
3
LISTA DE ILUSTRAÇÕES
4
Sumário
1. INTRODUÇÃO ............................................................................................................... 7
2. DESENVOLVIMENTO .................................................................................................... 9
2.5.2.1 - MATLAB................................................................................................................ 13
2.5.3.3 Java......................................................................................................................... 16
1. Empathize: ............................................................................................................. 19
3.1.2 - Protótipo................................................................................................................... 20
3.2.4 - Questionário............................................................................................................. 23
3.3 - Prototipagem............................................................................................................... 24
4. Resultados ...................................................................................................................... 25
4.3 - Ferramentas................................................................................................................ 26
6
1. INTRODUÇÃO
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)
7
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.
8
2. DESENVOLVIMENTO
9
direcionado para a revisão bibliográfica sobre o tema, com imersão em literaturas de Open
Source lnitiative, 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 do
problema (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.
10
2.5 - JUSTIFICATIVA e FUNDAMENTAÇÃO TEÓRICA
12
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 Repositor Open Source De Códigos Fonte
para resolução de Problemas em Engenharia.
2.5.2.1 - MATLAB
13
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
uma linguagem 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.3.1 POO
15
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++
2.5.3.3 Java
16
- 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++.
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.
Deitei e Deitei 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.
17
3. MÉTODOS EMPREGADOS
Fonte: internet
18
ILUSTRAÇÃO 2 - PROCESSO DO DESIGN THINKING
Fonte: Internet
1. Empathize:
2. Define (Definir):
3. Ideate (Idealizar):
4. Prototype (Protótipo)
Na fase de protótipo do Design Thinking, sua equipe de projeto produz
várias versões do produto ou recursos específicos e estruturais, para que você possa
investigar as soluções de problemas geradas no estágio anterior.
19
5. Test (Teste):
3.1.2 - Protótipo
3.1.3 - Metodologia
20
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.
21
3.2.2 - Análise da Pesquisa
22
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.2.4 - Questionário
23
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?
3.3 - 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.
24
25
4. RESULTADOS
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.billabcod/exibe.php, onde terão informações sobre o projeto e arquivos
de exemplo do funcionamento da ferramenta.
25
26
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.
4.3 - Ferramentas
26
27
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.
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.
27
28
Ilustração 3 — Modelo entidade relacionamento
4.3.3 Hospedagem
28
29
5. Referências Bibliográficas:
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.
CASTRO, Arthur, O que é esse tal de Mobile First?, 2013. Disponível em:
http://www.ideiademarketing.com.br/2013/04/24/o-gue-e-esse-tal-de-mobile-first; Acesso
em: 15 de setembro de 2020.
FOUNDATION, Free Software. FSF Licensing & Compliance Team. Disponível em:
httos://www.fsf.org/. Acesso em: 11 de setembro de 2020.
PETETIM LEAL FERREIRA, JOÃO; ALEXANDRE. Open Source Software. Disponível em:
https://student.dei.uc.pt/—ajfer/CP/CP%20Artigo%20-
%200ben%20Source%20Software.bdf. Acesso em 12 de setembro de 2020.
30