Learn More
Refactorings are changes made to programs, models or specifications with the intention of improving their structure and thus making them clearer, more readable and re-usable. Refactorings are required to be behaviour-preserving in that the external behaviour of the program/model/specification remains unchanged. In this paper we show how a simple type of(More)
Software-intensive systems are subject to continuous change due to modification of the systems themselves and their environment. Methods for supporting evolution are a competitive edge in software engineering as software is operated over decades. Empirical research is useful to validate the effectiveness of these methods. However, empirical studies on(More)
" Not bad kid, but you'd vulnerable to attacks here and here. " Motivation • Security is an important quality facet of software systems. • Identifying vulnerabilities in requirements is important to elicit new security requirements as well as to make reasonable design decisions. • Manual assessment approaches (e.g. reviews, inspections) are time-consuming(More)
This paper describes an approach to transferring techniques of refactorings to formal methods. We use syntactical rewriting rules to express refactorings on Object-Z specifications. In contrast to programming languages here refac-torings can be formally proven to preserve the behaviour of the specification. We give an outline of such a proof of behaviour(More)