Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1985793.1985903acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Enabling the runtime assertion checking of concurrent contracts for the Java modeling language

Published: 21 May 2011 Publication History

Abstract

Though there exists ample support for Design by Contract (DbC) for sequential programs, applying DbC to concurrent programs presents several challenges. In previous work, we extended the Java Modeling Language (JML) with constructs to specify concurrent contracts for Java programs. We present a runtime assertion checker (RAC) for the expanded JML capable of verifying assertions for concurrent Java programs. We systematically evaluate the validity of system testing results obtained via runtime assertion checking using actual concurrent and functional faults on a highly concurrent industrial system from the telecommunications domain.

References

[1]
America, P. Designing an Object-Oriented Programming Language with Behavioural Subtyping. In Proc. REX School/Workshop on Foundations of Object-Oriented Languages. 1990, 60--90.
[2]
Araujo, W. Assessing the Effectiveness of Design Contracts as Test Oracles in the Detection of Faults in Concurrent Object-Oriented Software. Doctoral Thesis, Carleton University, Ottawa, 2010.
[3]
Araujo, W., Briand, L. and Labiche, Y. Concurrent Contracts for Java in JML. In Proc. ISSRE. 2008, 37--46.
[4]
Arnold, K., Gosling, J. and Holmes, D. The Java Programming Language. Addison-Wesley, 2000.
[5]
Arslan, V., Eugster, P., Nienaltowski, P. and Vaucouleur, S. SCOOP - concurrency made easy. In Proc. Dependable Systems: Software, Computing, Networks. 2006, 82--102.
[6]
Cheon, Y. and Leavens, G. T. A Runtime Assertion Checker for the Java Modeling Language (JML) In Proc. SERP. 2002, 322--328.
[7]
Dhara, K. and Leavens, G. T. Forcing Behavioural Subtyping Through Specification Inheritance. In Proc. ICSE. 1996, 258--267.
[8]
Greenhouse, A., Halloran, T. J. and Scherlis, W. L. Observations on the assured evolution of concurrent Java programs. Science of Computer Programming, 58, 3, 384--411.
[9]
Jacobs, B., Leino, R. M., Piessens, F. and Schulte, W. Safe concurrency for aggregate objects with invariants. In Proc. SEFM. 2005, 137--147.
[10]
Leavens, G. T., Baker, A. L. and Ruby, C. Preliminary design of JML: A behavioral interface specification language for Java. ACM SIGSOFT Software Engineering Notes, 31, 3, 1--38.
[11]
Lindholm, T. and Yellin, F. The Java virtual machine specification. Addison-Wesley, Reading, MA, 1999.
[12]
Meyer, B. Design by Contract. IEEE Computer, 25, 10 (Oct. 1992), 40--52.
[13]
Nienaltowski, P. and Meyer, B. Contracts for concurrency. In Proc. International Symposium on Concurrency, Real-Time and Distribution in Eiffel-like Languages. 2006.
[14]
Rodríguez, E., Dwyer, M., Flanagan, C., Hatcliff, J., Leavens, G. T. and Robby. Extending JML for Modular Specification and Verification of Multi-threaded Programs. In Proc. ECOOP. 2005, 551--576.
[15]
Weikum, G. and Vossen, G. Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery. Morgan Kaufmann, 2002.

Cited By

View all
  • (2022)Perfect is the enemy of test oracleProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3549086(70-81)Online publication date: 7-Nov-2022
  • (2021)MeMo: Automatically identifying metamorphic relations in Javadoc comments for test automationJournal of Systems and Software10.1016/j.jss.2021.111041(111041)Online publication date: Jul-2021
  • (2020)Knowledge-Based Verification of Concatenative Programming Patterns Inspired by Natural Language for Resource-Constrained Embedded DevicesSensors10.3390/s2101010721:1(107)Online publication date: 26-Dec-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '11: Proceedings of the 33rd International Conference on Software Engineering
May 2011
1258 pages
ISBN:9781450304450
DOI:10.1145/1985793
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 May 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. design by contract
  3. java
  4. jml
  5. object-oriented programming

Qualifiers

  • Research-article

Conference

ICSE11
Sponsor:
ICSE11: International Conference on Software Engineering
May 21 - 28, 2011
HI, Waikiki, Honolulu, USA

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)2
Reflects downloads up to 22 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Perfect is the enemy of test oracleProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3549086(70-81)Online publication date: 7-Nov-2022
  • (2021)MeMo: Automatically identifying metamorphic relations in Javadoc comments for test automationJournal of Systems and Software10.1016/j.jss.2021.111041(111041)Online publication date: Jul-2021
  • (2020)Knowledge-Based Verification of Concatenative Programming Patterns Inspired by Natural Language for Resource-Constrained Embedded DevicesSensors10.3390/s2101010721:1(107)Online publication date: 26-Dec-2020
  • (2020)Towards generating thread-safe classes automaticallyProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3324884.3416625(943-955)Online publication date: 21-Dec-2020
  • (2018)Translating code comments to procedure specificationsProceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3213846.3213872(242-253)Online publication date: 12-Jul-2018
  • (2017)Improving Robustness of AUTOSAR Software Components with Design by Contract: A Study Within Volvo ABSoftware Engineering for Resilient Systems10.1007/978-3-319-65948-0_10(151-168)Online publication date: 11-Aug-2017
  • (2016)Automatic generation of oracles for exceptional behaviorsProceedings of the 25th International Symposium on Software Testing and Analysis10.1145/2931037.2931061(213-224)Online publication date: 18-Jul-2016
  • (2016)Run-Time Checking Multi-threaded Java ProgramsProceedings of the 42nd International Conference on SOFSEM 2016: Theory and Practice of Computer Science - Volume 958710.1007/978-3-662-49192-8_18(217-228)Online publication date: 23-Jan-2016
  • (2015)Towards classification of concurrency bugs based on observable propertiesProceedings of the First International Workshop on Complex faUlts and Failures in LargE Software Systems10.5555/2819419.2819428(41-47)Online publication date: 16-May-2015
  • (2015)Run-time assertion checking of JML annotations in multithreaded applications with e-OpenJMLProceedings of the 17th Workshop on Formal Techniques for Java-like Programs10.1145/2786536.2786541(1-6)Online publication date: 7-Jul-2015
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media