Predictable Component Architectures Using Dependent Finite State Machines

The software architect is concerned with both functional and non-functional design. An important task in functional design is the adaptation of a component’s provided interface for use by other components. In non-functional analysis the focus is rather on the prediction and reasoning about reliability and performance properties. We present a method for automatic adaptation, based upon parameterised contracts. This concept extends the notion of design-by-contract from precondition, postcondition and invariant assertions on objects to dynamic protocol descriptions for required and provided interfaces of components. We introduce a novel state machine based model, called dependent finite state machines (DFSMs), and show how DFSMs provide a natural framework for both automatic component adaptation and computational reasoning about timing properties of components and architectures. We use the well-known production cell example for demonstrating our architectural description language.

[1]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[2]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[3]  Jean-Marc Jézéquel,et al.  Making Components Contract Aware , 1999, Computer.

[4]  Richard G. Hamlet,et al.  Theory of software reliability based on components , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[5]  Ralf H. Reussner Parametrisierte Verträge zur Protokolladaption bei Software-Komponenten , 2001 .

[6]  Daniel M. Yellin,et al.  Protocol specifications and component adaptors , 1997, TOPL.

[7]  Roger C. Cheung,et al.  A User-Oriented Software Reliability Model , 1978, IEEE Transactions on Software Engineering.

[8]  Wojciech Zielonka,et al.  The Book of Traces , 1995 .

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

[10]  Ralf H. Reussner,et al.  Architectures of Enterprise Systems: Modelling Transactional Contexts , 2002, Component Deployment.

[11]  Ralf H. Reussner,et al.  Generating Adapters for Concurrent Component Protocol Synchronisation , 2002, FMOODS.

[12]  Heinz W. Schmidt,et al.  Trustworthy components - compositionality and prediction , 2003, J. Syst. Softw..

[13]  William F. Gilreath,et al.  Concurrency State Models and Java Programs , 2000, Parallel Distributed Comput. Pract..

[14]  Ye Wu,et al.  An architecture-based software reliability model , 1999, Proceedings 1999 Pacific Rim International Symposium on Dependable Computing.

[15]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[16]  Ralf H. Reussner,et al.  Reliability prediction for component-based software architectures , 2003, J. Syst. Softw..

[17]  Bernd J. Krämer,et al.  Automated Verification of Function Block Based Industrial Control Systems , 1999, Electron. Notes Theor. Comput. Sci..

[18]  Bart Wydaeghe. Pacosuite Component Composition Based on Composition Patterns and Usage Scenarios , 2001 .

[19]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[20]  Svend Frølund,et al.  Quality-of-service specification in distributed object systems , 1998, Distributed Syst. Eng..

[21]  Claus Lewerentz,et al.  Formal Development of Reactive Systems: Case Study Production Cell , 1995 .

[22]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[23]  Robert J. Allen A formal approach to software architecture , 1997 .

[24]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[25]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .