A Logical Basis for Component-Oriented Software and Systems Engineering

A theory for the systematic development of distributed interactive software systems constructed in terms of components requires a basic system model and description techniques supporting specific views and abstractions of systems. Typical system views are the interface, the distribution, or the state transition view. We show how to represent these views by mathematics and logics. The development of systems consists in working out these views leading step by step to implementations in terms of sets of distributed, concurrent, interacting state machines. For large systems, the development is carried out by refinement through several levels of abstraction. We formalize the typical steps of the development process and express and justify them directly in logic. In particular, we treat three types of refinement steps: horizontal refinement which stays within one level of abstraction, vertical refinement addressing the transition from one level of abstraction to another, and implementation by glass box refinement. We introduce refinement relations to capture these three dimensions of the development space. We derive verification rules for the refinement steps and show the modularity of the approach.

[1]  Manfred Broy,et al.  Towards a Mathematical Concept of a Component and its Use , 1997, Softw. Concepts Tools.

[2]  Ralph-Johan Back,et al.  Refinement Calculus, Part I: Sequential Nondeterministic Programs , 1989, REX Workshop.

[3]  Bernhard Schätz,et al.  Consistent Graphical Specification of Distributed Systems , 1997, FME.

[4]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[5]  Manfred Broy,et al.  SERVICE-ORIENTED SYSTEMS ENGINEERING: SPECIFICATION AND DESIGN OF SERVICES AND LAYERED ARCHITECTURES , 2005 .

[6]  Manfred Broy,et al.  Mathematical System Models as a Basis of Software Engineering , 1995, Computer Science Today.

[7]  J. Michael Spivey,et al.  Understanding Z : A specification language and its formal semantics , 1985, Cambridge tracts in theoretical computer science.

[8]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[9]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[10]  M. Broy,et al.  Summary of Case Studies in FOCUS-a Design Method for Distributed Systems 1 , 2003 .

[11]  Bernhard Rumpe,et al.  Formale Methodik des Entwurfs verteilter objektorientierter Systeme , 1996, Datenbank Rundbr..

[12]  Manfred Broy The 'Grand Challenge' in Informatics: Engineering Software-Intensive Systems , 2006, Computer.

[13]  J. Zwiers,et al.  Assertional Data Reification Proofs: Survey and Perspective , 1991 .

[14]  Luca Aceto,et al.  Adding Action Refinement to a Finite Process Algebra , 1991, Inf. Comput..

[15]  Tobias Nipkow,et al.  A Proof Assistant for Higher-Order Logic , 2002 .

[16]  Peter B. Andrews An introduction to mathematical logic and type theory - to truth through proof , 1986, Computer science and applied mathematics.

[17]  C. A. R. Hoare,et al.  Proof of correctness of data representations , 1972, Acta Informatica.

[18]  Xiaolei Qian,et al.  Correct Architecture Refinement , 1995, IEEE Trans. Software Eng..

[19]  Manfred Broy,et al.  The Specification of System Components by State Transition Diagrams , 2003 .

[20]  Manfred Broy Interaction and Realizability , 2007, SOFSEM.

[21]  Manfred Broy Refinement of time , 2001, Theor. Comput. Sci..

[22]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[23]  Martín Abadi,et al.  Composing Specifications , 1989, REX Workshop.

[24]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[25]  William B. Ackerman,et al.  Scenarios: A Model of Non-Determinate Computation , 1981, ICFPC.

[26]  Martin Wirsing,et al.  Extraction of Structured Programs from Specification Proofs , 1999, WADT.

[27]  Manfred Broy,et al.  The Design of Distributed Systems - An Introduction to FOCUS-revised version , 1992 .

[28]  TUM-I 9729 Mai,et al.  The Specification of System Components by State Transition Diagrams * ) , 1997 .

[29]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[30]  Manfred Broy,et al.  A formal model of services , 2007, TSEM.

[31]  Bernhard Möller,et al.  Algebraic structures for program calculation , 1999 .

[32]  Mary Shaw,et al.  A field guide to boxology: preliminary classification of architectural styles for software systems , 1997, Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97).

[33]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[34]  Manfred Broy,et al.  Relating Time and Causality in Interactive Distributed Systems , 2010, European Review.

[35]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[36]  Bernhard Rumpe,et al.  Towards a Precise Semantics for Object-Oriented Modeling Techniques , 1997, ECOOP Workshops.

[37]  Manfred Broy,et al.  Modeling layered distributed communication systems , 2005, Formal Aspects of Computing.

[38]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[39]  Nancy A. Lynch,et al.  A Proof of the Kahn Principle for Input/Output Automata , 1989, Inf. Comput..

[40]  Ivar Jacobson,et al.  The unified modeling language for object-oriented development , 1996 .

[41]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[42]  Ralph-Johan Back,et al.  Refinement Calculus, Part II: Parallel and Reactive Programs , 1989, REX Workshop.

[43]  Manfred Broy,et al.  Algebraic Implementations Preserve Program Correctness , 1986, Sci. Comput. Program..

[44]  Manfred Broy Compositional refinement of interactive systems , 1997, JACM.

[45]  Manfred Broy From States to Histories , 1999, WADT.

[46]  Martín Abadi,et al.  The Existence of Refinement Mappings , 1988, LICS.

[47]  Murali Sitaraman,et al.  Foundations of component-based systems , 2000 .

[48]  Maria Spichkova Refinement-Based Verification of Interactive Real-Time Systems , 2008, Electron. Notes Theor. Comput. Sci..