Exactness and Clarity in a Component-Based Specification Language
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.
KeywordsSoftware Architecture Specification Language Graphical Notation Automatic Verification Subtyping Relation
Unable to display preview. Download preview PDF.
- [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 http://www.cs.cmu.edu/afs/cs.cmu.edu/project/compose/www/paper_abstracts/wright-icse16.html.
- [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
- [BH95]J.P. Bowen and M.G. Hinchey, “Ten commandments of formal methods,” IEEE Computer, 28(4):56–63, April 1995. Also as http://www.cl.cam.ac.uk/users/mghl001/10comms.html.Google Scholar
- [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
- [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
- [C93]J. Callahan, Software Packaging, University of Maryland Computer Science Department, tech. report CS-TR-3093, June 1993. See also http://thumper.cs.umd.edu/files/docs/umcp-cs.html.
- [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 http://www.cs.cmu.edu/afs/cs.cmu.edu/project/able/www-/paper_abstracts/archmismatch-icse 17.html
- [GH93]J.V. Guttag and J.J. Horning, Larch: Languages and Tools for Formal Specification, Springer-Verlag, 1993. See also http://larch-www.lcs.mit.edu:8001/larch/.
- [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
- [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 http://www.cs.ucsb.edu/oocsb/papers/oop-components.html.
- [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
- [HU79]J.E. Hopcroft and J.D. Ullman, Introduction to Automata Theory, Languages and Computation, Chapter 3, Addison-Wesley, 1979.Google Scholar
- [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
- [K94]G. Kiczales, “Why are black boxes so hard to reuse?,” invited talk at OOPSLA’94 and ICSE’95. See also http://www.parc.xerox.com/spl/projects/oi/.
- [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
- [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
- [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
- [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
- [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 http://www.mit.edu:8001/-afs/cs.cmu.edu/project/venari/www/oopsla93.html CrossRefGoogle Scholar
- [M88]B. Meyer, Object-oriented software construction, Prentice-Hall, 1988.Google Scholar
- [M92]B. Meyer, “Applying ‘design by contract’,“ Computer, 25(10):40–51, October 1992. See also http://www.eiffel.com/doc/manuals/technology/contract/.CrossRefGoogle Scholar
- [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
- [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 http://www.cs.iastate.edu/tech-reports/TR95-27a.ps.
- [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 http://www.cs.cmu.edu/afs/cs.cmu.edu/project/vit/www/-paper_abstracts/UniCon.htm1.CrossRefGoogle Scholar
- [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 http://www.smli.com/research/adl.
- [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
- [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 http://www.cs.cmu.edu/afs/cs.cmu.edu/project/venari/www/sigsoft95.html.