SASSY is a framework that allows software systems to self-architect and adapt to changes in their computing environment or requirements. It uses models called Service Activity Schemas (SAS) to specify system requirements and generate an initial architecture. SASSY then monitors quality of service metrics and dynamically changes the architecture by applying patterns if the overall utility falls, in order to maintain the best QoS. It transforms SAS models into executable architectures and facilitates simulation and testing through model transformations and existing tools.