PACE: Domain-Specific Language to Enable Developers Autonomy in Dealing with Complex Build Pipelines
Autor(a) principal: | |
---|---|
Data de Publicação: | 2019 |
Tipo de documento: | Dissertação |
Idioma: | eng |
Título da fonte: | Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
Texto Completo: | http://hdl.handle.net/10400.6/10051 |
Resumo: | The complexity of the product developed makes its validation processes too complex, namely build pipelines. This complexity of build pipelines, coupled with the lack of knowledge in different teams about their manipulation, means that teams cannot be fully independent. This independence makes one team responsible for maintaining build pipelines. The lack of independence on the teams means that they can not develop their components from end to end, which can lead to a delay in development if the team responsible for maintaining pipelines cannot fulfill all requests in a short time. Since the software market is a competitive market, it is necessary to eliminate all sources of delays, or possible delays, in order to deliver value to customers quickly and frequently. With this, it is necessary to find a solution that allows different people from different areas and teams to handle build pipelines, in a simple and fast way, with practically no context about the concepts, terms, and configurations of build pipelines. In this work, a DSL is presented with a simple understanding syntax that abstracts some concepts related to build pipelines, which allows to create build pipelines logic and to program the automation logic in the same language, and it also allows having code reuse. This solution is based on two solutions already implemented in the industry and that has been successful: the use of a DSL; and the existence of libraries of build pipelines. The design, implementation, and validation were done in the industrial context of OutSystems. This allowed the validation of the prototype in a real scenario, making a comparison between the use of the prototype and the form of development of current build pipelines in the context of this company. The results obtained show evidence that in overall, productivity increases with the use of DSL. |
id |
RCAP_e1e8434ee058636d2458f80f7638164e |
---|---|
oai_identifier_str |
oai:ubibliorum.ubi.pt:10400.6/10051 |
network_acronym_str |
RCAP |
network_name_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository_id_str |
7160 |
spelling |
PACE: Domain-Specific Language to Enable Developers Autonomy in Dealing with Complex Build PipelinesAutonomiaBuild PipelineEntrega ContínuaIntegração ContínuaLinguagem de Domínio EspecíficoMelhoria da ProdutividadePipeline As CodeRedução de ComplexidadeDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaThe complexity of the product developed makes its validation processes too complex, namely build pipelines. This complexity of build pipelines, coupled with the lack of knowledge in different teams about their manipulation, means that teams cannot be fully independent. This independence makes one team responsible for maintaining build pipelines. The lack of independence on the teams means that they can not develop their components from end to end, which can lead to a delay in development if the team responsible for maintaining pipelines cannot fulfill all requests in a short time. Since the software market is a competitive market, it is necessary to eliminate all sources of delays, or possible delays, in order to deliver value to customers quickly and frequently. With this, it is necessary to find a solution that allows different people from different areas and teams to handle build pipelines, in a simple and fast way, with practically no context about the concepts, terms, and configurations of build pipelines. In this work, a DSL is presented with a simple understanding syntax that abstracts some concepts related to build pipelines, which allows to create build pipelines logic and to program the automation logic in the same language, and it also allows having code reuse. This solution is based on two solutions already implemented in the industry and that has been successful: the use of a DSL; and the existence of libraries of build pipelines. The design, implementation, and validation were done in the industrial context of OutSystems. This allowed the validation of the prototype in a real scenario, making a comparison between the use of the prototype and the form of development of current build pipelines in the context of this company. The results obtained show evidence that in overall, productivity increases with the use of DSL.A complexidade do software faz com que os seus processos de validação também eles sejam complexos, nomeadamente os build pipelines. Esta complexidade dos build pipelines, associada com a falta de conhecimento existente nas diferentes equipas sobre a sua manipulação, faz com que as equipas não consigam ser totalmente independentes. Esta independência faz com que exista uma equipa responsável pela manutenção de build pipelines. A falta de independência das equipas leva a que elas não consigam desenvolver os seus componentes de ponta a ponta, o que poderá levar a um atraso no desenvolvimento se a equipa responsável pela manutenção de build pipelines não conseguir satisfazer todos os pedidos em pouco tempo. Uma vez que o mercado de software é um mercado competitivo, é preciso eliminar todas as fontes de atrasos, ou de possíveis atrasos, para que se consiga entregar valor aos clientes de forma rápida e frequente. Com isto, é necessário encontrar uma solução que permita que diferentes pessoas de diferentes áreas e equipas possam manipular build pipelines, de uma forma simples e rápida, sem possuírem praticamente nenhum contexto sobre os conceitos, termos, e configurações de build pipelines. Neste trabalho é então apresentada uma Domain Specific Language (DSL) com uma sintaxe de simples compreensão que abstrai alguns conceitos relacionados com build pipelines, que permita criar lógica de build pipelines e programar a lógica de automação tudo na mesma linguagem, e que também permita ter reutilização de código. Esta solução é baseada com duas soluções já implementadas na indústria e que obtiveram sucesso, o uso de uma DSL e a existência de bibliotecas de build pipelines. O desenho, implementação e validação foram feitos no contexto industrial da OutSystems. Isto permitiu validar o protótipo num cenário real, fazendo a comparação entre o uso do protótipo e a forma de desenvolvimento de build pipelines atual no contexto desta empresa. Os resultados obtidos mostram evidências de que no geral a produtividade aumenta com o uso da DSL.Sousa, Simão Patricio Melo deFernandes, João PaulouBibliorumFonseca, Nelson Ricardo Matos2020-03-18T16:28:22Z2019-07-182019-06-212019-07-18T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10400.6/10051TID:202365220enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-12-15T09:51:26Zoai:ubibliorum.ubi.pt:10400.6/10051Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T00:50:06.520754Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse |
dc.title.none.fl_str_mv |
PACE: Domain-Specific Language to Enable Developers Autonomy in Dealing with Complex Build Pipelines |
title |
PACE: Domain-Specific Language to Enable Developers Autonomy in Dealing with Complex Build Pipelines |
spellingShingle |
PACE: Domain-Specific Language to Enable Developers Autonomy in Dealing with Complex Build Pipelines Fonseca, Nelson Ricardo Matos Autonomia Build Pipeline Entrega Contínua Integração Contínua Linguagem de Domínio Específico Melhoria da Produtividade Pipeline As Code Redução de Complexidade Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
title_short |
PACE: Domain-Specific Language to Enable Developers Autonomy in Dealing with Complex Build Pipelines |
title_full |
PACE: Domain-Specific Language to Enable Developers Autonomy in Dealing with Complex Build Pipelines |
title_fullStr |
PACE: Domain-Specific Language to Enable Developers Autonomy in Dealing with Complex Build Pipelines |
title_full_unstemmed |
PACE: Domain-Specific Language to Enable Developers Autonomy in Dealing with Complex Build Pipelines |
title_sort |
PACE: Domain-Specific Language to Enable Developers Autonomy in Dealing with Complex Build Pipelines |
author |
Fonseca, Nelson Ricardo Matos |
author_facet |
Fonseca, Nelson Ricardo Matos |
author_role |
author |
dc.contributor.none.fl_str_mv |
Sousa, Simão Patricio Melo de Fernandes, João Paulo uBibliorum |
dc.contributor.author.fl_str_mv |
Fonseca, Nelson Ricardo Matos |
dc.subject.por.fl_str_mv |
Autonomia Build Pipeline Entrega Contínua Integração Contínua Linguagem de Domínio Específico Melhoria da Produtividade Pipeline As Code Redução de Complexidade Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
topic |
Autonomia Build Pipeline Entrega Contínua Integração Contínua Linguagem de Domínio Específico Melhoria da Produtividade Pipeline As Code Redução de Complexidade Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
description |
The complexity of the product developed makes its validation processes too complex, namely build pipelines. This complexity of build pipelines, coupled with the lack of knowledge in different teams about their manipulation, means that teams cannot be fully independent. This independence makes one team responsible for maintaining build pipelines. The lack of independence on the teams means that they can not develop their components from end to end, which can lead to a delay in development if the team responsible for maintaining pipelines cannot fulfill all requests in a short time. Since the software market is a competitive market, it is necessary to eliminate all sources of delays, or possible delays, in order to deliver value to customers quickly and frequently. With this, it is necessary to find a solution that allows different people from different areas and teams to handle build pipelines, in a simple and fast way, with practically no context about the concepts, terms, and configurations of build pipelines. In this work, a DSL is presented with a simple understanding syntax that abstracts some concepts related to build pipelines, which allows to create build pipelines logic and to program the automation logic in the same language, and it also allows having code reuse. This solution is based on two solutions already implemented in the industry and that has been successful: the use of a DSL; and the existence of libraries of build pipelines. The design, implementation, and validation were done in the industrial context of OutSystems. This allowed the validation of the prototype in a real scenario, making a comparison between the use of the prototype and the form of development of current build pipelines in the context of this company. The results obtained show evidence that in overall, productivity increases with the use of DSL. |
publishDate |
2019 |
dc.date.none.fl_str_mv |
2019-07-18 2019-06-21 2019-07-18T00:00:00Z 2020-03-18T16:28:22Z |
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/10400.6/10051 TID:202365220 |
url |
http://hdl.handle.net/10400.6/10051 |
identifier_str_mv |
TID:202365220 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
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ório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação instacron:RCAAP |
instname_str |
Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
instacron_str |
RCAAP |
institution |
RCAAP |
reponame_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
collection |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository.name.fl_str_mv |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
repository.mail.fl_str_mv |
|
_version_ |
1799136391468154880 |