[1] Nenad Medvidovic and Richard N. Taylor. A classification and comparison framework for software architecture description language. IEEE Transactions on Software Engineering, 26(1):70-93, January 2000.
[ bib ]
A good starting point for studying Architectural Description Languages. A survey kind of paper published in the year 2000. Surveys almost all the ADLs. The paper identifies abstractions necessary for describing software architectures. Paper claims that components, connectors and architectural configurations are the basic building blocks for ADL. Paper conceptually defines what it means to be components, connectors and configurations in the context of ADLs. Provides answer the question why these abstractions are necessary to be supported by ADLs? Then paper elaborates on how these abstractions are supported in different ADLs. Paper also discusses tool support for each language.
[2] David Garlan Robert Allen. A case study in architectural modeling: The aegis system. 8th Workshop on Software Specification and Design (IWSD-96), pages 6-15, March 1996.
[ bib ]
This paper applies Wright ADL to model a military application called AEGIS. Familiarity with CSP notation is expected from the reader. This Paper is easier to comprehend if reader has read the paper, Formal basis of Architectural Connection. Application is modeled in Client/Server architectural style. Identifies component in the AEGIS system. (Domain Modeling). Defines behavior in term of three processes i.e., ClientPullT, ServerPushT, and ClientServer. Builds a system by instantiating appropriate number of components. Claims that certain kind of reasoning, for example,  absence of deadlock, and substitutability of components, is possible to be performed.  Satates that lack of dynamic modeling is the weakness of Wright
[3] Medvidovic Richard N. Taylor, Nenad. A component and message based architectural style for gui software. IEEE Transactions on Software Engineering, 22(6):390-406, June 1996.
[ bib ]
This is one of the earliest papers discussing the C2 Architectural style. An architectural style puts constraints on how components are interconnected through connectors. One of the definitions of  software architecture describes architecture as 3Cs i.e. Components, Connectors and Constraints. C2 architectural style provides better insight on what role is played by constraints in defining software architecture configuration.
The paper gives the structure of C2 Component, describes rules for composition of connectors and provides three examples i.e. Petri Net Simulator, Meeting Scheduler and KLAX (video game), which are modeled in C2 style. Argo a tool that checks c2 specification provides critical feedback and that generates c++ code is also discussed in the paper.
[4] Mary Shaw and David Garlan. Characteristics of higher-level languages for software architecture. Technical Report CMU-CS-94-210, School of Computer Science and Software Engineering Institute, Carnegie Mellon University, USA, December 1994.
[ bib

The report identifies the characteristics of an ADL along-with what constructs should be present in an ADL. An ideal ADL should have support for hierarchical definition of a system, components and connectors are the necessary abstractions that must be present in an ADL, should provide reusability of components and connectors, support for static and dynamic configuration, interchange of architectural descriptions, and analysis of architectural descriptions. Report also highlights the weaknesses of using module interconnection languages for describing architectures.

[5] Mary Shaw.  Procedure calls are the assembly language of software interconnection: Connectors deserve first class status. Technical Report CMU-CS-94-107, School of Computer Science and Software Engineering Institute Carnegie Mellon University, January 1994.
[ bib ]

The report argues the case of treating connectors as first class entities like components in an ADL.  Connectors in ADL are responsible for mediating interactions among components. In most of the application connection logic is hidden into components. The main benefit of treating connector like component is that reuse of connection logic is possible.
[6] David Garlan. Acme: An architecture description interchange language. Proceedings of CASCON'97, November 1997.
[ bib ]
The paper is specific to ACME ADL.  ACME is an interchange language that makes possible to inter-operate architectural description. The paper presents a brief survey on different ADLs and tradeoffs present in designing an interchange language. The significance and necessity of ADL abstractions like Components, Ports, Connectors, Roles, System, Representations and Representation maps is discussed along with syntax and semantics for these abstractions. Example description in ACME is also provided in the paper.
[7] David Garlan. Higher order connectors. Workshop on Compositional Software Architectures, January 1998.
[ bib ]

This is an extension of the case of treating connectors are first class entities. Higher order connectors allow us to define new connector from existing one. Asks for the mechanisms should be present in an ADL to define higher order connectors. Situations like secured communication, filtering of messages, compression of communicated data are few examples where higher order connectors are useful.

[8] Judy Bishop. Connectors in configuration programming languages are they necessary? 3rd International Conference on Configurable Distributed System (ICCDS-96), May 1996.
[ bib ]

The paper demands support for explicit mechanisms for defining connectors in programming languages. Also discusses three different approaches to specify connections i.e. implicit connection, pre-defined fixed set of connectors, and user-defined connectors. Discusses pros and cons of implementing connectors in programming languages using these approaches.

[9] Nikunj R. Mehta. Towards a taxonomy of software connectors. In 22nd International Conference on Software Engineering, June 2000.
[ bib ]
<>
This paper classifies and creates a catalogue of software connectors based on types of services offered by them. Communication, Coordination, conversion and facilitation are the main services offered by the connectors. Paper identifies connector types as Procedure calls, Streams, Adaptors, Arbitrators, Distributor, Events, linkage and data accesses.  The paper explains the functionalities of these connectors using examples for each of them.   The paper identifies connectors in the Linux Architecture. The examples of connectors found in the Linux architecure are Process Schedular, File Façade, and Shared Memory. Thes connectors are composed from basic types of connectors.

The paper does not specify rules for conenctor composition.  The paper highlights the benefits of such classification and categorization. There are other disciplines where such classification and categorization failed.

[10] Mary Shaw. Abstractions and implementations for architectural connections. 3rd International Conference on Configurable Distributed System (ICCDS-96), May 1996.
[ bib ]

The paper takes the compiler directed approach for implementing connector. After identifying the types of connectors required for implementing a software system as a set of interconnecting components, the paper proceeds with by enumerating tools/resources/mechanisms  (products) required to implement connector.  A compiler is used to generate the code for connector abstractions. The paper exemplifies the approach by implementing a real time scheduler as a connector.  (RTSchedular)

[11] Nenad Medvidovic. Modeling software architectures in unified modeling language. ACM Transactions on Software Engineering and Methodology, 11(1):2-57, January 2002.
[ bib ]
This paper discusses use of UML for describing architectures. Architectural abstractions are not directly supported by UML. Paper first tries to use UML as it is for modeling C-2  style application.  Architecture of meeting scheduler, a candidate problem for architectural modeling, is implemented using UML.

This exercise highlights certain limitations.In the second approach, UML stereotypes are defined to implement architectural abstractions in C2-ADL, Wright, and Rapide. Stereotypes defined for this purpose constrains modeling capability of UML metaclasses.

The paper concludes with that architectural abstractions are not effectively supported by UML.  To support architectural abstractions effectively, UML is required to be extended rather than constrained.  Approach of extending UML limits use of UML tools for architectural modeling.  It will be an interesting  to redo the same exercise with UML 2.0.


[12] Peyman Oreizy. On the role of connectors in modeling and implementing software architecture. Technical Report 98-04, Department of Information and Computer Science, University of California, Irvine, Feb. 1998.
[ bib ]
[13] Mary Shaw. Abstractions for software architectures and tools to support them. IEEE Transactions on Software Engineering, 21(4):314-335, April 1995.
[ bib ]

The paper describes a connector oriented architectural description language. Syntax and semantics of the UniCon constructs are defined in the paper. The semantics for connector is well defined. UniCon supports a library of predefined connector.  Connector composition and user defined connectors are not allowed.

[14] Eric M. Dashofy. An infrastructure for the rapid development of xml based architecture description language. In Proceedings of the 24th International Conference on Software Engineering (ICSE-2002), 2002.
[ bib ]

The paper describes XML based ADL at XML schema level along-with the tool support for such language.


This file has been generated by bibtex2html 1.74