Standard

A Module-System Discipline for Model-Driven Software Development. / Erdweg, Sebastian; Ostermann, Klaus.

In: Art, Science, and Engineering of Programming, Vol. 1, No. 2, 9, 2017, p. 1-28.

Research output: Scientific - peer-reviewArticle

Harvard

Erdweg, S & Ostermann, K 2017, 'A Module-System Discipline for Model-Driven Software Development' Art, Science, and Engineering of Programming, vol 1, no. 2, 9, pp. 1-28. DOI: 10.22152/programming-journal.org/2017/1/9

APA

Erdweg, S., & Ostermann, K. (2017). A Module-System Discipline for Model-Driven Software Development. Art, Science, and Engineering of Programming, 1(2), 1-28. [9]. DOI: 10.22152/programming-journal.org/2017/1/9

Vancouver

Erdweg S, Ostermann K. A Module-System Discipline for Model-Driven Software Development. Art, Science, and Engineering of Programming. 2017;1(2):1-28. 9. Available from, DOI: 10.22152/programming-journal.org/2017/1/9

Author

Erdweg, Sebastian; Ostermann, Klaus / A Module-System Discipline for Model-Driven Software Development.

In: Art, Science, and Engineering of Programming, Vol. 1, No. 2, 9, 2017, p. 1-28.

Research output: Scientific - peer-reviewArticle

BibTeX

@article{bc56ffbef2494e6486a6f0ebc9b8f3c1,
title = "A Module-System Discipline for Model-Driven Software Development",
keywords = "module system, software components, dependency tracking, model-driven software development, domain-specic languages",
author = "Sebastian Erdweg and Klaus Ostermann",
year = "2017",
doi = "10.22152/programming-journal.org/2017/1/9",
volume = "1",
pages = "1--28",
journal = "Art, Science, and Engineering of Programming",
issn = "2473-7321",
number = "2",

}

RIS

TY - JOUR

T1 - A Module-System Discipline for Model-Driven Software Development

AU - Erdweg,Sebastian

AU - Ostermann,Klaus

PY - 2017

Y1 - 2017

N2 - Model-driven development is a pragmatic approach to software development that embraces domain-specific languages (DSLs), where models correspond to DSL programs. A distinguishing feature of model-driven development is that clients of a model can select from an open set of alternative semantics of the model by applying different model transformation. However, in existing model-driven frameworks, dependencies between models, model transformations, and generated code artifacts are either implicit or globally declared in build scripts, which impedes modular reasoning, separate compilation, and programmability in general.We propose the design of a new module system that incorporates models and model transformations as modules. A programmer can apply transformations in import statements, thus declaring a dependency on generated code artifacts. Our design enables modular reasoning and separate compilation by preventing hidden dependencies, and it supports mixing modeling artifacts with conventional code artifacts as well as higher-order transformations. We have formalized our design and the aforementioned properties and have validated it by an implementation and case studies that show that our module system successfully integrates model-driven development into conventional programming languages.

AB - Model-driven development is a pragmatic approach to software development that embraces domain-specific languages (DSLs), where models correspond to DSL programs. A distinguishing feature of model-driven development is that clients of a model can select from an open set of alternative semantics of the model by applying different model transformation. However, in existing model-driven frameworks, dependencies between models, model transformations, and generated code artifacts are either implicit or globally declared in build scripts, which impedes modular reasoning, separate compilation, and programmability in general.We propose the design of a new module system that incorporates models and model transformations as modules. A programmer can apply transformations in import statements, thus declaring a dependency on generated code artifacts. Our design enables modular reasoning and separate compilation by preventing hidden dependencies, and it supports mixing modeling artifacts with conventional code artifacts as well as higher-order transformations. We have formalized our design and the aforementioned properties and have validated it by an implementation and case studies that show that our module system successfully integrates model-driven development into conventional programming languages.

KW - module system

KW - software components

KW - dependency tracking

KW - model-driven software development

KW - domain-specic languages

UR - http://resolver.tudelft.nl/uuid:bc56ffbe-f249-4e64-86a6-f0ebc9b8f3c1

U2 - 10.22152/programming-journal.org/2017/1/9

DO - 10.22152/programming-journal.org/2017/1/9

M3 - Article

VL - 1

SP - 1

EP - 28

JO - Art, Science, and Engineering of Programming

T2 - Art, Science, and Engineering of Programming

JF - Art, Science, and Engineering of Programming

SN - 2473-7321

IS - 2

M1 - 9

ER -

ID: 32869916