3,684 research outputs found
Study of fault-tolerant software technology
Presented is an overview of the current state of the art of fault-tolerant software and an analysis of quantitative techniques and models developed to assess its impact. It examines research efforts as well as experience gained from commercial application of these techniques. The paper also addresses the computer architecture and design implications on hardware, operating systems and programming languages (including Ada) of using fault-tolerant software in real-time aerospace applications. It concludes that fault-tolerant software has progressed beyond the pure research state. The paper also finds that, although not perfectly matched, newer architectural and language capabilities provide many of the notations and functions needed to effectively and efficiently implement software fault-tolerance
An Experimental Scrutiny of Visual Design Modelling: VCL up against UML+OCL
The graphical nature of prominent modelling notations, such as the standards UML and SysML, enables them to tap into the cognitive benefits of diagrams. However, these notations hardly exploit the cognitive potential of diagrams and are only partially graphical with invariants and operations being expressed textually. The Visual Contract Language (VCL) aims at improving visual modelling; it tries to (a) maximise diagrammatic cognitive effectiveness, (b) increase visual expressivity, and (c) level of rigour and formality. It is an alternative to UML that does largely pictorially what is traditionally done textually. The paper presents the results of a controlled experiment carried out four times in different academic settings and involving 43 participants, which compares VCL against UML and OCL and whose goal is to provide insight on benefits and limitations of visual modelling. The paper's hypotheses are evaluated using a crossover design with the following tasks: (i) modelling of state space, invariants and operations, (ii) comprehension of modelled problem, (iii) detection of model defects and (iv) comprehension of a given model. Although visual approaches have been used and advocated for decades, this is the first empirical investigation looking into the effects of graphical expression of invariants and operations on modelling and model usage tasks. Results suggest VCL benefits in defect detection, model comprehension, and modelling of operations, providing some empirical evidence on the benefits of graphical software design
Refactoring Assertion Roulette and Duplicate Assert test smells: a controlled experiment
Test smells can reduce the developers' ability to interact with the test
code. Refactoring test code offers a safe strategy to handle test smells.
However, the manual refactoring activity is not a trivial process, and it is
often tedious and error-prone. This study aims to evaluate RAIDE, a tool for
automatic identification and refactoring of test smells. We present an
empirical assessment of RAIDE, in which we analyzed its capability at
refactoring Assertion Roulette and Duplicate Assert test smells and compared
the results against both manual refactoring and a state-of-the-art approach.
The results show that RAIDE provides a faster and more intuitive approach for
handling test smells than using an automated tool for smells detection combined
with manual refactoring
Tools for Tutoring Theoretical Computer Science Topics
This thesis introduces COMPLEXITY TUTOR, a tutoring system to assist in learning abstract proof-based topics, which has been specifically targeted towards the population of computer science students studying theoretical computer science. Existing literature has shown tremendous educational benefits produced by active learning techniques, student-centered pedagogy, gamification and intelligent tutoring systems. However, previously, there had been almost no research on adapting these ideas to the domain of theoretical computer science. As a population, computer science students receive immediate feedback from compilers and debuggers, but receive no similar level of guidance for theoretical coursework. One hypothesis of this thesis is that immediate feedback while working on theoretical problems would be particularly well-received by students, and this hypothesis has been supported by the feedback of students who used the system.
This thesis makes several contributions to the field. It provides assistance for teaching proof construction in theoretical computer science. A second contribution is a framework that can be readily adapted to many other domains with abstract mathematical content. Exercises can be constructed in natural language and instructors with limited programming knowledge can quickly develop new subject material for COMPLEXITY TUTOR. A third contribution is a platform for writing algorithms in Python code that has been integrated into this framework, for constructive proofs in computer science. A fourth contribution is development of an interactive environment that uses a novel graphical puzzle-like platform and gamification ideas to teach proof concepts. The learning curve for students is reduced, in comparison to other systems that use a formal language or complex interface.
A multi-semester evaluation of 101 computer science students using COMPLEXITY TUTOR was conducted. An additional 98 students participated in the study as part of control groups. COMPLEXITY TUTOR was used to help students learn the topics of NP-completeness in algorithms classes and prepositional logic proofs in discrete math classes. Since this is the first significant study of using a computerized tutoring system in theoretical computer science, results from the study not only provide evidence to support the suitability of using tutoring systems in theoretical computer science, but also provide insights for future research directions
Interactive use of a computer in the preparation of structured progams
PhD ThesisAn experimental system providing assistance in the task of
program construction, validation and description is presented. This
system (Pearl) encourages a particular top-down approach to programming
such that programs so developed exhibit a multi-level, hierarchical
structure.
Amongst several tools provided by the system is one ·"hich
enables programs to be exercised even though they may be eXercised in terms of abstract operations and data types.
The whole system is designed to be used in an interactive
environment. Programs are developed by the programmer with appropriate
assistance and guidance from the computer.
Contemporary programming tools and methods are surveyed and
their relevance to the development of high quality software is discussed.
In particular attention is given to programming methodologies,design
representations and issues of program correctness.
The practicality of the system is demonstrated i!l a mmber of
examples.Science Research Council
- …