Document Type : Research Article


MDSE Research Group, Department of Software Engineering, Faculty of Computer Engineering, University of Isfahan, Iran.



The Class Responsibility Assignment (CRA) problem is one of the most important problems in Object-Oriented Software Engineering. It is a Search-based optimization problem to assign attributes and methods to a set of classes such that the related class diagram has maximum cohesion and minimum coupling. Due to the large and complex search space of the problem, finding an optimal solution is a costly and challenging task. In this regard, the use of optimization approaches can be promising. In this paper, the Particle Swarm Optimization (PSO) and Ant Colony Optimization (ACO) algorithms are implemented using Model-Driven Engineering (MDE) techniques for solving the CRA problem. To evaluate the proposed approach, the effectiveness of provided algorithms is presented using models with different scales. Additionally, the results are compared with existing solutions for the CRA problem in the community. The results indicated that for large-scale models the ACO algorithm could find a much better solution in less time compared to the PSO algorithm.


Main Subjects

[1] S. Sendall and W. Kozaczynski. Model transformation: The heart and soul of model-driven software development. IEEE Software, 20(5):42 -- 45, 2003. [ bib | DOI ]
[2] M. Kessentini, P. Langer, and M. Wimmer. Searching models, modeling search: On the synergies of SBSE and MDE. In 2013 1st International Workshop on Combining Modelling and Search-Based Software Engineering (CMSBSE), pages 51--54. IEEE, 2013. [ bib | DOI ]
[3] M. Harman, S. A. Mansouri, and Y. Zhang. Search-based software engineering: Trends, techniques and applications. ACM Computing Surveys (CSUR), 45(1):1--61, 2012. [ bib | DOI ]
[4] M. Brambilla, J. Cabot, and M. Wimmer. Model-Driven Software Engineering in Practice. Morgan & Claypool Publishers, 2017. [ bib ]
[5] M. Fleck, J. Troya, and M. Wimmer. The class responsibility assignment case. TTC 2016: 9th Transformation Tool Contest, co-located with the 2016 Software Technologies: Applications and Foundations (STAF 2016)(2016), p 1-8, pages 1--8, 2016. [ bib | DOI ]
[6] M. Kessentini, H. Sahraoui, M. Boukadoum, and O. Omar. Search-based model transformation by example. Software & Systems Modeling, 11(2):209–226, 2010. [ bib | DOI ]
[7] E. Talbi. Metaheuristics: from design to implementation, volume 74. John Wiley & Sons, 2009. [ bib ]
[8] L. Bianchi, M. Dorigo, L. Gambardella, and W. Gutjahr. A survey on metaheuristics for stochastic combinatorial optimization. Natural Computing, 8(2):239--287, 2009. [ bib | DOI ]
[9] Martin Fleck, Javier Troya, and Manuel Wimmer. Marrying search-based optimization and model transformation technology. In 1st North American Search Based Software Engineering Symposium (NasBASE 2015), pages 1--16, 2015. [ bib ]
[10] Eberhart and Y. Shi. Particle swarm optimization: developments, applications and resources. In Proceedings of the 2001 Congress on evolutionary computation, pages 81--86. IEEE, 2001. [ bib | DOI ]
[11] M. Dorigo and L. M. Gambardella. Ant colony system: a cooperative learning approach to the traveling salesman problem. IEEE Transactions on evolutionary computation, 1(1):53--66, 1997. [ bib | DOI ]
[12] S. Goss, S. Aron, J. Deneubourg, and J. M. Pasteels. Self-organized shortcuts in the Argentine ant. Naturwissenschaften, 76(12):579--581, 1989. [ bib | DOI ]
[13] Wikimedia., Date Accessed: November 7, 2019. [ bib ]
[14] T. Mens and P. Van Gorp. A taxonomy of model transformation. Electronic Notes in Theoretical Computer Science, 157:125--142, 2006. [ bib | DOI ]
[15] F. Jouault, F. Allilaire, J. B'ezivin, and I. Kurtev. ATL: A model transformation tool. Science of computer programming, 72(1-2):31--39, 2008. [ bib | DOI ]
[16] James Kennedy. Particle swarm optimization. In Encyclopedia of machine learning, pages 760--766. Springer, 2011. [ bib ]
[17] S. Faridmoayer, M. Sharbaf, and S. Kolahdouz-Rahimi. Optimization of model transformation output using genetic algorithm. In 2017 IEEE 4th International Conference on Knowledge-Based Engineering and Innovation (KBEI), pages 0203--0209. IEEE, 2017. [ bib | DOI ]
[18] K. Lano, S. Kolahdouz-Rahimi, and S. Yassipour-Tehrani. Solving the Class Responsibility Assignment Case with UML-RSDS. In TTC@STAF, pages 9--14, 2016. [ bib | DOI ]
[19] A. Nagy and G. Szárnyas. Class responsibility assignment case: a VIATRA-DSE solution. In TTC@STAF, 2016. [ bib ]
[20] L. Johnsen Arne, F. Macias, and A. Rutle. Solving the Class Responsibility Assignment using Java and ATL. TTC@STAF, pages 20--23, 2016. [ bib | DOI ]
[21] A. Burdusel and S. Zschaler. Model Optimisation for Feature Class Allocation Using MDEOptimiser: A TTC 2016 Submission. In TTC@STAF, pages 33--38, 2016. [ bib ]
[22] R. Bill, M. Fleck, J. Troya, T. Mayerhofer, and M. Wimmer. A local and global tour on MOMoT. Software & Systems Modeling, 18(2):1017--1046, 2019. [ bib | DOI ]
[23] S. John, A. Burdusel, R. Bill, D. Strüber, G. Taentzer, S. Zschaler, and M. Wimmer. Searching for optimal models: Comparing two encoding approaches. Software & Systems Modeling, 18(2):1017--1046, 2019. [ bib | DOI ]
[24] A. Burdusel, S. Zschaler, and D. Strüber. MDEoptimiser: a search based model engineering tool. In Proceedings of the 21st ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, pages 12--16. ACM, 2018. [ bib | DOI ]
[25] K. Born, S. Schulz, D. Strüber, and S. John. Solving the Class Responsibility Assignment Case with Henshin and a Genetic Algorithm. In TTC@STAF, pages 45--54, 2016. [ bib ]
[26] F. Krikava. Solving the TTC'16 Class Responsibility Assignment Case Study with SIGMA and Multi-Objective Genetic Algorithms. In TTC@STAF, pages 55--60, 2016. [ bib ]
[27] M. Fleck, J. Troya, and M. Wimmer. Search-based model transformations. Journal of Software: Evolution and Process, 28(12):1081--1117, 2016. [ bib | DOI ]