2015ALSHIRAHMPhD.pdf (4.95 MB)
Integrating user knowledge into design pattern detection
thesisposted on 2016-01-08, 16:11 authored by Mohammad H. Alshira'H
Design pattern detection is useful for a range of software comprehension and maintenance tasks. Tools that rely on static or dynamic analysis alone can produce inaccurate results, especially for patterns that rely on the run-time information. Some tools provide facilities for the developer to refine the results by adding their own knowledge. Currently, however, the ability of tools to accommodate this knowledge is very limited; it can only pertain to the detected patterns and cannot provide additional knowledge about the source code, or about its behaviour. In this thesis, we propose an approach to combine existing pattern detection techniques with a structured feedback mechanism. This enables the developer to refine the detection results by feeding-in additional knowledge about pattern implementations and software behaviour. The motivation is that a limited amount of user input can complement the automated detection process, to produce results that are more accurate. To evaluate the approach we applied it to a selection of openly available software systems. The evaluation was carried in two parts. First, an evaluation case study was carried out to detect pattern instances in the selected systems with the help of the user knowledge. Second, a user study of a broader range of expert users of design patterns was conducted in order to investigate the impact of their knowledge on the detection process, and to see whether it is realistic that the user can identify useful knowledge for the detection process. The evaluation results indicate that the proposed approach can yield a significant improvement in the accuracy whilst requiring a relatively small degree of user input from the developer. Moreover, the results show that expert users can supplement the design pattern detection process with a useful feedback that can enhance the detection of design pattern instances in the source code.
Supervisor(s)Walkinshaw, Neil; Heckel, Reiko
Date of award2015-12-17
Author affiliationDepartment of Computer Science
Awarding institutionUniversity of Leicester