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.

Open PDF

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

Tags

Communities of Interest

  • C4I
  • Engineered Resilient Systems

DTIC Thesaurus Topics

  • Application Software
  • Computer Program Documentation
  • Computer Programming
  • Computer Programs
  • Consistency
  • Electronic Mail
  • Geographic Distribution
  • Intellectual Property
  • Language
  • Personal Information Managers
  • Scripting Languages
  • Software Development
  • Web Browsers

Fields of Study

  • Computer science
  • Engineering

Readers

  • Economics
  • Software Engineering.