PACE: Domain-Specific Language to Enable Developers Autonomy in Dealing with Complex Build Pipelines

Detalhes bibliográficos
Autor(a) principal: Fonseca, Nelson Ricardo Matos
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