The Journal of Systems & Software 169 (2020) 110684 Contents lists available at ScienceDirect The Journal of Systems & Software journal homepage: www.elsevier.com/locate/jss A comparison of quality flaws and technical debt in model transformation specifications Shekoufeh Kolahdouz-Rahimi a, , Kevin Lano b , Mohammadreza Sharbaf a , Meysam Karimi a , Hessa Alfraihi c a MDSE Research Group, Dept. of Software Engineering, University of Isfahan, Iran b Dept. of Informatics, King’s College London, London, UK c Dept. of Information Systems, Princess Nourah bint Abdulrahman University, Saudi Arabia article info Article history: Received 20 January 2020 Received in revised form 29 May 2020 Accepted 1 June 2020 Available online 8 June 2020 Keywords: Model transformations Technical debt Software quality abstract The quality of model transformations (MT) has high impact on model-driven engineering (MDE) software development approaches, because of the central role played by transformations in MDE for refining, migrating, refactoring and other operations on models. For programming languages, a popular paradigm for code quality is the concept of technical debt (TD), which uses the analogy that quality flaws in code are a debt burden carried by the software, which must either be ‘redeemed’ by expending specific effort to remove its flaws, or be tolerated, with ongoing additional costs to maintenance due to the flaws. Whilst the analysis and management of quality flaws and TD in programming languages has been investigated in depth over several years, less research on the topic has been carried out for model transformations. In this paper we investigate the characteristics of quality flaws and technical debt in model transformation languages, based upon systematic analysis of over 100 transformation cases in four leading MT languages. Based on quality flaw indicators for TD, we identify significant differences in the level and kinds of technical debt in different MT languages, and we propose ways in which TD in MT can be reduced and managed. © 2020 Elsevier Inc. All rights reserved. 1. Introduction This paper will investigate the issue of quality flaws and tech- nical debt (TD) (Cunningham, 1992; Marinescu, 2012) in model transformation specifications (MT). The original definition of TD in Cunningham (1992) referred to the use of non-optimal coding practices used to accelerate development, and the consequences of these practices: ‘‘shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite [...] The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt’’. An example of such ‘quick and dirty’ practices is the use of copy–paste to define a new operation based on an existing operation, instead of generalising the existing operation. Thus technical debt refers to the additional costs incurred for the maintenance of a software artefact over its lifetime, caused by the Corresponding author. E-mail addresses: sh.rahimi@eng.ui.ac.ir (S. Kolahdouz-Rahimi), kevin.lano@kcl.ac.uk (K. Lano), m.sharbaf@eng.ui.ac.ir (M. Sharbaf), meysam.karimi@eng.ui.ac.ir (M. Karimi), hessa.alfraihi@kcl.ac.uk (H. Alfraihi). use of non-optimal practices in its production. The principal cost of TD is incurred when refactoring or other remedial action is used to remove the TD from the software, whilst the interest is paid in the additional cost due to the TD each time the software is maintained. Depending on the projected lifetime of the artefact, there may be lower total costs in tolerating the interest payments as opposed to paying off the debt. There are a range of perspectives on what constitutes technical debt (Tom et al., 2012) and how it may be estimated (Zazworka et al., 2014). The ‘non-optimal practices’ in software produc- tion can encompass failures to use appropriate architectures or design patterns in the software artefact, functional or testing incompleteness, inappropriate and inadequate documentation, insufficient consultation with stakeholders, and others (Zazworka et al., 2014). The concept of TD was initially applied to code artefacts, but can also be extended to analysis and design models (Arendt and Taentzer, 2010). In Model Driven Engineering (MDE) (Brambilla et al., 2012; Lano, 2016), model transformations play a cen- tral role, supporting MDE processes such as the synthesis of https://doi.org/10.1016/j.jss.2020.110684 0164-1212/© 2020 Elsevier Inc. All rights reserved.