Skip to main content
Log in

Dynamic structure measurement for distributed software

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

With the advent of network technologies and the ultra-fast increasing of computing ability, the distributed architecture has become a necessity for the majority of software systems. However, it is difficult for current architecture measurements to evaluate distributed systems, such as cohesion and coupling. Most current methods focus on the relations among various classes or packages but barely consider the structure at component level, which has a serious impact on change impact analysis, fault diagnosis, or other maintenance activities. In this paper, we propose a dynamic structure measurement for distributed software. The intra-component and inter-component dependencies are introduced into a Calling Network model to further represent distributed software. More importantly, based on the Kieker monitoring framework, the measurement methods are proposed and implemented for distributed software. Two structural quality attributes cohesion factor of component (CHC) and coupling factor of component (CPC) are measured. Finally, case studies are conducted on two open-source distributed systems: RSS Reader Recipes and the distributed version of iBATIS JPetStore. By applying the proposed methods and comparing with the existing ones, the features of CHC and CPC can be assessed and observed for distributed software.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

Notes

  1. http://www.hpcs.cs.tsukuba.ac.jp/~tatebe/lecture/h23/dsys/dsd-tutorial.html#Basics

  2. http://networkx.github.io

  3. https://github.com/Netflix/recipes-rss

  4. https://scitools.com/

  5. https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance

  6. http://jmeter.apache.org

