Solving the Class Responsibility Assignment Problem Using Metaheuristic Approach

Goran Glavaš, Krešimir Fertalj


Assigning responsibilities to classes is among first and arguably most important steps when creating objectoriented software design. This step depends greatly on human judgment and experience. In this paper our objective is to automatize assigning responsibilities to classes usingmetaheuristic optimization algorithms. Four different algorithms (simple genetic algorithm, hill climbing, simulated annealing and particle swarm optimization), using class coupling and cohesion metrics, were implemented and their results are compared. Implemented algorithms take semantically annotated responsibility dependency graph as input. This paper describes responsibility dependency graph, implemented algorithms and used coupling and cohesion metrics in detail. Paper also reports on a performed case study. Ultimately, based on results obtained from all implemented algorithms, conclusions on search landscape of class responsibility assignment problem are drawn.


class responsibility assignment, genetic algorithm, hill climbing, simulated annealing, particle swarm optimization

Full Text:



Creative Commons License
This work is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License.

Crossref Similarity Check logo

Crossref logologo_doaj

 Hrvatski arhiv weba logo