تجزیه و تحلیل ریسک پروژه نرم افزار با استفاده از شبکه های بیزی با محدودیت علیت
|کد مقاله||سال انتشار||مقاله انگلیسی||ترجمه فارسی||تعداد کلمات|
|29276||2013||11 صفحه PDF||سفارش دهید||8550 کلمه|
Publisher : Elsevier - Science Direct (الزویر - ساینس دایرکت)
Journal : Decision Support Systems, Volume 56, December 2013, Pages 439–449
Many risks are involved in software development and risk management has become one of the key activities in software development. Bayesian networks (BNs) have been explored as a tool for various risk management practices, including the risk management of software development projects. However, much of the present research on software risk analysis focuses on finding the correlation between risk factors and project outcome. Software project failures are often a result of insufficient and ineffective risk management. To obtain proper and effective risk control, risk planning should be performed based on risk causality which can provide more risk information for decision making. In this study, we propose a model using BNs with causality constraints (BNCC) for risk analysis of software development projects. Through unrestricted automatic causality learning from 302 collected software project data, we demonstrated that the proposed model can not only discover causalities in accordance with the expert knowledge but also perform better in prediction than other algorithms, such as logistic regression, C4.5, Naïve Bayes, and general BNs. This research presents the first causal discovery framework for risk causality analysis of software projects and develops a model using BNCC for application in software project risk management.
The software industry has become one of the fastest-growing industries. The global software market is estimated to have a value of US$330 billion in 2014, an increase of 36.1% since 2009 (US$ 242.4 billion) . However, software development is yet a high-risk activity. The “CHAOS Summary 2009” from the Standish Group reported that the success rate of global (mainly U.S. and European) software projects is only 32% . Much previous research has shown that the most important problem in software engineering is risk management, whereas technical issues are only secondary. For example, the Standish Group's report “EXTREME CHAOS”  summarized the recipe for software project success, that is, the CHAO 10, most of which are non-technical factors. Risk management is critical to project management; it is one of the 9 knowledge areas in project management as defined in the Project Management Body of Knowledge (PMBOK)  and is one of the 25 key process areas as defined in the Capability Maturity Model Integration (CMMI) . McConnell believes that to obtain a 50–70% chance of avoiding time overrun, risk management only requires 5% of the total project budget . These reasons highlight the urgency and feasibility of software project risk management. In the current practice, subjective analysis or expert judgment is one of the methods often used in project risk management . It is based on the experience of an expert and is thus inevitably human-intensive and obscure ; likewise, it generally lacks repeatability as experience is not readily shared among different teams within an organization . Therefore, it is crucial to develop intelligent modeling techniques that can provide more objective, repeatable, and visible decision-making support for risk management. Among various existing intelligent modeling techniques, the Bayesian network (BN) has attracted much attention, such as those presented in refs. ,  and , due to its excellent ability in representing and reasoning with uncertainties. Most research on software project risk analysis focuses on the discovery of correlations between risk factors and project outcomes ,  and . At present, studies on BN-based risk analysis of software projects involve two ways of network construction: (1) experts manually specify the network to reflect expert knowledge  and , and (2) automatically learn the network from observational data . Since the manual method is not based on observational data, it will certainly contain expert subjective bias. The existing automatic methods for BN network learning cannot distinguish correlation from causality. For instance, the edge orientation does not necessarily indicate which risk should be controlled to change another risk. However this limitation in existing algorithms is usually neglected. Such research models are not suitable for direct risk control. Software project practitioners have long complained about the difficulty in determining the real and direct risks to guide the allocation of time and resources. Thus causality, rather than correlation, is of greater interest to industry experts in software project risk planning because it can determine the causal factors that directly affect project outcomes. For example, the risk of “project involving the use of new technology” may be correlated with “immature technology” because new technology is probably underdeveloped due to its unidentified bugs. Nevertheless, a new technology does not necessarily mean an immature technology. Whether we can mitigate the former risk by only focusing on the latter is not certain, and vice versa. Actually, we are advised to reduce the risks of using a new technology by referring to pilot investigations, preparing alternative technology, training of team members. National Aeronautics and Space Administration (NASA) considers that risk planning should first “make sure that the consequences and the sources of the risk are known” and “plan important risks first” . The Software Engineering Institute of Carnegie Mellon University (CMU/SEI) requires the risk analysis process to satisfy the goal of “determining the source of risk”, i.e., “the root causes of the risk” . Hence, in risk planning, analyses of the consequences and risk sources are very important. In this paper, we propose a novel framework for software project risk management using BNs with causality constraints (BNCC). Our primary objective is to perform a causality analysis between risk factors and project outcomes to achieve more effective risk control. Specifically, the analysis involves (1) introducing a new modeling framework for risk causality analysis to discover new causal relationships and validate existing ones (i.e., practical and/or academic expert knowledge) between risk factors and project outcomes based on historical data; and (2) constructing an empirical BN software project risk analysis model based on the framework, which can be readily used in risk planning. Compared with other modeling algorithms such as C4.5 and Naïve Bayes, the proposed BNCC-based model has the following advantages: (1) strong interpretability — the constructed BN combines data with expert knowledge, depicts causal relationships between variables, and helps obtain better project outcomes or higher probability of project success; and (2) acceptable predictive accuracy — the final model in this study has better predictive power compared with other modeling algorithms, making the model suitable for capturing the statistical relationships between risk factors and project outcomes. This study makes two important contributions. First, it proposes the first causal discovery framework for risk management of software projects, which builds an empirical model from real data and incorporates the causal discovery technique and expert knowledge. This risk modeling framework can be widely applied to other related domains. Second, it provides a BNCC model for risk analysis based on data from real industry software projects. The network has strong interpretability and can provide explicit knowledge (causal relationships between risk factors and project outcomes) of software projects. Subsequently, such knowledge can help in conducting effective risk analysis and further risk planning, which will result in a better implementation of software project risk management. This paper is organized as follows. Section 2 provides a review of related literature. Section 3 describes the proposed risk model and the modeling concept. Section 4 presents the experimental results. Finally, Section 5 concludes and discusses limitations of the study.
نتیجه گیری انگلیسی
To perform better risk analysis and risk planning, discovering causality between risk factors and project outcomes in risk management is important. This study proposes a V-structure discovery algorithm and establishes a BN with causality constraints. The proposed risk modeling framework is a completely new approach, suitable for solving similar risk management problems in other fields. And we provide an application case of software project risk analysis and control. A large sample data was collected and an empirical BNCC model was established. Most causal edges correspond to current expert knowledge, which means that causal learning method can effectively discover explicit knowledge. The model can interpret usable explicit knowledge (risk–risk and risk–output causality) for risk planning in the risk management of software projects. At the same time, the prediction accuracy is comparable with other intelligent algorithms. The model is beneficial in merging risk analysis and risk control to help implementation of risk management. This study could significantly contribute to academics and practitioners by establishing a BNCC model for risk analysis of software projects. This type of study has not been previously undertaken in the field of software project risk management; so it is hoped that this study will trigger a series of related investigations. In future work, a more complete and integrated decision support system with BNCC can be developed to support project managers in making decisions for risk (response) planning, e.g. ref. . However, this study has specific limitations. First, the proposed algorithm cannot guarantee that a complete causal BN (i.e. each edge is a causal edge) can be constructed from the data. Due to the sample limitation, the causalities found could only construct a sparse/partial causality network. The more samples are added to the research, the more comprehensive a network could be found. Second, the proposed algorithm can only find a subset of the underlying causalities, i.e., only the kind shown in Fig. 2d not those shown in Fig. 2a, b and c. The latter three kinds of causalities require intervention experiments to verify.