Loading…

Access control in feature-oriented programming

In feature-oriented programming ( FOP) a programmer decomposes a program in terms of features. Ideally, features are implemented modularly so that they can be developed in isolation. Access control mechanisms in the form of access or visibility modifiers are an important ingredient to attain feature...

Full description

Saved in:
Bibliographic Details
Published in:Science of computer programming 2012-03, Vol.77 (3), p.174-187
Main Authors: Apel, Sven, Kolesnikov, Sergiy, Liebig, Jörg, Kästner, Christian, Kuhlemann, Martin, Leich, Thomas
Format: Article
Language:English
Subjects:
Citations: Items that this one cites
Items that cite this one
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:In feature-oriented programming ( FOP) a programmer decomposes a program in terms of features. Ideally, features are implemented modularly so that they can be developed in isolation. Access control mechanisms in the form of access or visibility modifiers are an important ingredient to attain feature modularity as they allow programmers to hide and expose internal details of a module’s implementation. But developers of contemporary feature-oriented languages have not considered access control mechanisms so far. The absence of a well-defined access control model for FOP breaks encapsulation of feature code and leads to unexpected program behaviors and inadvertent type errors. We raise awareness of this problem, propose three feature-oriented access modifiers, and present a corresponding access modifier model. We offer an implementation of the model on the basis of a fully-fledged feature-oriented compiler. Finally, by analyzing ten feature-oriented programs, we explore the potential of feature-oriented modifiers in FOP. ► Contemporary access and visibility control mechanisms in feature-oriented programming languages are suboptimal (undefined semantics and limited expressiveness). ► There is a considerable potential for access and visibility modifiers tailored to feature-oriented programming, which is supported by an empirical study on ten non-trivial feature-oriented product lines. ► Most features of a sample of ten software product lines are largely self-referential, which supports the philosophy of viewing features as cohesive units that should be developed independently, rather than viewing features as transformations that have access to all program elements.
ISSN:0167-6423
1872-7964
DOI:10.1016/j.scico.2010.07.005