Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Dynamic structure measurement for distributed software

Published: 01 September 2018 Publication History

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.

References

[1]
Al Dallal, J. (2010). Mathematical validation of object-oriented class cohesion metrics. International Journal of Computers, 4(2), 45-52.
[2]
Allen, E.B., Khoshgoftaar, T.M., & Chen, Y. (2001). Measuring coupling and cohesion of software modules: an information-theory approach. In International symposium on software metrics (p. 124).
[3]
Arisholm, E., Briand, L.C., & Foyen, A. (2002). Dynamic coupling measurement for object-oriented software. IEEE Transactions on Software Engineering, 30(8), 33-42.
[4]
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.
[5]
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. In International conference on software engineering (pp. 692-701).
[6]
Bieman, J.M., & Ott, L.M. (1994). Measuring functional cohesion. IEEE Transactions on Software Engineering, 20(8), 644-657.
[7]
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.
[8]
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.
[9]
Cai, H., & Thain, D. (2016). Distia: a cost-effective dynamic impact analysis for distributed programs. In IEEE/ACM international conference on automated software engineering (pp. 344-355).
[10]
Chidamber, S.R. (1991). Towards a metrics suite for object oriented design. In Proceedings of the conference on OOPSLA'91, Sigplan Notices.
[11]
Chidamber, S.R., & Kemerer, C.F. (1994). A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6), 476-493.
[12]
Coulouris, G., Dollimore, G., Kindberg, J., & Blair, T. (2012). Distributed systems: concepts and design (5th edition).
[13]
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.
[14]
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.
[15]
Desouky, A.F., & Etzkorn, L.H. (2014). Object oriented cohesion metrics: a qualitative empirical analysis of runtime behavior. In ACM southeast regional conference (pp. 1-6).
[16]
Elish, M.O. (2010). Exploring the relationships between design metrics and package understandability: a case study. In The 18th IEEE international conference on program comprehension, ICPC 2010, Braga, Minho, Portugal, June 30-July 2, 2010 (pp. 144-147).
[17]
Geetika, R., & Singh, P. (2014). Empirical investigation into static and dynamic coupling metrics. ACM SIGSOFT Software Engineering Notes, 39(1), 1-8.
[18]
Gethers, M., & Poshyvanyk, D. (2010). Using relational topic models to capture coupling among classes in object-oriented software systems. In 26th IEEE international conference on software maintenance (ICSM2010) (pp. 1-10).
[19]
Gupta, V., & Chhabra, J.K. (2011). Dynamic cohesion measures for object-oriented software. Journal of Systems Architecture - Embedded Systems Design, 57(4), 452-462.
[20]
Hoorn, A.V., Waller, J., & Hasselbring, W. (2012). Kieker: a framework for application performance monitoring and dynamic software analysis. In Proceedings of the 3rd ACM/SPEC international conference on performance engineering (pp. 247-248).
[21]
Indrajit Wijegunaratnec, M., & Fernandez, G. (1998). Distributed applications engineering. London: Springer.
[22]
Jin, W., Liu, T., Qu, Y., Chi, J., Cui, D., & Zheng, Q. (2016). Dynamic cohesion measurement for distributed system. In The international workshop on specification, comprehension, testing, and debugging of concurrent programs (pp. 20-26).
[23]
Lee, Y.S., & Liang, B.S. (1995). Measuring the coupling and cohesion of an object-oriented program based on information flow. In Proceedings of international conference on software quality.
[24]
Lin, Y., Peng, X., Cai, Y., Dig, D., Zheng, D., & Zhao, W. (2016). Interactive and guided architectural refactoring with search-based recommendation. In Proceedings of the 2016 24th ACM SIGSOFT international symposium on foundations of software engineering (FSE).
[25]
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. In European conference on software maintenance and reengineering (pp. 47-58).
[26]
Mathur, R., Keen, K.J., & Etzkorn, L.H. (2011). Towards a measure of object oriented runtime cohesion based on number of instance variable accesses. In Southeast regional conference 2011, Kennesaw, GA, USA (pp. 255-257).
[27]
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.
[28]
Nayrolles, M., Moha, N., & Valtchev, P. (2013). Improving soa antipatterns detection in service based systems by mining execution traces. In Working conference on reverse engineering (WCRE) (pp. 321-330).
[29]
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).
[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.
[31]
Perepletchikov, M., Ryan, C., Frampton, K., & Tari, Z. (2007). Coupling metrics for predicting maintainability in service-oriented designs. In Australian software engineering conference (pp. 329-340).
[32]
Poshyvanyk, D., & Marcus, A. (2006). The conceptual coupling metrics for object-oriented systems. In IEEE international conference on software maintenance (pp. 469-478).
[33]
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.
[34]
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.
[35]
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.
[36]
Sellers, B.H. (1995). Object-oriented metrics measures of complexity. Prentice-Hall Inc.
[37]
Stevens, W.P., Myers, G.J., & Constantive, L.L. (1974). Structured design. Ibm Systems Journal, 13(2), 115-139.
[38]
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.
[39]
Tanenbaum, A.S., & Steen, M.V. (2002). Distributed systems: principles and paradigms (pp. 279-283). Tsinghua University Press.
[40]
Thones, J. (2015). Microservices. IEEE Software, 1, 116-116.
[41]
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/.
[42]
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.
[43]
Yacoub, S.M., Ammar, H.H., & Robinson, T. (1999). Dynamic metrics for object oriented designs. In Proceedings of the 6th international software metrics symposium, 1999 (pp. 50-50).
[44]
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.
[45]
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.

Cited By

View all
  • (2023)Evaluating the Impact of Possible Dependencies on Architecture-Level MaintainabilityIEEE Transactions on Software Engineering10.1109/TSE.2022.317128849:3(1064-1085)Online publication date: 1-Mar-2023
  • (2020)Exploring the architectural impact of possible dependencies in Python softwareProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3324884.3416619(758-770)Online publication date: 21-Dec-2020
  • (2019)ENREProceedings of the 41st International Conference on Software Engineering: Companion Proceedings10.1109/ICSE-Companion.2019.00040(67-70)Online publication date: 25-May-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Software Quality Journal
Software Quality Journal  Volume 26, Issue 3
September 2018
326 pages

Publisher

Kluwer Academic Publishers

United States

Publication History

Published: 01 September 2018

Author Tags

  1. Calling network
  2. Distributed software
  3. Dynamic metric
  4. Structure measurement

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Evaluating the Impact of Possible Dependencies on Architecture-Level MaintainabilityIEEE Transactions on Software Engineering10.1109/TSE.2022.317128849:3(1064-1085)Online publication date: 1-Mar-2023
  • (2020)Exploring the architectural impact of possible dependencies in Python softwareProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3324884.3416619(758-770)Online publication date: 21-Dec-2020
  • (2019)ENREProceedings of the 41st International Conference on Software Engineering: Companion Proceedings10.1109/ICSE-Companion.2019.00040(67-70)Online publication date: 25-May-2019
  • (2019)Measuring interprocess communications in distributed systemsProceedings of the 27th International Conference on Program Comprehension10.1109/ICPC.2019.00051(323-334)Online publication date: 25-May-2019

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media