Information about my research

Broad research interests

My main research interests involve software architecture and the use of architectural models in all aspects of software engineering beginning with design, through implementation, maintenance, and evolution. I'm also interested in architectural description languages and their accompanying tool support, the design of decentralized peering architectures that support dynamic and independent reorganization, modeling of systems-of-systems architectures, the elaboration of software development processes supporting particular architectural methodologies, and architectures and architectural styles specifically targeted to the development of robotic control software systems.

More specific

My current research project involves the development of self-adaptive software: software which changes in response to changing conditions. Very often, software adaptations are driven by the human operators who are responsible for the maintenance of software systems. While for some systems this is appropriate and satisfactory, other systems demand more timely intervention or autonomy. Dynamic software radio systems, space exploration vessels, and distributed systems faced with unpredictable connectivity and in unreachable environments are just a few examples of systems requiring the capability to autonomously respond to situations dictating change.

To address this need for self-adaptive software, I've been working on combining insights from software architecture and policy-based systems. Building on existing architecture-based runtime evolution facilities developed at UCI, my research involves the use of a policy-based approach to reasoning over the space of possible adaptations in order to build self-adaptive systems. Early work on this resulted in the Knowledge-Based Architectural Adaptation Management (KBAAM) approach where reasoning and decision-making about the timing and nature of specific adaptations are grounded on knowledge-based adaptation policies with both policies and relevant system knowledge being represented and explicitly modeled as first-class architectural elements and included in the architectural description of a self-adaptive system. Since then, this work is now referred to as Policy-Based Architectural Adaptation Management (PBAAM), which I feel is more descriptive. This technique allows for adaptation to be decoupled to a large degree from system implementations as well as providing for the dynamic modification of adaptive policies at system runtime.