Project

Enhancing a design by contract tool using inference rules of programming logic

Design by contract (DBC) is an effective methodology that dynamically checks whether a program meets its specifications which are also called design contracts. 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 tedious and difficult to spot 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 enhances this DBC tool by automatically generating subcontracts for programs using inference rules of program logic for if-statements and loop-statements. When the programs with the automatically generated and inserted subcontracts are verified using OpenJML Runtime Assertion Checking (RAC), identification of errors in the code can be facilitated.

Project (M.S., Computer Science)--California State University, Sacramento, 2017.

Design by contract (DBC) is an effective methodology that dynamically checks whether a program meets its specifications which are also called design contracts. 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 tedious and difficult to spot 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 enhances this DBC tool by automatically generating subcontracts for programs using inference rules of program logic for if-statements and loop-statements. When the programs with the automatically generated and inserted subcontracts are verified using OpenJML Runtime Assertion Checking (RAC), identification of errors in the code can be facilitated.

Relationships

Items