Adam: Identifying defects in context-aware adaptation

  • Authors:
  • Chang Xu;S. C. Cheung;Xiaoxing Ma;Chun Cao;Jian Lu

  • Affiliations:
  • State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, Jiangsu, China and Department of Computer Science and Technology, Nanjing University, Nanjing, Jiangsu, China;Department of Computer Science and Engineering, The Hong Kong University of Science and Technology, Kowloon, Hong Kong, China;State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, Jiangsu, China and Department of Computer Science and Technology, Nanjing University, Nanjing, Jiangsu, China;State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, Jiangsu, China and Department of Computer Science and Technology, Nanjing University, Nanjing, Jiangsu, China;State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, Jiangsu, China and Department of Computer Science and Technology, Nanjing University, Nanjing, Jiangsu, China

  • Venue:
  • Journal of Systems and Software
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.