Decomposing class responsibilities using distance-based method similarity

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

Front. Comput. Sci. ›› 2016, Vol. 10 ›› Issue (4) : 612 -630.

PDF (1599KB)
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 +
PDF (1599KB)

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 DOI:10.1007/s11704-015-5001-5

登录浏览全文

4963

注册一个新账户 忘记密码

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

[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

[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

[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)

[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

[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

[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

[10]

Tsantalis N, Chatzigeorgiou A. Identification of move method refactoring opportunities. IEEE Transactions on Software Engineering. 2009, 35(3): 347–367

[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

[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

[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

[16]

Chidamber S R, Kemerer C F. A metrics suite for object oriented design. IEEE Transactions on Software Engineering. 1994, 20(6): 476–493

[17]

Li W, Henry S. Object-oriented metrics that predict maintainability. Journal of Systems and Software, 1993, 23(2): 111–122

[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

[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

[23]

Bonja C, Kidanmariam E. Metrics for class cohesion and similarity between methods. In: Proceedings of the Annual ACM Southeast Regional Conference. 2006

[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

[25]

Marcus A, Poshyvanyk D. The conceptual cohesion of classes. In: Proceedings of the 21st International Conference on Software Maintenance. 2005, 133–142

[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

[29]

Manning C D, Raghavan P, Schütze H. Introduction to Information Retrieval. Cambridge: Cambridge University Press, 2008

[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

[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

[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

[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

RIGHTS & PERMISSIONS

Higher Education Press and Springer-Verlag Berlin Heidelberg

AI Summary AI Mindmap
PDF (1599KB)

Supplementary files

FCS-0612-15001-SK_suppl_1

923

Accesses

0

Citation

Detail

Sections
Recommended

AI思维导图

/