From Software Architectures to Coordination Programming: Bridging the Gap Between Architecture Specification and Implementation Katerina Ioannou, Odysseas Papapetrou, Aristos Stavrou and George A. Papadopoulos Department of Computer Science University of Cyprus 75 Kallipoleos Str, P.O.B. 20537 CY-1678 Nicosia Cyprus E-Mail: {cs98ki1,cs98po1,cs98sa2,george}@cs.ucy.ac.cy Tel.: +357-22-892242 Fax: +357-22-339062 Abstract Software Architectures have evolved considerably over the last decade and, partly also due to the significant progress made in Component-Based development, have become a major subfield of Software Engineering. The associated Architecture Description Languages (ADLs) field has also evolved considerably, providing numerous approaches to the formal specification and representation of architectural designs. However, relatively little work has been done in how architectural representations can be mapped to implementation code. In this paper we present a methodology for mapping the code written in ACME, a state-of-the-art ADL, down to executable code. The mapping process involves the use of the coordination paradigm. We show how the core concepts of ACME can be mapped to equivalent executable code written in the coordination language Manifold. The result is the generation of skeletal code which captures and implements the most important system implementation properties of the translated architectural design, thus assisting significantly the programmer in filling in the rest of the needed code. Keywords: Coordination Languages and Models; Software Architectures; ADLs, Distributed Software Composition; Reusability; Component-Based System Integration. 1 Introduction Software architectures ([3]) have evolved considerably over the last decade and, partly also due to the significant progress made in Component-Based development, have become a major subfield of Software Engineering. Software architectures are nowadays playing an important role in software development, not least because of the increasing complexity of software systems, covering both functional and non- functional aspects. Tightly coupled with the progress in Software Architectures is the development of Architecture Description Languages (ADLs). ADLs ([5]) provide numerous