The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.06 - November/December (2010 vol.36)
pp: 817-837
Michael Bowman , Carleton University, Ottawa
Lionel C. Briand , Simula Research Laboratory, Lysaker and University of Oslo, Norway
Yvan Labiche , Carleton University, Ottawa
ABSTRACT
In the context of object-oriented analysis and design (OOAD), 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 support to reassign 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 for defining fitness functions. 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. Using a carefully selected case study, this paper investigates the application of our proposed MOGA to the class responsibility assignment problem, in the context of object-oriented analysis and domain class models. Our results suggest that the MOGA can help correct suboptimal class responsibility assignment decisions and perform far better than simpler alternative heuristics such as hill climbing and a single-objective GA.
INDEX TERMS
Object-oriented analysis and design, class responsibility assignment, UML, genetic algorithm.
CITATION
Michael Bowman, Lionel C. Briand, Yvan Labiche, "Solving the Class Responsibility Assignment Problem in Object-Oriented Analysis with Multi-Objective Genetic Algorithms", IEEE Transactions on Software Engineering, vol.36, no. 6, pp. 817-837, November/December 2010, doi:10.1109/TSE.2010.70
REFERENCES
[1] P.J. Bentley and J.P. Wakefield, "Finding Acceptable Solutions in the Pareto Optimal Range Using Multi-Objective Genetic Algorithms," Proc. Soft Computing in Eng. Design and Manufacturing, pp. 231-240, 1997.
[2] M. Bowman, "Multi-Objective Genetic Algorithm to Support Class Responsibility Assignment," MASc thesis, Dept. of Systems and Computer Eng., Carleton Univ., 2007.
[3] M. Bowman, L.C. Briand, and Y. Labiche, "Multi-Objective Genetic Algorithms to Support Class Responsibility Assignment," Technical Report SCE-07-02, version 3, Carleton Univ., http:/squall.sce.carleton.ca, 2008.
[4] L.C. Briand, J. Daly, and J. Wuest, "A Unified Framework for Cohesion Measurement in Object-Oriented Systems," Empirical Software Eng.—An Int'l J., vol. 3, no. 1, pp. 65-117, 1998.
[5] L.C. Briand, J. Daly, and J. Wuest, "A Unified Framework for Coupling Measurement in Object-Oriented Systems," IEEE Trans. Software Eng., vol. 25, no. 1, pp. 91-121, Jan./Feb. 1999.
[6] L.C. Briand, P. Devanbu, and W. Melo, "An Investigation into Coupling Measures for C++," Proc. IEEE Int'l Conf. Software Eng., pp. 412-421, 1997.
[7] B. Bruegge and A.H. Dutoit ARENA, http://sysiphus.informatik. tu-muenchen.de arena/, 2004.
[8] B. Bruegge, and A.H. Dutoit, Object-Oriented Software Engineering Using UML, Patterns, and Java, second ed. Prentice Hall, 2004.
[9] F. Castillo, A. Kordon, and G. Smits, "Robust Pareto Front Genetic Programming Parameter Selection Based on Design of Experiments and Industrial Data," Genetic Programming Theory and Practice, R. Riolo, T. Soule, and B. Worzel, eds., vol. IV, pp. 149-166, Springer, 2005.
[10] J. Clarke, J.J. Dolado, M. Harman, R. Hierons, B.F. Jones, M. Lumkin, B.S. Mitchell, S. Mancoridis, K. Rees, M. Roper, and M. Shepperd, "Reformulating Software Engineering as a Search Problem," IEE Proc.—Software, vol. 130, no. 3, pp. 161-175, 2003.
[11] K.A. De Jong, "Learning with Genetic Algorithms: An Overview," Machine Learning, vol. 3, no. 3, pp. 121-138, 1988.
[12] K. Deb, S. Agrawal, A. Pratap, and T. Meyarivan, "A Fast Elitist Non-Dominated Sorting Genetic Algorithm for Multi-Objective Optimization: NSGA-II," Proc. Parallel Problem Solving from Nature, pp. 849-858, 2000.
[13] S. Demeyer, S. Ducasse, and O. Nierstrasz, Object-Oriented Reengineering Patterns. Morgan Kaufmann, 2003.
[14] J.L. Devore, Probability and Statistics for Engineering and the Sciences, fifth ed. Duxbury Press, 1999.
[15] S. Forrest and M. Mitchell, "Towards a Stronger Building-Blocks Hypothesis: Effects of Relative Building-Block Fitness on GA performance," Proc. Workshop Foundations of Genetic Algorithms, 1993.
[16] M. Fowler, Refactoring—Improving the Design of Existing Code. Addison Wesley, 1999.
[17] D.E. Goldberg, Genetic Algorithms in Search, Optimization & Machine Learning. Addison Wesley, 1989.
[18] J.J. Grefenstette and H.G. Cobb, "Genetic Algorithms for Tracking Changing Environments," Proc. Int'l Conf. Genetic Algorithms, pp. 523-530, 1993.
[19] M. Harman and L. Tratt, "Pareto Optimal Search Based Refactoring at the Design Level," Proc. ACM/IEEE Ann. Conf. Genetic and Evolutionary Computation, pp. 1106-1113, 2007.
[20] R.L. Haupt and S.E. Haupt, Practical Genetic Algorithms. Wiley-Interscience, 1998.
[21] A. Kleppe, J. Warmer, and W. Bast, MDA Explained—The Model Driven Architecture: Practice and Promise. Addison-Wesley, 2003.
[22] M. Lanza and R. Marinescu, Object-Oriented Metrics in Practice. Springer, 2006.
[23] C. Larman, Applying UML and Patterns, third ed. Prentice-Hall, 2004.
[24] M. Laumanns, E. Zitzler, and L. Thiele, "On The Effects of Archiving, Elitism, and Density Based Selection in Evolutionary Multi-Objective Optimization," Proc. Int'l Conf. Evolutionary Multi-Criterion Optimization, pp. 181-196, 2001.
[25] M. López-Ibáñez, T.D. Prasad, and B. Paechter, "Multi-Objective Optimization of the Pump Scheduling Problem Using SPEA2," Proc. IEEE Congress on Evolutionary Computation, vol. 1, pp. 435-442, 2005.
[26] T. Mens and T. Tourwe, "A Survey of Software Refactoring," IEEE Trans. Software Eng., vol. 30, no. 2, pp. 126-139, Feb. 2004.
[27] M. O'Keeffe and M. O Cinneide, "Towards Automated Design Improvement through Combinatorial Optimization," Proc. Workshop Directions in Software Eng. Environments, 2004.
[28] T. Pender, UML Bible. Wiley, 2003.
[29] T.V. Perneger, "What's Wrong with Bonferroni Adjustments," British Medical J., vol. 316, no. 7139, pp. 1236-1236, 1998.
[30] F. Rivas-Dávalos and M.R. Irving, "An Approach Based on the Strength Pareto Evolutionary Algorithm 2 for Power Distribution System Planning," Proc. Evolutionary Multi-Criterion Optimization, 2005.
[31] J.D. Schaffer, R.A. Caruna, L.J. Eshelman, and R. Das, "A Study of Control Parameters Affecting Online Performance of Genetic Algorithms for Function Optimization," Proc. Int'l Conf. Genetic Algorithms and Their Applications, pp. 51-60, 1989.
[32] I. Seng, J. Stammel, and D. Burkhard, "Search-Based Determination of Refactorings for Improving the Class Structure of Object-Oriented Systems," Proc. Conf. Genetic and Evolutionary Computation, 2006.
[33] J.E. Smith and T.C. Fogarty, "Adaptive Parameterized Evolutionary Systems: Self Adaptive Recombination and Mutation in a Genetic Algorithm," Parallel Problem Solving from Nature, H.-M. Voigt, W. Ebeling, I. Rechenberg, and H.-P. Schwefel, eds., pp. 441-450, Springer, 1996.
[34] N. Srinivas and K. Deb, "Multi-objective Optimization Using Nondominated Sorting in Genetic Algorithms," J. Evolutionary Computation, vol. 2, no. 3, pp. 221-248, 1995.
[35] D. Svetinovic, D.M. Berry, and M. Godfrey, "Concept Identification in Object-Oriented Domain Analysis: Why Some Students Just Don't Get It," Proc. Int'l Conf. Requirements Eng., pp. 189-198, 2005.
[36] D.A. Van Veldhuizen and G.B. Lamont, "Multi-Objective Evolutionary Algorithms: Analyzing the State-of-the-Art," Evolutionary Computation, vol. 8, no. 2, pp. 125-147, 2000.
[37] S.A. Whitmire, Object Oriented Design Measurement. John Wiley and Sons, 1997.
[38] S. Yoo and M. Harman, "Pareto Efficient Multi-Objective Test Case Selection," Proc. ACM Int'l Symp. Software Testing and Analysis, pp. 140-150, 2007.
[39] E. Zitzler, M. Laumanss, and L. Thiele, "SPEA2: Improving the Strength Pareto Evolutionary Algorithm," Technical Report 103, Swiss Fed. Inst. of Technology, Computer Eng. and Networks Laboratory, 2001.
[40] E. Zitzler and L. Thiele, "Multi-Objective Evolutionary Algorithms: A Comparative Case Study and the Strength Pareto Approach," IEEE Trans. Evolutionary Computation, vol. 3, no. 4, pp. 257-271, Nov. 1999.
28 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool