Decentralized Software Evolution
Abstract
We define decentralized software evolution as the ability to evolve software independent of the original software vendor. Decentralized software evolution (DSE) provides a means for third-party software vendors to customize existing applications for particular domains and customers. This capability benefits everyone involved: the original application vendor sells more product since customization constitutes use; the third-party developer delivers a product in less time and with lower cost by reusing software instead of starting from scratch; and the customer receives a higher quality product in less time and with lower cost. Although reliable, rapid, and cost effective software evolution has been a principal concern of software research since the 1970's, results to date do not directly address DSE. The principles and techniques of software evolution anticipation of change, separation of concerns, modularity, information hiding, object-oriented design, mediator-based design, adaptive object-oriented design, design patterns, aspect-oriented design, etc. help design evolvable software systems. Unfortunately, the flexibility attained using these techniques is lost when the application is compiled for use. The compilation process solidifies the plasticity of a design, making it exceedingly difficult to accommodate a change that would otherwise be easy to make. The objective of DSE is to preserve the design's plasticity in the deployed system, thereby enabling third-party evolution.
Document Details
- Document Type
- Technical Report
- Publication Date
- Sep 01, 2003
- Accession Number
- ADA440842
Entities
People
- Peyman Oreizy
- Richard N. Taylor
Organizations
- University of California, Irvine