14 research outputs found

    Testing the robustness of controllers for self-adaptive systems

    Get PDF
    Self-Adaptive systems are software-intensive systems endowed with the ability to respond to a variety of changes that may occur in their environment, goals, or the system itself, by adapting their structure and behavior at run-time in an autonomous way. Controllers are complex components incorporated in self-adaptive systems, which are crucial to their function since they are in charge of adapting the target system by executing actions through effectors, based on information monitored by probes. However, although controllers are becoming critical in many application domains, so far very little has been done to assess their robustness. In this paper, we propose an approach for evaluating the robustness of controllers for self-adaptive software systems, aiming to identify faults in their design. Our proposal considers the stateful nature of the controller, and identifies a set of robustness tests, which includes the provision of mutated inputs to the interfaces between the controller and the target system (i.e., probes). The feasibility of the approach is evaluated on Rainbow, a framework for architecture-based self-adaptation, and in the context of the Znn.com case study

    Implementation of a secure algorithm in WSN for a coal mine

    Get PDF
    For safety-critical systems, the required reliability (or safety) is often extremely high. Assessing the system, to gain confidence that the requirement has been achieved, is correspondingly hard, particularly when the system depends critically upon extensive software. In practice, such an assessment is often carried out rather informally, taking account of many different types of evidence—experience of previous, similar systems; evidence of the efficacy of the development process; testing; expert judgement, etc. Ideally, the assessment would allow all such evidence to be combined into a final numerical measure of reliability in a scientifically rigorous way. In this paper we address one part of this problem: we present a means whereby our confidence in a new product can be augmented beyond what we would believe merely from testing that product, by using evidence of the high dependability in operation of previous products. We present some illustrative numerical results that seem to suggest that such experience of previous products, even when these have shown very high dependability in operational use, can improve our confidence in a new product only modestly

    Terminology and paradigms for fault tolerance

    No full text
    To familiarize the reader with the field of fault tolerance, this report discusses the most important terms and paradigms used in that field. After establishing a basic terminology, the fundamental techniques to achieve fault tolerance, i.e. the basic ways to employ redundancy, are identified. In particular, the role that fault hypotheses play in the design of a fault tolerant system is illustrated. To enable the development of formal methods for fault tolerance, the interaction between fault hypotheses and design decisions is analyzed in detail for two fault tolerant systems. The first is a stable virtual disk which is implemented using a number of unreliable physical disks. The second concerns a reliable broadcast protocol
    corecore