Exposing the skeleton in the coordination closet

  • Jeff Kramer
  • Jeff Magee
Invited Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1282)


One of the ways in which we cope with large and complex systems is to abstract away some of the detail, considering them at an architectural level as compositions of interacting components. To this end, the variously termed Coordination, Configuration and Architectural Description Languages (ADL) facilitate description, comprehension and reasoning at that level, providing a clean separation between individual component behaviour and their interaction in a software architecture. However, in the search to provide sufficient detail for reasoning, analysis or construction, many approaches are in danger of obscuring the essential structural aspect of the architecture, thereby losing the benefit of abstraction. In this paper we argue for the use of a concise and simple language explicitly designed for describing architectural structures. This can be used to provide the "skeleton" upon which to add the particular details of concern when necessary. Systems described in this way have an explicit and exposed skeleton which, being shared, helps to maintain consistency between the various elaborated views. To illustrate our approach, we use the Darwin architectural description language and the Tracta approach for compositional reachability analysis.


Software Engineer Software Architecture Safety Property Label Transition System Liveness Property 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. AG94.
    Allen R. and Garlan D., Formalizing Architectural Connection, (Proc. of 16th International Conference on Software Engineering (ICSE 16), Sorrento, May 1994, 71–80.Google Scholar
  2. Bar 93.
    Barbacci M. et al, Durra: a structure description language for developing distributed applications, IEE Software Engineering Journal, Vol. 8, No. 2, March 1993, pp83–94.Google Scholar
  3. CK96a.
    Cheung S.C. and Kramer J., Context Constraints for Compositional Reachability Analysis, ACM Transactions on Software Engineering Methodology TOSEM, 5 (4), (1996), 334–377.CrossRefGoogle Scholar
  4. CK96b.
    Cheung S.C. and Kramer J., Checking Subsystem Safety Properties in Compositional Reachability Analysis, (Proc. of 18th IEEE Int. Conf. on Software Engineering (ICSE-18), Berlin, 1996), 144–154.Google Scholar
  5. CGK97.
    Cheung S.C., Giannakopoulou D., and Kramer J., Verification of Liveness Properties using Compositional Reachability Analysis, accepted for (6th European Software Engineering Conference / 5th ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 97), Zurich, Sept. 1997).Google Scholar
  6. Dij72.
    Dijkstra E.W., The Humble Programmer, Comms. Of the ACM, 15, 10, 859–866, Oct. 1972.CrossRefGoogle Scholar
  7. GKC97.
    Giannakopoulou D., Kramer J. and Cheung S.C., TRACTA: An Environment for Analysing the Behaviour of Distributed Systems, (Proc. of 1st ACM SIGPLAN Workshop on Automatic Analysis of Software (AAS `97)), Paris, January 1997, 113–126.Google Scholar
  8. GP95.
    Garlan D. and Perry D.E., Introduction to the Special Issue on Software Architecture, IEEE Transactions on Software Engineering, 21 (4), April 1995, pp 269–274.Google Scholar
  9. Go195.
    Goldman, K.J., The Programmers' Playground: I/O Abstraction for UserConfigurable Distributed Applications, IEEE Trans. on Software Eng., SE 21 (9), (1995), 735–746.Google Scholar
  10. Gra91.
    Graves, H., Lockheed Environment for Automatic Programming, Proc. of KBSE 91, 6th IEEE Knowledge Based Software Engineering Conference, 1991, pp 68–76.Google Scholar
  11. Hoa85.
    Hoare, C.A.R., Communicating Sequential Processes, Prentice-Hall, Englewood Cliffs, N.J., 1985.Google Scholar
  12. KMS84.
    Kramer J., Magee J. and Sloman M.S. A Software Architecture for Distributed Computer Control Systems, Automatica, 20, (1984), 93–102.CrossRefGoogle Scholar
  13. KM8.
    Kramer J. and Magee J., Dynamic Configuration for Distributed Systems, IEEE Trans. on Software Eng., SE-11 (4), (1985), 424–436.Google Scholar
  14. KMN89.
    Kramer J. Magee J. and Ng K., Graphical Configuration Programming, IEEE Computer, 22 (10), (1989), 53–65.Google Scholar
  15. KMF90.
    Kramer J., Magee J. and Finkelstein A., A Constructive Approach to the Design of Distributed Systems, (Proc. 10th IEEE Int. Conf on Distributed Computing Systems, Paris, 1990), 580–587.Google Scholar
  16. KM90.
    Kramer J. and Magee J., The Evolving Philosophers Problem: Dynamic Change Management, IEEE Trans. on Software Eng., SE-16 (11), (1990), 1293–1306.CrossRefGoogle Scholar
  17. Kra90.
    Kramer J., Configuration Programming-A Framework for the Development of Distributable Systems, (Proc. of IEEE Int. Conf. on Computer Systems and Software Engineering (CompEuro 90), Tel-Aviv, Israel, 1990), 374–384.Google Scholar
  18. Kra94.
    Kramer J., Exoskeletal Software, (Proc. of 16th IEEE Int. Conf. on Software Engineering (ICSE-16), Sorrento, 1994), 366.Google Scholar
  19. Kru95.
    Kruchten P.B., The 4+1 Model of Architecture, IEEE Software, 12 (6), Nov. 1995, pp 42–50.CrossRefGoogle Scholar
  20. Luc95.
    Luckham D.C. et al., Specification and Analysis of Software Architecture using Rapide, IEEE Transactions on Software Engineering, 21(4), April 1995, pp 336–355.CrossRefGoogle Scholar
  21. MDE95.
    Magee J., Dulay N., Eisenbach S., Kramer J., Specifying Distributed Software Architectures, (Proc. of 5th European Software Engineering Conference (ESEC `95), Sitges, September 1995), LNCS 989, (Springer-Verlag), 1995, 137–153.Google Scholar
  22. MDK94.
    Magee J., Dulay N. and Kramer J., Regis: A Constructive Development Environment for Distributed Programs, Distributed Systems Engineering Journal, 1 (5), Special Issue on Configurable Distributed Systems, (1994), 304–312.CrossRefGoogle Scholar
  23. MKS89.
    Magee J., Kramer J., and Sloman M.S., Constructing Distributed Systems in Conic, tIEEE Trans. on Software Eng., SE-15 (6), (1989), 663–675.CrossRefGoogle Scholar
  24. MK96.
    Magee J. and Kramer J., Dynamic Structure in Software Architectures, (Proc. of 4th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE 4), San Francisco, October 1996), SEN, Vol.21, No.6, November 1996, 3–14.Google Scholar
  25. MTK97.
    Magee J., Tseng A., Kramer J., Composing Distributed Objects in CORBA, (Third International Symposium on Autonomous Decentralized Systems (ISADS 97), Berlin, Germany, April 9–11, 1997.Google Scholar
  26. NMK96.
    Ng K., Kramer J. and Magee J., Automated Support for the Design of Distributed Software Architectures, Journal of Automated Software Engineering (JASE), 3 (3/4), Special Issue on CASE-95, (1996), 26I–284.Google Scholar
  27. Pur94.
    Purtilo J.M., The POLYLITH Software Bus, ACM Transactions on Programming Languages, 16(l), January 1994, pp 151–174.CrossRefGoogle Scholar
  28. Sh95a.
    Shaw M., et al., Abstractions for Software Architecture and Tools to Support Them, IEEE Transactions on Software Engineering, 21 (4), April 1995, pp 314–335.CrossRefGoogle Scholar
  29. Sh95b.
    Shaw M., Comparing Architectural Design Styles IEEE Software, 12 (6), Nov. 1995, pp 27–41.CrossRefGoogle Scholar
  30. Tay96.
    Taylor R. et al, A Component-and Message-based Architectural Style for GUI Software, IEEE Transactions on Software Engineering, 22(6), June 1996, pp 390–406.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Jeff Kramer
    • 1
  • Jeff Magee
    • 1
  1. 1.Department of ComputingImperial College of Science Technology and MedicineLondonUK

Personalised recommendations