Ciccozzi Federico
Department of Innovation, Design, and Engineering (IDT), MRTC, Mälardalen University, 72123 P.O. Box 883, Västerås, Sweden.
Softw Syst Model. 2018;17(4):1311-1337. doi: 10.1007/s10270-016-0556-7. Epub 2016 Sep 26.
To manage the rapidly growing complexity of software development, abstraction and automation have been recognised as powerful means. Among the techniques pushing for them, model-driven engineering has gained increasing attention from industry for, among others, the possibility to automatically generate code from models. To generate fully executable code, models should describe complex behaviours. While pragmatically this is achieved by employing programming languages for defining actions within models, the abstraction gap between modelling and programming languages can undermine consistency between models and code as well as analysability and reusability of models. In light of this, model-aware action languages should be preferred. This is the case of the Action Language for Foundational UML (ALF). In this paper, we provide a solution for the fully automated of ALF towards C++. Additionally, we give an insight on how to simplify the transition from the use of programming languages for modelling fine-grained behaviours to model-aware action languages in industrial MDE. The solution presented in this paper has been assessed on industrial applications to verify its applicability to complex systems as well as its scalability.
为了应对软件开发中迅速增长的复杂性,抽象和自动化已被视为强大的手段。在推动它们的技术中,模型驱动工程因其能够从模型自动生成代码等原因而受到业界越来越多的关注。为了生成完全可执行的代码,模型应该描述复杂的行为。虽然在实际应用中这是通过使用编程语言在模型中定义操作来实现的,但建模语言和编程语言之间的抽象差距可能会破坏模型与代码之间的一致性以及模型的可分析性和可重用性。有鉴于此,应优先选择支持模型的动作语言。基础UML的动作语言(ALF)就是这种情况。在本文中,我们提供了一种将ALF完全自动化转换为C++ 的解决方案。此外,我们深入探讨了如何在工业模型驱动工程中简化从使用编程语言建模细粒度行为到支持模型的动作语言的过渡。本文提出的解决方案已在工业应用中进行了评估,以验证其对复杂系统的适用性及其可扩展性。