Solving the Class Responsibility Assignment Problem Using Metaheuristic Approach
Abstract
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.
Keywords
class responsibility assignment, genetic algorithm, hill climbing, simulated annealing, particle swarm optimization
Full Text:
PDFDOI: https://doi.org/10.2498/cit.1002023
This work is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License.