Exactness and Clarity in a Component-Based Specification Language

  • Doug Bryan
Part of the The Springer International Series in Engineering and Computer Science book series (SECS, volume 371)


We are investigating software architectures in general and component-based software development in specific. Our goal is to be able to specify architecture so that large-grain reuse can take place in a plug-and-play manner. To facilitate our investigation we have developed a new specification language that is an extension of CORBA’s interface definition language. Our extensions include specification of the behavior of interfaces.

This paper addresses the problem of designing and implementing a specification language that is formal enough to express exact specifications, yet clear enough to be used by real designers who are not mathematicians. It is our thesis that underlying, mathematical formalisms must be used to achieve exactness, and that given exactness, clarity can be achieved by building tools that hide much of the formalism from users. This paper presents three tools we are developing to hide a formal specification method from the average user.


Software Architecture Specification Language Graphical Notation Automatic Verification Subtyping Relation 
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. [A91]
    P. America, “Designing an object-oriented programming language with behavioural subtyping,” Lecture Notes in Computer Science, Vol. 489, pp. 60–90, Springer-Verlag, 1991.CrossRefMathSciNetGoogle Scholar
  2. [AG94]
    R. Allen and D. Garlan, “Formalizing architectural connection,” in Proc. of the 16th Intl. Conf. on Software Engineering, IEEE Computer Society Press, pp. 71–80, May 1994. Also as
  3. [B95]
    F. Bronsard, Using term ordering to control clausal deduction, Ph.D. thesis, University of Illinois, Urbana, tech. report UIUCDCS-R-95-1910, 1995.Google Scholar
  4. [BH95]
    J.P. Bowen and M.G. Hinchey, “Ten commandments of formal methods,” IEEE Computer, 28(4):56–63, April 1995. Also as Scholar
  5. [BR92]
    F. Bronsard and U.S. Reddy, “Reduction techniques for first-order reasoning,” Conditional Term Rewriting Systems, Lecture Notes in Computer Science, Vol. 656, pp. 242–56, Springer-Verlag, 1992.Google Scholar
  6. [BW86]
    M.R. Barbacci and J.M. Wing, Durra: a task-level description language, Carnegie-Mellon University, Software Engineering Institute, tech. report SEI-86-TR-3, December 1986.Google Scholar
  7. [BWD93]
    M.R. Barbacci, C.B. Weinstock, D.L. Doubleday, M.J. Gardner and R.W. Lichota, “Durra: a structure description language for developing distributed applications,” Software Engineering Journal, 8:2(83–94), March 1993.CrossRefGoogle Scholar
  8. [C93]
    J. Callahan, Software Packaging, University of Maryland Computer Science Department, tech. report CS-TR-3093, June 1993. See also
  9. [C95]
    CoGenTex, Inc., “ModelExplainer User Manual,” CoGenTex, Inc., 840 Hanshaw Road, Ithaca, NY 14850, USA, October 1995. See also Scholar
  10. [CP91]
    J. Callahan and J. Purtilo, “A packaging system for heterogeneous execution environments,” IEEE Trans, on Software Engineering, 17(6):626–35, June 1991.CrossRefGoogle Scholar
  11. [CW85]
    L. Cardelli and P. Wegner, “On understanding types, data abstraction, and polymorphism,” Computer Surveys, 17(4):471–522, December 1985.CrossRefGoogle Scholar
  12. [GAO95]
    D. Garlan, R. Allen and J. Ockerbloom, “Architecture mismatch, or, why it’s hard to build systems out of existing parts,” in Proc. of the 17 th Intl. Conf on Software Engineering, pp. 179–185, ACM Press, April 1995. Also as 17.html
  13. [GH93]
    J.V. Guttag and J.J. Horning, Larch: Languages and Tools for Formal Specification, Springer-Verlag, 1993. See also
  14. [GP95]
    D. Garlan and D. Perry, “Introduction to the special issue on software architecture,” IEEE Trans. on Software Engineering, 21(4):269–74, April 1995.Google Scholar
  15. [H93]
    Urs Hölzle, “Integrating independently-developed components in object-oriented languages,” in Proc. of the European Conf. on Object-Oriented Programming, Springer-Verlag, July 1993. Also as
  16. [HS96]
    T. Halfhill and S. Salamone, “Components everywhere: Microsoft’s Network OLE and OMG’s CORBA are competing to distribute components on your network,” Byte, pp. 97–104, January 1996.Google Scholar
  17. [HU79]
    J.E. Hopcroft and J.D. Ullman, Introduction to Automata Theory, Languages and Computation, Chapter 3, Addison-Wesley, 1979.Google Scholar
  18. [K92]
    G. Kiczales, “Towards a New Model of Abstraction in Software Engineering,” in Proc. of the IMSA’ 92 Workshop on Reflection and Meta-level Architectures, 1992.Google Scholar
  19. [K94]
    G. Kiczales, “Why are black boxes so hard to reuse?,” invited talk at OOPSLA’94 and ICSE’95. See also
  20. [KH94]
    H. Kilov and B. Harvey, ed., “Precise behavioral specifications in 00 information modeling,” in Addendum to the proceedings (of OOPSLA’94), OOPS Messenger, 5(4): 137–142, SIGPLAN ACM, October 1994.Google Scholar
  21. [KLM94]
    D. Katiyar, D. Luckham, and J. Mitchell, “A type system for prototyping languages,” in Conf Record of POPL’ 94: 21 st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM Press, January 1994.Google Scholar
  22. [KLN95]
    W. Kozaczynski, E. Liongosari, J. Ning and A. Olafsson, “Architecture specification support for component integration,” in Proc. of the 7th Int. Workshop on Computer-Aided Software Engineering, pp. 30–39, IEEE Computer Society Press, July 1995.Google Scholar
  23. [KMS92]
    J. Kramer, J. Magee, M. Sloman, and N. Dulay, “Configuring object-based distributed programs in REX,” IEE Software Engineering Journal, 7(2): 139–49, March 1992. See also Scholar
  24. [KN96]
    W. Kozaczynski and J. Ning, “Concern-driven design of a specification language supporting component-based software engineering,” a position paper to appear in Proc. of the 8 th Intl. Workshop on Software Spec, and Design (at ICSE-18), March 1996.Google Scholar
  25. [LKA95]
    D.C. Luckham, J.J. Kenney, L.M. Augustin, J. Vera, D. Bryan and W. Mann, “Specification and analysis of system architecture using Rapide,” IEEE Trans, on Software Engineering, 21(4):336–55, April 1995. See also Scholar
  26. [LV95]
    D.C. Luckham and J. Vera, “An event-based architecture definition language,” IEEE Trans, on Software Engineering, 21(9):717–34, September 1995.CrossRefGoogle Scholar
  27. [LVC89]
    M. Linton, J. Vlissides and P. Calder, “Composing user interfaces with Interview,” Computer, 22(2):8–22, February 1989.CrossRefGoogle Scholar
  28. [LW93]
    B. Liskov and J. Wing, “Specifications and their use in defining subtypes,” in Proc. of OOPSLA’ 93, ACM SIGPLAN Notices, 28(10): 16–28, October 1993. Also as CrossRefGoogle Scholar
  29. [M88]
    B. Meyer, Object-oriented software construction, Prentice-Hall, 1988.Google Scholar
  30. [M92]
    B. Meyer, “Applying ‘design by contract’,“ Computer, 25(10):40–51, October 1992. See also Scholar
  31. [M95]
    Daryl McCullough. Personal conversation. CoGenTex, Inc., 840 Hanshaw Road, Ithaca, NY 14850, USA,, December 1995.Google Scholar
  32. [MKS89]
    J. Magee, J. Kramer and M. Sloman, “Constructing distributed systems in Conic,” IEEE Trans, on Software Engineering, 15(6):663–75, June 1989.CrossRefGoogle Scholar
  33. [O95]
    Object Management Group, Inc. The Common Object Request Broker: architecture and specification, Revision 2.0, OMG Headquarters, 492 Old Connecticut Path, Framingham, MA 01701 USA, July 1995. See also Scholar
  34. [P89]
    Dewayne Perry, “The Inscape environment,” in Proc. of the 11 th Intl. Conf. on Software Engineering, IEEE Computer Society Press, pp. 2–12, May 1989.Google Scholar
  35. [P91]
    J.M. Purtilo, “Module reuse by interface adaptation,” Software—Practice and Experience, 21(6):539–556,June 1991.CrossRefGoogle Scholar
  36. [P94]
    J.M. Purtilo, “The Polylith software bus,” ACM Trans, on Programming Languages and Systems, 16(1): 151–74, January 1994. See also Scholar
  37. [S95]
    G.S. Sivaprasad, Larch/CORBA: specifying the behavior of CORBA-IDL interfaces, Iowa State University, Department of Computer Science tech. report TR-95-27, November 1995. Also available as
  38. [SDK95]
    M. Shaw, R. DeLine, D.V. Klein, T.L. Ross, D.M. Young and G. Zelesnik, “Abstractions for software architecture and tools to support them,” IEEE Trans, on Software Engineering, 21(4):314–35, April 1995. Also as Scholar
  39. [SH94]
    S. Sankar and R. Hayes, “Specifying and testing software components using ADL,” Sun Microsystem Labs, tech. report SMLI TR-94-23, 2550 Garcia Ave., Mountain View, CA 94043, April 1994. See also
  40. [T94]
    S. Thatte, “Automated synthesis of interface adaptors for reusable classes,” in Proc. of 21 st Annual ACM SIGACT-SIGP LAN Symposium on Principles of Programming Languages, pp. 174–87, ACM Press, January 1994.Google Scholar
  41. [YS94]
    D. Yellin and R. Strom, “Interfaces, protocols, and the semi-automatic construction of software adaptors,” in Proc. of OOPSLA’ 94, ACM SIGPLAN Notices, 29(10): 176–190, October 1994.CrossRefGoogle Scholar
  42. [ZW95]
    A. Zaremski and J. Wing, “Specification matching of software components,” in Proc. of 3 rd Symposium on the Foundations of Software Engineering, ACM SIGSOFT, October 1995. Also as

Copyright information

© Kluwer Academic Publishers 1996

Authors and Affiliations

  • Doug Bryan
    • 1
  1. 1.Center for Strategic Technology ResearchNorthbrookUSA

Personalised recommendations