Characteristics of Higher-Level Languages for Software Architecture.

Abstract : As the size and complexity of software systems increases, the design and specification of overall system structure-or software architecture-emerges as a central concern. Architectural issues include the gross organization of the system, protocols for communication and data access, assignment of functionality to design elements, and selection among design alternatives. Currently system designers have at their disposal two primary ways of defining software architecture: they can use the modularization facilities of existing programming languages and module interconnection languages; or they can describe their designs using informal diagrams and idiomatic phrases (such as 'client-server organization'). In this paper we explain why neither alternative is adequate. We consider the nature of architectural description as it is performed informally by systems designers. Then we show that regularities in these descriptions can form the basis for architectural description languages. Next we identify specific properties that such languages should have. Finally, we illustrate how current notations fail to satisfy those properties.

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

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

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

[4]  Victor Mak Connection: an inter-component communication paradigm for configurable distributed systems , 1992, CDS.

[5]  Marc H. Graham,et al.  The Domain-Specific Software Architecture Program , 1992 .

[6]  Walter F. Tichy Software development control based on module interconnection , 1979, ICSE 1979.

[7]  Dines Bjørner,et al.  VDM '90 VDM and Z — Formal Methods in Software Development , 1990, Lecture Notes in Computer Science.

[8]  David Garlan,et al.  Formalizing Architectural Connection , 1994, ICSE.

[9]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..

[10]  Mario R. Barbacci,et al.  Building distributed Ada applications from specifications and functional components , 1991, TRI-Ada '91.

[11]  Dick Pountain,et al.  Occam II , 1989 .

[12]  Robin Milner,et al.  Definition of standard ML , 1990 .

[13]  Mary Shaw,et al.  Experience with a Course on Architectures for Software Systems , 1992, CSEE.

[14]  Peter Lee,et al.  Advanced Languages for Systems Software: The Fox Project in 1994 , 1994 .

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

[16]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975 .

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

[18]  Mary Shaw Heterogeneous design idioms for software architecture , 1991, Proceedings of the Sixth International Workshop on Software Specification and Design.

[19]  David Garlan,et al.  Formalizing architectural connection , 1994, Proceedings of 16th International Conference on Software Engineering.

[20]  David Notkin,et al.  Reconciling environment integration and software evolution , 1992, TSEM.

[21]  P. Kandela Israel , 1989, The Lancet.

[22]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1976, IEEE Trans. Software Eng..

[23]  David Garlan,et al.  Beyond definition/use: architectural interconnection , 1994 .

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

[25]  Jeff Kramer Configuration programming-a framework for the development of distributable systems , 1990, COMPEURO'90: Proceedings of the 1990 IEEE International Conference on Computer Systems and Software Engineering@m_Systems Engineering Aspects of Complex Computerized Systems.

[26]  David Garlan,et al.  Formal Specifications as Reusable Frameworks , 1990, VDM Europe.

[27]  Henry Ledgard,et al.  Reference Manual for the ADA® Programming Language , 1983, Springer New York.

[28]  Mary Shaw Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status , 1993, ICSE Workshop on Studies of Software Design.

[29]  David Garlan,et al.  Formalizing Design Spaces: Implicit Invocation Mechanisms , 1991, VDM Europe.

[30]  Jean D. etc. Ichbiah Reference Manual for the ADA Programming Language , 1983 .

[31]  Brian W. Beach,et al.  Connecting software components with declarative glue , 1992, International Conference on Software Engineering.

[32]  David Garlan,et al.  Adding implicit invocation to traditional programming languages , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

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

[34]  David Garlan,et al.  Beyond Definition/Use: Architectural Interconnection , 1994, Workshop on Interface Definition Languages.

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

[36]  Maurice J. Bach The Design of the UNIX Operating System , 1986 .

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