This paper reports on experiences of integrating Agile and Model-Driven Development, for the development of code generators and financial systems. We evaluate the benefits of the Agile MDD approach by comparing Agile non-MDD and Agile MDD developments of code generators, and an agile MDD development of a financial application with
three other independent versions of the same application developed using different approaches. We also compare the functionality of the systems and a variety of technical debt metrics measuring the quality of the code and its design. Based on the case study results, we have found evidence that the use of Agile MDD leads to reductions in development effort, and to improvements in software quality and efficiency.
The Impact of Integrating Agile Software Development and Model-Driven Development: A Comparative Case Study
Agile and Model-Driven Development integration (Agile MDD) is of significant interest to researchers who want to leverage the best of both worlds. Currently, there is no clear evidence or proof for the real impact of such integration. As a first step in this direction, this paper reports an empirical investigation on the impact of integrating Agile and Model-Driven Development on the quality of software systems. To this end, we developed a financial application using Agile MDD, which is further contrasted with three other independent versions of the same application developed using different approaches: Agile method, MDD method, and traditional (manually-coded) method, respectively. We also compared the functionality of the systems and a variety of technical debt metrics measuring the quality of the code and its design. Based on the case study results, we have found that the use of Agile MDD shows some improvements in the product quality and efficiency.
Abstract Model transformations (MT), as with any other software artifact, may contain quality flaws. Even if a transformation is functionally correct, such flaws will impair maintenance activities such as enhancement and porting. The concept of technical debt (TD) models the impact of such flaws as a burden carried by the software which must either be settled in a ‘lump sum’to eradicate the flaw, or paid in the ongoing additional costs of maintaining the software with the flaw. In this paper we investigate the characteristics of technical debt in model transformations, analysing a range of MT cases in different MT languages, and using measures of quality flaws or ‘bad smells’ for MT, adapted from code measures. Based on these measures we identify significant differences in the level and kinds of technical debt in different MT languages, and we propose ways in which TD can be reduced.
Our paper entitled “The Impact of Integrating Agile Software Development and Model-Driven Development: A Comparative Case Study” was accepted in 10th System Analysis and Modeling Conference (SAM 2018).
مدل، نمایشی انتزاعی از سیستم نرمافزاری است که راهکاری مناسب برای مقابله با پیچیدگیهای نرمافزار میباشد. توسعه مدل رانده نیز، با بهرهگیری از این واقعیت، روشی نوین در توسعه نرمافزار است که از مدل بهعنوان دستساخته اصلی برای ایجاد سیستمی نرمافزاری استفاده میکند. همین امر موجب شده با افزایش همکاری تیمی، نسخههای مختلفی از مدل در طول فرایند توسعه، بهویژه در مرحله طراحی، ایجاد شود. برای مدیریت این نسخهها، شناسایی تفاوتها و تطبیق آنها بهصورت مدلی یکپارچه، ضروری است. درنتیجه، نیاز به ابزار و روشهایی برای پشتیبانی از عملیات ادغام نسخههای مدل و کاهش مداخله کاربر در آن، موردنیاز است. در این مقاله، الگوریتم و ابزاری برای ادغام سهطرفه مدلهای یوامال ارائه میشود که پیش از آغاز ادغام، فرضیات ذهنی هر طراح را دریافت کرده و درنهایت یک مدل ادغامی سازگار ایجاد میکند. با توجه به ارزیابیهای انجامشده، عدم وابستگی به کاربر و محیط مدلسازی به همراه زمان اجرای کمتر نسبت به روشهای موجود از مزایای روش پیشنهادی میباشد.
Model transformation design patterns have been proposed by a number of researchers, but their usage appears to be sporadic and sometimes patterns are applied without recognition of the pattern. In this paper we provide a systematic literature review of transformation design pattern applications. We evaluate how widely patterns have been used, and how their use differs in different transformation languages and for different categories of transformation. We identify what benefits appear to arise from the use of patterns, and consider how the application of patterns can be improved. The paper also identifies several new patterns which have not previously been catalogued.
To the challenge entailed by the complexity and size of software systems, developers have to cooperate and work in parallel on software models. Models are changed separately, and they should be merged periodically to obtain an integrated single model. This leads to conflict in merging models. Therefore, several approaches have been proposed to detect such conflicts. For some conflict detection approaches, it is required to describe conflict constraints which are an open issue. In contribution to the solution of this problem, we present a UML profile for modeling conflict conditions which can be used for automatic generation of required constraints. This profile helps to build a conflict model by exploiting example of models which participate in the model merging process. Hence, software engineers are able to define conflicts via a concrete graphical syntax in a familiar UML editor. To evaluate the proposed profile, a case study consisting of two conflicts is performed that shows the usefulness of this profile.
The transformation of a finite state automaton into an equivalent regular expression is a challenging topic which is presented in TTC 2017.