Class responsibility assignment is not an easy skill to acquire. Though there are many methodologies for assigning responsibilities to classes, they all rely on human judgment and decision making. Our objective is to provide decision-making help to re-assign methods and attributes to classes in a class diagram. Our solution is based on a multi-objective genetic algorithm (MOGA) and uses class coupling and cohesion measurement. Our MOGA takes as input a class diagram to be optimized and suggests possible improvements to it. The choice of a MOGA stems from the fact that there are typically many evaluation criteria that cannot be easily combined into one objective, and several alternative solutions are acceptable for a given OO domain model. This article presents our approach in detail, our decisions regarding the multi-objective genetic algorithm, and reports on a case study. Our results suggest that the MOGA can help correct suboptimal class responsibility assignment decisions.
23rd International Conference on Software Maintenance, ICSM
Department of Systems and Computer Engineering

Bowman, M. (Michael), Briand, L.C. (Lionel C.), & Labiche, Y. (2007). Multi-objective genetic algorithm to support class responsibility assignment. Presented at the 23rd International Conference on Software Maintenance, ICSM. doi:10.1109/ICSM.2007.4362625