Rainbow: Software Architecture-Based Self-Adaptation

Project Rainbow began in early 2001 as the joint effort of Professors David Garlan and Peter Steenkiste at Carnegie Mellon University to investigate architecture-based adaptation of complex systems under DARPA's DASADA Program. To date, the Rainbow Project continues to be an integral part of Professor Garlan's ABLE research group. I began doing research on Rainbow in autumn 2001, working closely with Dr. Bradley Schmerl. Over the past few years, in addition to building the software framework, I have been investigating the role of declarative language and utility theory to facilitate architecture-based adaptation of live software systems.


PhD Thesis, defended April 18, 2008.

Original thesis proposal from June 2nd, 2004.

Key Publications

Shang-Wen Cheng, David Garlan and Bradley Schmerl. Architecture-based Self-adaptation in the Presence of Multiple Objectives. In ICSE 2006 Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS), Shanghai, China, 21-20 May 2006.

Shang-Wen Cheng, David Garlan and Bradley Schmerl. Making Self-Adaptation an Engineering Reality. In Ozlap Babaoghu, Mark Jelasity, Alberto Montroser, Christof Fetzer, Stefano Leonardi and Aad Van Moorsel editors, Proceedings of the Conference on Self-Star Properties in Complex Information Systems, Vol. 3460 of LNCS, Springer-Verlag, 2005.

David Garlan, Shang-Wen Cheng, An-Cheng Huang, Bradley Schmerl and Peter Steenkiste. Rainbow: Architecture-Based Self Adaptation with Reusable Infrastructure. In IEEE Computer, Vol. 37(10), October 2004.

David Garlan, Shang-Wen Cheng and Bradley Schmerl. Increasing System Dependability through Architecture-based Self-repair. In Rogerio De Lemos, Cristina Gacek and Alexander Romanovsky editors, Architecting Dependable Systems, Springer-Verlag, 2003.

More ABLE publications on Rainbow.


Instructions on how to install are here.

Current Status

Email: <sw.cheng AT SPAMFREE acm DOT org>


Rainbow: RainbowWiki (last edited 2009-05-27 15:30:02 by BradleySchmerl)