Delta-oriented programming is a modular, yet flexible technique to implement software product lines. To efficiently verify the specifications of all possible product variants of a product line, it is usually infeasible to generate all product variants and to verify them individually. To counter this problem, we propose a transformational proof system in which the specifications in a delta module describe changes to previous specifications. Our approach allows each delta module to be verified in isolation, based on symbolic assumptions for calls to methods which may be in other delta modules. When product variants are generated from delta modules, these assumptions are instantiated by the actual guarantees of the methods in the considered product variant and used to derive the specifications of this product variant.
The reasoning approach in REF allows each delta module in delta-oriented programming to be verified in isolation, based on symbolic assumptions for calls to methods which may be defined in other delta modules.
A transformational proof system for delta-oriented programming
SPLC '12
Computer Science