©2018 Mengmeng Zhu ALL RIGHTS RESERVED
Total Page:16
File Type:pdf, Size:1020Kb
©2018 Mengmeng Zhu ALL RIGHTS RESERVED SOFTWARE RELIABILITY MODELING AND ITS APPLICATIONS CONSIDERING FAULT DEPENDENCY AND ENVIRONMENTAL FACTORS by MENGMENG ZHU A dissertation submitted to the School of Graduate Studies Rutgers, The State University of New Jersey In partial fulfillment of the requirements For the degree of Doctor of Philosophy Graduate Program in Industrial and Systems Engineering Written under the direction of Hoang Pham And approved by New Brunswick, New Jersey OCTOBER 2018 ABSTRACT OF THE DISSERTATION SOFTWARE RELIABILITY MODELING AND ITS APPLICATIONS CONSIDERING FAULT DEPENDENCY AND ENVIRONMENTAL FACTORS By MENGMENG ZHU Dissertation Director: Hoang Pham The increasing dependence of our modern society on software systems has driven the development of software product to be more competitive and time-consuming. At the same time, large-scale software development is still considered as a complex, effort consuming, and expensive activity, given the influence of the transitions in software development, which are the adoption of software product lines, software development globalization, and the adoption of software ecosystems. Hence, the consequence of software failures becomes costly, and even dangerous. Therefore, in this dissertation, we have not only integrated software practitioners’ opinions from a wide variety of industries, but also developed software reliability models by addressing different practical problems observed in software development practices. We first revisit 32 environmental factors affecting software reliability in single-release software development and compare with the findings 15 years ago [27, 28]. Later, we investigate the environmental factors affecting software reliability in multi-release software development and compare the impact of environmental factors between the ii development of multi-release and single-release software to provide a comprehensive analysis for software development practices. Software faults are classified into two groups, Type I (independent) faults and Type II (dependent) faults. Two phases software debugging process are introduced according to different types of faults. Firstly, a one-phase software reliability model is proposed with the assumption that there is only Type II faults exist in the program given Type I faults have been removed in the preliminary testing phase. Later, a two-phase software reliability model is developed in consideration of Type I and Type II faults, fault dependency, and imperfect fault removal. Given software multiple releases are commonly adopted in industry, a software reliability model for multi-release software product is proposed. The remaining faults from previous release, and the newly introduced faults, generated from the newly added features, are both considered into the model development. In addition, the detection of the new fault in the development of the next release depends on the remaining faults from previous release and the newly introduced faults from the newly added features. Finally, given the environment factors studies in the early stage of this dissertation, the single-environmental-factor software reliability model under the Martingale framework in consideration of environmental factor, Percentage of Reused Modules, and the randomness caused by this environmental factor is developed. Later, we propose a generalized multiple- environmental-factors model framework incorporating multiple environmental factors and iii the randomness caused by these environmental factors. We further propose two specific multiple-environmental-factors models considering two environmental factors, gamma- distributed Percentage of Reused Modules, and gamma-distributed or beta-distributed Frequency of Program Specification Change. In sum, this dissertation firstly investigates 32 environmental factors affecting software reliability in the development of single-release and multiple-release software and further compares the findings of these two studies regarding environmental factors and development phase. Software reliability models are developed in each chapter in consideration of different problems/applications in practices, such as software fault dependency, imperfect fault removal, software multiple releases, and the impact of environmental factors on software reliability during the development process. iv ACKNOWLEDGEMENT Throughout the years of my graduate study at Rutgers University, I have received enormous help and support from advisor, mentors, colleagues, and friends. I would like to express my sincere gratitude to all of them, without whom this dissertation would not have been accomplished. First and foremost, I would like to express my deepest gratitude to my advisor, Dr. Hoang Pham, for his guidance, encouragement, inspiration, patience, and great support during my Ph.D. study. He has set a role model of excellence as a researcher, professor, and life mentor, and led me on the track to discover the unknown in the academic world. I am so grateful to Dr. Hoang Pham for being my Ph.D. advisor and will always bear his advice in mind. My sincere gratitude goes to Dr. Elsayed A. Elsayed, Dr. Myong K. Jeong, Dr. Honggang Wang, and Dr. Xuemei Zhang for serving on my dissertation committee and providing me sound and constructive suggestions to complete the work. My special gratitude goes to Dr. Susan L. Albin. I am grateful for her training on the scientific presentation and research problem explanation, which was a great learning experience for me. Through her example, I started understanding what research is all about and how to explain my research to the audience in an effective way. v I truly appreciate many inspirations that I have received from the research papers and dissertations written by Dr. Hongzhou Wang, Dr. Xuemei Zhang, and Dr. Xiaolin Teng, respectively. Dr. Hongzhou Wang, who brought me into Reliability area in the class of Reliability Engineering II, with his great expertise and knowledge. Dr. Xuemei Zhang’s research has provided a very solid foundation for Chapter 4 in this dissertation. One of the papers written by Dr. Xiaolin Teng has provided the great inspiration for solving the problems in Chapter 7. My appreciation also goes to the faculty members, Ms. Cindy Ielmini, and other graduate fellows in the Department of Industrial and Systems Engineering at Rutgers. Lastly, I would like to thank Drs. Wenke Liu, Xiaoshi Su, Nawei Sun, and Yisi Zhang, for their friendship, companion, along with the great cooking skill and healthy sarcasm. vi DEDICATION To my parents, and grandmother, for their love and support. vii TABLE OF CONTENTS ABSTRACT OF THE DISSERTATION ........................................................................... ii ACKNOWLEDGEMENT .................................................................................................. v DEDICATION .................................................................................................................. vii TABLE OF CONTENTS ................................................................................................. viii LIST OF TABLES ........................................................................................................... xiii LIST OF ILLUSTRATIONS ........................................................................................... xvi CHAPTER 1 INTRODUCTION ........................................................................................ 1 1.1 Importance of Reliable Software .......................................................................... 1 1.2 Software Reliability Engineering ......................................................................... 5 1.2.1 Trends in Software Development ................................................................. 5 1.2.2 Software Reliability Model ........................................................................... 7 1.2.3 General Theory of Nonhomogeneous Poisson Process .............................. 10 1.3 Importance of Software Testing ......................................................................... 13 1.4 Transitions of Environmental Factors Affecting Software Reliability .............. 14 1.5 Importance of Multi-Release Software Product ................................................. 16 1.6 Overview of the Dissertation .............................................................................. 17 CHAPTER 2 LITERATURE REVIEW ........................................................................... 20 2.1 Environmental Factors in Software Development ............................................. 21 viii 2.2 Software Reliability Model ................................................................................ 24 2.3 NHPP Software Reliability Model ..................................................................... 28 2.3.1 Software Reliability Model with Different Fault Classification ................. 32 2.3.2 Multi-Release Software Reliability Model ................................................. 34 2.3.3 Environmental-Factor-Based Software Reliability Model ......................... 36 CHAPTER 3 OBJECTIVES OF THE DISSERTATION ................................................ 39 CHAPTER 4 ENVIRONMENTAL FACTORS IN SOFTWARE DEVELOPMENT .... 42 4.1 Environmental Factors in Single-Release Software Development .................... 42 4.1.1 Research Motivation ................................................................................... 42 4.1.2 Objectives ..................................................................................................