
Feature-oriented programming extends object-oriented programming to support feature modularity. Feature modules typically cut across class boundaries to implement end-user-visible features. Customized program variants can be composed automatically given a selection of desired feature modules. We propose behavioral feature interfaces based on design by contract for precise localization of faulty feature modules. There are three different approaches for feature-module composition, which are considered to be equivalent in the literature. We discuss advantages and disadvantages for each approach with regard to behavioral feature interfaces. Based on our insights, we present Subclack as a new approach for feature-module composition combining the advantages of all existing approaches. In our examples, we use contracts defined in an feature-oriented extension of the Java Modeling Language, and discuss how they can be checked by means of runtime assertions.
ddc:004
ddc:004
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 7 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Top 10% |
