On tight performance specification of object-oriented software components

Most modern designs of a software component include two separate pieces: functionality specification and implementation. When the specification is formal, this separation permits verification of reusable software components to be modular-essential for verification to be local, scalable, and hence, practical. In this paper, we explain the role of a third piece-an implementation dependent, performance specification-for a component. Introduction of this piece permits performance (e.g., execution time bonus) specification to be expressive (tight) while leaving functionality specification fully abstract and verification to be modular.<<ETX>>

[1]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[2]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[3]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[4]  Joseph Eugene Hollingsworth Software component design-for-reuse: a language-independent discipline applied to ADA , 1992 .

[5]  Lonnie R. Welch,et al.  On Specification of Reusable Software Components , 1993, Int. J. Softw. Eng. Knowl. Eng..

[6]  Robert McCartney Synthesizing Algorithms with Performance Constraints , 1987, AAAI.

[7]  William Pugh,et al.  A partial evaluator for the Maruti hard real-time system , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[8]  Will Tracz Where does reuse start? , 1990, SOEN.

[9]  Murali Sitaraman A class of programming language mechanisms to facilitate multiple implementations of the same specification , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[10]  Bruce W. Weide,et al.  Copying and Swapping: Influences on the Design of Reusable Software Components , 1991, IEEE Trans. Software Eng..

[11]  Rajiv Gupta,et al.  Correlation analysis techniques for refining execution time estimates of real-time applications , 1994, Proceedings of 11th IEEE Workshop on Real-Time Operating Systems and Software.

[12]  Jeannette M. Wing A specifier's introduction to formal methods , 1990, Computer.

[13]  Tom Wheeler,et al.  Descriptive and predictive aspects of the 3Cs model: SETA1 working group summary , 1991, SETA1.

[14]  William F. Ogden,et al.  Modular Verification of Data Abstractions with Shared Realizations , 1994, IEEE Trans. Software Eng..

[15]  Alan C. Shaw,et al.  Reasoning About Time in Higher-Level Language Software , 1989, IEEE Trans. Software Eng..

[16]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[17]  Dennis M. Volpano,et al.  The Transform - a New Language Construct , 1990, Struct. Program..

[18]  Joseph A. Goguen,et al.  Reusing and Interconnecting Software Components , 1986, Computer.