Reverse engineering, visualization, query, software metrics, constraints, design pattern, Hy+, GraphLog
The increased reuse of software components, facilitated and supported by object-oriented programming, makes program comprehension even more important as existing software must be understood during both development and maintenance. Far too often the only information a programmer can trust is the source code. It is the only accurate, complete and up-to-date representation of a program. However, source code listings are hardly suited to represent design decisions, global system structure or interactions among components. The extraction of high-level structural information from code is called reverse engineering.
The goal of this project was to explore the use of a general-purpose data visualization system called Hy+ for querying and visualizing information about object-oriented software systems, rather than using special-purpose tools. Hy+ supports visualization and visual querying of arbitrary graph-like databases.