ebook img

sistema web para os cursos de extensão PDF

52 Pages·2015·0.84 MB·Portuguese
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview sistema web para os cursos de extensão

SISTEMA WEB PARA OS CURSOS DE EXTENSÃO Igor Berquó Canêdo Projeto de Graduação apresentado ao Curso de Engenharia Eletrônica e de Computação da Escola Politécnica, Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do título de Engenheiro. Orientador: Flávio Luis de Mello Rio de Janeiro Junho de 2015 SISTEMA WEB PARA OS CURSOS DE EXTENSÃO Igor Berquó Canêdo PROJETO DE GRADUAÇÃO SUBMETIDO AO CORPO DOCENTE DO CURSO DE ENGENHARIA ELETRÔNICA E DE COMPUTAÇÃO DA ESCOLA POLITÉCNICA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE ENGENHEIRO ELETRÔNICO E DE COMPUTAÇÃO Autor: _________________________________________________ Igor Berquó Canêdo Orientador: _________________________________________________ Prof. Flávio Luis de Mello, D.Sc. Examinador: _________________________________________________ Prof. Edilberto Strauss, Ph. D. Examinador: _________________________________________________ Prof. Heraldo Luís Silveira de Almeida, D. Sc. Rio de Janeiro – RJ, Brasil Junho de 2015 ii UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Politécnica – Departamento de Eletrônica e de Computação Centro de Tecnologia, bloco H, sala H-217, Cidade Universitária Rio de Janeiro – RJ CEP 21949-900 Este exemplar é de propriedade da Universidade Federal do Rio de Janeiro, que poderá incluí-lo em base de dados, armazenar em computador, microfilmar ou adotar qualquer forma de arquivamento. É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecas deste trabalho, sem modificação de seu texto, em qualquer meio que esteja ou venha a ser fixado, para pesquisa acadêmica, comentários e citações, desde que sem finalidade comercial e que seja feita a referência bibliográfica completa. Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es). iii DEDICATÓRIA Aos meus pais, irmã, avós, avô, companheiros de graduação e de trabalho. Aos professores do departamento pela dedicação incansável. iv AGRADECIMENTO Dedico este trabalho à minha família, que sempre me deu apoio total aos estudos e acreditou que através dele seria possível a construção de uma vida melhor para mim e para as pessoas a minha volta. Agradecimento especial ao meu avô, que tinha como sonho ver um filho ou neto se tornar um engenheiro e que, finalmente, poderá ver esse sonho se tornando realidade. Agradeço aos amigos que estiveram presentes nessa árdua jornada que foi a graduação. Foram momentos bons e ruins. Fins de semana e feriados de estudos. Vitórias, derrotas, mas sempre juntos. Sem isso seria impossível. Também agradeço aos professores, mestres, doutores que compartilharam e continuam compartilhando suas experiências acadêmicas, profissionais e pessoais, e que, sem a intenção, são pessoas que nos espelhamos para tomarmos decisões na vida. São profissionais que superam muitas dificuldades para disseminarem conhecimento e experiências com brilhantismo. v RESUMO Este trabalho utiliza técnicas de desenvolvimento web com a finalidade de criar um portal para atender a uma demanda específica do Departamento de Engenharia Eletrônica que era fornecer aos alunos dos cursos de extensão um portal capaz de exibir suas notas e um acervo de monografias para consulta. Inicialmente, foi feito um trabalho de pesquisa de tecnologias a serem utilizadas em cada parte do projeto. Este tempo gasto nas escolhas dessas tecnologias se provou bastante útil, pois foi possível chegar a conclusões sobre a linguagem de programação que mais se encaixava com o paradigma de linguagem orientada a objeto para o projeto a ser criado. Neste sentido, foi escolhida a linguagem Python, além do uso de seu framework Django para auxiliar na criação do administrador do sistema, assim como todos os outros benefícios que o framework pode proporcionar. Também foi feito um estudo para entender os tipos de bancos de dados que poderiam ser escolhidos, para cada tipo de aplicação e, por fim, a escolha pelo uso do MySQL, que se provou adequado para a aplicação desenvolvida, além de ser simples de ser utilizado. Abordamos o conceito em torno de qualidade de software e, obviamente, nos aprofundamos nas técnicas de testes automatizados. Seus conceitos, suas vantagens em relação aos testes manuais e os tipos de testes automatizados mais comuns e algumas ferramentas utilizadas para as suas implementações. Por fim, dedicamos uma parte da obra para discutir as técnicas utilizadas para a automação do processo de provisionamento. Citamos as tecnologias utilizadas e introduzimos a ferramenta Chef-Solo, que vem sendo bastante utilizada para garantir scripts simples e claros para o provisionamento de máquinas em qualquer tipo de servidor web. Palavras-Chave: Desenvolvimento Web, Testes Automatizados, Provisionamento, Responsividade, Python, Django, Chef-Solo. vi ABSTRACT This work uses web development techniques in order to create a portal to meet a specific demand of the Department of Electronic Engineering that was to provide extension course students with a portal that could show their grades and a collection of monographs for consultation. Initially, research was carried out regarding the technologies to be used in each part of the project. The time dedicated to choosing these technologies has proved very worthwhile, because it was possible to come to a conclusion about the programming language most appropriate to the object-oriented paradigm for creating the project. Thus, the Python language was chosen, as well as its Django framework to help to create the system administrator, along with all the other benefits that the framework can provide. A study was also conducted to understand the types of databases that could be chosen for each kind of application and, finally, the choice was made to use MySQL. This DBMS has proved to be suitable for the application developed, as well as being simple to use. We address the concept of software quality and, of course, we delved into automated testing techniques - their concepts and advantages compared to manual testing, as well as the most common types of automated testing used and some tools for their implementation. Finally, we dedicate part of the work to a discussion of the techniques used for automating the provisioning process. We mention the technology used and introduce the Chef-Solo tool, which is being widely used to ensure clear and simple scripts for provisioning machines in any type of web server. Key words: Web Development, Automated Testing, Provisioning, Responsiveness, Python, Django, Chef-Solo. vii SIGLAS API – Application Programming Interface CPU – Central Processing Unit CSS – Cascading Style Sheets DBMS – Data Base Management System DEL – Departamento de Engenharia Eletrônica HTML – Hypertext Markup Language HTTP – Hypertext Transfer Protocol ISO – International Organization for Standardization MBA – Master of Business Administration SSH – Secure Shell UFRJ – Universidade Federal do Rio de Janeiro VNC – Virtual Network Computing XP – Extreme Programming viii Sumário 1 Introdução 1 1.1 - Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 - Delimitação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 - Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.4 - Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.5 - Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.6 - Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Estruturação do projeto e conceitos de computação 6 2.1 - Programação Orientada a Objetos . . . . . . . . . . . . . . . . . . . . . 6 2.1.1 - Classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.2 - Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.3 - Métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.4 - Objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.5 - Instância . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.6 - Mensagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.7 - Encapsulamento . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.8 - Herança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.9 - Polimorfismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2 - Python e seu framework Django . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3 - Banco de dados e modelagem relacional . . . . . . . . . . . . . . . . . . 13 2.4 - Casos de uso do projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.5 - Javascript, JQuery e Bootstrap para alterações na aplicação e 18 responsividade dos templates ix 2.6 - Programa Witty dentro do escopo do projeto . . . . . . . . . . . . . . 25 3 Qualidade de Software 27 3.1 - Qualidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2 - Testes Automatizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.3 - Tipos de Testes Automatizados . . . . . . . . . . . . . . . . . . . . . . . . 29 3.3.1 - Teste de Unidade . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.3.2 - Teste de Integração . . . . . . . . . . . . . . . . . . . . . . . . 30 3.3.3 - Teste de Interface de Usuário . . . . . . . . . . . . . . . . 30 3.3.4 - Teste de Aceitação . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.3.5 - Teste de Desempenho . . . . . . . . . . . . . . . . . . . . . . 31 3.3.6 - Teste de Carga . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.3.7 - Teste de Longevidade . . . . . . . . . . . . . . . . . . . . . . 32 3.3.8 - Testes de Segurança . . . . . . . . . . . . . . . . . . . . . . . 32 4 Automação do processo de provisionamento 33 4.1 - Nginx e Gunicorn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2 - Fabric, Chef-Solo e Vagrant . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5 Conclusões 37 Bibliografia 39 x

Description:
Dedico este trabalho à minha família, que sempre me deu apoio total aos estudos e acreditou que através dele seria possível a construção de uma vida melhor para mim e para as pessoas a minha volta. Agradecimento especial ao meu avô, que tinha como sonho ver um filho ou neto se tornar um
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.