Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Making Components Contract Aware

Published: 01 July 1999 Publication History

Abstract

Components have long promised to encapsulate data and programs into a box that operates predictably without requiring that users know the specifics of how it does so. Many advocates have predicted that components will bring about widespread software reuse, spawning a market for components usable with such mainstream software buses as the Common Object Request Broker Architecture (CORBA) and the Distributed Component Object Model (DCOM). In the Windows world, at least, this prediction is becoming a reality. Yet recent reports indicate mixed results when using and reusing components in mission-critical settings. Such results raise disturbing questions. How can you trust a component? What if the component behaves unexpectedly, either because it is faulty or simply because you misused it? Before we can trust a component in mission-critical applications, we must be able to determine, reliably and in advance, how it will behave. In this article the authors define a general model of software contracts and show how existing mechanisms could be used to turn traditional components into contract-aware ones.

References

[1]
J.-M. Jézéquel and B. Meyer, "Design by Contract: The Lessons of Ariane," Computer, Jan. 1997, pp. 129-130.]]
[2]
E.J. Weyuker, "Testing Component-Based Software: A Cautionary Tale," IEEE Software, Sept. 1998, pp. 54-59.]]
[3]
B. Meyer, "Applying 'Design by Contract,'" Computer, Oct. 1992, pp. 40-52.]]
[4]
R. Kramer, "iContract—The Java Design by Contract Tool," TOOLS 26: Technology of Object-Oriented Languages and Systems, IEEE CS Press, Los Alamitos, Calif., 1998, pp. 295-307.]]
[5]
J. Warmer and A. Kleppe, The Object Constraint Language, Addison Wesley Longman, Reading, Mass., 1998.]]
[6]
B. Meyer, Object-Oriented Software Construction, 2nd ed., Prentice Hall, Upper Saddle River, N.J., 1997.]]
[7]
C. McHale, Synchronization in Concurrent Object-Oriented Languages: Expressive Power, Genericity and Inheritance, doctoral dissertation, Trinity College, Dept. Computer Science, Dublin, 1994.]]
[8]
R.H. Campbell and A.N. Habermann, "The Specification of Process Synchronizations by Path Expressions," Lecture Notes in Computer Science, E. Gelenbe and C. Kaiser, eds., Vol. 16 Int'l Symp. Operating Systems, Springer-Verlag, Berlin, 1974, pp. 89-102.]]
[9]
Z. Choukair and A. Beugnard, "Real-time Object-Oriented Distributed Processing with COREMO," Object Oriented Technology: Ecoop 97 Workshop Reader, J. Bosh and S. Mitchell, eds., Springer-Verlag, Berlin, 1998.]]
[10]
D.C. Schmidt D.L. Levine and S. Mungee, "The Design of the TAO Real-Time Object Request Broker," IEEE Computer Comm. J., Vol. 21, No. 4, 1998, pp. 294-324.]]
[11]
D. Watkins, "Using Interface Definition Languages to Support Path Expressions and Programming by Contract," TOOLS 26: Technology of Object-Oriented Languages and Systems, IEEE CS Press, Los Alamitos, Calif., Aug. 1998, pp. 308-319.]]
[12]
S. Lorcy N. Plouzeau and J.-M. Jézéquel, "Reifying Quality of Service Contracts for Distributed Software," TOOLS 26: Technology of Object-Oriented Languages and Systems, IEEE CS Press, Los Alamitos, Calif., Aug. 1998, pp. 125-139.]]

Cited By

View all
  • (2024)Understanding the Impact of APIs Behavioral Breaking Changes on Client ApplicationsProceedings of the ACM on Software Engineering10.1145/36437821:FSE(1238-1261)Online publication date: 12-Jul-2024
  • (2023)Verifying contracts among software componentsInformation and Software Technology10.1016/j.infsof.2023.107282163:COnline publication date: 1-Nov-2023
  • (2020)Contract-based design patternsProceedings of the 15th International Conference on Availability, Reliability and Security10.1145/3407023.3409185(1-9)Online publication date: 25-Aug-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Computer
Computer  Volume 32, Issue 7
July 1999
90 pages

Publisher

IEEE Computer Society Press

Washington, DC, United States

Publication History

Published: 01 July 1999

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 30 Aug 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Understanding the Impact of APIs Behavioral Breaking Changes on Client ApplicationsProceedings of the ACM on Software Engineering10.1145/36437821:FSE(1238-1261)Online publication date: 12-Jul-2024
  • (2023)Verifying contracts among software componentsInformation and Software Technology10.1016/j.infsof.2023.107282163:COnline publication date: 1-Nov-2023
  • (2020)Contract-based design patternsProceedings of the 15th International Conference on Availability, Reliability and Security10.1145/3407023.3409185(1-9)Online publication date: 25-Aug-2020
  • (2019)Dependency versioning in the wildProceedings of the 16th International Conference on Mining Software Repositories10.1109/MSR.2019.00061(349-359)Online publication date: 26-May-2019
  • (2019)Rigorous design and deployment of IoT applicationsProceedings of the 7th International Workshop on Formal Methods in Software Engineering10.1109/FormaliSE.2019.00011(21-30)Online publication date: 27-May-2019
  • (2018)Contract discovery from black-box componentsProceedings of the 1st ACM SIGSOFT International Workshop on Automated Specification Inference10.1145/3278177.3278179(5-8)Online publication date: 9-Nov-2018
  • (2017)Contract-based modeling and verification of timed safety requirements within SysMLSoftware and Systems Modeling (SoSyM)10.1007/s10270-015-0481-116:2(587-624)Online publication date: 1-May-2017
  • (2016)Deriving UML-based specifications of inter-component interactions from runtime testsProceedings of the 31st Annual ACM Symposium on Applied Computing10.1145/2851613.2851981(1573-1575)Online publication date: 4-Apr-2016
  • (2016)SquirrelProceedings of the 31st Annual ACM Symposium on Applied Computing10.1145/2851613.2851768(1329-1336)Online publication date: 4-Apr-2016
  • (2016)ScapeGoatJournal of Systems and Software10.1016/j.jss.2016.02.027122:C(398-415)Online publication date: 1-Dec-2016
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media