A software system's life cycle is dominated by maintenance costs and efforts. A software system's architecture is acknowledged as a key determinant of the system's properties and its successful maintenance and evolution over the lifetime of a system. However, in the area of architecture-centered software maintenance, empirical research and technology transfer from academia to practice have been impeded by disjoint environments, redundant efforts, high costs associated with developing robust tools, and the lack of shared research infrastructure and datasets. To address these challenges, this project develops the Software Architecture INstrument (SAIN), a first-of-its-kind integration framework for assembling architecture-related techniques and tools with the goal of enabling empirical research in the context of software maintenance. SAIN will deliver a tool suite comprising four principal components: (1) a catalogued library of cutting-edge tools for reverse engineering and analyzing software systems' architectures, which increases reusability and eliminates redundant tool development across the community; (2) a plug-and-play instrument for integrating the tools and techniques to promote interoperability of existing solutions and enable the creation of new solutions; (3) reproducibility wizards to set up experiment-templates, produce replication packages, and release them in easy-to-run and modify formats, which promotes wide accessibility and smooth usage of existing techniques by researchers and practitioners; and (4) a public repository of software-architecture datasets and benchmarks for supporting a broad range of software-architecture empirical studies.
SAIN aims to bridge the gap between academic research and practice in the software-architecture domain. On the one hand, SAIN will enable extensive empirical research by providing a large repository of architectural artifacts, including interoperable tools and benchmark datasets. As such, researchers will be able to compare and contrast different techniques using the same datasets to identify gaps and inaccuracies. This will enable new solutions for improving the state-of-the-art in software-architecture research. On the other hand, SAIN will provide practitioners with an authoritative source offering interoperable tools and feedback, as well as a channel to contribute cutting-edge architectural artifacts. In summary, SAIN has the potential to transform software architecture research and practice by (1) facilitating the discovery and adoption of cutting-edge techniques and tools that are best-suited to modern problems and (2) ensuring architecture's central role in a broad range of software-engineering activities. SAIN will be available for public use and will foster much more effective university-industry collaboration than is the case today.
This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.