Co-PIs: Hassan Gomaa, Joao Sousa, Sam Malek
This research proposes a framework for Self-Architecting Software Systems (SASSY), a significant paradigm shift in architecting large-scale real-world software systems. Focusing on service-oriented architectures, SASSY includes: 1) Self-architecting: given the service and Quality of Service (QoS) requirements, an optimal architecture is automatically generated with the aid of design patterns. The merit of architectural alternatives is evaluated with the aid of multivariate utility functions. 2) Activity-based specification: behavioral requirements are expressed as activity schemas annotated with QoS requirements and domain ontology. 3) Unification of evolution and adaptation: both the evolution of requirements and changes on monitored run-time conditions and QoS trigger the revaluation of architectural alternatives, and, to the extent possible, the automatic reconfiguration of systems. The intellectual merit lies in the development of a novel framework that advances the representation of software architecture and mixed-initiative activities, while integrating optimization theory and analytic models of QoS. The broader impact includes 1) improved productivity in the software industry, due to significant automation; 2) the open-source availability of the tools developed to support and validate this research; and 3) improved software engineering education by incorporating results of this research into graduate and undergraduate courses at George Mason University and publication at educational forums.