Performing static structure analysis using software dependencies
Ashgan Fararooy · Summit (Simon Fraser University) · 2010
Software quality assessment and program comprehension have been challenging areas of research in software engineering. Software dependencies bear valuable information that can be utilized to gain insight into computer programs and compare different program versions. We present a simple and effective indicator for structural problems and complex dependencies on code-level, together with an automatic monitoring tool. We model low-level dependencies between program operations using a use-def graph, which is generated from reaching definitions of variables. Intuitively, a program operation that has more dependencies is harder to understand because it requires consideration of more elements and possibilities. Using various examples we show that the proposed analysis can be a good indicator of readability and understandability of programs. We also developed another tool that inspects dependencies on the architecture level. The tool visualizes introduced and removed dependencies across different program versions.