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

Socpus ID

84888141851 (Scopus)

Source API URL

https://api.elsevier.com/content/abstract/scopus_id/84888141851

This document is currently not available here.

Share

COinS