摘要 :
Since the introduction of the first version of the model checker SPIN in 1991, many papers have been written on improvements to the tool and on industrial applications of the tool. Less attention has been given to the pragmatic us...
展开
Since the introduction of the first version of the model checker SPIN in 1991, many papers have been written on improvements to the tool and on industrial applications of the tool. Less attention has been given to the pragmatic use of SPIN. This paper presents several techniques to optimise both the modelling and verification activities when using SPIN.
收起
摘要 :
This chapter first reviews the origins of Software Performance Engineering (SPE). It provides an overview and an extensive bibliography of the early research. It then covers the fundamental elements of SPE: the data required, the ...
展开
This chapter first reviews the origins of Software Performance Engineering (SPE). It provides an overview and an extensive bibliography of the early research. It then covers the fundamental elements of SPE: the data required, the software performance models and the SPE process. It concludes with a review of the current status and outstanding problems in the areas of: tools, performance models, use of SPE, principles, patterns and antipatterns for building high performance software, and SPE methods.
收起
摘要 :
Advanced software engineering principles imply the management of quality and process based on data from measurement. Such quality management can only be performed efficiently if it is well supported with tools that are carefully s...
展开
Advanced software engineering principles imply the management of quality and process based on data from measurement. Such quality management can only be performed efficiently if it is well supported with tools that are carefully selected, integrated and used in the measurement program. Realizing such support is non-trivial because tools can be used in many aspects of measurement. In this paper we describe a framework for setting up measurement tool support for software development processes. The framework explicitly links important measurement concepts with tools. Furthermore, it allows companies to use their existing tools and processes and supports the incremental adoption of measurement programs. We relate our experiences with this framework in two concrete examples of introducing measurement programs.
收起
摘要 :
In this article, we address the problem of statically determining an approximation of the communication topology of concurrent programs. These programs may contain dynamic process and channel creations and may communicate channel ...
展开
In this article, we address the problem of statically determining an approximation of the communication topology of concurrent programs. These programs may contain dynamic process and channel creations and may communicate channel names as well as functions, possibly containing other communications. We introduce a control flow analysis which builds finite state automata to improve its precision. The method is twofold. First, we build an automaton for each process in the concurrent system yielding an approximation of how the synchronizations realized by the sequential components are ordered. Second, we extract the communication topology from a reduced product automaton, which size is polynomial in the size of the original program. This analysis was implemented and we apply it to the verification of a circuit allocation mechanism.
收起
摘要 :
Systematic state-space exploration is a powerful technique for verification of concurrent software systems. Most work in this area deals with manually-constructed models of those systems. We propose a framework for applying state-...
展开
Systematic state-space exploration is a powerful technique for verification of concurrent software systems. Most work in this area deals with manually-constructed models of those systems. We propose a framework for applying state-space exploration to multi-threaded distributed systems written in standard programming languages. It generalizes Godefroid's work on VeriSoft, which does not handle multi-threaded systems, and Bruening's work on ExitBlockRW, which does not handle distributed (multi-process) systems. Unlike ExitBlockRW, our search algorithms incorporate powerful partial-order methods, guarantee detection of deadlocks, and guarantee detection of violations of the locking discipline used to avoid race conditions in accesses to shared variables.
收起
摘要 :
Requirements engineering (RE) is concerned with the elicitation of the goals to be achieved by the system envisioned, the operationalization of such goals into specifications of services and constraints, and the assignment of resp...
展开
Requirements engineering (RE) is concerned with the elicitation of the goals to be achieved by the system envisioned, the operationalization of such goals into specifications of services and constraints, and the assignment of responsibilities for the resulting requirements to agents such as humans, devices, and software. Getting high-quality requirements is difficult and critical. Recent surveys have confirmed the growing recognition of RE as an area of primary concern in software engineering research and practice. The paper first briefly introduces RE by discussing its main motivations, objectives, activities, and challenges. The role of rich models as a common interface to all RE processes is emphasized. We review various techniques available to date for system modeling, from semi-formal to formal, and discuss their relative strengths and weaknesses when applied during the RE stage of the software lifecycle. The paper then discusses some recent efforts to overcome such problems through RE-specific techniques for goal-oriented elaboration of requirements, multiparadigm specification, the integration of non-functional requirements, the anticipation of abnormal agent behaviors, and the management of conflicting requirements.
收起
摘要 :
Performance engineering aims to demonstrate that the software being developed will meet the performance needs. The goal of robustness engineering is to prove that the system will work correctly in the presence or after occurence o...
展开
Performance engineering aims to demonstrate that the software being developed will meet the performance needs. The goal of robustness engineering is to prove that the system will work correctly in the presence or after occurence of faults or stress conditions. From this point of view robustness engineering complements performance engineering to cover the full range of conditions to which a system may be exposed. Performance and robustness properties need to be continuously monitored during the development process to ensure that the system will meet the user's needs at the end. This paper will discuss aspects and problems of performance and robustness engineering. Also, it presents an approach, called "ISG" (Instantaneous System and Software Generation) which allows to continuously derive performance and robustness properties from the system-under-development. In case of ISG figures are derived from the real system right from the beginning. Therefore deviations from the desired functional, performance and robustness envelope can be corrected at an early stage. The capability for getting an immediate feedback from the system is obtained by the automated generation of the software from system engineering inputs. ISG builds the software by construction rules. This reduces the manual effort and allows for an immediate and representative feedback right after provision of inputs by the user. Due to automation the system can easily be instrumented on a user's demand without requiring any additional programming effort. ISG automatically stimulates the system and exposes it to stress tests and fault injection, and records coverage and performance figures. By incremental development a smooth transition from the first idea to the final version is possible at low risk. The ISG approach has been applied to the domain of real-time, distributed, fault-tolerant systems and shall be extended towards other application domains in future such as databases and graphical user interfaces.
收起
摘要 :
Ada has been-there, done-that, as regards meeting real-time programming requirements. The Ada95 revision addressed almost all the concerns that had plagued Ada83's real-time usability. But Java is currently flavor of the month, al...
展开
Ada has been-there, done-that, as regards meeting real-time programming requirements. The Ada95 revision addressed almost all the concerns that had plagued Ada83's real-time usability. But Java is currently flavor of the month, although its existing real-time features are totally inadequate. Two independent recent efforts have defined extensions to the Java platform that intend to satisfy real-time requirements. This paper summarizes the major features of these efforts, compares them to each other and to Ada 95's Real-Time Annex, and argues that they may serve to complement rather than compete with Ada in the real-time domain.
收起
摘要 :
Ada has been-there, done-that, as regards meeting real-time programming requirements. The Ada95 revision addressed almost all the concerns that had plagued Ada83's real-time usability. But Java is currently flavor of the month, al...
展开
Ada has been-there, done-that, as regards meeting real-time programming requirements. The Ada95 revision addressed almost all the concerns that had plagued Ada83's real-time usability. But Java is currently flavor of the month, although its existing real-time features are totally inadequate. Two independent recent efforts have defined extensions to the Java platform that intend to satisfy real-time requirements. This paper summarizes the major features of these efforts, compares them to each other and to Ada 95's Real-Time Annex, and argues that they may serve to complement rather than compete with Ada in the real-time domain.
收起
摘要 :
Conventional solution techniques for analytic performance models of computer and telecommunication systems use single values as inputs. Uncertainties or variabilities in model parameters may exist in many types of systems. Using m...
展开
Conventional solution techniques for analytic performance models of computer and telecommunication systems use single values as inputs. Uncertainties or variabilities in model parameters may exist in many types of systems. Using models with a single aggregated mean value for each parameter for such systems can produce inappropriate and misleading results. This chapter presents intervals and extended histograms for characterizing system parameters that are associated with uncertainty and variability. Adaptation of existing analytic performance evaluation methods to this interval-based parameter characterization is described. The application of this approach is illustrated with two examples: a hierarchical model of a multicomputer system and a queueing network model of an EJB server implementation.
收起