Building an adaptive software system that can cope with changing requirements and changing environments presents four major challenges. These are (1) to receive, represent and reason about changing requirements and goals; (2) to cope with volatility of the computational context in which it executes; (3) to work with other systems that are heterogeneous and distributed; and (4) to do all of the above without becoming too complex to develop and maintain. These challenges can be addressed by architectures that focus on the adaptivity of relationships rather than entities. Role-Oriented Adaptive Design (ROAD) is presented as such an architecture that addresses the challenges.
Jun Han, Alan W. Colman