Augmenting static program analysis and design verification with pattern recognition

Static analysis examines program code to reason over all possible behaviours that might arise at run time. Such reasoning with full soundness and precision is in general not possible, as there may be arbitrarily many different user inputs or states. To enable the reasoning, static analysis usually u...

Full description

Saved in:
Bibliographic Details
Main Author: Sun, Ding
Other Authors: Tan Hee Beng Kuan
Format: Theses and Dissertations
Language:English
Published: 2014
Subjects:
Online Access:https://hdl.handle.net/10356/61780
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
Description
Summary:Static analysis examines program code to reason over all possible behaviours that might arise at run time. Such reasoning with full soundness and precision is in general not possible, as there may be arbitrarily many different user inputs or states. To enable the reasoning, static analysis usually uses an abstraction model to abstract away some information to examine program code. Static program analysis plays a very important role in software testing, software verification, program slicing, error detection, and code performance optimization. However, the use of it in these areas still faces many problems due to the difficulty in finding a suitable abstraction model to base on. Design patterns have been used to improve the reuse in software development. Some design patterns have also been used in the verification of design in general. However, there are no specific patterns proposed for the verification of designs of database applications that constitute a large proportion of software systems. The aim of this thesis is to address the above-mentioned problems. Based on abstraction models established through empirical studies, this thesis proposes the four approaches augmented with pattern recognition to improve the state-of-the-art regarding accuracy and efficiency.