Abstract:
Design flaws are used as a mean to identify problematic classes in object oriented software systems which directly decrease software quality, such as maintainability. Therefore such design flaws must be identified to avoid their possible negative consequences on development and maintenance of software systems. However, in recent practice, techniques and methodologies of design flaw detection can solve only some points especially in performance and efficiency of the detection. The software inspection technique is introduced to deal with design flaw problems. It, however, leads to some different issues such as time consumption. An additional proposed automated technique is software metrics. The strategies of this technique capture deviations from good design principles and heuristics by threshold values. Thus effective identifying depends on optimized threshold which is a difficult task. This dissertation proposes a new detection methodology for object-oriented software system by using declarative meta programming and explanation-based learning technique. In the proposed approach, declarative meta-programming is used to represent specific object-oriented elements and their relations in form of logic rules in meta level for describing design flaws. Explanation-based learning is used for extrapolating pattern by deductive learning for some characteristics of design flaws that are difficult to understand. The proposed methodology can efficiently detect design flaws by disregarding limitations of specific thresholds in each environment of detection and promoting the automatic detection for reducing cost and time consumption in the detection process. Case studies are conducted to evaluate the proposed detection approach.