Software product lines are now an established framework for software design. They are specified by special diagrams called feature models. For formal analysis, the latter are usually encoded by Boolean propositional theories. We discuss a major deficiency of this semantics, and show that it can be fixed by considering a product to be an instantiation process rather than its final result. We call intermediate states of this process partial products, and argue that what a feature model really defines is a poset of its partial products. We argue that such structures can be viewed as special Kripke structure that we call partial product Kripke structures, ppKS. To specify these Kripke structures, we propose a CTL-based logic, called partial product CTL, ppCTL. We show how to represent a feature model M by a ppCTL theory ML(M ) (ML stands for modal logic) such that any ppKS satisfying the theory is equal to the partial product line determined by M . Hence, ML(M ) can be considered a sound and complete representation of M . We also discuss several applications of the modal logic view in feature modeling, including refactoring of feature models.
Software product line engineering is a very common method for designing complex software systems. Feature modeling is the most common approach to specify product lines. The main part of a feature model is a special tree of features called a feature diagram. Cardinality-based feature diagrams provide the most expressive tool among the current feature diagram languages. The most common characterization of the semantics of a cardinality-based diagram is the set of flat multisets over features satisfying the constraints. However, this semantics provides a poor abstract view of the diagram. We address this problem by proposing another multiset theory for the cardinality-based feature diagram, called the hierarchical theory of the diagram. We show that this semantics captures all information of the diagram so that one can retrieve the diagram from its hierarchical semantics. We also characterize sets of multisets, which can provide a hierarchical semantics of some diagrams.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.