• Article
  • | |
  • Metrics
  • |
  • Reference [45]
  • |
  • Related [20]
  • |
  • Cited by
  • | |
  • Comments
    Abstract:

    A number of package cohesion metrics have been proposed in the last decade, but they mainly converge on intra-package data dependencies between classes, which are inadequate to represent the semantics of packages in many cases. To address this problem, the authors first classify packages into four categories in terms of the kinds of their tasks. Next, a new package cohesion called CRC based on client usages is proposed by considering the fact that several classes are closely related if they are always reused together. And then the application areas of CRC in terms of the package classification framework are analyzed. Finally, a CRC measure called HC is presented. Compared to existing package cohesion metrics, HC considers not only intra-package but also inter-package data dependencies. It is hence able to reveal semantic relationships between classes. Furthermore, HC takes into account how the clients of a package use the package, thereby providing a finer-grain evaluation of the cohesion of a package. Experimental results demonstrates the effectiveness of HC, which likewise proves the feasibility of CRC.

    Reference
    [1] Martin RC. Agile Software Development Principles, Patterns, and Practices. Prentice Hall, 2002.
    [2] Lakos J. Large-scale C++ Software Design. Addison Wesley, 1996.
    [3] Larman C. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process. 2nd ed., Pearson Education, 2004.
    [4] Yourdon E, Constantine L. Structured Design. Prentice Hall, 1979.
    [5] Chae HS, Kwon YR, Bae DH. Improving cohesion metrics for classes by considering dependent instance variables. IEEE Trans. on Software Engineering, 2004,30(11):826-832.
    [6] Briand LC, Morasca S, Basili VR. Defining and validating measures for object-based high-Level design. IEEE Trans. on Software Engineering, 1999,25(5):722-743.
    [7] Briand LC, Wüst JK, Ikonomovski SV, Lounis H. Investigating quality factors in object-oriented designs: An industrial case study. In: Proc. of the 21st Int’l Conf. on Software Engineering. 1999. 345-354.
    [8] Marcus A, Poshyvanyk D, Ferenc R. Using the conceptual cohesion of classes for fault prediction in object-oriented systems. IEEE Trans. on Software Engineering, 2008,34(2).
    [9] Mathias KS, Cross JH, Hendrix TD, Barowski LA. The role of software measures and metrics in studies of program comprehension. In: Proc. of the 37th Annual Southeast Regional Conf. 1999. 13-70.
    [10] Zhou YM, Leung H. Empirical analysis of object-oriented design metrics for predicting high and low severity faults. IEEE Trans. on Software Engineering, 2006,32(10):771-789.
    [11] Zhou TL, Shi L, Xu BW. Refactoring C++ programs physically. Journal of Software, 2009,20(3) (in English with Chinese abstract). http://www.jos.org.cn/1000-9825/550.htm
    [12] Evans E. Domain-Driven Design: Tacking Complexity in the Heart of Software. Addison Wesley/Pearson, 2004.
    [13] McConnell S. Code Complete. 2nd ed., Microsoft Press, 2004.
    [14] Gamma E, Helm R, Johnson R, Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 1998.
    [15] Bieman J, Kang BK. Measuring design-level cohesion. IEEE Trans. on Software Engineering, 1998,24(2):111-124.
    [16] Briand LC, Daly JW, Wüst JK. A unified framework for coupling measurement in object-oriented systems. Trans. on Software Engineering, 1999,25(1):91-121.
    [17] Bonja C, Kidanmariam E. Metrics for class cohesion and similarity between methods. In: Proc. of the 44th Annual Southeast Regional Conf. 2006. 91-95.
    [18] Counsell S, Swift S, Crampton J. The interpretation and utility of three cohesion metrics for object-oriented design. ACM Trans. on Software Engineering and Methodology, 2006,15(2):123-149.
    [19] Chae HS, Kwon YR. A Cohesion measure for classes in object-oriented systems. In: Proc. of the 5th Int’l Software Metrics Symp. 1998. 158-166.
    [20] Chidamber SR, Kemerer CF. A metrics suite for object oriented design. IEEE Trans. on Software Engineering, 1994,20(6): 476-493.
    [21] Hitz M, Montazeri B. Measuring coupling and cohesion in object-oriented systems. In: Proc. of the Int’l Symp. on Applied Corporate Computing. 1995. 25-27.
    [22] Marcus A, Poshyvany D. The conceptual cohesion of classes. In: Proc. of the 21st IEEE Int’l Conf. on Software Maintenance. 2005. 133-142.
    [23] Chen ZQ, ZhouYM, Xu BW, Zhao JJ, Yang HJ. A novel approach to measuring class cohesion based on dependence analysis. In: Proc. of the Int’l Conf. on Software Maintenance. 2002. 377-383.
    [24] Chen ZQ, Xu BW. An approach to measurement of class cohesion based on dependence analysis. Journal of Software, 2003, 14(11):1849-1856 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/14/1849.htm
    [25] Zhou YM. Research on software measurement [Ph.D. Thesis]. Nanjing: Southeast University, 2002 (in Chinese with English abstract).
    [26] Zhou YM, Xu BW, Zhao JJ, Yang HJ. ICBMC: An improved cohesion measure for classes. In: Proc. of Int’l Conf. on Software Maintenance. 2002. 44-53.
    [27] Zhou YM, Wen LJ, Wang JM, Chen YJ, Lu HM, Xu BW. DRC: A dependence relationships based cohesion measure for classes. In: Proc. of the 10th Asia-Pacific Software Engineering Conf. 2003. 215-223.
    [28] Zhou YM, Lu JT, Lu HM, Xu BW. A comparative study of graph theory-based class cohesion measures. ACM SIGSOFT Software Engineering Notes, 2004,29(2):1-6.
    [29] Xu BW, Zhou YM. Comments on “a cohesion measure for object-oriented classes” by Heung-Seok Chae, Yong-Rae Kwon and Doo-Hwan Bae. Software: Practice and Experience, 2001,31(14):1381-1388.
    [30] Xu BW, Zhou YM. More comments on “a cohesion measure for object-oriented classes” by Heung-Seok Chae, Yong-Rae Kwon and Doo-Hwan Bae. Software: Practice and Experience, 2003,33(6):583-588.
    [31] Patel S, Chu WC, Baxter R. A measure for composite module cohesion. In: Proc. of the 14th Int’l Conf. on Software Engineering. 1992. 38-48.
    [32] BW Xu, ZQ Chen, JJ Zhao. Measuring cohesion of packages in Ada95. In: Proc. of the ACM SIGAda Annual Int’l Conf. 2003. 62-67.
    [33] Briand LC, Morasca S, Basili VR. Property-Based software engineering measurement. IEEE Trans. on Software Engineering, 1996, 22(1):68-85.
    [34] Allen EB, Khoshgoftaar TM, Chen Y. Measuring coupling and cohesion of software modules: An information theory approach. In: Proc. of the 7th Int’l Software Metrics Symp. 2001. 124-134.
    [35] Ponisio ML. Exploiting client usage to manage program modularity [Ph.D. Thesis]. Bern: University of Bern, 2006.
    [36] Zhou YM, Leung H, Winoto P. MNav: A Markov model-based web site navigability measure. IEEE Trans. on Software Engineering, 2007,33(12):869-890.
    [37] Hamming RW. Error detecting and error correcting codes. Bell System Tech Journal, 1950,29(2):147-160.
    [38] Shi L, Xu BW, Xie XY. An empirical study of configuration strategies of evolutionary testing. Int’l Journal of Computer Science & Network Security, 2006,6(1A):44-49.
    [39] Shi L. Research on test data automatic generation [Ph.D. Thesis]. Nanjing: Southeast University, 2006 (in Chinese with English abstract).
    [40] Xie XY, Xu BW, Shi L. A dynamic optimization strategy for evolutionary testing. In: Proc. of the 20th Asia-Pacific Software Engineering Conf., 2005. 15-17.
    [41] Borges J, Levene M. An average linear time algorithm for Web usage mining. Information Technology and Decision Making, 2004, 3(2):307-319. 附中文参考文献:
    [11] 周天琳,史亮,徐宝文.重构C++程序物理设计.软件学报,2009,20(3). http://www.jos.org.cn/1000-9825/550.htm
    [24] 陈振强,徐宝文.一种基于依赖性分析的类内聚度度量方法.软件学报,2003,14(11):1549-1856. http://www.jos.org.cn/1000-9825/ 14/1849.htm
    [25] 周毓明.软件度量中的若干问题研究[博士学位论文].南京:东南大学,2002.
    [39] 史亮.测试数据自动生成技术研究[博士学位论文].南京:东南大学,2006.
    Cited by
    Comments
    Comments
    分享到微博
    Submit
Get Citation

周天琳,徐宝文,史 亮,周毓明.基于客户程序度量包内聚性.软件学报,2009,20(2):256-270

Copy
Share
Article Metrics
  • Abstract:5754
  • PDF: 6817
  • HTML: 0
  • Cited by: 0
History
  • Received:February 27,2008
  • Revised:April 16,2008
You are the firstVisitors
Copyright: Institute of Software, Chinese Academy of Sciences Beijing ICP No. 05046678-4
Address:4# South Fourth Street, Zhong Guan Cun, Beijing 100190,Postal Code:100190
Phone:010-62562563 Fax:010-62562533 Email:jos@iscas.ac.cn
Technical Support:Beijing Qinyun Technology Development Co., Ltd.

Beijing Public Network Security No. 11040202500063