A Theory of Reactive Components

We present a theory of reactive components. We identify a component by its provided services, and specify the individual services by a guarded-design, which enables one to separate the responsibility of clients from the commitment made by the component, and model the behaviour of a component by a set of failures and divergences. Protocols are introduced to coordinate the interactions between a component and its environment. We adopt the notion of process refinement to formalise the substitutivity of components, and provide a complete proof method based on the notion of simulations. We also study the algebraic properties of component combinators.

[1]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[2]  Ralph-Johan Back,et al.  Refinement Calculus , 1998, Graduate Texts in Computer Science.

[3]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[4]  C. A. R. Hoare,et al.  Laws of programming , 1987, CACM.

[5]  Martin Gudgin Essential Idl: Interface Design for Com , 2000 .

[6]  John Daniels,et al.  UML Components: A Simple Process for Specifying Component-Based Software , 2000 .

[7]  Augusto Sampaio,et al.  A Refinement Algebra for Object-Oriented Programming , 2003, ECOOP.

[8]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[9]  Don Roberts,et al.  Practical analysis for refactoring , 1999 .

[10]  K. Rustan M. Leino Recursive Object Types in a Logic of Object-Oriented Programs , 1998, Nord. J. Comput..

[11]  Ralph-Johan Back,et al.  Class Refinement as Semantics of Correct Object Substitutability , 2000, Formal Aspects of Computing.

[12]  Craig Larman,et al.  Applying UML and patterns , 1997 .

[13]  Massachusett Framingham,et al.  The Common Object Request Broker: Architecture and Specification Version 3 , 2003 .

[14]  Desmond D'Souza,et al.  Objects, Components, and Frameworks with UML: The Catalysis Approach , 1998 .

[15]  Don S. Batory,et al.  Evolving Object-Oriented Designs with Refactorings , 2004, Automated Software Engineering.

[16]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

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

[18]  Don S. Batory,et al.  Evolving object-oriented designs with refactorings , 1999, 14th IEEE International Conference on Automated Software Engineering.

[19]  Martin Fowler. Refactoring Improving the Design of Existing Code , 1999 .