Refactoring Product Line Architectures

In this position paper we explore the application of refactoring to product line architectures (PLAs). A PLA is a common architecture for a set of closely related products. As the set of products and their features changes, the PLA must evolve as well. A typical problem in managing such evolution is that the overall structure of the PLA slowly but surely degrades. This is caused by the fact that a set of individual, localized changes does not necessarily result in the best structure for the overall PLA. We discuss our ongoing research in addressing this problem. In particular, we present our metrics for diagnosing structural problems in a PLA, and introduce our set of architectural refactorings that can be used to resolve those problems— thereby improving the overall structure of the PLA.