Inferring Software Component Interaction Dependencies for Adaptation Support

Abstract

A self-managing software system should be able to monitor and analyze its runtime behavior and make adaptation decisions accordingly to meet certain desirable objectives. Traditional software adaptation techniques and recent “models@runtime” approaches usually require an a priori model for a system’s dynamic behavior. Oftentimes the model is difficult to define and labor-intensive to maintain, and tends to get out of date due to adaptation and architecture decay. We propose an alternative approach that does not require defining the system’s behavior model beforehand, but instead involves mining software component interactions from system execution traces to build a probabilistic usage model, which is in turn used to analyze, plan, and execute adaptations. In this article, we demonstrate how such an approach can be realized and effectively used to address a variety of adaptation concerns. In particular, we describe the details of one application of this approach for safely applying dynamic changes to a running software system without creating inconsistencies. We also provide an overview of two other applications of the approach, identifying potentially malicious (abnormal) behavior for self-protection, and improving deployment of software components in a distributed setting for performance self-optimization. Finally, we report on our experiments with engineering self-management features in an emergency deployment system using the proposed mining approach.

Document Details

Document Type
Pub Defense Publication
Publication Date
Feb 03, 2016
Source ID
10.1145/2856035

Entities

People

  • Eric Yuan
  • Kyle R. Canavera
  • Naeem Esfahani
  • Sam Malek

Organizations

  • Army Research Office
  • George Mason University
  • Google
  • National Science Foundation
  • University of California, Irvine

Tags

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Modeling and Simulation
  • Distributed Systems and Data Platform Development

Technology Areas

  • AI & ML