9 research outputs found
An automated wrapper-based approach to the design of dependable software
The design of dependable software systems invariably comprises two main activities: (i) the design of dependability mechanisms, and (ii) the location of dependability mechanisms. It has been shown that these activities are intrinsically difficult. In this paper we propose an automated wrapper-based methodology to circumvent the problems associated with the design and location of dependability mechanisms. To achieve this we replicate important variables so that they can be used as part of standard, efficient dependability mechanisms. These well-understood mechanisms are then deployed in all relevant locations. To validate the proposed methodology we apply it to three complex software systems, evaluating the dependability enhancement and execution overhead in each case. The results generated demonstrate that the system failure rate of a wrapped software system can be several orders of magnitude lower than that of an unwrapped equivalent
Testing object-oriented industrial software without precise oracles or results
Software testing such as object-oriented software Testing At the Class and Cluster LEvels, or TACCLE, can be achieved by defining the test objectives, selecting and executing test cases, and checking results. The software specifications are extracted from technical drawings of mechanical and electronic hardware designed by process engineers using an in-house technique. TACCLE enables software engineers to test each individual class independently, then test the interaction among classes. The TACCLE methodology is described in three sections that include class-level testing, cluster-level testing, and test case generation and test script translation. The notion of testing observational equivalence and bypassing the need for oracles is important in test automation for industrial projects where it is impractical to define a precise relationship between specification and the software under test.postprin
Aspect structure of compilers
Compilers are among the most widely-studied pieces of software; and, modularizing these valuable artifacts is a recurring theme in research. However, modularization of cross-cutting concerns in compilers is not yet well explored. Even today, implementation of one compiler concern scatters across and tangles with the implementation of several other concerns, thereby leading to a mismatch between different compiler modules and the operations they represent. Essentially, current compiler implementations fail to explicitly identify the control dependencies of different phases, and separately characterize the actions to execute during those phases. As a result, information about their program-execution path remains non-intuitive: it stays hidden within the program structure and cuts-across several phase implementations. Consequently, this makes compiler designs and artifacts difficult to comprehend, maintain and reuse. Such limitations occur primarily as a result of the inability of mainstream object-oriented languages, such as Java, to organize the cross-cutting concerns into clean modular units.
This thesis demonstrates how such modularity-issues in compilers can be addressed with the help of a relatively new, yet powerful programming paradigm called aspect-oriented programming
Towards the design of efficient error detection mechanisms
The pervasive nature of modern computer systems has led to an increase in our
reliance on such systems to provide correct and timely services. Moreover, as
the functionality of computer systems is being increasingly defined in software,
it is imperative that software be dependable. It has previously been shown that
a fault intolerant software system can be made fault tolerant through the design
and deployment of software mechanisms implementing abstract artefacts known
as error detection mechanisms (EDMs) and error recovery mechanisms (ERMs),
hence the design of these components is central to the design of dependable
software systems. The EDM design problem, which relates to the construction
of a boolean predicate over a set of program variables, is inherently difficult,
with current approaches relying on system specifications and the experience of
software engineers. As this process necessarily entails the identification and
incorporation of program variables by an error detection predicate, this thesis
seeks to address the EDM design problem from a novel variable-centric perspective,
with the research presented supporting the thesis that, where it exists
under the assumed system model, an efficient EDM consists of a set of critical
variables. In particular, this research proposes (i) a metric suite that can
be used to generate a relative ranking of the program variables in a software with respect to their criticality, (ii) a systematic approach for the generation
of highly-efficient error detection predicates for EDMs, and (iii) an approach
for dependability enhancement based on the protection of critical variables using
software wrappers that implement error detection and correction predicates
that are known to be efficient. This research substantiates the thesis that an
efficient EDM contains a set of critical variables on the basis that (i) the proposed
metric suite is able, through application of an appropriate threshold, to
identify critical variables, (ii) efficient EDMs can be constructed based only on
the critical variables identified by the metric suite, and (iii) the criticality of the
identified variables can be shown to extend across a software module such that
an efficient EDM designed for that software module should seek to determine
the correctness of the identified variables
Programming Languages and Systems
This open access book constitutes the proceedings of the 28th European Symposium on Programming, ESOP 2019, which took place in Prague, Czech Republic, in April 2019, held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2019
The Fifth NASA Symposium on VLSI Design
The fifth annual NASA Symposium on VLSI Design had 13 sessions including Radiation Effects, Architectures, Mixed Signal, Design Techniques, Fault Testing, Synthesis, Signal Processing, and other Featured Presentations. The symposium provides insights into developments in VLSI and digital systems which can be used to increase data systems performance. The presentations share insights into next generation advances that will serve as a basis for future VLSI design
Software Transactional Memory Building Blocks
Exploiting thread-level parallelism has become a part of mainstream programming in recent years. Many approaches to parallelization require threads executing in parallel to also synchronize occassionally (i.e., coordinate concurrent accesses to shared state). Transactional Memory (TM) is a programming abstraction that provides the concept of database transactions in the context of programming languages such as C/C++. This allows programmers to only declare which pieces of a program synchronize without requiring them to actually implement synchronization and tune its performance, which in turn makes TM typically easier to use than other abstractions such as locks.
I have investigated and implemented the building blocks that are required for a high-performance, practical, and realistic TM. They host several novel algorithms and optimizations for TM implementations, both for current hardware and future hardware extensions for TM, and are being used in or have influenced commercial TM implementations such as the TM support in GCC
An Introduction to Database Systems
This textbook introduces the basic concepts of database systems. These concepts are presented through numerous examples in modeling and design. The material in this book is geared to an introductory course in database systems offered at the junior or senior level of Computer Science. It could also be used in a first year graduate course in database systems, focusing on a selection of the advanced topics in the latter chapters
Radiobiology Textbook:Space Radiobiology
The study of the biologic effects of space radiation is considered a “hot topic,” with increased interest in the past years. In this chapter, the unique characteristics of the space radiation environment will be covered, from their history, characterization, and biological effects to the research that has been and is being conducted in the field.
After a short introduction, you will learn the origin and characterization of the different types of space radiation and the use of mathematical models for the prediction of the radiation doses during different mission scenarios and estimate the biological risks due to this exposure. Following this, the acute, chronic, and late effects of radiation exposure in the human body are discussed before going into the detailed biomolecular changes affecting cells and tissues, and in which ways they differ from other types of radiation exposure.
The next sections of this chapter are dedicated to the vast research that has been developed through the years concerning space radiation biology, from small animals to plant models and 3D cell cultures, the use of extremophiles in the study of radiation resistance mechanisms to the importance of ground-based irradiation facilities to simulate and study the space environment