Geração de código não destrutivo em aplicações
| Main Author: | |
|---|---|
| Publication Date: | 2023 |
| Format: | Master thesis |
| Language: | por |
| Source: | Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| Download full: | http://hdl.handle.net/10437/13970 |
Summary: | De forma a acelerar o processo de desenvolvimento e o aumento da qualidade do código, ferramentas de geração de código são amplamente usadas por empresas de desenvolvi mento de software. Foram testadas algumas das ferramentas de geração de código mais utilizadas para o desenvolvimento de aplicações Web (Spring MVC, MVC.net, PHP, Python), tendo sido identificado um problema estrutural: quando é necessário alterar uma entidade que leva a uma segunda geração de código, esta torna-se destrutiva. Acontece que todo o código é reescrito e as alterações feitas a este são apagadas. No presente momento, nenhuma destas ferramentas disponibiliza uma solução para resolver esta questão. Esta dissertação apresenta três abordagens onde, após novas gerações de código, o novo código gerado possa conviver com o código já desenvolvido pelo programador. É apresentada a implementação dos algoritmos das abordagens onde primeiramente é demonstrada uma fase de comparação textual, ou de comparação através de Abstract Syntax Tree (AST). Após a fase de comparação é demonstrada uma fase de junção inte ligente em que, com base na comparação, é gerado código final que inclui as alterações efetuadas, tanto pelo utilizador como pelo código gerado. São apresentados os resultados onde estes algoritmos são submetidos a um conjunto de testes, envolvendo diferentes cenários de geração, alteração e regeração de código, de modo a aferir a sua eficácia. Por último é apresentado um caso real onde foi desenvolvido um gerador de código na empresa Agap2IT que implementa os algoritmos das abordagens estudadas. Palavras-chave: Geração de código; Programação Web; Ferramentas de Desenvolvimento |
| id |
RCAP_2358b4c93efd5e07b3d6d034400b4768 |
|---|---|
| oai_identifier_str |
oai:recil.ulusofona.pt:10437/13970 |
| network_acronym_str |
RCAP |
| network_name_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| repository_id_str |
https://opendoar.ac.uk/repository/7160 |
| spelling |
Geração de código não destrutivo em aplicaçõesMESTRADO EM ENGENHARIA INFORMÁTICA E SISTEMAS DE INFORMAÇÃOINFORMÁTICADESENVOLVIMENTO WEBDESENVOLVIMENTO DE SOFTWAREFERRAMENTAS DE GERAÇÃO DE CÓDIGOCOMPUTER SCIENCEWEB DEVELOPMENTSOFTWARE DEVELOPMENTCODE GENERATION TOOLSDe forma a acelerar o processo de desenvolvimento e o aumento da qualidade do código, ferramentas de geração de código são amplamente usadas por empresas de desenvolvi mento de software. Foram testadas algumas das ferramentas de geração de código mais utilizadas para o desenvolvimento de aplicações Web (Spring MVC, MVC.net, PHP, Python), tendo sido identificado um problema estrutural: quando é necessário alterar uma entidade que leva a uma segunda geração de código, esta torna-se destrutiva. Acontece que todo o código é reescrito e as alterações feitas a este são apagadas. No presente momento, nenhuma destas ferramentas disponibiliza uma solução para resolver esta questão. Esta dissertação apresenta três abordagens onde, após novas gerações de código, o novo código gerado possa conviver com o código já desenvolvido pelo programador. É apresentada a implementação dos algoritmos das abordagens onde primeiramente é demonstrada uma fase de comparação textual, ou de comparação através de Abstract Syntax Tree (AST). Após a fase de comparação é demonstrada uma fase de junção inte ligente em que, com base na comparação, é gerado código final que inclui as alterações efetuadas, tanto pelo utilizador como pelo código gerado. São apresentados os resultados onde estes algoritmos são submetidos a um conjunto de testes, envolvendo diferentes cenários de geração, alteração e regeração de código, de modo a aferir a sua eficácia. Por último é apresentado um caso real onde foi desenvolvido um gerador de código na empresa Agap2IT que implementa os algoritmos das abordagens estudadas. Palavras-chave: Geração de código; Programação Web; Ferramentas de DesenvolvimentoIn order to speed up the development process and increase code quality, code generation tools are widely used by software development companies. Some of the most used code generation tools for web application development (Spring MVC, MVC.net, PHP, Python), were tested and a structural problem was identified. When an entity needs to be changed, which leads to a second code generation, it becomes destructive. It turns out that all code is rewritten, and changes made to it are deleted. Currently, none of these tools provides a solution to address this issue. This thesis presents three different approaches. These approaches consist in the fact that new code generations allow the newly generated code to coexist with code already developed by the programmer. The implementation of the algorithms of the approaches is presented where in the first phase a textual comparison or a comparison using AST is demonstrated. After the comparison phase an intelligent join phase is shown, where based on the comparison, the final code is generated including changes made by both the user and the generated code. Results are presented where these algorithms are subjected to a set of tests, involving different scenarios of code generation, change, and regeneration, in order to assess their effectiveness. Lastly, a real case is presented where a code generator was developed within the company Agap2IT, that implements the algorithms of the studied approaches. Keywords: Code Generation; Web Programming; Development Tools2023-06-21T17:08:19Z2023-01-01T00:00:00Z2023info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10437/13970TID:203320611porValadares, Ivan Jorge Camachoinfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-06T11:55:05Zoai:recil.ulusofona.pt:10437/13970Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T14:32:28.648832Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse |
| dc.title.none.fl_str_mv |
Geração de código não destrutivo em aplicações |
| title |
Geração de código não destrutivo em aplicações |
| spellingShingle |
Geração de código não destrutivo em aplicações Valadares, Ivan Jorge Camacho MESTRADO EM ENGENHARIA INFORMÁTICA E SISTEMAS DE INFORMAÇÃO INFORMÁTICA DESENVOLVIMENTO WEB DESENVOLVIMENTO DE SOFTWARE FERRAMENTAS DE GERAÇÃO DE CÓDIGO COMPUTER SCIENCE WEB DEVELOPMENT SOFTWARE DEVELOPMENT CODE GENERATION TOOLS |
| title_short |
Geração de código não destrutivo em aplicações |
| title_full |
Geração de código não destrutivo em aplicações |
| title_fullStr |
Geração de código não destrutivo em aplicações |
| title_full_unstemmed |
Geração de código não destrutivo em aplicações |
| title_sort |
Geração de código não destrutivo em aplicações |
| author |
Valadares, Ivan Jorge Camacho |
| author_facet |
Valadares, Ivan Jorge Camacho |
| author_role |
author |
| dc.contributor.author.fl_str_mv |
Valadares, Ivan Jorge Camacho |
| dc.subject.por.fl_str_mv |
MESTRADO EM ENGENHARIA INFORMÁTICA E SISTEMAS DE INFORMAÇÃO INFORMÁTICA DESENVOLVIMENTO WEB DESENVOLVIMENTO DE SOFTWARE FERRAMENTAS DE GERAÇÃO DE CÓDIGO COMPUTER SCIENCE WEB DEVELOPMENT SOFTWARE DEVELOPMENT CODE GENERATION TOOLS |
| topic |
MESTRADO EM ENGENHARIA INFORMÁTICA E SISTEMAS DE INFORMAÇÃO INFORMÁTICA DESENVOLVIMENTO WEB DESENVOLVIMENTO DE SOFTWARE FERRAMENTAS DE GERAÇÃO DE CÓDIGO COMPUTER SCIENCE WEB DEVELOPMENT SOFTWARE DEVELOPMENT CODE GENERATION TOOLS |
| description |
De forma a acelerar o processo de desenvolvimento e o aumento da qualidade do código, ferramentas de geração de código são amplamente usadas por empresas de desenvolvi mento de software. Foram testadas algumas das ferramentas de geração de código mais utilizadas para o desenvolvimento de aplicações Web (Spring MVC, MVC.net, PHP, Python), tendo sido identificado um problema estrutural: quando é necessário alterar uma entidade que leva a uma segunda geração de código, esta torna-se destrutiva. Acontece que todo o código é reescrito e as alterações feitas a este são apagadas. No presente momento, nenhuma destas ferramentas disponibiliza uma solução para resolver esta questão. Esta dissertação apresenta três abordagens onde, após novas gerações de código, o novo código gerado possa conviver com o código já desenvolvido pelo programador. É apresentada a implementação dos algoritmos das abordagens onde primeiramente é demonstrada uma fase de comparação textual, ou de comparação através de Abstract Syntax Tree (AST). Após a fase de comparação é demonstrada uma fase de junção inte ligente em que, com base na comparação, é gerado código final que inclui as alterações efetuadas, tanto pelo utilizador como pelo código gerado. São apresentados os resultados onde estes algoritmos são submetidos a um conjunto de testes, envolvendo diferentes cenários de geração, alteração e regeração de código, de modo a aferir a sua eficácia. Por último é apresentado um caso real onde foi desenvolvido um gerador de código na empresa Agap2IT que implementa os algoritmos das abordagens estudadas. Palavras-chave: Geração de código; Programação Web; Ferramentas de Desenvolvimento |
| publishDate |
2023 |
| dc.date.none.fl_str_mv |
2023-06-21T17:08:19Z 2023-01-01T00:00:00Z 2023 |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/10437/13970 TID:203320611 |
| url |
http://hdl.handle.net/10437/13970 |
| identifier_str_mv |
TID:203320611 |
| dc.language.iso.fl_str_mv |
por |
| language |
por |
| dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.source.none.fl_str_mv |
reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia instacron:RCAAP |
| instname_str |
FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
| instacron_str |
RCAAP |
| institution |
RCAAP |
| reponame_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| collection |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| repository.name.fl_str_mv |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
| repository.mail.fl_str_mv |
info@rcaap.pt |
| _version_ |
1833594696215035904 |