Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Analyzing maintainability and reliability of object-oriented software using weighted complex network

Published: 01 December 2015 Publication History

Abstract

A method to measure the weights of nodes and edges of software-based complex network.Forty open-source software systems were chosen to evaluate the proposed technique.Common statistical patterns from the software systems can be identified easily.When compared based on maintenance efforts, their patterns are more distinctive.The proposed method allows software maintainers to identify fault prone classes. Modeling software systems using complex networks can be an effective technique for analyzing the complexity of software systems. To enhance the technique, the structure of a complex network can be extended by assigning a weight to the edges of the complex network to denote the strength of communicational cohesion between a pair of related software components. This paper proposes an approach to represent an object-oriented software system using a weighted complex network in order to capture its structural characteristics, with respect to its maintainability and reliability. Nodes and edges are modeled based on the complexities of classes and their dependencies. Graph theory metrics are applied onto the transformed network with the purpose to evaluate the software system. Comparative analysis is performed using 40 object-oriented software systems, with different levels of maintenance effort. We found that common statistical patterns from the software systems can be identified easily. It is when these software systems are grouped and compared based on their levels of maintenance effort that their statistical patterns are more distinguishable to represent some common behavior and structural complexity of object-oriented software. The evaluations indicate that the proposed approach is capable of identifying software components that violate common software design principles.

References

