Abstract Features in Feature Modeling

Abstract Features in Feature Modeling
复制标题

特征建模中的抽象特征

DOI:
--
复制
发表时间:
2011
期刊:
2011 15th International Software Product Line Conference
影响因子:
--
通讯作者:
Norbert Siegmund
Norbert Siegmund
中科院分区:
--
文献类型:
--
作者:
Thomas Thüm;Christian Kästner;Sebastian Erdweg;Norbert Siegmund

文献摘要

被引文献

相似文献

软件产品线是一组程序变体,通常是从通用代码库中生成的。功能模型通过记录功能及其有效组合来描述产品线的变异性。在产品线工程中,我们需要为许多不同任务的变异性和程序变体进行推论。例如,给定特征模型,我们可能需要确定所有有效功能组合的数量或计算特定特征组合进行测试。但是,我们发现当代推理方法只能理解特征组合,而不是关于程序变体,因为它们不考虑抽象功能。抽象功能是用于构建功能模型的功能,但是在实现级别上没有任何影响。使用现有的特征模型推理机制进行程序变体会导致结果不正确。因此,尽管抽象特征代表了不影响程序变体的生成的领域决策。我们提高了对特征模型各种分析的抽象特征问题的认识。我们认为,为了推理程序变体,应在功能模型中明确提出抽象功能。我们提出了一种基于命题公式的技术,该技术使能够对程序变体进行推理,而不是特征组合。在实践中,我们的技术可以节省由于在产品线测试中多次考虑相同的程序变体所造成的努力。
A software product line is a set of program variants, typically generated from a common code base. Feature models describe variability in product lines by documenting features and their valid combinations. In product-line engineering, we need to reason about variability and program variants for many different tasks. For example, given a feature model, we might want to determine the number of all valid feature combinations or compute specific feature combinations for testing. However, we found that contemporary reasoning approaches can only reason about feature combinations, not about program variants, because they do not take abstract features into account. Abstract features are features used to structure a feature model that, however, do not have any impact at implementation level. Using existing feature-model reasoning mechanisms for program variants leads to incorrect results. Hence, although abstract features represent domain decisions that do not affect the generation of a program variant. We raise awareness of the problem of abstract features for different kinds of analyses on feature models. We argue that, in order to reason about program variants, abstract features should be made explicit in feature models. We present a technique based on propositional formulas that enables to reason about program variants rather than feature combinations. In practice, our technique can save effort that is caused by considering the same program variant multiple times, for example, in product-line testing.