Feature maintenance with emergent interfaces

M Ribeiro, P Borba, C Kästner - … of the 36th International Conference on …, 2014 - dl.acm.org
Proceedings of the 36th International Conference on Software Engineering, 2014dl.acm.org
Hidden code dependencies are responsible for many complications in maintenance tasks.
With the introduction of variable features in configurable systems, dependencies may even
cross feature boundaries, causing problems that are prone to be detected late. Many current
implementation techniques for product lines lack proper interfaces, which could make such
dependencies explicit. As alternative to changing the implementation approach, we provide
a tool-based solution to support developers in recognizing and dealing with feature …
Hidden code dependencies are responsible for many complications in maintenance tasks. With the introduction of variable features in configurable systems, dependencies may even cross feature boundaries, causing problems that are prone to be detected late. Many current implementation techniques for product lines lack proper interfaces, which could make such dependencies explicit. As alternative to changing the implementation approach, we provide a tool-based solution to support developers in recognizing and dealing with feature dependencies: emergent interfaces. Emergent interfaces are inferred on demand, based on feature-sensitive intraprocedural and interprocedural data-flow analysis. They emerge in the IDE and emulate modularity benefits not available in the host language. To evaluate the potential of emergent interfaces, we conducted and replicated a controlled experiment, and found, in the studied context, that emergent interfaces can improve performance of code change tasks by up to 3 times while also reducing the number of errors.
ACM Digital Library