[1]
F.B. Abreu, R. Carapua, Object-oriented software engineering: measuring and controlling the development process, in: Proceedings of the Fourth International Conference on Software Quality, 1994.
[2]
S. Aier, How clustering enterprise architectures helps to design service oriented architectures, in: IEEE International Conference on Services Computing, 2006. SCC '06, 2006, pp. 269-272.
[3]
S. Aier, M. Schnherr, Model driven service domain analysis, in: Service-oriented Computing ICSOC 2006, Springer, Berlin / Heidelberg, 2007, pp. 190-200.
[4]
L.A.N. Amaral, A. Scala, M. Barthlmy, H.E. Stanley, Classes of small-world networks, Proc. Natl. Acad. Sci., 97 (2000) 11149-11152.
[5]
N. Anquetil, T.C. Lethbridge, Experiments with clustering as a software remodularization method, in: Proceedings of the Sixth Working Conference on Reverse Engineering 1999, 1999, pp. 235-255.
[6]
J. Bansiya, C.G. Davis, A hierarchical model for object-oriented design quality assessment, IEEE Trans. Softw. Eng., 28 (2002) 4-17.
[7]
A.-L. Barabsi, R. Albert, Emergence of scaling in random networks, Science, 286 (1999) 509-512.
[8]
A.-L. Barabsi, R. Albert, H. Jeong, Scale-free characteristics of random networks: the topology of the world-wide web, Phys. A: Stat. Mech. Appl., 281 (2000) 69-77.
[9]
V.R. Basili, L.C. Briand, W.L. Melo, A validation of object-oriented design metrics as quality indicators, IEEE Trans. Softw. Eng., 22 (1996) 751-761.
[10]
G. Baxter, M. Frean, J. Noble, M. Rickerby, H. Smith, M. Visser, H. Melton, E. Tempero, Understanding the shape of Java software, SIGPLAN Not., 41 (2006) 397-412.
[11]
W. Beiyang, L. Jinhu, Modelling complex software systems via weighted networks, in: 10th World Congress on Intelligent Control and Automation (WCICA), 2012, 2012, pp. 3533-3537.
[12]
A.B. Binkley, S.R. Schach, Validation of the coupling dependency metric as a predictor of run-time failures and maintenance measures, in: Proceedings of the 20th International Conference on Software Engineering, IEEE Computer Society, Kyoto, Japan, 1998, pp. 452-455.
[13]
C. Bird, D. Pattison, R. D'Souza, V. Filkov, P. Devanbu, Latent social structure in open source projects, in: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering, ACM, Atlanta, Georgia, 2008, pp. 24-35.
[14]
K.A. Bollen, Overall fit in covariance structure models: two types of sample size effects, Psychol. Bull., 107 (1990) 256.
[15]
L.C. Briand, J. Wst, S.V. Ikonomovski, H. Lounis, Investigating quality factors in object-oriented designs: an industrial case study, in: Proceedings of the 21st International Conference on Software Engineering, ACM, Los Angeles, California, USA, 1999, pp. 345-354.
[16]
L.C. Briand, Y. Labiche, W. Yihong, Revisiting strategies for ordering class integration testing in the presence of dependency cycles, in: Proceedings of the 12th International Symposium on Software Reliability Engineering, 2001. ISSRE 2001, 2001, pp. 287-296.
[17]
L.C. Briand, Y. Labiche, W. Yihong, An investigation of graph-based class integration test order strategies, IEEE Trans. Softw. Eng., 29 (2003) 594-607.
[18]
E. Bullmore, O. Sporns, Complex brain networks: graph theoretical analysis of structural and functional systems, Nat. Rev. Neurosci., 10 (2009) 186-198.
[19]
A. Chatzigeorgiou, G. Melas, Trends in object-oriented software evolution: investigating network properties, in: 34th International Conference on Software Engineering (ICSE), 2012, 2012, pp. 1309-1312.
[20]
S.R. Chidamber, D.P. Darcy, C.F. Kemerer, Managerial use of metrics for object-oriented software: an exploratory analysis, IEEE Trans. Softw. Eng., 24 (1998) 629-639.
[21]
S.R. Chidamber, C.F. Kemerer, A metrics suite for object oriented design, IEEE Trans. Softw. Eng., 20 (1994) 476-493.
[22]
C.Y. Chong, S.P. Lee, T.C. Ling, Efficient software clustering technique using an adaptive and preventive dendrogram cutting approach, Inf. Softw. Technol., 55 (2013) 1994-2012.
[23]
R.L. Cilibrasi, P.M.B. Vitanyi, The Google similarity distance, IEEE Trans. Knowl. Data Eng., 19 (2007) 370-383.
[24]
G. Concas, M. Marchesi, A. Murgia, R. Tonelli, I. Turnu, On the distribution of bugs in the eclipse system, IEEE Trans. Softw. Eng., 37 (2011) 872-877.
[25]
G. Concas, M. Marchesi, S. Pinna, N. Serra, Power-laws in a large object-oriented software system, IEEE Trans. Softw. Eng., 33 (2007) 687-708.
[26]
B. Curtis, J. Sappidi, A. Szynkarski, Estimating the principal of an application's technical debt, IEEE Softw., 29 (2012) 34-42.
[27]
J. Davey, E. Burd, Evaluating the suitability of data clustering for software remodularisation, in: Proceedings of the Seventh Working Conference on Reverse Engineering, 2000, 2000, pp. 268-276.
[28]
K. Dazhou, X. Baowen, L. Jianjiang, W.C. Chu, A complexity measure for ontology based on UML, in: Proceedings of the 10th IEEE International Workshop on Future Trends of Distributed Computing Systems, 2004, FTDCS 2004, 2004, pp. 222-228.
[29]
K. El Emam, S. Benlarbi, N. Goel, S.N. Rai, The confounding effect of class size on the validity of object-oriented metrics, IEEE Trans. Softw. Eng., 27 (2001) 630-650.
[30]
K.A.M. Ferreira, M.A.S. Bigonha, R.S. Bigonha, L.F.O. Mendes, H.C. Almeida, Identifying thresholds for object-oriented software metrics, J. Syst. Softw., 85 (2012) 244-257.
[31]
M. Genero, M. Piattini, E. Manso, G. Cantone, Building UML class diagram maintainability prediction models based on early metrics, in: Proceedings of the Ninth International Software Metrics Symposium, 2003, 2003, pp. 263-275.
[32]
M. Grand, Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML, John Wiley & Sons, 2003.
[33]
X. Guoai, G. Yang, L. Fanfan, C. Aiguo, Z. Miao, Statistical analysis of software coupling measurement based on complex networks, in: International Seminar on Future Information Technology and Management Engineering, 2008. FITME '08., 2008, pp. 577-581.
[34]
T. Gyimothy, R. Ferenc, I. Siket, Empirical validation of object-oriented metrics on open source software for fault prediction, IEEE Trans. Softw. Eng., 31 (2005) 897-910.
[35]
J. Hamilton, S. Danicic, Dependence communities in source code, in: 28th IEEE International Conference on Software Maintenance (ICSM), 2012, 2012, pp. 579-582.
[36]
I. Heitlager, T. Kuipers, J. Visser, A practical model for measuring maintainability, in: Sixth International Conference on the Quality of Information and Communications Technology, 2007. QUATIC 2007, 2007, pp. 30-39.
[37]
B. Henderson-Sellers, L.L. Constantine, I.M. Graham, Coupling and cohesion (towards a valid metrics suite for object-oriented analysis and design), Object Oriented Syst., 3 (1996) 143-158.
[38]
M. Hitz, B. Montazeri, Measuring coupling and cohesion in object-oriented systems, in: Proceedings of the International Symposium on Applied Corporate Computing, 1995, pp. 75-76.
[39]
M. Hneif, S.P. Lee, Using guidelines to improve quality in software nonfunctional attributes, IEEE Softw., 28 (2011) 72-77.
[40]
J.R.M. Hosking, J.R. Wallis, Parameter and quantile estimation for the generalized Pareto distribution, Technometrics, 29 (1987) 339-349.
[41]
H. Hu, J. Fang, Z. Lu, F. Zhao, Z. Qin, Rank-directed layout of UML class diagrams, in: Proceedings of the First International Workshop on Software Mining, ACM, Beijing, China, 2012, pp. 25-31.
[42]
D. Hyland-Wood, D. Carrington, S. Kaplan, Scale-free nature of java software package, class and method collaboration graphs, in: Proceedings of the Fifth International Symposium on Empirical Software Engineering, 2006.
[43]
R.J. Hyndman, Y. Fan, Sample quantiles in statistical packages, Am. Stat., 50 (1996) 361-365.
[44]
M. Ichii, M. Matsushita, K. Inoue, An exploration of power-law in use-relation of Java software systems, in: 19th Australian Conference on Software Engineering, 2008. ASWEC 2008, 2008, pp. 422-431.
[45]
H.F. Inman, Karl Pearson and R.A. Fisher on statistical tests: a 1935 exchange from nature, Am. Stat., 48 (1994) 2-11.
[46]
C. Izurieta, I. Griffith, D. Reimanis, R. Luhr, On the uncertainty of technical debt measurements, in: 2013 International Conference on Information Science and Applications (ICISA), 2013, pp. 1-4.
[47]
S. Jenkins, S.R. Kirk, Software architecture graphs as complex networks: a novel partitioning scheme to measure stability and evolution, Inf. Sci., 177 (2007) 2587-2601.
[48]
G. Karsai, M. Maroti, A. Ledeczi, J. Gray, J. Sztipanovits, Composition and cloning in modeling and meta-modeling, IEEE Trans. Control Syst. Technol., 12 (2004) 263-278.
[49]
R. Kollmann, P. Selonen, E. Stroulia, T. Systa, A. Zundorf, A study on the current state of the art in tool-supported UML-based static reverse engineering, in: Proceedings of the Ninth Working Conference on Reverse Engineering, 2002, 2002, pp. 22-32.
[50]
LaBelle, N., Wallingford, E., 2004. Inter-package dependency networks in open-source software. arXiv preprint cs/0411096.
[51]
J. Letouzey, M. Ilkiewicz, Managing technical debt with the SQALE method, IEEE Softw., 29 (2012) 44-51.
[52]
W. Li, S. Henry, Object-oriented metrics that predict maintainability, J. Syst. Softw., 23 (1993) 111-122.
[53]
E. Lim, N. Taksande, C. Seaman, A balancing act: what software practitioners have to say about technical debt, IEEE Softw., 29 (2012) 22-27.
[54]
K.N. Loo, S.P. Lee, T.K. Chiew, UML extension for defining the interaction variants of design patterns, IEEE Softw., 29 (2012) 64-72.
[55]
P. Louridas, D. Spinellis, V. Vlachos, Power laws in software, ACM Trans. Softw. Eng. Methodol., 18 (2008) 1-26.
[56]
Y.-T. Ma, K.-Q. He, B. Li, J. Liu, X.-Y. Zhou, A hybrid set of complexity metrics for large-scale object-oriented software systems, J. Comput. Sci. Technol., 25 (2010) 1184-1201.
[57]
R. Martin, OO Design Quality Metrics, an Analysis of Dependencies, 1994.
[58]
MathWave, EasyFit. 2014. http://www.mathwave.com/easyfit-distribution-fitting.html.
[59]
T.J. McCabe, A complexity measure, IEEE Trans. Softw. Eng., SE-2 (1976) 308-320.
[60]
Mcsweeney, P.J., 2008. Random Network Plugin. https://sites.google.com/site/randomnetworkplugin/Home.
[61]
T. Mei-Huei, K. Ming-Hung, C. Mei-Hwa, An empirical study on object-oriented metrics, in: Proceedings of the Sixth International Software Metrics Symposium, 1999, 1999, pp. 242-249.
[62]
B. Meyer, Object-oriented Software Construction, Prentice Hall PTR, 2000.
[63]
A. Milanova, Precise identification of composition relationships for UML class diagrams, ACM, Long Beach, CA, USA, 2005.
[64]
A. Milanova, Composition inference for UML class diagrams, Autom. Softw. Eng., 14 (2007) 179-213.
[65]
C.R. Myers, Software systems as complex networks: structure, function, and evolvability of software collaboration graphs, Phys. Rev. E, 68 (2003).
[66]
M. Newman, The structure and function of complex networks, SIAM Rev., 45 (2003) 167-256.
[67]
M.E.J. Newman, Modularity and community structure in networks, Proc. Natl. Acad. Sci., 103 (2006) 8577-8582.
[68]
H.M. Olague, L.H. Etzkorn, S. Gholston, S. Quattlebaum, Empirical validation of three software metrics suites to predict fault-proneness of object-oriented classes developed using highly iterative or Agile software development processes, IEEE Trans. Softw. Eng., 33 (2007) 402-419.
[69]
Oracle, 2015. Java Platform SE 7 Documentation. Available online: http://docs.oracle.com/javase/7/docs/api/.
[70]
T. Ovatman, T. Weigert, F. Buzluca, Exploring implicit parallelism in class diagrams, J. Syst. Softw., 84 (2011) 821-834.
[71]
T.D. Oyetoyan, J.R. Falleri, J. Dietrich, K. Jezek, Circular dependencies and change-proneness: an empirical study, in: IEEE 22nd International Conference on Software Analysis, Evolution and Reengineering (SANER), 2015, 2015, pp. 241-250.
[72]
T.Y. Pang, S. Maslov, Universal distribution of component frequencies in biological and technological systems, Proc. Natl. Acad. Sci., 110 (2013) 6235-6239.
[73]
R.M. Parizi, S.P. Lee, M. Dabbagh, Achievements and challenges in state-of-the-art software traceability between test and code artifacts, IEEE Trans. Reliab., 63 (2014) 913-926.
[74]
I. Porres, M. Alanen, A generic deep copy algorithm for MOF-based models, 2003.
[75]
A. Potanin, J. Noble, M. Frean, R. Biddle, Scale-free geometry in OO programs, ACM Commun., 48 (2005) 99-103.
[76]
S.R. Ragab, H.H. Ammar, Object oriented design metrics and tools a survey, in: The Seventh International Conference on Informatics and Systems (INFOS), 2010, 2010, pp. 1-7.
[77]
G. Rozenberg, H. Ehrig, Handbook of Graph Grammars and Computing by Graph Transformation, World scientific, Singapore, 1999.
[78]
V. Satuluri, S. Parthasarathy, Symmetrizations for clustering directed graphs, in: Proceedings of the 14th International Conference on Extending Database Technology, ACM, 2011, pp. 343-354.
[79]
P. Shannon, A. Markiel, O. Ozier, N.S. Baliga, J.T. Wang, D. Ramage, N. Amin, B. Schwikowski, T. Ideker, Cytoscape: a software environment for integrated models of biomolecular interaction networks, Genome Res., 13 (2003) 2498-2504.
[80]
S. Shiwen, X. Chengyi, C. Zhenhai, S. Junqing, W. Li, On structural properties of large-scale software systems: from the perspective of complex networks, in: Sixth International Conference on Fuzzy Systems and Knowledge Discovery, 2009FSKD '09, 2009, pp. 309-313.
[81]
H. Simon, The architecture of complexity, Springer, US A, 1991.
[82]
N. Smirnov, Table for Estimating the Goodness of Fit of Empirical Distributions, 1948.
[83]
SonarQube, SonarQube 2014. http://www.sonarqube.org/.
[84]
C.M. Stein, Estimation of the mean of a multivariate normal distribution, Ann. Stat., 9 (1981) 1135-1151.
[85]
C. Sterling, Managing Software Debt: Building for Inevitable Change, Addison-Wesley Professional, 2010.
[86]
W. Stevens, G. Myers, L. Constantine, Structured design, in: Classics in Software Engineering, Yourdon Press, 1979, pp. 205-232.
[87]
R. Subramanyam, M.S. Krishnan, Empirical analysis of CK metrics for object-oriented design complexity: implications for software defects, IEEE Trans. Softw. Eng., 29 (2003) 297-310.
[88]
J.S. Tanaka, "How big is big enough?": sample size and goodness of fit in structural equation models with latent variables, Child Dev., 58 (1987) 134-146.
[89]
C. Taube-Schock, R. Walker, I. Witten, Can we avoid high coupling?, in: ECOOP 2011Object-oriented Programming, Springer, Berlin / Heidelberg, 2011, pp. 204-228.
[90]
E. Tempero, C. Anslow, J. Dietrich, T. Han, L. Jing, M. Lumpe, H. Melton, J. Noble, The Qualitas Corpus: a curated collection of Java code for empirical studies, in: 17th Asia Pacific Software Engineering Conference (APSEC), 2010, 2010, pp. 336-345.
[91]
I. Turnu, G. Concas, M. Marchesi, R. Tonelli, The fractal dimension of software networks as a global quality metric, Inf. Sci., 245 (2013) 290-303.
[92]
S. Valverde, R.F. Cancho, R.V. Sole, Scale-free networks from optimal design, EPL (Europhys. Lett.), 60 (2002) 512.
[93]
Valverde, S., Sol, R.V., 2003. Hierarchical small worlds in software architecture. arXiv preprint cond-mat/0307278.
[94]
L. Wenhui, Z. Kuanjiu, F. Jinjin, C. Zongzheng, Research on software cascading failures, in: International Conference on Multimedia Information Networking and Security (MINES), 2010, 2010, pp. 310-314.
[95]
D.F. Williamson, R.A. Parker, J.S. Kendrick, The box plot: a simple visual method to interpret data, Ann. Intern. Med., 110 (1989) 916-921.
[96]
G. Yang, X. Guoai, Y. Yixian, N. Xinxin, G. Shize, Empirical analysis of software coupling networks in object-oriented software systems, in: IEEE International Conference on Software Engineering and Service Sciences (ICSESS), 2010, 2010, pp. 178-181.
[97]
G. Yang, L. Jia, S. Shuai, X. Guoai, C. Gong, Weighted networks of object-oriented software systems: the distribution of vertex strength and correlation, in: Proceedings of the 2012 International Conference on Communication, Electronics and Automation Engineering, Springer, Berlin / Heidelberg, 2013, pp. 1185-1190.
[98]
G. Yann-Gal, A reverse engineering tool for precise class diagrams, in: Proceedings of the 2004 Conference of the Centre for Advanced Studies on Collaborative research, IBM Press, Markham, Ontario, Canada, 2004, pp. 28-41.
[99]
J. Yoon, A. Blumer, K. Lee, An algorithm for modularity analysis of directed and weighted biological networks based on edge-betweenness centrality, Bioinformatics, 22 (2006) 3106-3108.
[100]
S. Zamani, S.P. Lee, R. Shokripour, J. Anvik, A noun-based approach to feature location using time-aware term-weighting, Inf. Softw. Technol., 56 (2014) 991-1011.
[101]
T. Zimmermann, N. Nagappan, Predicting defects using network analysis on dependency graphs, in: Proceedings of the 30th International Conference on Software Engineering, ACM, 2008, pp. 531-540.

Cited By

View all
  • (2024)Evolution-Aware Constraint Derivation Approach for Software RemodularizationACM Transactions on Software Engineering and Methodology10.1145/367696033:8(1-43)Online publication date: 8-Jul-2024
  • (2024)Does using Bazel help speed up continuous integration builds?Empirical Software Engineering10.1007/s10664-024-10497-x29:5Online publication date: 19-Jul-2024
  • (2021)A New Model of Software Network for Object-Oriented Software System2021 IEEE International Conference on Systems, Man, and Cybernetics (SMC)10.1109/SMC52423.2021.9659214(516-522)Online publication date: 17-Oct-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Journal of Systems and Software
Journal of Systems and Software  Volume 110, Issue C
December 2015
279 pages

Publisher

Elsevier Science Inc.

United States

Publication History

Published: 01 December 2015

Author Tags

  1. Complex network
  2. Software complexity
  3. Software maintenance

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 24 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Evolution-Aware Constraint Derivation Approach for Software RemodularizationACM Transactions on Software Engineering and Methodology10.1145/367696033:8(1-43)Online publication date: 8-Jul-2024
  • (2024)Does using Bazel help speed up continuous integration builds?Empirical Software Engineering10.1007/s10664-024-10497-x29:5Online publication date: 19-Jul-2024
  • (2021)A New Model of Software Network for Object-Oriented Software System2021 IEEE International Conference on Systems, Man, and Cybernetics (SMC)10.1109/SMC52423.2021.9659214(516-522)Online publication date: 17-Oct-2021
  • (2019)Mining the Key Nodes from Software Network Based on Fault Accumulation and PropagationSecurity and Communication Networks10.1155/2019/71404802019Online publication date: 7-Mar-2019
  • (2019)Novel algorithm for software planning & developmentProceedings of the Third International Conference on Advanced Informatics for Computing Research10.1145/3339311.3339315(1-7)Online publication date: 15-Jun-2019
  • (2019)Measuring software stability based on complex networks in softwareCluster Computing10.1007/s10586-017-1353-y22:2(2589-2598)Online publication date: 1-Mar-2019
  • (2018)An empirical approach for complexity reduction and fault prediction for software quality attributeInternational Journal of Business Intelligence and Data Mining10.5555/3192182.319219413:1-3(177-187)Online publication date: 15-Dec-2018
  • (2018)Identifying key classes in object-oriented software using generalized k-core decompositionFuture Generation Computer Systems10.1016/j.future.2017.10.00681:C(188-202)Online publication date: 1-Apr-2018

View Options

View options

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media