Beyond Low-Code Development: Marrying Requirements Models and Knowledge Representations
Kamil Rybiński, Michal Smialek
DOI: http://dx.doi.org/10.15439/2022F129
Citation: Proceedings of the 17th Conference on Computer Science and Intelligence Systems, M. Ganzha, L. Maciaszek, M. Paprzycki, D. Ślęzak (eds). ACSIS, Vol. 30, pages 919–928 (2022)
Abstract. Typical Low-Code Development platforms enable model-driven generation of web applications from high-level visual notations. They normally express the UI and the application logic, which allows generating the frontend and basic CRUD operations. However, more complex domain logic (data processing) operations still necessitate the use of traditional programming. This paper proposes a new visual language, called RSL-DL, to represent domain knowledge with complex domain rules aligned with requirements models. The language synthesises and extends approaches found in knowledge representation (ontologies) and software modelling language engineering. Its purpose is to enable a fully automatic generation of domain logic code by reasoning over and reusing domain knowledge. The language's abstract syntax is defined using a meta-model expressed in MOF. Its semantics is expressed with several translational rules that map RSL-DL models onto typical programming language constructs. The rules are explained informally in natural language and formalised using a graphical transformation notation. It is also supported by introducing an inference engine that enables processing queries to domain models and selecting appropriate invocations to generated code. The presented language was implemented by building a dedicated model editor and transformation engine. It was also initially validated through usability studies. Based on these results, we conclude that declarative knowledge representations can be successfully used to produce imperative back-end code with non-trivial logic.
References
- The MOLA Language Reference Manual Version 2.0 final, 2007.
- Colin Atkinson, Matthias Gutheil, and Kilian Kiko. On the relationship of ontologies and models. In Proc. 2nd Workshop on Meta-Modelling, WoMM 2006, pages 47–60, 2006.
- Fábio Paulo Basso, Raquel Mainardi Pillat, Toacy Cavalcante Oliveira, Fabricia Roos-Frantz, and Rafael Z. Frantz. Automated design of multi-layered web information systems. Journal of Systems and Software, 117:612–637, 2016.
- Marco Brambilla and Piero Fraternali. Interaction flow modeling language: Model-driven UI engineering of web and mobile apps with IFML. Morgan Kaufmann, 2014.
- Isabel Sofia Brito, Joao Paulo Barros, and Luis Gomes. From requirements to code (Re2Code) – a model-based approach for controller implementation. In 2016 IEEE 14th International Conference on Industrial Informatics (INDIN), pages 1224–1230, 2016.
- Frederick P Brooks. No silver bullet: Essence and accidents of software engineering. IEEE Computer, 20(4):10–19, April 1987.
- Jordi Cabot. Positioning of the low-code movement within the field of model-driven engineering. In Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, MODELS ’20, 2020.
- Malcolm Chisholm. How to build a business rules engine: extending application functionality through metadata engineering. Morgan Kaufmann, 2004.
- Dragan Gašević, Dragan Djurić, and Vladan Devedžić. Model Driven Engineering and Ontology Development. Springer, 2009.
- Hele Mai Haav and Andres Ojamaa. Semi-automated integration of domain ontologies to DSL meta-models. International Journal of Intelligent Information and Database Systems, 10(1/2):94–116, 2017.
- Brian Henderson-Sellers. Bridging metamodels and ontologies in software engineering. Journal of Systems and Software, 84(2):301–313, 2011.
- Martin Henkel and Janis Stirna. Pondering on the key functionality of model driven development tools: The case of Mendix. In International Conference on Business Informatics Research, pages 146–160. Springer, 2010.
- Henrique Henriques, Hugo Lourenço, Vasco Amaral, and Miguel Goulão. Improving the developer experience with a low-code process modelling language. In 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, pages 200–210, 2018.
- Michael G Hinchey, James L Rash, and Christopher A Rouff. Requirements to design to code: Towards a fully formal approach to automatic code generation. Technical report, NASA, 2005.
- Ahmad Jbara, Arieh Bibliowicz, Niva Wengrowicz, Natali Levi, and Dov Dori. Toward integrating systems engineering with software engineering through object-process programming. International Journal of Information Technology, pages 1–35, 2020.
- Audris Kalnins, Janis Barzdins, and Edgars Celms. Model transformation language MOLA. Lecture Notes in Computer Science, 3599:62–76, 2004.
- Nora Koch, Santiago Meliá-Beigbeder, Nathalie Moreno-Vergara, Vicente Pelechano-Ferragud, Fernando Sánchez-Figueroa, and J Vara-Mesa. Model-driven web engineering. Upgrade-Novática Journal (English and Spanish), 2:40–45, 2008.
- Axel Kramer. Symja library-Java symbolic math system, 2018. last accessed May 2020.
- Beatriz Franco Martins. The OntoOO-method: An ontology-driven conceptual modeling approach for evolving the oo-method. In Advances in Conceptual Modeling, pages 247–254, 2019.
- Mariem Mefteh, Nadia Bouassida, and Hanene Ben-Abdallah. Towards naturalistic programming: Mapping language-independent requirements to constrained language specifications. Science of Computer Programming, 166:89–119, 2018.
- Wiktor Nowakowski, Michał Śmiałek, Albert Ambroziewicz, and Tomasz Straszak. Requirements-level language and tools for capturing software system essence. Computer Science and Information Systems, 10(4):1499–1524, 2013.
- Object Management Group. Meta Object Facility (MOF) Core Specification, version 2.5.1, formal/2019-10-01, 2019.
- Fernando Silva Parreiras, Steffen Staab, Simon Schenk, and Andreas Winter. Model driven specification of ontology translations. In ER’08, volume 5231 of Lecture Notes in Computer Science, pages 484–497, 2008.
- Oscar Pulido-Prieto and Ulises Juárez-Martínez. A survey of naturalistic programming technologies. ACM Comput. Surv., 50(5), 2017.
- Clay Richardson, John R Rymer, Christopher Mines, Alex Cullen, and Dominique Whittaker. New development platforms emerge for customer-facing applications, 2014. Forrester report.
- Roberto Rodriguez-Echeverria, Juan C Preciado, Alvaro Rubio-Largo, José M Conejero, and Alvaro E Prieto. A pattern-based development approach for Interaction Flow Modeling Language. Scientific Programming, 2019, 2019.
- Davide Di Ruscio, Dimitris Kolovos, Juan de Lara, Alfonso Pierantonio, Massimo Tisi, and Manuel Wimmer. Low-code development and model-driven engineering: Two sides of the same coin? Software and Systems Modeling, pages 1–10, jan 2022.
- Kamil Rybiński and Rafał Parol. RSL-DL: Representing domain knowledge for the purpose of code generation. In Software Engineering: Challenges and Solutions, pages 61–73. Springer, 2017.
- A. Sahay, A. Indamutsa, D. Di Ruscio, and A. Pierantonio. Supporting the understanding and comparison of low-code development platforms. In 46th Euromicro Conference on Software Engineering and Advanced Applications, pages 171–178, 2020.
- Kenneth Slonneger and Barry L Kurtz. Formal Syntax and Semantics of Programming Languages. Addison-Wesley, 1995.
- Michał Śmiałek, Norbert Jarzebowski, and Wiktor Nowakowski. Runtime semantics of use case stories. In Visual Languages and Human-Centric Computing (VL/HCC), 2012 IEEE Symposium on, pages 159–162. IEEE, 2012.
- Michał Śmiałek and Wiktor Nowakowski. From Requirements to Java in a Snap: Model-Driven Requirements Engineering in Practice. Springer, 2015.
- Michal Smialek and Tomasz Straszak. Facilitating transition from requirements to code with the ReDSeeDS tool. In Requirements Engineering Conference (RE), 2012 20th IEEE International, pages 321–322, 2012.
- Graeme Stevenson and Simon Dobson. Sapphire: Generating java runtime artefacts from OWL ontologies. In Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications, pages 425–436. Springer, 2011.
- Bernhard Thalheim and Hannu Jaakkola. Model-based fifth generation programming. In Information Modelling and Knowledge Bases XXXI, pages 381–400. IOS Press, 2020.
- Max Völkel and York Sure. RDFReactor-from ontologies to programmatic data access. In Poster Proceedings of the Fourth International Semantic Web Conference, 2005.
- Petri Vuorimaa, Markku Laine, Evgenia Litvinova, and Denis Shestakov. Leveraging declarative languages in web application development. World Wide Web, 19(4):519–543, 2016.
- Karzan Wakil and Dayang NA Jawawi. Model driven web engineering: A systematic mapping study. e-Informatica Software Engineering Journal, 9(1):107–142, 2015.
- Nassima Yamouni Khelifi, Michał Śmiałek, and Rachida Mekki. Generating database access code from domain models. In 2015 Federated Conference on Computer Science and Information Systems, pages 991– 996, 2015.