Software maintenance and evolution: a roadmap
Proceedings of the Conference on The Future of Software Engineering
The structure and value of modularity in software design
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Design Rules: The Power of Modularity Volume 1
Design Rules: The Power of Modularity Volume 1
Software's Future: Managing Evolution
IEEE Software
An Architecture-Based Approach to Self-Adaptive Software
IEEE Intelligent Systems
Runtime Support for Type-Safe Dynamic Java Classes
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
Type-Safe Delegation for Dynamic Component Adaptation
ECOOP '98 Workshop ion on Object-Oriented Technology
On the Role of Software Architectures in Runtime System Reconfiguration
CDS '98 Proceedings of the International Conference on Configurable Distributed Systems
An analysis of modularity in aspect oriented design
Proceedings of the 4th international conference on Aspect-oriented software development
Software architectural support for disconnected operation in distributed environments
Software architectural support for disconnected operation in distributed environments
Practical dynamic software updating for C
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Modularity in design: formal modeling and automated analysis
Modularity in design: formal modeling and automated analysis
POLUS: A POwerful Live Updating System
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Proceedings of the 7th international conference on Aspect-oriented software development
Runtime software adaptation: framework, approaches, and styles
Companion of the 30th international conference on Software engineering
Dynamic software updates: a VM-centric approach
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Safe and timely updates to multi-threaded programs
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Modular aspect-oriented design with XPIs
ACM Transactions on Software Engineering and Methodology (TOSEM)
To upgrade or not to upgrade: impact of online upgrades across multiple administrative domains
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
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.