Title
Client-Aware Checking And Information Hiding In Interface Specifications With Jml/Ajmlc
Keywords
Design by contract; Information hiding; Interface specification languages; Java modeling language (JML); Runtime assertion checking
Abstract
Information hiding controls which parts of a module are visible to different clients. This aids maintenance because hidden implementation details can be changed without affecting clients. The benefits of information hiding apply not only to code but also to other artifacts, such as specifications. In this demonstration we show how our client-aware checking (CAC) technique, which is implemented by our JML/ajmlc compiler and freely available online, use the privacy information in specifications to promote information hiding. We demonstrate the benefits of CAC over existing runtime assertion checkers (RACs) of contemporary interface specification languages. Client-aware checking allows runtime assertion checking and error reporting based solely on specifications visible to clients. This avoids exposing hidden implementation or specification details that cannot be understood by non-privileged clients. This demonstration will proceed by discussing the goals of the CAC technique by means of realistic examples. Attendees will mainly see JML specifications, including pre- And postconditions for methods. They will learn how to use the JML/ajmlc compiler, which also provides information hiding capabilities. In addition, they will learn how to use model fields to hide the actual field declarations in classes, and how model fields play an important role in achieving information hiding. We will conclude with pointers to ongoing work on design, implementation and runtime checking of Java programs with CAC-based JML/ajmlc. Copyright © 2013 by the Association for Computing Machinery, Inc. (ACM).
Publication Date
1-1-2013
Publication Title
SPLASH 2013 - Proceedings of the 2013 Companion Publication for Conference on Systems, Programming, and Applications: Software for Humanity
Number of Pages
11-12
Document Type
Article; Proceedings Paper
Personal Identifier
scopus
DOI Link
https://doi.org/10.1145/2508075.2514569
Copyright Status
Unknown
Socpus ID
84888141851 (Scopus)
Source API URL
https://api.elsevier.com/content/abstract/scopus_id/84888141851
STARS Citation
Reb̂elo, Henrique; Leavens, Gary T.; and Lima, Ricardo, "Client-Aware Checking And Information Hiding In Interface Specifications With Jml/Ajmlc" (2013). Scopus Export 2010-2014. 7681.
https://stars.library.ucf.edu/scopus2010/7681