Centre for Software Reliability

Centre for Software Reliability - Subject Area

p>CSR is concerned with the dependability of systems. Here we take dependability to mean that property of a system which allows reliance to be placed on the service which it delivers. Clearly, our primary concern is with computer systems and in particular computer software. However, it should be recognised that the most important issue is a generic one of design dependability: whilst it is well-known that software is purely design, it is becoming more widely recognised that complex hardware systems can also fail to deliver acceptable service because of design flaws. Such flaws are the result of human intellectual failings, and so there are not many lessons to be learned from the more established disciplines such as conventional reliability theory.

Dependability will be taken to encompass such issues as reliability, safety, security, integrity, privacy, etc. The main interest of CSR is in reliability, but there are clear overlaps with, for example, safety. Indeed, there has been an increased interest in research at the boundaries of such disciplines as a result of a early CSR workshop on Safety and Security. It seems likely that the recognition of commonalities here will be a spur to fruitful progress.

CSR believes that it is important to distinguish between achievement and assessment of reliability. Thus in order to obtain reliability we need techniques which help us avoid making design faults, to remove those which are nevertheless introduced, and to tolerate the residual faults which still slip through. To measure and predict reliability we need appropriately defined metrics, the collection of suitable data, and properly validated models.

CSR is interested in both the software development process and the software product itself. Thus an important goal of metrics research is to give guidance to developers about the likely effect of decisions taken during a particular development on the properties of the eventual product. Equally, a possible arbiter between the many competing software development methods might be a study of measured achievement over a body of projects. Such a study would be in marked contrast to the current position, which seems to be one of strong personal advocacy and conflicting anecdotal evidence.

It is only when effective technology is in place in all these areas that we shall have a sound engineering basis for the development of software on which users can rely. Until that time the label Software Engineering will continue to be more of an aspiration than a description of a truly scientific discipline.