Rabiser Daniela, Prähofer Herbert, Grünbacher Paul, Petruzelka Michael, Eder Klaus, Angerer Florian, Kromoser Mario, Grimmer Andreas
1Christian Doppler Laboratory MEVSS, Institute for Software Systems Engineering, Johannes Kepler University Linz, Linz, Austria.
2Institute for System Software, Johannes Kepler University Linz, Linz, Austria.
Softw Syst Model. 2018;17(3):913-938. doi: 10.1007/s10270-016-0564-7. Epub 2016 Oct 14.
Feature models are frequently used to capture the knowledge about configurable software systems and product lines. However, feature modeling of large-scale systems is challenging as models are needed for diverse purposes. For instance, feature models can be used to reflect the perspectives of product management, technical solution architecture, or product configuration. Furthermore, models are required at different levels of granularity. Although numerous approaches and tools are available, it remains hard to define the purpose, scope, and granularity of feature models. This paper first reports results and experiences of an exploratory case study on developing feature models for two large-scale industrial automation software systems. We report results on the characteristics and modularity of the feature models, including metrics about model dependencies. Based on the findings from the study, we developed FORCE, a modeling language, and tool environment that extends an existing feature modeling approach to support models for different purposes and at multiple levels, including mappings to the code base. We demonstrate the expressiveness and extensibility of our approach by applying it to the well-known Pick and Place Unit example and an injection molding subsystem of an industrial product line. We further show how our approach supports consistency between different feature models. Our results and experiences show that considering the purpose and level of features is useful for modeling large-scale systems and that modeling dependencies between feature models is essential for developing a system-wide perspective.
特征模型经常被用于捕获有关可配置软件系统和产品线的知识。然而,大规模系统的特征建模具有挑战性,因为需要出于不同目的构建模型。例如,特征模型可用于反映产品管理、技术解决方案架构或产品配置的观点。此外,在不同的粒度级别都需要模型。尽管有许多方法和工具可用,但仍然难以定义特征模型的目的、范围和粒度。本文首先报告了一项探索性案例研究的结果和经验,该研究针对两个大规模工业自动化软件系统开发特征模型。我们报告了特征模型的特性和模块化方面的结果,包括有关模型依赖性的指标。基于该研究的结果,我们开发了FORCE,一种建模语言和工具环境,它扩展了现有的特征建模方法,以支持针对不同目的和多个级别的模型,包括与代码库的映射。我们通过将其应用于著名的取放单元示例和工业产品线的注塑子系统来展示我们方法的表现力和可扩展性。我们进一步展示了我们的方法如何支持不同特征模型之间的一致性。我们的结果和经验表明,考虑特征的目的和级别对于大规模系统建模很有用,并且对特征模型之间的依赖性进行建模对于形成系统范围的视角至关重要。