Using fuzzy reasoning to support automated program understanding
In this paper we describe how fuzzy reasoning can assist an automated program understanding/fault localization tool with program understanding tasks. We are developing such a tool called BUG-DOCTOR, which is based on a blackboard framework. A fuzzy reasoner is proposed as a component for one of its knowledge sources, the Plan Processor. The Plan Processor retrieves a set of program plans from a plan library using indices called signatures. These plans are candidates for matching against the code we are trying to understand. The fuzzy reasoner will support the Plan Processor with the task of ranking the retrieved plans in order of similarity to the target code. The most highly ranked plan can then be used for the complex plan/code matching required for automated program understanding. Experiments with a fuzzy reasoning prototype are promising, and we believe that this approach to plan processing may eliminate the need for exhaustive plan library searches. The success of the fuzzy reasoning approach could lead to automated program understanders that scale up fur use on large software systems from a variety of problem domains.
fuzzy reasoning program understanding automated reasoning reverse software engineering