Differencing and Merging within an Evolving Product Line Architecture

Propagating changes from one place in a product line architecture to another is a difficult problem that occurs in a variety of settings. Currently, no automated tools exist that help an architect in doing so, and performing the task by hand in the face of a large product line architecture can be error-prone and difficult. To address this problem, we have built a set of tools for automating the process. Our approach breaks down into a two-step solution: (1) automatically determining the difference between two selected (versions of) a product architecture, and (2) automatically merging the difference back into a different location in the original product line architecture. In this paper, we detail each of these two steps and evaluate our solution on an example word processor product line architecture.