Composing heterogeneous software architectures

A persistent problem in software engineering is how to put complex software systems together out of smaller subsystems, the problem of software composition. The emergence of software architectures and architectural styles has introduced a higher level of abstraction at which we can create and compose software systems. We examine the problem of providing formal semantics to the composition of different architectural styles within software systems, i.e. the problem of composing heterogeneous architectures. We describe a model of pure styles, and a model of their composition. Our model of pure styles is highlighted by a uniform representation for describing many different styles. An architectural style space of major conceptual features is introduced which allows new styles to be rapidly incorporated into the model, including commercial-off-the-shelf packages which embody a specific style(s). We show a disciplined approach to the process of architectural composition , and show how architecture mismatches can be generated during composition. Finally, we describe a prototype tool which is built on top of the models. In the following sections, we present a high-level introduction to the field of software architectures and style composition, and a concise description of the problem which we examined for the dissertation. We also summarize the steps in our approach towards solving the problem. A persistent problem in computer science is how to put software systems together out of smaller subsystems, the problem of software composition. There are many levels of granularity at which this problem can be tackled. For example, some of the earliest software engineers dealt with systems at the machine language or assembly language level of granularity. Succeeding engineers addressed the composition problem at a coarser granularity using higher level programming languages. The emergence of software architectures and architectural styles has introduced a still coarser level of granularity (and higher level of abstraction) at which we can create and compose software systems. One of the earliest discussions of software composition at the architec

[1]  David Garlan,et al.  Formal Connectors , 1994 .

[2]  Leigh R. Power Post-facto integration technology: new discipline for an old practice , 1990, Systems Integration '90. Proceedings of the First International Conference on Systems Integration.

[3]  Len Bass,et al.  Toward Deriving Software Architectures from Quality Attributes , 1994 .

[4]  Mukesh Singhal,et al.  Advanced Concepts In Operating Systems , 1994 .

[5]  Jifeng He,et al.  Specification, analysis and refinement of interactive processes , 1990 .

[6]  Will Tracz,et al.  Domain-specific software architecture (DSSA) frequently asked questions (FAQ) , 1994, SOEN.

[7]  A. Udaya Shankar,et al.  A Theory of Interfaces and Modules I-Composition Theorem , 1994, IEEE Trans. Software Eng..

[8]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[9]  Erik G. Nilsson,et al.  Aspects of systems integration , 1990, Systems Integration '90. Proceedings of the First International Conference on Systems Integration.

[10]  B. Boehm Control. Honeywell Technology Center, Minneapolis, MN. [GACE95] C. Gacek, A. Abd-Allah, B. Clark, B. Boehm. "On the Definition of Software Architecture", , 1996 .

[11]  M. Shaw Larger scale systems require higher-level abstractions , 1989, IWSSD '89.

[12]  David Garlan,et al.  Architectural Mismatch or Why it's hard to build systems out of existing parts , 1995, 1995 17th International Conference on Software Engineering.

[13]  Jane Sinclair,et al.  Introduction to formal specification and Z , 1991, Prentice Hall International Series in Computer Science.

[14]  John Nicholls,et al.  Z notation , 1994 .

[15]  Xiaoping Jia ZTC: A Type Checker for Z User's Guide , 1994 .

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

[17]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975, IEEE Transactions on Software Engineering.

[18]  Xiaolei Qian,et al.  Correctness and composition of software architectures , 1994, SIGSOFT '94.

[19]  Anthony Hall Specifying and Interpreting Class Hierarchies in Z , 1994, Z User Workshop.

[20]  Adrian Nye X protocol reference manual , 1990 .

[21]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[22]  Rubén Prieto-Díaz,et al.  Module interconnection languages , 1986, J. Syst. Softw..

[23]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[24]  Gregory D. Abowd,et al.  Using style to understand descriptions of software architecture , 1993, SIGSOFT '93.

[25]  Barry Boehm,et al.  Composing heterogeneous software architectures , 1996 .

[26]  V. Venugopal Integrated tool support in object-based environments , 1990, Systems Integration '90. Proceedings of the First International Conference on Systems Integration.

[27]  LamportLeslie Time, clocks, and the ordering of events in a distributed system , 1978 .

[28]  J. Michael Spivey Specifying a real-time kernel , 1990, IEEE Software.

[29]  George J. Milne Formal Specification and Verification of Digital Systems , 1994 .

[30]  David Garlan,et al.  Exploiting style in architectural design environments , 1994, SIGSOFT '94.

[31]  Dan Harkey,et al.  Essential client/server survival guide , 1994 .

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

[33]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[34]  Walter Royce,et al.  TRW's Ada Process Model for incremental development of large software systems , 1990, [1990] Proceedings. 12th International Conference on Software Engineering.

[35]  Jeremy H. C. Kuo Open architecture and tool integration of software development environments , 1990, Systems Integration '90. Proceedings of the First International Conference on Systems Integration.

[36]  Steve Vestal,et al.  Domain-Specific Software Architectures for Guidance, Navigation and Control , 1996, Int. J. Softw. Eng. Knowl. Eng..