Abstract
Complexity, cohesion and coupling have been recognized as prominent indicators of software quality. One characterization of software complexity is the existence of dependency relationships. Moreover, the degree of dependency reflects the cohesion and coupling between software elements. Dependencies in the design and implementation phase have been proven to be important predictors of software bugs. We empirically investigated how requirements dependencies correlate with and predict software integration bugs, which can provide early estimates regarding software quality and thus facilitate decision making early in the software lifecycle. We conducted network analysis on the requirements dependency networks of three commercial software projects. Significant correlation is observed between most of our network measures and the number of bugs. Furthermore, many network measures demonstrate significantly greater values for higher severity (or a higher fixing workload). Afterward, we built bug prediction models using these network measures and found that bugs can be predicted with high accuracy and sensitivity, even in cross-project and cross-company contexts. We further identified the dependency type that contributes most to bug correlation, as well as the network measures that contribute more to bug prediction. These observations show that the requirements dependency network can be used as an early indicator and predictor of software integration bugs.
Similar content being viewed by others
Notes
Similarity rate between practitioner P1 and P2 is defined as \(\frac{{\;{\text{dependencies}}\;{\text{identified}}\;{\text{by}}\;P1\; \cap \;{\text{dependencies}}\;{\text{identified}}\;{\text{by}}\;P2}}{{\;{\text{dependencies}}\;{\text{identified}}\;{\text{by}}\;P1\; \cup \;{\text{dependencies}}\;{\text{identified}}\;{\text{by}}\;P2}}\).
The similarity rates of first step for Project B were, respectively, 0.80, 0.80 and 0.82, while similarity rates for Project C were, respectively, 0.76, 0.78 and 0.78.
The similarity rates of second step for Project B were, respectively, 0.94, 0.94 and 0.96, while similarity rates for Project C were, respectively, 0.86, 0.88 and 0.88.
References
Systems and software engineering—software life cycle processes. ISO/IEC 12207:2008
Al-Emran A, Pfahl D, Ruhe G (2010) Decision support for product release planning based on robustness analysis. In: Proceedings of 18th IEEE international requirements engineering conference (RE’2010). Sydney, Australia, pp 157–166
Allison PD (1999) Multiple regression: a primer. Pine Forge Press, Thousand Oaks
Baniassad E, Clarke S (2004) Finding aspects in requirements with theme/doc. In: Workshop on early aspects: aspect-oriented requirements engineering and architecture design workshop. Lancaster, UK, pp 1–8
Basili V, Shull F, Lanubile F (1999) Building knowledge through families of experiments. IEEE Trans Softw Eng 25(4):456–473
Bhattacharya P, Iliofotou M, Neamtiu I, Faloutsos M (2012) Graph-based analysis and prediction for software evolution. In: Proceedings of IEEE international conference on software engineering (ICSE’2012). Zurich, Switzerland, pp 419–429
Bird C, Pattison D, D’Souza R, Filkov V, Devanbu P (2008) Latent social structure in open source projects. In: Proceedings of 16th ACM SIGSOFT international symposium on foundations of software engineering (FSE’2008). Atlanta, Georgia, USA, pp 24–35
Borgatti SP, Everett MG, Freeman LC (2002) Ucinet for windows: software for social network analysis. Analytic Technologies, Harvard
Carlshamre P, Sandahl K, Lindvall M, Regnell B, Natt och Dag J (2001) An industrial survey of requirements interdependencies in software product release planning. In: Proceedings of 5th IEEE international symposium on requirements engineering (RE’2001). Cape Town, South Africa, pp 84–91
Cataldo M, Herbsleb JD (2011) Factors leading to integration failures in global feature-oriented development: an empirical analysis. In: Proceedings of IEEE international conference on software engineering (ICSE’2011). Waikiki, Honolulu, HI, USA, pp 161–170
Cataldo M, Mockus A, Roberts JA, Herbsleb JD (2009) Software dependencies, work dependencies and their impact on failures. IEEE Trans Softw Eng 35(6):864–878
Chen K, Zhao H, Zhang W, Mei H (2006) Identification of crosscutting requirements based on feature dependency. In: Proceedings of 14th IEEE international requirements engineering conference (RE’2006). Minneapolis, USA, pp 307–310
Chitchyan R, Rashid A (2006) Tracing requirements interdependency semantics. In: Workshop on early aspects: traceability of aspects in the early life cycle. Bonn, Germany
Cleland-Huang J, Settimi R, Duan C, Zou X (2005) Utilizing supporting evidence to improve dynamic requirements traceability. In: Proceedings of 13th IEEE international conference on requirements engineering (RE’2005). Paris, France, pp 135–144
Dahlstedt A, Persson A (2005) Requirements interdependencies: State of the art and future challenges. In: Aurum A, Wohlin C (eds) Engineering and managing software requirements. Springer, Heidelberg, pp 95–116
Duan C, Cleland-Huang J (2007) A clustering technique for early detection of dominant and recessive cross-cutting concerns. In: Proceedings of the early aspects at ICSE: workshops in aspect-oriented requirements engineering and architecture design. Minneapolis, USA
Fenton N, Neil M, Marsh W, Hearty P, Radlinski L, Krause P (2008) On the effectiveness of early life cycle defect prediction with bayesian nets. Empir Softw Eng 13:499–537
Fenton NF, Pfleeger SL (1998) Software metrics: a rigorous and practical approach. Brooks/Cole, CA
Fitzgerald C, Letier E, Finkelstein A (2012) Early failure prediction in feature request management systems: an extended study. Requir Eng 17:117–132
Giventer L (2007) Statistical analysis in public administration. Jones and Bartlett, Burlington
Hanneman RA, Riddle M (2005) Introduction to social network methods. University of California, Riverside
He L, Li J, Wang Q, Yang Y (2009) Predicting upgrade project defects based on enhancement requirements: an empirical study. In: Proceedings of international conference on software process (ICSP’2009). Vancouver, Canada, pp 268–279
Katasonov A, Sakkinen M (2006) Requirements quality control: a unifying framework. Requir Eng 11:42–57
Kobayashi K, Matsuo A, Inoue K, Hayase Y, Kamimura M, Yoshino T (2011) ImpactScale: quantifying change impact to predict faults in large software systems. In: Proceedings of 27th IEEE international conference on software maintenance (ICSM’2011). Williamsburg, USA, pp 43–52
Li C, Akker M, Brinkkemper S, Diepen G (2010) An integrated approach for requirement selection and scheduling in software release planning. Requir Eng 15:375–396
Li J, Zhu L, Jeffery R, Liu Y, Zhang H, Wang Q, Li M (2012) An initial evaluation of requirements dependency types in change propagation analysis. In: Proceedings of 16th international conference on evaluation and assessment in software engineering (EASE’2012). Ciudad Real, Spain, pp 62–71
Li Y (2010) Requirement change impact analysis model and research on related approaches. Phd thesis, Institute of Software Chinese Academy of Sciences, Beijing, China
Lim SL, Finkelstein A (2012) StakeRare: using social networks and collaborative filtering for large-scale requirements elicitation. IEEE Trans Softw Eng 38(3):707–735
Lim SL, Quercia D, Finkelstein A (2010) StakeNet: using social networks to analyse the stakeholders of large-scale software projects. In: Proceedings of IEEE international conference on software engineering (ICSE’2010). Cape Town, South Africa, pp 295–304
Madachy R, Boehm B (2008) Assessing quality processes with ODC COQUALMO. Lecture notes in computer science, making globally distributed software development a success story
Marczak S, Damian D (2011) How interaction between roles shapes the communication structure in requirements-driven collaboration. In: Proceedings of 19th IEEE international requirements engineering conference (RE’2011). Trento, Italy, pp 47–56
Marczak S, Damian D, Stege U, Schroter A (2008) Information brokers in requirement-dependency social networks. In: Proceedings of 16th IEEE international requirements engineering conference (RE’2008). Barcelona, Catalunya, Spain, pp 53–62
McGee S, Greer D (2012) Towards an understanding of the causes and effects of software requirements change: two case studies. Requir Eng 17:133–155
Milo R, Shen-Orr S, Itzkovitz S, Kashtan N, Chklovskii D, Alon U (2002) Network motifs: simple building blocks of complex networks. Science 298:824–827
Munson J, Khoshgoftaar T (1992) The detection of fault-prone programs. IEEE Trans Softw Eng 18:423–433
Nagappan N, Ball T (2007) Using software dependencies and churn metrics to predict field failures: An empirical case study. In: Proc. IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM’2007), pp. 364–373. Madrid, Spain
Navarro I, Leveson N, Lunqvist K (2010) Semantic decoupling: reducing the impact of requirement changes. Requir Eng 15:419–437
Nguyen THD, Adams B, Hassan AE (2010) Studying the impact of dependency network measures on software quality. In: Proceedings of 26th IEEE international conference on software maintenance (ICSM’2010). Timisoara, Romania, pp 1–10
Ott D (2012) Defects in natural language requirement specifications at Mercedes-Benz: an investigation using a combination of legacy data and expert opinion. In: Proceedings of 20th IEEE international requirements engineering conference (RE’2012). Chicago, Illinois, USA, pp 291–296
Park S, Maurer F, Eberlein A, Fung T (2010) Requirements attributes to predict requirements related defects. In: Proceedings of conference of the center for advanced studies on collaborative research (CASCON’2010). Toronto, Canada, pp 42–56
Pinzger M, Nagappan N, Murphy B (2008) Can developer-module networks predict failures? In: Proceedings of 16th ACM SIGSOFT international symposium on foundations of software engineering (FSE’2008). Atlanta, Georgia, USA, pp 2–12
Pohl K (1996) Process-centered requirements engineering. Wiley, Hoboken
Sellier D, Mannion M, Mansell JX (2008) Managing requirements inter-dependency for software product line derivation. Requir Eng 13:299–313
Subramanyam R, Krishnan MS (2003) Empirical analysis of CK metrics for object-oriented design complexity: implications for software defects. IEEE Trans Softw Eng 29:297–310
Turhan B (2012) On the dataset shift problem in software engineering prediction models. Empir Softw Eng 17:62–74
Walia G, Carver J (2009) A systematic literature review to identify and classify software requirement errors. Inf Softw Technol 51(7):1087–1109
Wang J, Li J, Wang Q, Yang D, Zhang H, Li M (2013) Can requirements dependency network be used as early indicator of software integration bugs? In: Proceedings of 21th IEEE international requirements engineering conference (RE’2013). Rio de Janeiro, Brazil, pp 185–194
Wang J, Li J, Wang Q, Zhang H, Wang H (2012) A simulation approach for impact analysis of requirement volatility considering dependency change. In: Proceedings of 18th international working conference on requirements engineering: foundation for software quality (REFSQ’2012). Essen, Germany, pp 59–76
Wolf T, Schroter A, Damian D, Nguyen T (2009) Predicting build failures using social network analysis on developer communication. In: Proceedings of IEEE international conference on software engineering (ICSE’2009). Vancouver, Canada, pp 1–11
Wolf T, Schroter A, Damian D, Panjer LD, Nguyen TH (2009) Mining task-based social networks to explore collaboration in software teams. IEEE Softw 26(1):58–66
Zhang H, Li J, Zhu L, Jeffery R, Liu Y, Wang Q, Li M (2014) Investigating dependencies in software requirements for change propagation analysis. Inf Softw Technol 56:40–53
Zhang W, Mei H, Zhao H (2006) Feature-driven requirement dependency analysis and high-level software design. Requir Eng 11:205–220
Zimmermann T, Nagappan N (2008) Predicting defects using network analysis on dependency graphs. In: Proceedings of IEEE international conference on software engineering (ICSE’2008). Leipzig, Germany, pp 531–540
Acknowledgments
This work is supported by the National Natural Science Foundation of China under Grant Nos. 91318301, 91218302 and 61432001.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Wang, J., Wang, Q. Analyzing and predicting software integration bugs using network analysis on requirements dependency network. Requirements Eng 21, 161–184 (2016). https://doi.org/10.1007/s00766-014-0215-x
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00766-014-0215-x