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."




Reasoning about Object-oriented Programs that Use Subtypes


Book Description

Abstract: "Programmers informally reason about object-oriented programs by using subtype relationships to classify the behavior of objects of different types and by letting supertypes stand for all their subtypes. We describe formal specification and verification techniques for such programs that mimic these informal ideas. Our techniques are modular and extend standard techniques for reasoning about programs that use abstract data types. Semantic restrictions on subtype relationships guarantee the soundness of these techniques."




Verification: Theory and Practice


Book Description

This festschrift volume constitutes a unique tribute to Zohar Manna on the occasion of his 64th birthday. Like the scientific work of Zohar Manna, the 32 research articles span the entire scope of the logical half of computer science. Also included is a paean to Zohar Manna by the volume editor. The articles presented are devoted to the theory of computing, program semantics, logics of programs, temporal logic, automated deduction, decision procedures, model checking, concurrent systems, reactive systems, hardware and software verification, testing, software engineering, requirements specification, and program synthesis.




Foundations of Component-Based Systems


Book Description

Articles, originally published in 2000, by experts including theoretical frameworks and models plus case studies and findings.




ECOOP '93 - Object-Oriented Programming


Book Description

It is now more than twenty-five years since object-oriented programming was “inve- ed” (actually, more than thirty years since work on Simula started), but, by all accounts, it would appear as if object-oriented technology has only been “discovered” in the past ten years! When the first European Conference on Object-Oriented Programming was held in Paris in 1987, I think it was generally assumed that Object-Oriented Progr- ming, like Structured Programming, would quickly enter the vernacular, and that a c- ference on the subject would rapidly become superfluous. On the contrary, the range and impact of object-oriented approaches and methods continues to expand, and, - spite the inevitable oversell and hype, object-oriented technology has reached a level of scientific maturity that few could have foreseen ten years ago. Object-oriented technology also cuts across scientific cultural boundaries like p- haps no other field of computer science, as object-oriented concepts can be applied to virtually all the other areas and affect virtually all aspects of the software life cycle. (So, in retrospect, emphasizing just Programming in the name of the conference was perhaps somewhat short-sighted, but at least the acronym is pronounceable and easy to rem- ber!) This year’s ECOOP attracted 146 submissions from around the world - making the selection process even tougher than usual. The selected papers range in topic from programming language and database issues to analysis and design and reuse, and from experience reports to theoretical contributions.




Specifying and Verifying Object-oriented Programs


Book Description

This reduces the problem of reasoning about both supertypes and their subtypes to the problems of reasoning about just the supertypes and proving that the subtype relationships satisfy the required constraints."




Formal Methods for Components and Objects


Book Description

This book presents revised tutorial lectures given by invited speakers at the First International Symposium on Formal Methods for Components and Objects, FMCO 2002, held in Leiden, The Netherlands, in November 2002. The 21 revised lectures by leading researchers present a comprehensive account of the potential of formal methods applied to complex software systems such as components and object systems. The book makes a unique contribution to bridging the gap between theory and practice in software engineering.




Verified Software: Theories, Tools, Experiments


Book Description

A Step Towards Verified Software Worries about the reliability of software are as old as software itself; techniques for allaying these worries predate even James King’s 1969 thesis on “A program verifier. ” What gives the whole topic a new urgency is the conjunction of three phenomena: the blitz-like spread of software-rich systems to control ever more facets of our world and our lives; our growing impatience with deficiencies; and the development—proceeding more slowly, alas, than the other two trends—of techniques to ensure and verify software quality. In 2002 Tony Hoare, one of the most distinguished contributors to these advances over the past four decades, came to the conclusion that piecemeal efforts are no longer sufficient and proposed a “Grand Challenge” intended to achieve, over 15 years, the production of a verifying compiler: a tool that while processing programs would also guarantee their adherence to specified properties of correctness, robustness, safety, security and other desirable properties. As Hoare sees it, this endeavor is not a mere research project, as might normally be carried out by one team or a small consortium of teams, but a momentous endeavor, comparable in its scope to the successful mission to send a man to the moon or to the sequencing of the human genome.