ADAM: Identifying defects in context-aware adaptation
Context-aware applications, as a typical type of self-adaptive software systems, are receiving increasing attention. These applications continually adapt to environmental changes in an autonomic way. However, their adaptation may contain defects when the complexity of modeling all environmental changes is beyond a developer's ability. Such defects can cause failure to the adaptation and result in application crash or freezing. Relating these failures back to responsible defects is challenging. In this paper we propose a novel approach, called ADAM, to assist identifying defects in the context-aware adaptation. ADAM monitors runtime errors for an application, logs relevant error information, and relates them to responsible defects in this application. To make our ADAM approach feasible, we investigate the error types that are commonly exhibited by various failures reported in context-aware applications. ADAM detects these errors in order to identify responsible defects in context-aware applications. To detect these errors, ADAM formally models the adaptation semantics for context-aware applications, and integrates into them a set of assertion checkers with respect to these error types. We experimentally evaluated ADAM through three context-aware applications. The experiments reported promising results that ADAM can effectively detect errors, identify their responsible defects in applications, and give useful hints on how these defects can be fixed. (C) 2012 Elsevier Inc. All rights reserved.
defect context-aware adaptation failure error detection