论文标题

通过约束提升对模型产品线的通用分析

Generic Analysis of Model Product Lines via Constraint Lifting

论文作者

Bayha, Andreas, Aravantinos, Vincent

论文摘要

工程产品线不仅仅是描述产品线:要正确,可以生成的每个变体都必须满足某些约束。为了确保所有这些变体都是正确的(例如,良好的)只有两种方法:要么单独检查感兴趣的变体,要么提出复杂的产品线分析算法,该算法特定于每个约束。在本文中,我们解决了此问题的概括:我们提出了一种机制,该机制允许检查约束是否适用于可能生成的所有变体。本文的主要贡献是假定所有变体都应实现的限制并在产品线的约束中生成(“升降机”)的函数。然后可以直接在模型产品线上检查这些提起的约束,因此可以同时验证所有变体。提升以非常通用的方式配制,该升降允许以模块化方式使用诸如SMT求解或定理的通用算法。我们通过自动翻译模型产品线和约束来展示如何使用SMT求解来验证提升的约束。通过工业案例研究证明了该方法的适用性,在该研究中,我们将提升应用于制造计划的特定领域建模语言。最后,运行时分析通过通过BMW Group和Miele分析不同模型产品线来显示可扩展性。

Engineering a product-line is more than just describing a product-line: to be correct, every variant that can be generated must satisfy some constraints. To ensure that all such variants will be correct (e.g. well-typed) there are only two ways: either to check the variants of interest individually or to come up with a complex product-line analysis algorithm, specific to every constraint. In this paper, we address a generalization of this problem: we propose a mechanism that allows to check whether a constraint holds simultaneously for all variants which might be generated. The main contribution of this paper is a function that assumes constraints that shall be fulfilled by all variants and generates ("lifts") out of them constraints for the product-line. These lifted constraints can then be checked directly on a model product-line, thus simultaneously be verified for all variants. The lifting is formulated in a very general manner, which allows to make use of generic algorithms like SMT solving or theorem proving in a modular way. We show how to verify lifted constraints using SMT solving by automatically translating model product-lines and constraints. The applicability of the approach is demonstrated with an industrial case study, in which we apply our lifting to a domain specific modelling language for manufacturing planning. Finally, a runtime analysis shows scalability by analyzing different model product-lines with production planning data from the BMW Group and Miele.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源