Decomposing class responsibilities using distance-based method similarity

Junha LEE, Dae-Kyoo KIM, Suntae KIM, Sooyong PARK

PDF(1626 KB)
PDF(1626 KB)
Front. Comput. Sci. ›› 2016, Vol. 10 ›› Issue (4) : 612-630. DOI: 10.1007/s11704-015-5001-5
RESEARCH ARTICLE

Decomposing class responsibilities using distance-based method similarity

Author information +
History +

Abstract

Cohesion is a design quality that has a great impact on the posterior development and maintenance. As software evolves, the cohesion of the system becomes weaker due to the changes introduced during evolution. Over evolution, a single responsibility class may be unintentionally assigned other responsibilities, which makes the class less cohesive and more complex and consequently increases the complexity of the entire system. There has been much work on decomposing class responsibilities based on internal class relationships such as method-attribute referencing and internal method calls. However, object-oriented systems involve significant external class relationships carrying important behavioral semantics, which should be taken into account in identifying class responsibilities. In this paper, we present a novel approach for identifying and decomposing classes responsibilities based on method similarity using both internal and external class relationships. We extend the existing work for measuring similarity of internal class relationships and present a distance-based method for measuring external class relationships. We evaluate the approach using three open source applications — JMeter, JHotDraw, and ArgoUML. The evaluation shows that the presented approach improves precision over the existing work. We validate the results using independent samples T-test and ANOVA applied to a set of hypotheses. The validation confirms that the results are statistically significant.

Keywords

class decomposition / cohesion / external relationships / identifying responsibility / method similarity

Cite this article

Download citation ▾
Junha LEE, Dae-Kyoo KIM, Suntae KIM, Sooyong PARK. Decomposing class responsibilities using distance-based method similarity. Front. Comput. Sci., 2016, 10(4): 612‒630 https://doi.org/10.1007/s11704-015-5001-5

References

