View Proposal


Proposer
Thomas Basuki
Title
Detection and Visualisation of Structural Pattern in Java Programs by Using Graph Isomorphism
Goal
Building a Java program with the functionality of (1) detecting structural patterns represented as class diagrams in a set of Java programs, and (2) visualising the patterns in the Java programs as class diagrams
Description
Design patterns have been used for many years in object-oriented software development. Its use is then extended to represent many other patterns such as interaction patterns and security patterns. Design patterns are often described in diagrams such as UML diagrams. In general, design patterns can be divided into structural and behavioural design patterns. In our previous project, we have developed software that detects the occurrence of a structural design pattern in a set of Java programs. The software accepts a design pattern represented in a UML class diagram, which is stored in an XML file. The algorithm we chose extracts graph structures from both the class diagram and the program and compare them based on cosine similarity. This technique is very efficient in detecting the pattern but not very accurate. In this project, we propose to use graph isomorphism to detect the occurrence of a structural design pattern in the Java programs. We also plan to extend the software with a capability to visualise the patterns found in the programs.
Resources
Background
Url
Difficulty Level
Moderate
Ethical Approval
InterfaceOnly
Number Of Students
1
Supervisor
Thomas Basuki
Keywords
structural design pattern, java, graph isomorphism
Degrees
Bachelor of Science in Computing Science