Abstract
The ability to adapt software systems to fix bugs, add/change features without restarting 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. However, 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 functions. Given the software evolution history of the application under consideration, 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 presented 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.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Apache, http://httpd.apache.org/
Baldwin, C.Y., Clark, K.B.: Design Rules: The Power of Modularity, vol. 1. MIT Press, Cambridge (1999)
Bennett, K.H., Rajlich, V.T.: Software maintenance and evolution: a roadmap. In: The Conference on The Future of Software Engineering, pp. 73–87 (2000)
Cai, Y.: Modularity in Design: Formal Modeling and Automated Analysis. PhD thesis, U. of Virginia (2006)
Chandler, A.D.: Strategy and Structure. MIT Press, Cambridge (1962)
Chen, H., Yu, J., Chen, R., Zang, B., Yew, P.-C.: POLUS: A POwerful Live Updating System. In: ICSE (2007)
Dumitras, T., Narasimhan, P., Tilevich, E.: To upgrade or not to upgrade: impact of online upgrades across multiple administrative domains. In: OOPSLA 2010, pp. 865–876 (2010)
Dyer, R., Rajan, H.: Nu: a dynamic aspect-oriented intermediate language model and virtual machine for flexible runtime adaptation. In: AOSD 2008 (2008)
Garlan, D., Cheng, S.-W., Huang, A.-C., Schmerl, B., Steenkiste, P.: Rainbow: Architecture-based self-adaptation with reusable infrastructure. Computer 37, 46–54 (2004)
Gharaibeh, B., Rajan, H., Chang, J.M.: A quantitative cost/benefit analysis for dynamic updating. Technical report, Iowa State University (2009)
Ji, Y., Mookerjee, V., Radhakrishnan, S.: Real options and software upgrades: An economic analysis. In: International Conf. on Information Systems (ICIS), pp. 697–704 (2002)
Sullivan, K., et al.: Modular aspect-oriented design with XPIs. ACM TOSEM (2009)
Klepper, S.: Entry, exit, growth and innovation over the product life cycle. American Economic Review 86(30), 562–583 (1996)
Kniesel, G.: Type-safe delegation for dynamic component adaptation. In: Demeyer, S., Dannenberg, R.B. (eds.) ECOOP 1998 Workshops. LNCS, vol. 1543, pp. 136–137. Springer, Heidelberg (1998)
Lehman, M.: Software’s future: managing evolution. IEEE Software 15(1), 40–44 (1998)
Lopes, C.V., Bajracharya, S.K.: An analysis of modularity in aspect oriented design. In: AOSD 2005, pp. 15–26 (2005)
Mätzel, K., Schnorf, P.: Dynamic component adaptation. Technical Report 97-6-1, Union Bank of Swizerland (1997)
Mikic-Rakic, M.: Software architectural support for disconnected operation in distributed environments. PhD thesis, University of Southern California (2004)
Mockus, A., Weiss, D.M.: Predicting risk of software changes. Bell Labs Technical Journal 5, 169–180 (2000)
Neamtiu, I., Hicks, M.: Safe and timely updates to multi-threaded programs. SIGPLAN Not. 44(6), 13–24 (2009)
Neamtiu, I., Hicks, M., Stoyle, G., Oriol, M.: Practical dynamic software updating for C. In: PLDI (2006)
Oreizy, P., Medvidovic, N., Taylor, R.N.: Runtime software adaptation: framework, approaches, and styles. In: ICSE Companion 2008: Companion of the 30th International Conference on Software Engineering, pp. 899–910 (2008)
Oreizy, P., Taylor, R.: On the role of software architectures in runtime system reconfiguration. In: Intl. Conf. on Configurable Distributed Systems, (1998)
Orso, A., Rao, A., Harrold, M.: A technique for dynamic updating of Java software (2002)
Oreizy, P., et al.: An architecture-based approach to self-adaptive software. IEEE Intelligent Systems 14(3), 54–62 (1999)
Malabarba, S., et al.: Runtime support for type-safe dynamic java classes. In: Hwang, J., et al. (eds.) ECOOP 2000. LNCS, vol. 1850, pp. 337–361. Springer, Heidelberg (2000)
Subramanian, S., Hicks, M., McKinley, K.S.: Dynamic software updates: a VM-centric approach. In: PLDI, pp. 1–12 (2009)
Sullivan, K.J., Griswold, W.G., Cai, Y., Hallen, B.: The structure and value of modularity in software design. In: ESEC/FSE 2001, pp. 99–108 (2001)
Williamson, O.E.: The Economic Institutions of Capitalism. Free Press, New York (1985)
Xerces. XML library, http://xerces.apache.org/xerces-j/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gharaibeh, B., Rajan, H., Chang, J.M. (2011). Analyzing Software Updates: Should You Build a Dynamic Updating Infrastructure?. In: Giannakopoulou, D., Orejas, F. (eds) Fundamental Approaches to Software Engineering. FASE 2011. Lecture Notes in Computer Science, vol 6603. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-19811-3_26
Download citation
DOI: https://doi.org/10.1007/978-3-642-19811-3_26
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-19810-6
Online ISBN: 978-3-642-19811-3
eBook Packages: Computer ScienceComputer Science (R0)