Delta-oriented programming (DOP) is a modular, yet flexible approach for implementing software product lines extending feature-oriented programming. Delta modules allow adding, modifying and removing code for generating product variants. The connection between code modifications and product features and the application ordering of delta modules is less restrictive than in FOP. However, the additional flexibility of DOP increases the complexity for ensuring that all possible product variants of a DOP SPL are well-typed. In previous work, we presented a constraint-based type system which allows analyzing each delta module in isolation, but requires a subsequent analysis step for each product variant. Some FOP SPL type systems generate a representation of all possible product variants and use a family-based analysis to ensure that all possible product variants are type safe. In this paper, we enhance the existing constraint-based type checking approach for DOP by providing a family-based analysis step which improves the product-based analysis of our previous work by making it possible to reuse the intermediate results of the analysis associated to the product variants.
展开▼