Incorporating Dynamic Analysis and Approximate Reasoning in Declarative Meta-Programming to Support Software Re-engineering

Printer-friendly version

Publication Type:

Thesis

Source:

Vrije Universiteit Brussel (2004)

Keywords:

declarative meta programming, dynamic analysis, fuzzy logic, fuzzy logic meta programming, logic meta programming, logic programming, trace semantics

Abstract:

<p>Software re-engineering is a complex process in which a maintainer is confronted with the challenging task of understanding the design of an existing application of which the documentation is often non-existent or no longer up-to-date. To support the software engineer in this precarious undertaking, many design recovery tools based upon declarative meta-programming techniques have been proposed, but most of them are only able to reason about a program's structural architecture instead of about the exhibited run-time behaviour. This document explores how behavioural analysis can complement structural source code analysis in the detection of software patterns in the broadest sense. Furthermore, interesting software patterns often describe inherently vague concepts which cannot be expressed efficiently in classical logic programming languages. Many software patterns are in addition described by such overly idealised logic rules that real-life variations on the implementation of these abstract patterns can no longer be detected. In this dissertation, we will therefore also study the use of approximate rea- soning techniques to overcome these common problems.</p>