2012 · 10 citations · 10 references
Software MaintenanceEngineeringSoftware EngineeringFeature DependenciesSoftware AnalysisEmergent InterfacesData ScienceSystems EngineeringData IntegrationSoftware AspectFeature Interaction ProblemFeature ModelingComputer ScienceVirtual SeparationSoftware DesignSoftware EvolutionProgram AnalysisSoftware TestingFormal MethodsProduct Line EngineeringSystem Software
When maintaining a feature in preprocessor-based Software Product Lines (SPLs), developers are susceptible to introduce problems into other features. This is possible because features eventually share elements (like variables and methods) with the maintained one. This scenario might be even worse when hiding features by using techniques like Virtual Separation of Concerns (VSoC), since developers cannot see the feature dependencies and, consequently, they become unaware of them. Emergent Interfaces was proposed to minimize this problem by capturing feature dependencies and then providing information about other features that can be impacted during a maintenance task. In this paper, we present Emergo, a tool capable of computing emergent interfaces between the feature we are maintaining and the others. Emergo relies on feature-sensitive dataflow analyses in the sense it takes features and the SPL feature model into consideration when computing the interfaces.
10
Granularity in software product lines
Christian Kästner, Sven Apel, Martin Kuhlemann · 2008 · 464 citations
Using task context to improve programmer productivity
Mik Kersten, Gail C. Murphy · 2006 · 441 citations
#ifdef Considered Harmful, or Portability Experience With C News
Henry Spencer, Geoff Collyer · 1992 · 209 citations
Global variable considered harmful
W. Wulf, Mary Shaw · ACM SIGPLAN Notices · 1973 · 197 citations · Full text