[1]
Martin R C. Agile Software Development: Principles, Patterns, and Practices. London: Prentice Hall, 2003
[2]
Chatzigeorgiou A, Xanthos S, Stephanides G. Evaluating objectoriented designs with link analysis. In: Proceedings of the 26th International Conference on Software Engineering. 2004, 656–665
CrossRef Google scholar
[3]
Joshi P, Joshi , R K. Concept analysis for class cohesion. In: Proceedings of the 13th European Conference on Software Maintenance and Reengineering. 2009, 237–240
CrossRef Google scholar
[4]
Cassell K, Andreae P, Groves L, Noble J. Towards automating classsplitting using betweenness clustering. In: Proceedings of the 24th IEEE/ACM International Conference on Automated Software Engineering. 2009, 595–599
[5]
Fokaefs M, Tsantalis N, Chatzigeorgiou A, Sander J. Decomposing object-oriented class modules using an agglomerative clustering technique. In: Proceedings of IEEE International Conference on Software Maintenance. 2009, 93–101
CrossRef Google scholar
[6]
Al Dallal J, Briand L C. A precise method-method interaction-based cohesion metric for object-oriented classes. ACM Transactions on Software Engineering and Methodology, 2012, 21(2)
CrossRef Google scholar
[7]
Al Dallal J. Fault prediction and the discriminative powers of connectivity-based object-oriented class cohesion metrics. Information and Software Technology, 2012, 54(4): 396–416
CrossRef Google scholar
[8]
Al Dallal J. Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics. Information and Software Technology, 2012, 54(10): 1125–1141
CrossRef Google scholar
[9]
Simon F, Steinbruckner F, Lewerentz C. Metrics based refactoring. In: Proceedings of the 5th European Conference on Software Maintenance and Reengineering. 2001, 30–38
CrossRef Google scholar
[10]
Tsantalis N, Chatzigeorgiou A. Identification of move method refactoring opportunities. IEEE Transactions on Software Engineering. 2009, 35(3): 347–367
CrossRef Google scholar
[11]
Fokaefs M, Tsantalis N, Stroulia E, Chatzigeorgiou A. Identification and application of Extract Class refactorings in object-oriented systems. Journal of Systems and Software. 2012, 85(10): 2241–2260
CrossRef Google scholar
[12]
Tan P N, Steinbach M, Kumar V. Introduction to Data Mining. Boston: Addison Wesley, 2005
[13]
Bavota G, De Lucia A, Oliveto R. Journal of Systems and Software. 2011, 84(3): 397–414
CrossRef Google scholar
[14]
Resnik P. Using information content to evaluate semantic similarity in a taxonomy. In: Proceedings of International Joint Conference on Artificial Intelligence. 1995, 448–453
[15]
Chidamber S R, Kemerer C F. Towards a metrics suite for object oriented design. In: Proceedings of International Conference on Object-Oriented Programming, System, Languages, and Application. 1991, 197–211
CrossRef Google scholar
[16]
Chidamber S R, Kemerer C F. A metrics suite for object oriented design. IEEE Transactions on Software Engineering. 1994, 20(6): 476–493
CrossRef Google scholar
[17]
Li W, Henry S. Object-oriented metrics that predict maintainability. Journal of Systems and Software, 1993, 23(2): 111–122
CrossRef Google scholar
[18]
Henderson-Seller B. Object-Oriented Metrics: Measures of Complexity. New Jersey: Prentice Hall, 1995
[19]
Bieman J, Kang B. Cohesion and reuse in an object-oriented system. In: Proceedings of Symposium on Software Reusability. 1995, 259–262
CrossRef Google scholar
[20]
Hitz M, Montazeri B. Measuring coupling and cohesion in objectoriented systems. In: Proceedings of International Symposium on Applied Corporate Computing. 1995
[21]
Briand L, Morasca S, Basili V. Definding and Validating High-level Design Metrics. Technical Report UMIACS-TR-94-75. 1994
[22]
Badri L, Badri M. A proposal of a new class cohesion criterion: an empirical study. Journal of Object Technology, 2004, 3(4): 145–159
CrossRef Google scholar
[23]
Bonja C, Kidanmariam E. Metrics for class cohesion and similarity between methods. In: Proceedings of the Annual ACM Southeast Regional Conference. 2006
CrossRef Google scholar
[24]
Briand L C, Daly J W, Wust J. A unified framework for cohesion measurement in object-oriented systems. In: Proceedings of the 4th IEEECS International Software Metrics Symposium. 1997, 43–53
CrossRef Google scholar
[25]
Marcus A, Poshyvanyk D. The conceptual cohesion of classes. In: Proceedings of the 21st International Conference on Software Maintenance. 2005, 133–142
CrossRef Google scholar
[26]
Martin R. Clean Code: A Handbook of Agile Software Craftsmanship. New Jersey: Prentice Hall, 2008
[27]
Papadimitriou C H, Steiglitz K. Combinatorial Optimization: Algorithms and Complexity. New York: Dover Publications, 1998
[28]
Bavota G, Lucia A, Marcus A, Oliveto R. A two-step technique for extract class refactoring. In: Proceedings of IEEE/ACM International Conference on Automated Software Engineering. 2010, 151–154
CrossRef Google scholar
[29]
Manning C D, Raghavan P, Schütze H. Introduction to Information Retrieval. Cambridge: Cambridge University Press, 2008
CrossRef Google scholar
[30]
Fowler M, Beck K, Brant J, Opdyke W, Roberts D. Refactoring: Improving the Design of Existing Code. New Jersey: Addison-Wesley Professional, 1999
[31]
Sarkar S, Rama G M, Kak A C. API-based and information-theoretic metrics for measuring the quality of software modularization. IEEE Transactions on Software Engineering, 2007, 33(1): 14–32
CrossRef Google scholar
[32]
Gui G, Scott P D. Coupling and cohesion measures for evaluation of component reusability. In: Proceedings of the 2006 ACM International Workshop on Mining software repositories. 2006, 18–21
CrossRef Google scholar
[33]
Briand L, Daly J W, Wüst J. A unified framework for coupling measurement in object-oriented systems. IEEE Transactions on Software Engineering, 1999, 25(1): 91–121
CrossRef Google scholar
[34]
Rijsbergen C. Information Retrieval. London: Butterworth, 1979
[35]
Ott R L, Longnecker M. An Introduction to Statistical Methods and Data Analysis. 6th ed. Monterey: Brooks/Cole, 2010
[36]
Jacod J, Shiriaev A N. Limit Theorems for Stochastic Processes. New York: Springer-Verlag, 1987
CrossRef Google scholar

RIGHTS & PERMISSIONS

2016 Higher Education Press and Springer-Verlag Berlin Heidelberg
AI Summary AI Mindmap
PDF(1626 KB)

Accesses

Citations

Detail

Sections
Recommended

/