一句话:通过访谈与文献分析提炼出34条特征建模原则,覆盖从规划到演化的八个阶段。
特征模型是建模可变性丰富软件系统特性的一种直观且成功的记法,但构建与演化困难:需识别、分组、组织特性,映射软件资产并声明依赖。尽管已有三十年研究,仍缺乏通用特征建模原则。本文基于对工业实践者的10次访谈和31篇相关论文,提炼出34条原则,覆盖规划、模型构建、维护与演化等八个阶段。这些原则以实证证据为基础,提供上下文相关的实践建议,说明应考虑的信息来源并总结特征模型的常见特性,可支持工具、合成与分析技术改进及后续研究。
Feature models are arguably one of the most intuitive and successful notations for modeling the features of a variant-rich software system. Feature models help developers to keep an overall understanding of the system, and also support scoping, planning, development, variant derivation, configuration, and maintenance activities that sustain the system's long-term success. Unfortunately, feature models are difficult to build and evolve. Features need to be identified, grouped, organized in a hierarchy, and mapped to software assets. Also, dependencies between features need to be declared. While feature models have been the subject of three decades of research, resulting in many feature-modeling notations together with automated analysis and configuration techniques, a generic set of principles for engineering feature models is still missing. It is not even clear whether feature models could be engineered using recurrent principles. Our work shows that such principles in fact exist. We analyzed feature-modeling practices elicited from ten interviews conducted with industrial practitioners and from 31 relevant papers. We synthesized a set of 34 principles covering eight different phases of feature modeling, from planning over model construction, to model maintenance and evolution. Grounded in empirical evidence, these principles provide practical, context-specific advice on how to perform feature modeling, describe what information sources to consider, and highlight common characteristics of feature models. We believe that our principles can support researchers and practitioners enhancing feature-modeling tooling, synthesis, and analyses techniques, as well as scope future research.