Advanced research on the description of distributed systems and on design calculi for software and hardware is presented in this volume. Distinguished researchers give an overview of the latest state of the art.
This book presents reflections on the occasion of 20 years on the KeY project that focuses on deductive software verification. Since the inception of the KeY project two decades ago, the area of deductive verification has evolved considerably. Support for real world programming languages by deductive program verification tools has become prevalent. This required to overcome significant theoretical and technical challenges to support advanced software engineering and programming concepts. The community became more interconnected with a competitive, but friendly and supportive environment. We took the 20-year anniversary of KeY as an opportunity to invite researchers, inside and outside of the project, to contribute to a book capturing some state-of-the-art developments in the field. We received thirteen contributions from recognized experts of the field addressing the latest challenges. The topics of the contributions range from tool development, effciency and usability considerations to novel specification and verification methods. This book should offer the reader an up-to-date impression of the current state of art in deductive verification, and we hope, inspire her to contribute to the field and to join forces. We are looking forward to meeting you at the next conference, to listen to your research talks and the resulting fruitful discussions and collaborations.
Computer Science has made considerable progress in making complex software and hardware systems more reliable. This is a result of practical experience and continuous process improvement on one side and of a better and deeper understanding of the fundamentals of software and system engineering on the other side. Recent encouraging trends are a strong integration of formal techniques with practical industrial development methods and more advanced support tools such as modelling, verification, and model-checking support systems. This active area of research has a relatively short term horizon with respect to transferring technology to industrial applications. This volume is focusing on techniques and the scientific basis for calculation-based development of software and hardware systems as a foundation for advanced methods and tools for software and system engineering. This includes topics of specification, description, methodology, refinement, verification, and implementation. The volume presents new trends and insights reflecting the current state of the art in the scientific foundation of these techniques, since such a foundation is an indispensable prerequisite for advanced development methods.
Logic Programming was effectively defined as a discipline in the early seventies. It is only during the early to mid eighties that books, conferences and journals devoted entirely to Logic Programming began to appear. Consequently, much of the work done during this first crucial decade in Marseilles, Edinburgh, London, Budapest and Stockholm (to name a few) is often overlooked or difficult to trace. There are now two main regular conferences on Logic Programming, and at least five journals: The Journal of Logic Programming, New Generation Computing, Automated Reasoning, The Journal of SJmbolic Computation, and Future Generation Computer Systems. Logic Programming, however, has its roots in Automated Theorem Proving and via the expanding area of expert systems, strongly influences researchers in such varied fields as Civil Engineering, Chemistry, Law, etc. Consequently, many papers related to Logic Programming appear in a wide variety of journals and proceedings of conferences in other disciplines. This is particularly true of Computer Science where a revolution is taking place in hardware design, programming languages, and more recently databases. One cannot overestimate the importance of such a bibliography.
Sir Tony Hoare has had an enormous influence on computer science, from the Quicksort algorithm to the science of software development, concurrency and program verification. His contributions have been widely recognised: He was awarded the ACM’s Turing Award in 1980, the Kyoto Prize from the Inamori Foundation in 2000, and was knighted for “services to education and computer science” by Queen Elizabeth II of England in 2000. This book presents the essence of his various works—the quest for effective abstractions—both in his own words as well as chapters written by leading experts in the field, including many of his research collaborators. In addition, this volume contains biographical material, his Turing award lecture, the transcript of an interview and some of his seminal papers. Hoare’s foundational paper “An Axiomatic Basis for Computer Programming”, presented his approach, commonly known as Hoare Logic, for proving the correctness of programs by using logical assertions. Hoare Logic and subsequent developments have formed the basis of a wide variety of software verification efforts. Hoare was instrumental in proposing the Verified Software Initiative, a cooperative international project directed at the scientific challenges of large-scale software verification, encompassing theories, tools and experiments. Tony Hoare’s contributions to the theory and practice of concurrent software systems are equally impressive. The process algebra called Communicating Sequential Processes (CSP) has been one of the fundamental paradigms, both as a mathematical theory to reason about concurrent computation as well as the basis for the programming language occam. CSP served as a framework for exploring several ideas in denotational semantics such as powerdomains, as well as notions of abstraction and refinement. It is the basis for a series of industrial-strength tools which have been employed in a wide range of applications. This book also presents Hoare’s work in the last few decades. These works include a rigorous approach to specifications in software engineering practice, including procedural and data abstractions, data refinement, and a modular theory of designs. More recently, he has worked with collaborators to develop Unifying Theories of Programming (UTP). Their goal is to identify the common algebraic theories that lie at the core of sequential, concurrent, reactive and cyber-physical computations.
The notion that program design is an engineering task alleviating the software crisis has been with us for about a decade. With the recognized advantages of obeying to certain software design disciplines, we are approaching the era of enforced system development standards which will ensure that end products will meet rigorous design requirements. On the one hand, advances in system architecture fUrther the application of system development standards to software and firmware design and production. On the other hand, the growth in complexity of future system architectures, in particular distri buted systems with their special problems of cooperation and parallelism, necessitate the use of rigorous specification and design techniques. In addition to hampering the design process, the lack of engineering techniques hinders research. In many cases, trial designs that are presented in abstract and informal terms do not force the de signer to face the full problem spectrum, and therefore may not sufficiently provide insight into the design process. To prepare for the forthcoming discipline and to provide a snapshot view of recent advances in software and firmware engineering, we organized in June of 1979 a seminar entitled: "The Use of Formal Specification of Software and Firmware". The seminar took place at the Heinrich-Hertz-Institute, Berlin, and attracted over 60 participants, most of them from the industry.
This book constitutes revised papers of the Third International Workshop on approaches and Applications of Inductive Programming, AAIP 2009, held in Edinburgh, UK, in September 2009. The 7 full papers included in this volume were carefully reviewed and selected. The book also contains two invited papers.
Here, the authors propose a method for the formal development of parallel programs - or multiprograms as they prefer to call them. They accomplish this with a minimum of formal gear, i.e. with the predicate calculus and the well- established theory of Owicki and Gries. They show that the Owicki/Gries theory can be effectively put to work for the formal development of multiprograms, regardless of whether these algorithms are distributed or not.
This book constitutes the refereed proceedings of the Second International Conference on Foundations of Software Science and Computation Structures, FOSSACS '99, held in Amsterdam, The Netherlands in March 1999 as part of ETAPS'99. The 18 revised full papers presented were carefully selected from a total of 40 submissions. Also included are three invited papers. The central issues of the papers are theories and methods which suport the specification, transformation, verification and analysis of programs and software systems.
Workflow management systems (WFMS) are enjoying increasing popular ity due to their ability to coordinate and streamline complex organizational processes within organizations of all sizes. Organizational processes are de scriptions of an organization's activities engineered to fulfill its mission such as completing a business contract or satisfying a specific customer request. Gaining control of these processes allows an organization to reengineer and improve each process or adapt them to changing requirements. The goal of WFMSs is to manage these organizational processes and coordinate their execution. was demonstrated in the first half The high degree of interest in WFMSs of the 1990s by a significant increase in the number of commercial products (once estimated to about 250) and the estimated market size (in combined $2 billion in 1996. Ensuing maturity product sales and services) of about is demonstrated by consolidations during the last year. Ranging from mere e-mail based calendar tools and flow charting tools to very sophisticated inte grated development environments for distributed enterprise-wide applications and systems to support programming in the large, these products are finding an eager market and opening up important research and development op portunities. In spite of their early success in the market place, however, the current generation of systems can benefit from further research and develop ment, especially for increasingly complex and mission-critical applications.