Product Lines (PL) have proved an effective approach to reuse-based systems development. Several modeling languages were proposed so far to specify PL. Although they can be very different, these languages show two common features: they emphasize (a) variability, and (b) the specification of constraints to define acceptable configurations. It is now widely acknowledged that configuring a product can be considered as a constraint satisfaction problem. It is thus natural to consider constraint programming as a first choice candidate to specify constraints on PL. For instance, the different constraints that can be specified using the FODA language can easily be expressed using boolean constraints, which enables automated calculation and configuration using a SAT solver. But constraint programming proposes other domains than the boolean domain: for instance integers, real, or sets. The integer domain was, for instance, proposed by Benavides to specify constraints on feature attributes. This paper proposes to further explore the use of integer constraint programming to specify PL constraints. The approach was implemented in a prototype tool. Its use in a real case showed that constraint programming encompasses different PL modeling languages (such as FORE, OVM, or else), and allows specifying complex constraints that are difficult to specify with these languages.
翻译:产品线已被证明是复用式系统开发的有效方法。目前已有多种建模语言被提出用于描述产品线。尽管这些语言差异显著,但它们具有两个共同特征:强调(a)可变性,以及(b)通过约束规范来定义可接受的配置。业界普遍认为,产品配置可视为约束满足问题。因此,将约束规划作为描述产品线约束的首要候选方案具有天然合理性。例如,使用FODA语言可指定的各类约束,均可通过布尔约束简便表达,从而借助SAT求解器实现自动化计算与配置。但约束规划还提供了布尔域之外的其他论域,如整数域、实数域或集合域。其中,Benavides曾提出使用整数域来约束特征属性。本文旨在进一步探索整数约束规划在产品线约束描述中的应用。该方法已在原型工具中实现。实际案例研究表明,约束规划不仅涵盖多种产品线建模语言(如FORE、OVM等),还能描述这些语言难以表达的高度复杂约束。