References

  • Al Dallal, J. (2010). Mathematical validation of object-oriented class cohesion metrics. International Journal of Computers, 4(2), 45–52.

    Google Scholar 

  • Allen, E.B., Khoshgoftaar, T.M., & Chen, Y. (2001). Measuring coupling and cohesion of software modules: an information-theory approach, International symposium on software metrics (p. 124).

    Google Scholar 

  • Arisholm, E., Briand, L.C., & Foyen, A. (2002). Dynamic coupling measurement for object-oriented software. IEEE Transactions on Software Engineering, 30(8), 33–42.

    Google Scholar 

  • Athanasopoulos, D., Zarras, A., Miskos, G., Issarny, V., & Vassiliadis, P. (2014). Cohesion-driven decomposition of service interfaces without access to source code. IEEE Transactions on Services Computing, 8(4), 1–1.

    Google Scholar 

  • Bavota, G., Dit, B., Oliveto, R., Penta, M.D., Poshyvanyk, D., & Lucia, A.D. (2013). An empirical study on the developers’ perception of software coupling, International conference on software engineering (pp. 692–701).

    Google Scholar 

  • Bieman, J.M., & Ott, L.M. (1994). Measuring functional cohesion. IEEE Transactions on Software Engineering, 20(8), 644–657.

    Article  Google Scholar 

  • Briand, L.C., Daly, J.W., & Wüst, J. (1998). A unified framework for cohesion measurement in object-oriented systems. Empirical Software Engineering, 3(1), 43–53.

    Article  Google Scholar 

  • Briand, L.C., Morasca, S., & Basili, V.R. (1999). Defining and validating measures for object-based high-level design. IEEE Transactions on Software Engineering, 25(5), 722–743.

    Article  Google Scholar 

  • Cai, H., & Thain, D. (2016). Distia: a cost-effective dynamic impact analysis for distributed programs, IEEE/ACM international conference on automated software engineering (pp. 344–355).

    Google Scholar 

  • Chidamber, S.R. (1991). Towards a metrics suite for object oriented design, Proceedings of the conference on OOPSLA’91, Sigplan Notices.

    Google Scholar 

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

    Article  Google Scholar 

  • Coulouris, G., Dollimore, G., Kindberg, J., & Blair, T. (2012). Distributed systems: concepts and design (5th edition).

  • Counsell, S., Swift, S., & Crampton, J. (2006). The interpretation and utility of three cohesion metrics for object-oriented design. ACM Transactions on Software Engineering and Methodology, 15(2), 123–149.

    Article  Google Scholar 

  • Dallal, J.A., & Briand, L.C. (2012). A precise method-method interaction-based cohesion metric for object-oriented classes. ACM Transactions on Software Engineering and Methodology, 21(2), 1–34.

    Article  Google Scholar 

  • Desouky, A.F., & Etzkorn, L.H. (2014). Object oriented cohesion metrics: a qualitative empirical analysis of runtime behavior, ACM southeast regional conference (pp. 1–6).

    Google Scholar 

  • Elish, M.O. (2010). Exploring the relationships between design metrics and package understandability: a case study, The 18th IEEE international conference on program comprehension, ICPC 2010, Braga, Minho, Portugal, June 30–July 2, 2010 (pp. 144–147).

    Google Scholar 

  • Geetika, R., & Singh, P. (2014). Empirical investigation into static and dynamic coupling metrics. ACM SIGSOFT Software Engineering Notes, 39(1), 1–8.

    Article  Google Scholar 

  • Gethers, M., & Poshyvanyk, D. (2010). Using relational topic models to capture coupling among classes in object-oriented software systems, 26th IEEE international conference on software maintenance (ICSM2010) (pp. 1–10).

    Google Scholar 

  • Gupta, V., & Chhabra, J.K. (2011). Dynamic cohesion measures for object-oriented software. Journal of Systems Architecture - Embedded Systems Design, 57(4), 452–462.

    Google Scholar 

  • Hoorn, A.V., Waller, J., & Hasselbring, W. (2012). Kieker: a framework for application performance monitoring and dynamic software analysis, Proceedings of the 3rd ACM/SPEC international conference on performance engineering (pp. 247–248).

    Google Scholar 

  • Indrajit Wijegunaratnec, M., & Fernandez, G. (1998). Distributed applications engineering. London: Springer.

    Book  Google Scholar 

  • Jin, W., Liu, T., Qu, Y., Chi, J., Cui, D., & Zheng, Q. (2016). Dynamic cohesion measurement for distributed system, The international workshop on specification, comprehension, testing, and debugging of concurrent programs (pp. 20–26).

    Google Scholar 

  • Lee, Y.S., & Liang, B.S. (1995). Measuring the coupling and cohesion of an object-oriented program based on information flow, Proceedings of international conference on software quality.

    Google Scholar 

  • Lin, Y., Peng, X., Cai, Y., Dig, D., Zheng, D., & Zhao, W. (2016). Interactive and guided architectural refactoring with search-based recommendation, Proceedings of the 2016 24th ACM SIGSOFT international symposium on foundations of software engineering (FSE).

    Google Scholar 

  • Marwede, N., Rohr, M., Hoorn, A., & Hasselbring, W. (2009). Automatic failure diagnosis support in distributed large-scale software systems based on timing behavior anomaly correlation, European conference on software maintenance and reengineering (pp. 47–58).

    Google Scholar 

  • Mathur, R., Keen, K.J., & Etzkorn, L.H. (2011). Towards a measure of object oriented runtime cohesion based on number of instance variable accesses, Southeast regional conference 2011, Kennesaw, GA, USA (pp. 255–257).

    Google Scholar 

  • Mitchell, Á., & Power, J.F. (2004). An empirical investigation into the dimensions of run-time coupling in Java programs. In Proceedings of the 3rd international symposium on principles and practice of programming in Java (pp. 9–14). Trinity College Dublin.

  • Nayrolles, M., Moha, N., & Valtchev, P. (2013). Improving soa antipatterns detection in service based systems by mining execution traces, Working conference on reverse engineering (WCRE) (pp. 321– 330).

    Google Scholar 

  • Nguyen, H., Shen, Z., Tan, Y., & Gu, X. (2013). Fchain: toward black-box online fault localization for cloud systems. In 2013 IEEE 33rd international conference on distributed computing systems (ICDCS) (Vol. 7973, pp. 21–30).

  • Perepletchikov, M., & Ryan, C. (2011). A controlled experiment for evaluating the impact of coupling on the maintainability of service-oriented software. IEEE Transactions on Software Engineering, 37(4), 449–465.

    Article  Google Scholar 

  • Perepletchikov, M., Ryan, C., Frampton, K., & Tari, Z. (2007). Coupling metrics for predicting maintainability in service-oriented designs, Australian software engineering conference (pp. 329–340).

    Google Scholar 

  • Poshyvanyk, D., & Marcus, A. (2006). The conceptual coupling metrics for object-oriented systems, IEEE international conference on software maintenance (pp. 469–478).

    Google Scholar 

  • Poshyvanyk, D., Marcus, A., Ferenc, R., & Gyimóthy, T. (2009). Using information retrieval based coupling measures for impact analysis. Empirical Software Engineering, 14(1), 5–32.

    Article  Google Scholar 

  • Qu, Y., Guan, X., Zheng, Q., Liu, T., Wang, L., Hou, Y., & Yang, Z. (2015a). Exploring community structure of software call graph and its applications in class cohesion measurement. Journal of Systems and Software, 108, 193–210.

    Article  Google Scholar 

  • Qu, Y., Guan, X., Zheng, Q., Liu, T., Zhou, J., & Li, J. (2015b). Calling network: a new method for modeling software runtime behaviors. ACM SIGSOFT Software Engineering Notes, 40(1), 1–8.

    Article  Google Scholar 

  • Sellers, B.H. (1995). Object-oriented metrics measures of complexity. Prentice-Hall Inc.

  • Stevens, W.P., Myers, G.J., & Constantive, L.L. (1974). Structured design. Ibm Systems Journal, 13(2), 115–139.

    Article  Google Scholar 

  • Tahir, A., & Macdonell, S.G. (2012). A systematic mapping study on dynamic metrics and software quality. In 28th IEEE international conference on software maintenance, 2012 Vol. 9, no. 3, pp. 326–335.

  • Tanenbaum, A.S., & Steen, M.V. (2002). Distributed systems: principles and paradigms (pp. 279–283). Tsinghua University Press.

  • Thones, J. (2015). Microservices. IEEE Software, 1, 116–116.

    Article  Google Scholar 

  • Tian, Z., Liu, T., Zheng, Q., Zhuang, E., Fan, M., & Yang, Z. (2017). Reviving sequential program birthmarking for multithreaded software plagiarism detection. IEEE Transactions on Software Engineering. http://ieeexplore.ieee.org/abstract/document/7888597/.

  • Wang, H., Liu, T., Guan, X., Shen, C., Zheng, Q., & Yang, Z. (2017). Dependence guided symbolic execution. IEEE Transactions on Software Engineering, 43(3), 252–271.

    Article  Google Scholar 

  • Yacoub, S.M., Ammar, H.H., & Robinson, T. (1999). Dynamic metrics for object oriented designs, Proceedings of the 6th international software metrics symposium, 1999 (pp. 50–50).

    Google Scholar 

  • Ying, A.T.T., Murphy, G.C., Ng, R., & Chu-Carroll, M.C. (2004). Predicting source code changes by mining change history. IEEE Transactions on Software Engineering, 30(9), 574–586.

    Article  Google Scholar 

  • Zhou, Y., Lu, J., & Xu, H.L.B. (2004). A comparative study of graph theory-based class cohesion measures. ACM SIGSOFT Software Engineering Notes, 29 (2), 13–13.

    Article  Google Scholar 

Download references

Acknowledgements

This work was supported by the National Natural Science Foundation of China (91218301, U1301254, 91418205, 61472318, 61428206, 61532015, 61602369), Fok Ying-Tong Education Foundation (151067), Key Project of the National Research Program of China (2013BAK09B01), Ministry of Education Innovation Research Team (IRT13035), and the Fundamental Research Funds for the Central Universities.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Wuxia Jin.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Jin, W., Liu, T., Qu, Y. et al. Dynamic structure measurement for distributed software. Software Qual J 26, 1119–1145 (2018). https://doi.org/10.1007/s11219-017-9369-3

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-017-9369-3

Keywords

Navigation