A Coordination Perspective on Software System Design

In large software systems the identification and p roper management of interdependencies among the pieces of a system becomes a ce ntral concern. Nevertheless, most traditional programming languages and tools focus on representing components, leaving the description and management of interdependencies among components implicit, or distributed among the c omponents. This paper identifies a number of problems with this approach and proposes a new perspective for designing software, which elevates the representation and management of component interdependencies to a distinct design problem. A core element of the perspective is the development of design handbooks, which catalogue the most common k inds of interconnection relationships encountered in software systems, as well as sets of alternative coordination protocols for managing them. The paper presents SYNTHESIS, a software development environment based o n this perspective. A number of experiments performed using SYNTHESIS as well as s ome directions for future research are discussed.

[1]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[2]  Georges G. Grinstein,et al.  The X window system , 1988, SIGGRAPH '88.

[3]  David C. Luckham,et al.  An Event-Based Architecture Definition Language , 1995, IEEE Trans. Software Eng..

[4]  Kevin Crowston,et al.  Tools for inventing organizations: toward a handbook of organizational processes , 1993, [1993] Proceedings Second Workshop on Enabling Technologies@m_Infrastructure for Collaborative Enterprises.

[5]  Rubén Prieto-Díaz,et al.  Software reusability , 1993 .

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

[7]  Paul Clements,et al.  Features of Architecture Representation Languages , 1994 .

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

[9]  Kevin Crowston,et al.  Using a Process Handbook to Design Organizational Processes , 1994 .

[10]  F. W. Scheifler,et al.  X Window system: C Library and protocol reference , 1988 .

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

[12]  Aaas News,et al.  Book Reviews , 1893, Buffalo Medical and Surgical Journal.

[13]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[14]  T. Capers Jones Reusability in Programming: A Survey of the State of the Art , 1984, IEEE Transactions on Software Engineering.

[15]  Atul Prakash,et al.  DistEdit: a distributed toolkit for supporting multiple group editors , 1990, CSCW '90.

[16]  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.

[17]  Kevin Crowston,et al.  The interdisciplinary study of coordination , 1994, CSUR.