Logo do repositório
 
Publicação

Going beyond templates

dc.contributor.authorSeco, João Costa
dc.contributor.authorLourenço, Hugo
dc.contributor.authorParreira, Joana
dc.contributor.authorFerreira, Carla
dc.contributor.institutionNOVALincs
dc.contributor.pblSpringer
dc.date.accessioned2024-06-26T22:25:57Z
dc.date.available2024-06-26T22:25:57Z
dc.date.issued2024-05-20
dc.descriptionPublisher Copyright: © The Author(s) 2024. Acknowledgements Partially supported by Grant Lisboa-01-0247-Feder-045917. Funding Open access funding provided by FCT|FCCN (b-on).
dc.description.abstractLow-code frameworks strive to simplify and speed up application development. An essential mechanism to achieve these goals is to have native support for the safe reuse and usage of parameterized coarse-grain components, providing developers with strong guardrails and a rich software-building experience. OSTRICH —a rich template language for the OutSystems platform—was designed to simplify the use and creation of such components. Thus, the application developer can quickly reuse and assemble sophisticated and thoroughly tested application blocks. However, without a built-in composition and evolution mechanism, OSTRICH templates are still hard to create and maintain. This sometimes requires the repetition of code across different templates and creates a conflict between the customizations of the instantiated application models, and the update and reapplication of a template definition. This paper presents a principled mechanism for using abstraction in the creation of templates and simultaneously supporting the evolution of OSTRICH templates in applications after use. First, we introduce a template composition mechanism, its typing discipline, and its instantiation algorithm for model-driven low-code development environments. We start by extending OSTRICH to support nested templates and allow the instantiation (hatching) of templates in the definition of other templates. Nesting promotes a significant increase in code reuse potential, leading to a safer evolution of applications. We then introduce the support for customizable template instances, which allows one to evolve templates’ code and then update a template instance without losing customizations performed in the generated code. The present definition seamlessly extends the existing OutSystems metamodel with template constructs expressed by model annotations that maintain backward compatibility with the existing language toolchain. We present the metamodel, a set of annotations to support the extensions, and the corresponding validation and instantiation algorithms. In particular, we introduce a type-based validation procedure for abstractions that ensures that using templates always produces valid models. This work also extends prior developments on Nested OSTRICH with the support for safe customizations of instantiated code. We validate Nested OSTRICH using the OSTRICH benchmark by identifying the degree of reusability that can be reached in the existing sample of real templates and template uses. Our prototype is an extension of the OutSystems IDE that allows the annotation of models and their use to produce new models. We also analyze which existing OutSystems sample screen templates can be improved by using and sharing nested templates.en
dc.description.versionpublishersversion
dc.description.versionepub_ahead_of_print
dc.format.extent26
dc.format.extent3306231
dc.identifier.doi10.1007/s10270-024-01178-w
dc.identifier.issn1619-1366
dc.identifier.otherPURE: 93106274
dc.identifier.otherPURE UUID: bc658260-edc9-4c04-a759-f103e53528d5
dc.identifier.otherScopus: 85193708909
dc.identifier.otherWOS: 001228239300002
dc.identifier.otherORCID: /0000-0003-3680-7634/work/162434057
dc.identifier.urihttp://hdl.handle.net/10362/169108
dc.identifier.urlhttps://www.scopus.com/pages/publications/85193708909
dc.language.isoeng
dc.peerreviewedyes
dc.relationinfo:eu-repo/grantAgreement/FCT/6817 - DCRRNI ID/UIDB%2F04516%2F2020/PT
dc.relationNOVA Laboratory for Computer Science and Informatics
dc.relationA correct by design methodology for available cloud applications
dc.subjectLow-code models
dc.subjectMetamodel
dc.subjectMetaprogramming
dc.subjectModel reuse
dc.subjectTemplating
dc.subjectTypechecking templates
dc.subjectSoftware
dc.subjectModelling and Simulation
dc.titleGoing beyond templatesen
dc.title.subtitlecomposition and evolution in nested OSTRICHen
dc.typejournal article
degois.publication.titleSoftware and Systems Modeling
dspace.entity.typePublication
oaire.awardNumberUIDB/04516/2020
oaire.awardNumberPTDC/CCI-INF/32081/2017
oaire.awardTitleNOVA Laboratory for Computer Science and Informatics
oaire.awardTitleA correct by design methodology for available cloud applications
oaire.awardURIinfo:eu-repo/grantAgreement/FCT/6817 - DCRRNI ID/UIDB%2F04516%2F2020/PT
oaire.awardURIinfo:eu-repo/grantAgreement/FCT/Concurso para Financiamento de Projetos de Investigação Científica e Desenvolvimento Tecnológico em Todos os Domínios Científicos - 2017/PTDC%2FCCI-INF%2F32081%2F2017/PT
oaire.fundingStream6817 - DCRRNI ID
oaire.fundingStreamConcurso para Financiamento de Projetos de Investigação Científica e Desenvolvimento Tecnológico em Todos os Domínios Científicos - 2017
project.funder.identifierhttp://doi.org/10.13039/501100001871
project.funder.identifierhttp://doi.org/10.13039/501100001871
project.funder.nameFundação para a Ciência e a Tecnologia
project.funder.nameFundação para a Ciência e a Tecnologia
rcaap.rightsopenAccess
relation.isProjectOfPublication6d79e117-1f85-4221-b1a2-1fe8ff2edce6
relation.isProjectOfPublication6b35558a-adda-4da8-9532-103475c83d6b
relation.isProjectOfPublication.latestForDiscovery6d79e117-1f85-4221-b1a2-1fe8ff2edce6

Ficheiros

Principais
A mostrar 1 - 1 de 1
A carregar...
Miniatura
Nome:
Going_beyond_templates.pdf
Tamanho:
3.15 MB
Formato:
Adobe Portable Document Format