The goal of this research is to build and investigate a framework called Software Development Artifact Analysis (SDAA) that uses software development artifacts to illuminate underlying relationships within a system. SDAA provides guidelines for selecting and gathering software development artifacts, discovering relationships, and then leveraging the insights gained through the analysis of those relationships. We use singular value decomposition (SVD) to generate the relationships from a matrix of software development artifact metrics.
In this research, we use SDAA to create three SVD-based software development analysis techniques: an impact analysis technique, a regression test prioritization technique, and a static analysis alert filtering technique. These techniques were applied and examined on an industrial project and five open source projects and compared with comparable current techniques. In general, our techniques were shown to be more cost efficient than comparable techniques in system resources and time, while still prioritizing developer effort effectively.