Modular Specification and Verification of Object-Oriented Programs


Book Description

Software systems play an increasingly important role in modern societies. Smart cards for personal identi?cation, e-banking, software-controlled me- cal tools, airbags in cars, and autopilots for aircraft control are only some examples that illustrate how everyday life depends on the good behavior of software. Consequently, techniques and methods for the development of hi- quality, dependable software systems are a central research topic in computer science. A fundamental approach to this area is to use formal speci?cation and veri?cation. Speci?cation languages allow one to describe the crucial p- perties of software systems in an abstract, mathematically precise, and implementation-independent way. By formal veri?cation, one can then prove that an implementation really has the desired, speci?ed properties. Although this formal methods approach has been a research topic for more than 30 years, its practical success is still restricted to domains in which devel- ment costs are of minor importance. Two aspects are crucial to widen the application area of formal methods: – Formal speci?cation techniques have to be smoothly integrated into the software and program development process. – The techniques have to be applicable to reusable software components. This way, the quality gain can be exploited for more than one system, thereby justifying the higher development costs. Starting from these considerations, Peter Muller ̈ has developed new te- niques for the formal speci?cation and veri?cation of object-oriented so- ware. The speci?cation techniques are declarative and implementati- independent. They can be used for object-oriented design and programming.




Modular Verification of Object-oriented Programs with Subtypes


Book Description

Specifications of polymorphic functions are written by allowing instances of subtypes as arguments. Restrictions on the way that abstract types are specified ensure that such function specifications are meaningful and do not have to be rewritten when new subtypes are specified. Verification consists of showing that the specified relation among types has certain semantic properties, that each expression's value is an instance of a subtype of the expression's type, and a proof of correctness that ignores subtyping."










Algebraic Specification Techniques in Object Oriented Programming Environments


Book Description

The main aim of this monograph is to provide a framework for the integrated design of object-oriented programs with algebraic specification techniques. The design method pursued relies fundamentally on the structuring of systems based on the notion of data types. Depending on the level of abstraction, data types are described in an object-oriented way by algebraic specifications or by machine-executable object-oriented programs. The treatment involves two main aspects. First, object-oriented programs have to be related by a notion of correctness that models the transition from specifications to program implementations. The author presents a notion of correctness which relies on the idea of abstraction functions. Second, in order to obtain an integrated design environment, a uniform structuring concept for object oriented programs and algebraic specifications has to be provided. Inheritance, subtyping and clientship are three central notions of object-oriented structuring. Theauthor uses them to develop the kernel of a typed object- oriented programming language. The monograph provides the formal foundation for a unified framework of algebraic specifications and object-oriented programs. A major guideline is the development of a design method supporting the structured design and reuse of software in this environment.




Transactions on Modularity and Composition I


Book Description

The LNCS Transactions on Modularity and Composition are devoted to all aspects of software modularity and composition methods, tools, and techniques, covering requirement analysis, design, implementation, maintenance, and evolution. The focus of the journal also includes modelling techniques, new paradigms and languages, development tools, measurement, novel verification and testing approaches, theoretical foundations, and understanding interactions between modularity and composition. This, the first issue of the Transactions on Modularity and Composition, consists of two sections. The first one, guest edited by Patrick Eugster, Mario Südholt, and Lukasz Ziarek, is entitled “Aspects, Events, and Modularity” and includes papers focusing on context-oriented software development, specifications for even-based systems, and development of modular software. The second section, guest edited by Gary T. Leavens, contains journal versions of selected papers from Modularity 2015, which was held in March 2015, in Fort Collins, Colorado, USA. Topics covered by the papers in this section include software unbundling, layer activation in context-oriented programming, modular reasoning in event-based languages, and dynamic dispatch for method contracts using abstract predicates. The paper 'Dynamic Dispatch for Method Contracts Through Abstract Predicates' is published open access under a CC BY 4.0 license at link.springer.com.




Theoretical Aspects of Computing -- ICTAC 2011


Book Description

This book constitutes the refereed proceedings of the 8th International Colloquium on Theoretical Aspects of Computing, ICTAC 2011 held in Johannesburg, South Africa, in August/September 2011. The 14 revised full papers presented together with the abstracts of three keynote talks were carefully reviewed and selected from 44 submissions. The papers address various theoretical aspects and methodological issues of computing and are organized in topical sections on grammars, semantics, modelling, the special track on formal aspects of software testing and grand challenge in verified software, on logics, as well as algorithms and types.




ACM SIGPLAN Notices


Book Description