EAGER: Bringing Design Thinking into Developers' Coding Activities through an Architectural Tactic Recommender System
Rochester Institute Of Tech, Rochester NY
Investigators
Abstract
The success of any complex software-intensive system is highly dependent on the extent to which it addresses stakeholders' quality concerns such as reliability, availability, security and performance. Software architects utilize a rich set of proven and re-usable architectural solutions such as tactics and patterns to satisfy each specific quality attribute. The objective of this research project is to develop a novel tactic-recommender system that is trained through learning from the source code of thousands of open-source software systems. The project will include developing a set of novel big-data compatible architecture profilers that ?detect? and ?learn? architectural choices made by several developers across source codes of thousands of open-source systems. This knowledge is used to recommend architectural tactics fitting a new project. This represents a paradigm shift in utilizing automated techniques to bring design thinking into developers? daily coding activities. Unlike existing architecture design practices, which all involve a rigorous upfront analysis of the system's quality concerns, this research takes a bottom-up approach. It uses the latent domain topics in the source code and identifies not only architectural tactics/patterns missing in a given project but also recommends several high quality sample implementations of the tactics/patterns from open source software projects. The findings of this research will partially address the current gap between design and implementation. The broader impact of the work will be to improve the productivity of software development and to improve the quality and evolvability of software-intensive systems.
View original record on NSF Award Search →