55 research outputs found

    Formalising dynamic composition and evolution in Java systems

    Get PDF
    A variety of Java constructs involve an idea of time dynamic establishment and closure of connections or the composition and customisation of components in order to guarantee reliability and maintainability in dynamic evolving systems we will take a process oriented view on composition and interaction. This will be supported by a contract concept to formalise matching of suitable service provider and requestor

    A meta-analysis approach to refactoring and XP

    Get PDF
    The mechanics of seventy-two different Java refactorings are described fully in Fowler's text. In the same text, Fowler describes seven categories of refactoring, into which each of the seventy-two refactorings can be placed. A current research problem in the refactoring and XP community is assessing the likely time and testing effort for each refactoring, since any single refactoring may use any number of other refactorings as part of its mechanics and, in turn, can be used by many other refactorings. In this paper, we draw on a dependency analysis carried out as part of our research in which we identify the 'Use' and 'Used By' relationships of refactorings in all seven categories. We offer reasons why refactorings in the 'Dealing with Generalisation' category seem to embrace two distinct refactoring sub-categories and how refactorings in the 'Moving Features between Objects' category also exhibit specific characteristics. In a wider sense, our meta-analysis provides a developer with concrete guidelines on which refactorings, due to their explicit dependencies, will prove problematic from an effort and testing perspective

    The effectiveness of refactoring, based on a compatibility testing taxonomy and a dependency graph

    Get PDF
    In this paper, we describe and then appraise a testing taxonomy proposed by van Deursen and Moonen (VD&M) based on the post-refactoring repeatability of tests. Four categories of refactoring are identified by VD&M ranging from semantic-preserving to incompatible, where, for the former, no new tests are required and for the latter, a completely new test set has to be developed. In our appraisal of the taxonomy, we heavily stress the need for the inter-dependence of the refactoring categories to be considered when making refactoring decisions and we base that need on a refactoring dependency graph developed as part of the research. We demonstrate that while incompatible refactorings may be harmful and time-consuming from a testing perspective, semantic-preserving refactorings can have equally unpleasant hidden ramifications despite their advantages. In fact, refactorings which fall into neither category have the most interesting properties. We support our results with empirical refactoring data drawn from seven Java open-source systems (OSS) and from the same analysis form a tentative categorization of code smells

    Practical verification strategy for refinement conditions in UML models

    Get PDF
    This paper presents an automatic and simple method for creating refinement condition for UML models. Conditions are fully written in OCL, making it unnecessary the application of mathematical languages which are in general hardly accepted to software engineers. Besides, considering that the state space where OCL conditions are evaluated might be too large (or even infinite), the strategy of micromodels is applied in order to reduce the search space. The overall contribution is to propitiate the performing of verification activities during the model-driven development process.1st International Workshop on Advanced Software Engineering: Expanding the Frontiers of Software Technology - Session 2: Software ModelingRed de Universidades con Carreras en Informática (RedUNCI

    Practical verification strategy for refinement conditions in UML models

    Get PDF
    This paper presents an automatic and simple method for creating refinement condition for UML models. Conditions are fully written in OCL, making it unnecessary the application of mathematical languages which are in general hardly accepted to software engineers. Besides, considering that the state space where OCL conditions are evaluated might be too large (or even infinite), the strategy of micromodels is applied in order to reduce the search space. The overall contribution is to propitiate the performing of verification activities during the model-driven development process.1st International Workshop on Advanced Software Engineering: Expanding the Frontiers of Software Technology - Session 2: Software ModelingRed de Universidades con Carreras en Informática (RedUNCI

    Inheritance of Temporal Logic Properties

    Full text link
    Abstract. Inheritance is one of the key features for the success of object-oriented languages. Inheritance (or specialisation) supports incremental design and re-use of already written specifications or programs. In a for-mal approach to system design the interest does not only lie in re-use of class definitions but also in re-use of correctness proofs. If a provably correct class is specialised we like to know those correctness properties which are preserved in the subclass. This can avoid re-verification of already proven properties and may thus substantially reduce the verifi-cation effort. In this paper we study the question of inheritance of correctness prop-erties in the context of state-based formalisms, using a temporal logic (CTL) to formalise requirements on classes. Given a superclass and its specialised subclass we develop a technique for computing the set of for-mulas which are preserved in the subclass. For specialisation we allow addition of attributes, modification of existing as well as extension with new methods.

    Dynamic Logic with Trace Semantics

    Get PDF
    Dynamic logic is an established instrument for program verification and for reasoning about the semantics of programs and programming languages. In this paper, we define an extension of dynamic logic, called Dynamic Trace Logic (DTL), which combines the expressiveness of program logics such as dynamic logic with that of temporal logic. And we present a sound and relatively complete sequent calculus for proving validity of DTL formulae. Due to its expressiveness, DTL can serve as a basis for proving functional and information-flow properties in concurrent programs, among other applications

    Specification and verification challenges for sequential object-oriented programs

    Get PDF
    The state of knowledge in how to specify sequential programs in object-oriented languages such as Java and C# and the state of the art in automated verification tools for such programs have made measurable progress in the last several years. This paper describes several remaining challenges and approaches to their solutio

    Specification and verification challenges for sequential object-oriented programs

    Get PDF
    The state of knowledge in how to specify sequential programs in object-oriented languages such as Java and C# and the state of the art in automated verification tools for such programs have made measurable progress in the last several years. This paper describes several remaining challenges and approaches to their solution
    corecore