A domain-specific metamodeling language (DSM2L) enables language engineers to define a family of similar metamodel-based languages. In recent years, several DSM2Ls have been developed for various domains, e.g., traceability, variability management, process modeling, and metamodeling feature models. However, there is no consensus on an engineering approach for constructing a DSM2L. To address this problem, we consider a DSM2L as a software product line (SPL), in which the software products are the family of languages. Based on this assumption, we propose a roadmap to develop a DSM2L using an SPL engineering framework. To investigate the pros and cons of the roadmap, the MoDEBiTE metamodeling language is engineered in the domain of bidirectional transformations. In order to validate the proposal of engineering a DSM2L, an experiment with six transformation cases is performed on MoDEBiTE. The results of the experiment show the applicability, usefulness, and validity of MoDEBiTE, demonstrating the validity of the proposal.
Our paper entitled “Leveraging product line engineering for the development of domain-specific metamodeling languages” was accepted in the Journal of Computer Languages.
This paper presents a solution for the Quality-based Software-Selection and Hardware-Mapping problem using the ACO algorithm. ACO is one of the most successful swarm intelligence algorithms for solving discrete optimization problems. The evaluation results show that the proposed approach generates correct results for all evaluated test cases.
Also, better results in terms of performance and scalability are given in comparison with the ILP and EMFeR approaches.
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).