TY - JOUR
T1 - OSTRICH
T2 - a rich template language for low-code development (extended version)
AU - Lourenço, Hugo
AU - Ferreira, Carla
AU - Costa Seco, João
AU - Parreira, Joana
N1 - info:eu-repo/grantAgreement/FCT/6817 - DCRRNI ID/UIDB%2F04516%2F2020/PT#
info:eu-repo/grantAgreement/FCT/3599-PPCDT/PTDC%2FCCI-INF%2F32081%2F2017/PT#
Funding Information:
We thank the anonymous reviewers for their comments that helped improve the paper. This work is partially supported by FCT/MCTES grants and GOLEM Lisboa-01-0247-Feder-045917.
Publisher Copyright:
© 2022, The Author(s), under exclusive licence to Springer-Verlag GmbH Germany, part of Springer Nature.
PY - 2022/12/16
Y1 - 2022/12/16
N2 - Low-code platforms aim at allowing non-experts to develop complex systems and knowledgeable developers to improve their productivity in orders of magnitude. The greater gain comes from using components developed by experts capturing common patterns across all layers of the application, from the user interface to the data layer and integration with external systems. Often, cloning sample code fragments is the only alternative in such scenarios, requiring extensive adaptation to reach the intended use. Such customization activities require deep knowledge outside of the comfort zone of low code. To effectively speed up the reuse, composition, and adaptation of pre-defined components, low-code platforms need to provide safe and easy-to-use language mechanisms. This paper introduces OSTRICH, a strongly typed rich templating language for a low-code platform (OutSystems) that builds on metamodel annotations and allows the correct instantiation of templates. We conservatively extend the existing metamodel and ensure that the resulting code is always well-formed. The results we present include a novel type safety verification of template definitions, and template arguments, providing model consistency across application layers. We implemented this template language in a prototype of the OutSystems platform and ported nine of the top ten most used sample code fragments, thus improving the reuse of professionally designed components.
AB - Low-code platforms aim at allowing non-experts to develop complex systems and knowledgeable developers to improve their productivity in orders of magnitude. The greater gain comes from using components developed by experts capturing common patterns across all layers of the application, from the user interface to the data layer and integration with external systems. Often, cloning sample code fragments is the only alternative in such scenarios, requiring extensive adaptation to reach the intended use. Such customization activities require deep knowledge outside of the comfort zone of low code. To effectively speed up the reuse, composition, and adaptation of pre-defined components, low-code platforms need to provide safe and easy-to-use language mechanisms. This paper introduces OSTRICH, a strongly typed rich templating language for a low-code platform (OutSystems) that builds on metamodel annotations and allows the correct instantiation of templates. We conservatively extend the existing metamodel and ensure that the resulting code is always well-formed. The results we present include a novel type safety verification of template definitions, and template arguments, providing model consistency across application layers. We implemented this template language in a prototype of the OutSystems platform and ported nine of the top ten most used sample code fragments, thus improving the reuse of professionally designed components.
KW - Development productivity
KW - Low-code
KW - Metamodel templating
KW - Model reuse
KW - Parameter constraints
KW - Typechecking templates
UR - http://www.scopus.com/inward/record.url?scp=85144096340&partnerID=8YFLogxK
U2 - 10.1007/s10270-022-01066-1
DO - 10.1007/s10270-022-01066-1
M3 - Article
AN - SCOPUS:85144096340
SN - 1619-1366
JO - Software and Systems Modeling
JF - Software and Systems Modeling
ER -