Upgradable Software Product Customization by Code Query

Research output: Book / Anthology / Report / Ph.D. thesisPh.D. thesis

View graph of relations

The professional press on enterprise systems warns its readers: Costly., A
return on investment killer. , Be prepared!. What can create some much af-
iction and turmoil in an otherwise very successful industry? Come and meet
the dreadful upgrade problem.
Enterprise systems are prime examples of a subset of software systems that
we call software products: software that needs special support for customization.
Through customization, external companies can modify part of the original
product to better t the needs of a niche market. Upon the release of a new
version of the original software product, external companies must port their
customizations to the latest version of the base software product, a process called
an upgrade. Companies typically consider upgrades as mandatory, and hence
must bear their high cost on a regular basis. The objectives of customizability
and upgradability are conicting this constitutes the upgrade problem.
We study the upgrade problem in the eld of enterprise systems from a
technical point of view, and consider the large spectrum of existing software
engineering techniques for customization. We ground our work in an empirical
study, that shows that customizations cannot be anticipated accurately. This
result puts an important constraint on the solution and calls for an approach
that complements the traditional customization techniques. We present the
novel concept of code query by example, an approach that (a) requires little
anticipation, (b) is simple and (c) may be adopted incrementally. Last but not
least, this solution makes a subset of customizations amenable to upgrades. The
implementation of our prototype is based on bytecode matching and bytecode
instrumentation, in a managed .Net environment. We study the advantages,
the disadvantages, and the limitations of our approach, both of the concept of
code query by example, and of the implementation strategy. Finally, we show
how our proposal can be used in other contexts where code query is needed, for
example rule-based lightweight static analysis.
Original languageEnglish
PublisherIT-Universitetet i København
Publication statusPublished - 2009

ID: 1058995