Decentralized Software Evolution
CALIFORNIA UNIV IRVINE INSTITUTE FOR SOFTWARE RESEARCH
Pagination or Media Count:
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 1970s, 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 designs plasticity in the deployed system, thereby enabling third-party evolution.
- Operations Research
- Computer Programming and Software