Analyzing Software Updates: Should You Build a Dynamic Updating Infrastructure?

By: Bashar Gharaibeh, Hridesh Rajan, and J. Morris Chang

PDF Download Download Paper

Abstract

The ability to adapt software systems to fix bugs, add/change features without restarting it is becoming important for many domains including but not limited to finance, social networking, control systems, etc. Fortunately, many ideas have begun to emerge under the umbrella term “dyanamic updating" to solve this problem. Dynamic updating is critical to address certain software evolution needs. Dynamic updating literature evaluates such systems in terms of coverage (i.e. what type of code changes are supported) and performance. How- ever, we do not have a technique to analyze whether certain updating solution, based on its costs and benefits, is suitable for an application. In this paper, we present a quantitative analysis model to fill this gap. Our model is parameterized and it can be instantiated with application-specific valuation func- tions. Given the software evolution history of the application under considera- tion, our model allows rigorous comparisons of the value of different software updating schemes (e.g. online vs. offline). We illustrate our model using two case studies inspired from the the evolution history of Xerces XML parser library and Apache httpd web server (Other case studies and evaluation examples are pre- sented in our technical report [Gharaibeh, Rajan and Chang 09]). The proposed analysis scheme can serve system architects in evaluating their current updating scheme. For example, to audit the system’s value during previous development cycles and whether a different updating scheme will generate higher value.

Other Info

A Previous version of this paper appeared as Technical Report 09-27, Computer Science, Iowa State University, October 2009.

ACM Reference

Gharaibeh, B. et al. 2011. Analyzing Software Updates: Should You Build a Dynamic Updating Infrastructure? Fundamental Approaches to Software Engineering (FASE) (Mar. 2011).

BibTeX Reference

@inproceedings{gharaibeh2011analyzing,
  author = {Bashar Gharaibeh and Hridesh Rajan and J. Morris Chang},
  title = {Analyzing Software Updates: Should You Build a Dynamic Updating Infrastructure?},
  booktitle = {Fundamental Approaches to Software Engineering (FASE)},
  location = {Saarbrücken, Germany},
  month = {Mar-Apr},
  year = {2011},
  entrysubtype = {conference},
  abstract = {
    The ability to adapt software systems to fix bugs, add/change features without
    restarting it is becoming important for many domains including but not limited
    to finance, social networking, control systems, etc. Fortunately, many ideas
    have begun to emerge under the umbrella term “dyanamic updating" to solve this
    problem. Dynamic updating is critical to address certain software evolution
    needs. Dynamic updating literature evaluates such systems in terms of coverage
    (i.e. what type of code changes are supported) and performance. How- ever, we
    do not have a technique to analyze whether certain updating solution, based on
    its costs and benefits, is suitable for an application.

    In this paper, we present a quantitative analysis model to fill this gap. Our
    model is parameterized and it can be instantiated with application-specific
    valuation func- tions. Given the software evolution history of the application
    under considera- tion, our model allows rigorous comparisons of the value of
    different software updating schemes (e.g. online vs. offline). We illustrate
    our model using two case studies inspired from the the evolution history of
    Xerces XML parser library and Apache httpd web server (Other case studies and
    evaluation examples are pre- sented in our technical report [Gharaibeh, Rajan
    and Chang 09]). The proposed analysis scheme can serve system architects in
    evaluating their current updating scheme. For example, to audit the system’s
    value during previous development cycles and whether a different updating
    scheme will generate higher value.
  }
}