Biomimetic Software Engineering Techniques for Dependability (original) (raw)

Dependability engineering of complex computing systems

Proceedings Sixth IEEE International Conference on Engineering of Complex Computer Systems. ICECCS 2000, 2000

This paper presents a development model focused on the production of dependable systems. Three classes of processes are distinguished: 1) the system creation process which builds on the classical development steps (requirements, design, realization, integration); 2) dependability processes (i.e., fault prevention, fault tolerance, fault removal and fault forecasting); and 3) other supporting processes such as quality assurance and certification. The proposed approach relies on the identification of basic activities for the system creation process and for the dependability processes, and then on the analysis of the interactions among the activities of each process and with the other processes. Finally, to support the development of dependable systems, we define for each system creation activity, a checklist that specifies the key issues related to fault prevention, fault tolerance, fault removal, and fault forecasting, that need to be addressed.

A survey of software dependability

Sadhana, 1987

This paper presents on overview of the issues in precisely defining, specifying and evaluating the dependability of software, particularly in the context of computer controlled process systems. Dependability is intended to be a generic term embodying various quality factors and is useful for both software and hardware. While the developments in quality assurance and reliability theories have proceeded mostly in independent directions for hardware and software systems, we present here the case for developing a unified framework of dependability-a facet of operational effectiveness of modern technological systems, and develop a hierarchical systems model helpful in clarifying this view. In the second half of the paper, we survey the models and methods available for measuring and improving software reliability. The nature of software "bugs", the failure history of the software system in the various phases of its lifecycle, the reliability growth in the development phase, estimation of the number of errors remaining in the operational phase, and the complexity of the debugging process have all been considered to varying degrees of detail. We also discuss the notion of software fault-tolerance, methods of achieving the same, and the status of other measures of software dependability such as maintainability, availability and safety.

Dependability of computer-based systems

2000

Abstract. This paper sets out a programme of work in the area of dependability. The research is to be pursued under the aegis of a sixyear Inter-Disciplinary Research Collaboration funded by the UK Engineering and Physical Sciences Research Council. The research considers computer-based systems which comprise humans as well as hardware and software. The aim here is to indicate how formal methods ideas, coupled with structuring proposals, can help address a problem which clearly also requires social science input.

System dependability

Lecture Notes in Computer Science

The paper starts with a brief account of how and why, at about the time of the birth of what is now INRIA, the author and his colleagues became interested in the subject now known as system dependability. The main body of the paper summarizes the work over the last three years of the ESPRIT Basic Research project on Predictably Dependable Computing Systems (PDCS). This is a long term collaborative research activity, centred on the problems (i) of producing quantitative methods for measuring and predicting the dependability of complex software/hardware systems, (ii) of incorporating such methods into the design process, and (iii) of developing appropriate architectures and components as bases for designing predictably dependable systems. A further section of the paper then describes, in somewhat more detail, one of the current activities within PDCS. This is work being carried out by the author in collaboration with an INRIA colleague, Dr. Jean-Charles Fabre, on a unified approach to providing both reliability and security termed Object-Oriented Fragmented Data Processing (OOFDP).

A biologically inspired programming model for self-healing systems

Proceedings of the first workshop on …, 2002

There is an increasing need for software systems to be able to adapt to changing conditions of resource variability, component malfunction and malicious intrusion. Such self-healing systems can prove extremely useful in situations where continuous service is critical or manual repair is not feasible. Human efforts to engineer self-healing systems have had limited success, but nature has developed extraordinary mechanisms for robustness and selfhealing over billions of years. Nature's programs are encoded in DNA and exhibit remarkable density and expressiveness. We argue that the software engineering community can learn a great deal about building systems from the broader concepts surrounding biological cell programs and the strategies they use to robustly accomplish complex tasks such as development, healing and regeneration. We present a cell-based programming model inspired from biology and speculate on biologically inspired strategies for producing robust, scalable and self-healing software systems.

Software dependability: A personal view

1995

This paper attempts to stand back and consider how the field of software dependability research has progressed over the last twenty-five or so years. It provides a personal perspective on early developments such as the recovery block and the Nversion programming scheme, and on more recent research in which the author has been involved aimed at unifying and extending these schemes. It then discusses first the present state of the art and then the way that the industry is likely to develop in future and the consequences this will have on the dependability field. This discussion draws on a summary of some of the ideas that were put forward at a recent ICL/ESPRITsponsored workshop that the author helped to organize. This workshop was in fact on The Future of the Software Industry. However, a number of the ideas discussed, in particular those relating to mega-systems and to system structuring, are of particular relevance to software dependability research.

System structure for dependable software systems

Computational Science and Its Applications-ICCSA 2011, 2011

Truly dependable software systems should be built with structuring techniques able to decompose the software complexity without hiding important hypotheses and assumptions such as those regarding their target execution environment and the expected fault-and system models. A judicious assessment of what can be made transparent and what should be translucent is necessary. This paper discusses a practical example of a structuring technique built with these principles in mind: Reflective and refractive variables. We show ...