Going beyond templates: composition and evolution in nested OSTRICH.

Saved in:
Bibliographic Details
Title: Going beyond templates: composition and evolution in nested OSTRICH.
Authors: Costa Seco, João1 (AUTHOR) joao.seco@fct.unl.pt, Lourenço, Hugo2 (AUTHOR) hugo.lourenco@outsystems.com, Parreira, Joana1 (AUTHOR) jb.parreira@campus.fct.unl.pt, Ferreira, Carla1 (AUTHOR) carla.ferreira@fct.unl.pt
Source: Software & Systems Modeling. Aug2025, Vol. 24 Issue 4, p1241-1266. 26p.
Subjects: Computer software reusability, Model-driven software architecture, Software frameworks, Parameterization, Computer software development, Design templates
Abstract: Low-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. [ABSTRACT FROM AUTHOR]
Copyright of Software & Systems Modeling is the property of Springer Nature and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Engineering Source
Full text is not displayed to guests.
FullText Links:
  – Type: pdflink
Text:
  Availability: 1
Header DbId: egs
DbLabel: Engineering Source
An: 186986128
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Going beyond templates: composition and evolution in nested OSTRICH.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Costa Seco%2C+João%22">Costa Seco, João</searchLink><relatesTo>1</relatesTo> (AUTHOR)<i> joao.seco@fct.unl.pt</i><br /><searchLink fieldCode="AR" term="%22Lourenço%2C+Hugo%22">Lourenço, Hugo</searchLink><relatesTo>2</relatesTo> (AUTHOR)<i> hugo.lourenco@outsystems.com</i><br /><searchLink fieldCode="AR" term="%22Parreira%2C+Joana%22">Parreira, Joana</searchLink><relatesTo>1</relatesTo> (AUTHOR)<i> jb.parreira@campus.fct.unl.pt</i><br /><searchLink fieldCode="AR" term="%22Ferreira%2C+Carla%22">Ferreira, Carla</searchLink><relatesTo>1</relatesTo> (AUTHOR)<i> carla.ferreira@fct.unl.pt</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22Software+%26+Systems+Modeling%22">Software & Systems Modeling</searchLink>. Aug2025, Vol. 24 Issue 4, p1241-1266. 26p.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Computer+software+reusability%22">Computer software reusability</searchLink><br /><searchLink fieldCode="DE" term="%22Model-driven+software+architecture%22">Model-driven software architecture</searchLink><br /><searchLink fieldCode="DE" term="%22Software+frameworks%22">Software frameworks</searchLink><br /><searchLink fieldCode="DE" term="%22Parameterization%22">Parameterization</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+software+development%22">Computer software development</searchLink><br /><searchLink fieldCode="DE" term="%22Design+templates%22">Design templates</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: Low-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. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of Software & Systems Modeling is the property of Springer Nature and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=186986128
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1007/s10270-024-01178-w
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 26
        StartPage: 1241
    Subjects:
      – SubjectFull: Computer software reusability
        Type: general
      – SubjectFull: Model-driven software architecture
        Type: general
      – SubjectFull: Software frameworks
        Type: general
      – SubjectFull: Parameterization
        Type: general
      – SubjectFull: Computer software development
        Type: general
      – SubjectFull: Design templates
        Type: general
    Titles:
      – TitleFull: Going beyond templates: composition and evolution in nested OSTRICH.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Costa Seco, João
      – PersonEntity:
          Name:
            NameFull: Lourenço, Hugo
      – PersonEntity:
          Name:
            NameFull: Parreira, Joana
      – PersonEntity:
          Name:
            NameFull: Ferreira, Carla
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 08
              Text: Aug2025
              Type: published
              Y: 2025
          Identifiers:
            – Type: issn-print
              Value: 16191366
          Numbering:
            – Type: volume
              Value: 24
            – Type: issue
              Value: 4
          Titles:
            – TitleFull: Software & Systems Modeling
              Type: main
ResultId 1