Combining Design by Contract and Inference Rules of Programming Logic towards Software Reliability

Nuha Aldausari, Cui Zhang, Jun Dai

2018

Abstract

Detecting errors in software products is very important to software reliability because many security vulnerabilities are caused by the defects in software. Design by contract (DBC) is an effective methodology that dynamically checks whether a program meets its specifications, which are also called design contracts, and whether there are errors in the program. The contracts for object-oriented programs are defined in terms of preconditions and postconditions for methods as well as invariants for classes. However, if there is an error in a large piece of code that has a design contract, it is still difficult to identify the exact location of that error. To address this issue, a tool named Subcontractor has been developed. Subcontractor is implemented in Eclipse environment using libraries such as Java Development Tools (JDT), Plugin Development Environment (PDE), and JFace. The tool Subcontractor is built upon an open source DBC tool, OpenJML Runtime Assertion Checking (RAC), which is a tool that verifies specifications at runtime. Subcontractor combines this DBC tool with inference rules of program logic for if-statements and loop-statements to automatically generate subcontracts for programs. When the programs, with subcontracts automatically generated and inserted by Subcontractor, are verified using OpenJML Runtime Assertion Checking (RAC), identification of errors in the code can be facilitated.

Download


Paper Citation


in Harvard Style

Aldausari N. and Dai J. (2018). Combining Design by Contract and Inference Rules of Programming Logic towards Software Reliability.In Proceedings of the 15th International Joint Conference on e-Business and Telecommunications - Volume 1: SECRYPT, ISBN 978-989-758-319-3, pages 364-371. DOI: 10.5220/0006849603640371


in Bibtex Style

@conference{secrypt18,
author={Nuha Aldausari and Jun Dai},
title={Combining Design by Contract and Inference Rules of Programming Logic towards Software Reliability},
booktitle={Proceedings of the 15th International Joint Conference on e-Business and Telecommunications - Volume 1: SECRYPT,},
year={2018},
pages={364-371},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0006849603640371},
isbn={978-989-758-319-3},
}


in EndNote Style

TY - CONF

JO - Proceedings of the 15th International Joint Conference on e-Business and Telecommunications - Volume 1: SECRYPT,
TI - Combining Design by Contract and Inference Rules of Programming Logic towards Software Reliability
SN - 978-989-758-319-3
AU - Aldausari N.
AU - Dai J.
PY - 2018
SP - 364
EP - 371
DO - 10.5220/0006849603640371