Framework De Agilização Do Processo De Criação De Aplicações Multiplataforma Através Da Geração Automática De Código
Total Page:16
File Type:pdf, Size:1020Kb
Framework de Agilização do Processo de criação de Aplicações Multiplataforma através da Geração Automática de Código ANDRÉ FILIPE MOREIRA DA SILVA Outubro de 2016 Ambiente de Integração de Serviços Web Framework de Agilização do Processo de criação de Aplicações Multiplataforma através da Geração Automática de Código André Filipe Moreira da Silva Dissertação para obtenção do Grau de Mestre em Engenharia Informática na Área de Especialização em Sistemas Gráficos e Multimédia Orientador: Paulo Alexandre Maio Porto, Outubro 2016 Página em branco [apagar este comentário] ii Dedicatória A todos aqueles que não se conformam com a realidade e procuram um futuro melhor. Àqueles que tem a vontade de mudar o mundo porque de facto são esses que o farão. iii Página em branco [apagar este comentário] iv Resumo Este documento apresenta uma proposta de solução para agilização do processo de criação de software multiplataforma. Num mercado de constante atualização e em crescimento, há cada vez maior foco na experiência do utilizador final e em entregar software de qualidade rapidamente. Tempo é um recuso limitado que, quando poupado, permite também poupar outros recursos semelhantes como orçamento e mão de obra. Então como criar software multiplataforma rapidamente? A solução descrita consiste na criação de um ambiente de desenvolvimento de aplicações baseado nos princípios e padrões de engenharia capaz de gerar código fonte automaticamente utilizando linguagens e bibliotecas pré-configuradas em modelos geradores. Após uma análise de estado de arte do mercado tecnológico atual foram apuradas algumas tecnologias que procuram responder à mesma pergunta e tecnologias que de alguma forma permitem uma agilização de parte do processo de desenvolvimento. Os resultados desta análise serviram assim como base inspiracional para a criação desta solução. Baseando as suas ações em criar atores, criar entidades de negócio e criar casos de uso, a solução desenvolvida faz uso dos conceitos mais simples da gestão de negócio de um sistema informático e potencia as funcionalidades definidas nas linguagens configuradas através da geração de código frontend, backend, base de dados e de integração. Desta forma procura-se adicionar valor a empresas de produção de software, programadores e a clientes finais utilizadores do software produzido, que, devido à célere produção de código, poderão ter um produto em mãos mais rapidamente e ainda assim sólido e estável segundo padrões de engenharia. A implementação foi efetuada segundo algumas das tecnologias mais recentes como AngularJS 2.0 e Node.js, procurando assim preparação para o futuro. Após testada e validada como produto final procurar-se-á investimento externo para continuação de desenvolvimento e possível inclusão de teses MEI ISEP para desenvolvimento de módulos integrantes. Palavras-chave: velocidade, aceleração, desenvolvimento, multiplataforma, geração automática de código, lógica de negócio v Página em branco [apagar este comentário] vi Abstract This document presents a proposed solution for streamlining the creation of cross-platform software. In a constantly updated and growing market, there is increasing focus on the end user experience and deliver quality software quickly. Time is a limited resource that when saved, allows also to save other similar resources as budget and manpower. So how to create cross- platform software quickly? The described solution consists in creating an application development environment based on the principles and engineering standards, capable of generating source code automaticallyusing pre-configured languages and libraries in models for code generation. After a state analysis of the current technology market there were pointed some technologies that seek to answer the same question and technologies that somehow allow for a streamlining of the development process. The results of this analysis served as the inspirational basis for creating this solution. Basing its actions in creating actors, creating business entities and creating use cases, the developed solution makes use of the simplest concepts of business management of a computer system and powers functionalities in defined coding languages by generating frontend, backend, databases and integration code. In this way we seek to add value to software production companies, developers and end users of the software produced, that due to the rapid code production, may have a product in hand faster and still solid and stable by engineering standards. The implementation was carried out according to some of the latest technology like AngularJS 2.0 and Node.js, looking for preparation to the future. After tested and validated as final product, external investment will be searched and MEI ISEP thesis may be included to develop new modules. Keywords: speed, acceleration, development, cross-platform, automatic code generation, business logic vii Página em branco [apagar este comentário] viii Agradecimentos À minha namorada, Glória Reis, pela sua fé na minha pessoa, pelo companheirismo, pela paixão e carinho, pelo seu apoio e compreensão e pela sua ajuda nos momentos mais difíceis e de maior cansaço. Ao meu orientador, professor Paulo Alexandre Maio, que durante estes seis anos esteve sempre a meu lado providenciando a melhor orientação que um aluno pode ter. Toda a sua compreensão e fé no meu trabalho fizeram de mim o profissional que sou hoje. À minha família, pela fé, pelo carinho e pela compreensão. Por todo o apoio e orgulho que sempre tiveram por mim. A Leandro Gomes, Stefan Gomes e Jorge Correia, meus colegas de curso, por todos os momentos, por todo o trabalho de equipa, por todas as vitórias e derrotas que fizeram de nós os profissionais que hoje somos. E por fim, mas não em último, a todos os colaboradores da Deloitte Digital Portugal, pela fé na minha pessoa desde do primeiro dia, pela oportunidade e por tudo aquilo que me providenciaram até hoje que me permitiu o crescimento profissional que diariamente atinjo. ix Página em branco [apagar este comentário] x Índice 1 Introdução ................................................................................. 1 1.1 Contexto ......................................................................................... 1 1.2 Problema ......................................................................................... 1 1.3 Abordagem ...................................................................................... 4 1.4 Objetivos ......................................................................................... 7 1.5 Estrutura do Documento ....................................................................... 8 2 Estado da arte ............................................................................ 11 2.1 Rapid Application Development ............................................................. 11 2.2 OutSystems ..................................................................................... 13 2.3 WaveMaker ..................................................................................... 14 2.4 Gestão de Conteúdos ......................................................................... 15 2.5 WordPress ....................................................................................... 16 2.6 Sitecore ......................................................................................... 17 2.7 Ambientes de Desenvolvimento Integrado ................................................. 18 2.8 Microsoft Visual Studio ....................................................................... 19 2.9 Netbeans ........................................................................................ 20 2.10 Comparação .................................................................................... 20 2.11 Tecnologias Usadas ............................................................................ 22 2.11.1 Electron ................................................................................... 22 2.11.2 Apache Cordova .......................................................................... 23 2.11.3 Angular 2.0 ............................................................................... 24 2.11.4 Sails ........................................................................................ 25 2.11.5 adminMongo .............................................................................. 26 3 Análise de Negócio ...................................................................... 27 3.1 Valor ............................................................................................. 27 3.2 Modelo Canvas ................................................................................. 31 4 Requisitos ................................................................................. 35 4.1 Enquadramento ................................................................................ 35 4.1.1 Missão ..................................................................................... 35 4.1.2 Atores e Sistemas externos ............................................................ 35 4.1.3 Prioridade de Requisitos ................................................................ 36 4.2 Funcionais ...................................................................................... 36 4.2.1 [RF1] Gerir Projetos ..................................................................... 37 xi 4.2.2 [RF2] Gerir Entidades de Negócio ..................................................... 38 4.2.3 [RF3] Gerir Propriedades de uma Entidade de Negócio