Neural computing for software reliability
暂无分享,去创建一个
: We present the results of a feasibility study for the application of neural computing to the traditional problem of how to generate cost-effective, reliable implementations of complex problems—i.e. the central problem of software engineering. We treat neural computing as an innovative technology for conventional software engineering. We explore the reliability of neural networks (multilayer perceptrons trained with the backpropagation algorithm) as alternative versions in a multiversion software system. The basic idea is that versions trained differently will not exhibit common faults as independently developed, conventional versions (programmed in, for example, Modula-2) have been shown to do. The common design faults that run through independently developed versions appear to be the result of ‘difficult’ inputs which all programmers tend to misconstrue similarly. Network implementations, which are not directly designed in the conventional manner, should permit easy introduction of ‘diversity’ to combat this weakness. The initial results give credence to this possibility and have shown the way to generate substantial forced diversity within the neural computing paradigm.
[1] Bev Littlewood,et al. Conceptual Modeling of Coincident Failures in Multiversion Software , 1989, IEEE Trans. Software Eng..
[2] Terrence J. Sejnowski,et al. Analysis of hidden units in a layered network trained to classify sonar targets , 1988, Neural Networks.
[3] Gerald Tesauro,et al. Neurogammon Wins Computer Olympiad , 1989, Neural Computation.
[4] James L. McClelland,et al. Parallel distributed processing: explorations in the microstructure of cognition, vol. 1: foundations , 1986 .