A Coordination Perspective on Software Architecture:
Towards a Design Handbook for Integrating Software Components

by

Chrysanthos Nicholas Dellarocas

Diploma of Electrical Engineering

National Technical University of Athens, 1989

S.M., Electrical Engineering and Computer Science

Massachusetts Institute of Technology, 1991


Submitted to the

Department of Electrical Engineering and Computer Science

in partial fulfillment of the requirements for the degree of

Doctor of Philosophy

at the

Massachusetts Institute of Technology

February 1996

Massachusetts Institute of Technology 1996


Abstract

This thesis argues that many of the difficulties associated with building software applications by integrating existing components are related to a failure of current programming languages to recognize component interconnection as a separate design problem, orthogonal to the specification and implementation of a component's core function.

It proposes SYNOPSIS, an architectural description language which supports two orthogonal abstractions: activities, for representing the functional pieces of an application, and dependencies, for describing their interconnection relationships. Coordination processes, defined as an attribute of dependencies, describe implementations of interconnection protocols. Executable systems can be generated from SYNOPSIS descriptions by successively replacing activities with more specialized versions and managing dependencies with coordination processes, until all elements of the description are specific enough for code generation to take place.

Furthermore, it proposes a "design handbook", consisting of a vocabulary of common dependency types and a design space of associated coordination processes. The handbook is based on the insight that many software interconnection relationships can be described using a relatively narrow set of concepts orthogonal to the problem domain of most applications, such as resource flows, resource sharing, and timing dependencies.

A prototype component-based application development tool called SYNTHESIS was developed. SYNTHESIS maintains a repository of increasingly specialized dependency types, based on the proposed design handbook. It assists the generation of executable applications by successive semi-automatic transformations of their SYNOPSIS descriptions.

A set of four experiments is described. Each experiment consisted in specifying a test application as a SYNOPSIS diagram, associating application activities with components exhibiting various mismatches, and using SYNTHESIS to assemble these components into executable systems. SYNTHESIS was able to exploit its dependencies repository in order to resolve a wide range of interoperability and architectural mismatches and integrate independently developed components into the test applications, with minimal or no need for additional manually-written code. It was able to reuse a single SYNOPSIS architectural description in order to generate versions of a test application for two different execution environments. Finally, it was able to suggest various alternative architectures for integrating each component set into its corresponding application.

Thesis Supervisor: Thomas W. Malone

Title: Patrick J. McGovern


Acknowledgments

This thesis has been the focus of the last three and a half years of my life. As I am getting near the end, I would like to say thanks to all the people and places that have been around me during this time and, each in their own big or small way, have contributed to making this work possible.

Completing a thesis is, first and foremost, an academic exercise. It would not have been possible without a kind and supportive academic advisor. Many thanks to Professor Tom Malone for inviting me to join his research group, for giving me all the freedom and resources I needed to select my topic, and for never losing his faith in me (even during periods when I had lost mine). I am grateful to the members of my thesis committee, Professors Hal Abelson and Peter Szolovits, for their constructive comments and suggestions. Bob Halperin, the executive director of the MIT Center for Coordination Science, deserves my thanks for helping create a stimulating research environment, and for signing each and every one of my research assistantship appointments with a smile. Thanks to George Wyner, my fellow doctoral candidate at CCS, for numerous stimulating conversations (and for being such a nice fellow). Thanks to John Quimby for bringing to my attention the capabilities of the Visio program, one of the crucial components of my prototype implementation. A big hug to Meg Christian, our secretary, for bringing that extra personal touch to the place, and for her very special interest and support (not to mention her wonderful decoration of my office door). Thanks to the ladies of the LCS Reading Room, for creating a peaceful and resourceful environment where most of my literature search took place, and many of my ideas took form. Finally, my warmest thanks to my family for teaching me the value of a good education and for always encouraging my academic pursuits.

Completing a thesis is a balancing act. In my case, I was fortunate to be surrounded by numerous good friends who helped me maintain a (relative) balance during my Ph.D. years and make it through with (relative) sanity. Many thanks to Peter Kofinas, my roommate for the last three years, for being the best approximation to the ideal roommate I have ever met. Thanks to the faithful members of the mailing list flex@mit.edu for motivating me to stay in shape (and for listening to my nonsense during our workouts). Thanks to my close friends Stelios Smirnakis and Michalis Bletsas for always being there for me when I needed them. Besos fuertes to Marina Cocconi for putting up with my doctoral disorders and for being the perfect travel companion to a number of wild and exotic places. A warm kiss to Heleni Vastardis for staying close despite my moods and for being my inseparable Merengue dance partner on many unforgettable occasions.

Finally, completing a thesis is only one part of a person's life and interests. I was lucky to spend my graduate years at MIT and take advantage of its inexhaustible resources and opportunities for learning. I am grateful to MIT for being such a dynamic, open-minded place that was able to satisfy all my thirst for knowledge, without ever making me to go to that other school in Cambridge to take a class it did not offer. Special thanks must go to the Sloan School of Management, for allowing me to complement my technical education, and to the Spanish Language Section for enabling me to fulfill uno de los suenos de mi vida.

Last, but not least, thanks to Boston and its wonderful international student community for treating me so well during the five and a half years I have spent here. As I am preparing to move on to the next stage of my life, I am sure I'll miss you all.


Two roads diverged in a yellow wood,

And sorry I could not travel both

And be one traveler, long I stood

And looked down as far as I could

To where it bent in the undergrowth;

Robert Frost - The Road Not Taken


Continue on to Chapter 1