SASSY: Self Architecting Software Systems

Project sponsored by the National Science Foundation under grant CCF-0820060


SASSY is an infrastructure that automatically generates a number of candidate software architecture and selects the one that best serves given QoS goals.  This is done by leveraging knowledge of architectural patterns and their promoted QoS properties.  For that, SASSY takes as inputs models of computing activities and QoS goals specified by domain experts.



Personnel | Summary | Publications



Faculty: Dr. Daniel A. Menascé (PI), Dr. Hassan Gomaa (co-PI), Dr. Sam Malek (co-PI), and Dr. João P. Sousa (co-PI)

Students: Naeem Esfahani, John Ewing, Mohamad Abu-Matar, Zeynep Zengin, Ehsan Kouroshfar, and Nariman Mirzaei

Former Senior Staff: Dr. Minseong Kim (post-doc), Dr. Koji Hashimoto




The design of large-scale distributed software systems presents many challenges, including providing the means for the software to adapt to changes in the environment (e.g., workload changes and failures) and to evolve as a consequence of changes in the requirements. SASSY is a model-driven framework for run-time self-architecting and rearchitecting of distributed software systems. SASSY provides a uniform approach to automated composition, adaptation, and evolution of software systems. Our framework is inspired by the properties of one of the largest, most complex, highly dependable, and resilient systems ever designed: the Internet.  Four important characteristics of the Internet design are responsible for its highly adaptive run-time behavior: i) autonomous organization as a collection of IP networks, ii) autonomic behavior including self-managing, self-configuring, self-optimizing, and self-healing properties afforded, for example, by its routing protocols and TCP’s congestion avoidance mechanism, c) distributed control as evidenced by its distributed routing decisions, and d) distributed run-time optimization through the implementation of distributed versions of centralized optimization algorithms, such as the shortest path algorithm for optimal routing.

These characteristics of the Internet are not present in today’s large-scale real world software systems. SASSY represents a paradigm shift in architecting software systems that exhibit characteristics similar to the Internet. It provides mechanisms for self-architecting and rearchitecting that determine the near-optimal architecture for satisfying functional and Quality of Service (QoS) requirements. The quality of a given architecture is expressed by a utility function provided by end-users and represents one or more desirable system objectives.


Software adaptation refers to software systems that change their behavior during execution. Self-adaptive software systems monitor the environment and adapt their behavior in response to changes in the environment. Adaptation of distributed component-based software systems can be classified as: a) Behavioral adaptation: the system dynamically changes its behavior without changing its structure; b) Structural adaptation: e.g., a software component is replaced with another component that has the same interface; and c) Architectural adaptation: the software system’s structure is substantially modified at run-time. Model-based adaptation can be used in each of the above forms of dynamic adaptation, although the adaptation challenge is likely to grow progressively from behavioral through architectural adaptation. SASSY deals with all three aspects of adaptation. In general, the goal of self-architecting and rearchitecting directly from requirements is too ambitious and unrealistic. SASSY addresses a more constrained but yet challenging and increasingly important class of software systems: those built out of service-oriented architectures (SOA). The SASSY framework deals with the initial composition of the software system, evolution of the requirements, and adaptation to operating conditions in a uniform way. To address software evolution, the new requirements, in the form of modified activity models, are used to derive a new architecture in an automatic manner. The figure below illustrates the SASSY framework.



Main Publications:

Other Publications: