Software Product Lines (SPLs) are families of related software products developed from a common set of artifacts. Most existing analysis tools can be applied to a single product at a time, but not to an entire SPL. Some tools have been redesigned/re-implemented to support the kind of variability exhibited in SPLs, but this usually takes a lot of effort, and is error-prone. Declarative analyses written in languages like Datalog have been collectively lifted to SPLs in prior work, which makes the process of applying an existing declarative analysis to a product line more straightforward. In this paper, we take an existing declarative analysis (behaviour alteration) written in the Grok declarative language, port it to Datalog, and apply it to a set of automotive software product lines from General Motors. We discuss the design of the analysis pipeline used in this process, present its scalability results, and provide a means to visualize the analysis results for a subset of products filtered by feature expression. We also reflect on some of the lessons learned throughout this project.
翻译:软件产品系列(SPL)是用共同的一批工艺品开发的相关软件产品系列(SPL),大多数现有分析工具可以一次适用于单一产品,但不能适用于整个SPL。一些工具已经重新设计/重新实施,以支持SPL所展示的变异性,但通常需要大量努力,而且容易出错。在以前的工作中,用像Datalog这样的语言共同向SPL提出说明性分析,使得对现有产品系列进行宣示性分析的过程更加直截了当。在本文中,我们用格罗克宣示性语言编写现有的宣言性分析(行为改变),将其移植到Datalog,并将其应用到通用汽车公司的一系列汽车软件产品系列中。我们讨论了在这一过程中使用的分析管道的设计,展示其可缩放性结果,并提供一种手段,将分析结果直观地表达所过滤的某组产品的分析结果。我们还思考了整个项目中汲取的一些经验教训。