학술논문

종속적 소프트웨어 신뢰성 모형과 딥러닝 소프트웨어 신뢰성 모형에 관한 연구 / A Study on the Dependent Software Reliability Models and Deep Learning Software Reliability Models
Document Type
Dissertation/ Thesis
Source
Subject
소프트웨어 신뢰성
NHPP 소프트웨어 신뢰성 모형
딥러닝
Language
Korean
Abstract
As times have progressed, software has become a very important part of every field. From the smallest tasks to the most important ones, such as meetings, collaboration, and decision-making, software has made it easier for us to do things, and it's rare that we don't use it. In addition, we are now living in the era of the Fourth Industrial Revolution. The fourth industrial revolution utilizes artificial intelligence and big data to think and make decisions like humans using computer technology, and it has become very close to our lives. Software plays a huge role in this as well. If the software you use is faulty and produces incorrect results, or the entire software fails and stops working, the damage will be enormous. In particular, Artificial Intelligence(AI) relies on real-time data, which greatly affects the speed of computation. Since the data is updated in real time, a once computational error that results in incorrect results can have a huge social and economic impact. So, the software reliability is so important. Software reliability is a field that measures how well software works and develops software reliability models based on software failure data. A software reliability model is a model that uses mathematical assumptions to predict the number of software failures, and the results of the predictions can be used to help improve software reliability. Most software failures follow a Poisson distribution, and most software reliability models assume a Non-Homogeneous Poisson Process(NHPP), which assumes a different number of failures at different points in time, rather than a constant number of failures. Software reliability models have evolved to include more assumptions, such as software failures occurring independently of each other, testing effort, incomplete debugging, and uncertainty in the operating environment. Many traditional software reliability models have the problem that they only fit well in special cases due to the mathematical addition of special assumptions. In addition, as the structure of software has become more complex and multiple pieces of software are composed together, the environment of software has become very diverse. It is not easy to find an assumption that fits the complexity of the structure because one assumption cannot be used to assume the same environment for all software. To solve this problem, we proposed a software reliability model using deep learning among machine learning methods that rely on given failure data. In addition, models that rely only on data lack a logical basis because they do not make mathematical and statistical assumptions. To solve these problems, we proposed a deep learning software reliability model that replaces the activation function used in deep learning with a software reliability model. Among the activation functions utilized in deep learning, the sigmoid function is the most common structure of the software reliability model. We proposed a deep learning software reliability model that uses the software reliability model as the activation function because replacing this form with the existing software reliability model functions as an activation function with mathematical assumptions instead of a model that only depends on data. The three proposed models demonstrated the superiority of the models through the criteria based on nine estimates and the criteria measure for one prediction. In addition, the new software reliability model assuming dependent failures proposed an optimal release time considering the costs involved in software development and release based on the estimated number of failures. The software reliability model using deep learning and the deep learning software reliability model estimated and trained each parameter on 90% of the data set, calculated the predicted value on the remaining 10% of the data, and compared whether the actual value fell within the 95% confidence interval based on the predicted value. Software is critical now and will be in the future. As software develops and evolves into more complex structures, there will continue to be a need for research on software reliability for complex structures. We believe that the three software reliability models proposed in this paper are well suited to the complex structure of current software, and if further research is conducted, it is possible to propose a very useful model in the field of software reliability.