Dynamic Software Architectures

This research draws on principles and mechanisms of software architectures and decision theory to make software systems self-configuring and self- adaptive to both changes in requirements and in underlying resources. 

The approach is based on the following key ideas:

(a) explicit representation of functional requirements (services) and of quality of service preferences;

(b) decoupling requirement specification from the lower level mechanisms that carry out configuration and adaptation, thus making a clean separation of concerns between what is needed and how it is carried out; and

(c) efficient algorithms to calculate in real time optimal system configuration and resource allocations.

See also Project Aura.