A feature is "a prominent or distinctive user-visible aspect, quality, or characteristic of a software system or systems", as defined by Kang et al. At the implementation level, "it is a structure that extends and modifies the structure of a given software in order to satisfy a stakeholder’s requirement, to implement and encapsulate a design decision, and to offer a configuration option", as defined by Apel et al.