own.bib

@INPROCEEDINGS{K:RAMSE06,
  AUTHOR = {Christian K\"astner and Sven Apel and Gunter Saake},
  TITLE = {Implementing Bounded Aspect Quantification in {AspectJ}},
  BOOKTITLE = {Proc.\ ECOOP Workshop on Reflection, AOP, and Meta-Data for Software Evolution (RAM-SE)},
  YEAR = 2006,
  MONTH = JUL,
  LOCATION = {Nantes, France},
  EDITORS = {Walter Cazzola and Shigeru Chiba and Yvonne Coady and Gunter Saake},
  PAGES = {111--122},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/RAM-SE2006.pdf},
  ABSTRACT = {The integration of aspects into the methodology of stepwise software
development and evolution is still an open issue. This paper
focuses on the global quantification mechanism of nowadays
aspect-oriented languages that contradicts basic principles of this
methodology. One potential solution to this problem is to bound the
potentially global effects of aspects to a set of local development
steps. We discuss several alternatives to implement such bounded
aspect quantification in AspectJ. Afterwards, we describe a concrete
approach that relies on meta-data and pointcut restructuring
in order to control the quantification of aspects. Finally, we discuss
open issues and further work.}
}

@TECHREPORT{aspectrefinement,
  AUTHOR = {Sven Apel and Christian K{\"a}stner and Thomas Leich and Gunter Saake},
  TITLE = {Aspect Refinement},
  NUMBER = 10,
  INSTITUTION = {School of Computer Science, University of Magdeburg},
  ADDRESS = {Germany},
  MONTH = AUG,
  YEAR = 2006,
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/TechReport_10_2006.pdf},
  ABSTRACT = {Stepwise refinement (SWR) is fundamental to software engineering.
As aspect-oriented programming (AOP) gains momentum in
software development, aspects should be subject to SWR as well. In this
paper, we introduce the notion of aspect refinement that unifies AOP
and SWR. To reflect this unification to programming language level, we
present an implementation technique for refining aspects based on mixin
composition. Specifically, we propose a set of concrete mechanisms for
refining all kinds of structural elements of aspects in a uniform way
(methods, pointcuts, advice). To underpin our proposal, we contribute
a formal syntax and semantics specification as well as a fully functional
compiler on top of AspectJ. We apply our approach to a non-trivial case
study and derive several programming guidelines.}
}

@ARTICLE{AKKL:IX06,
  AUTHOR = {Sven Apel and Christian K{\"a}stner and Martin Kuhlemann and Thomas Leich},
  TITLE = {{Modularit{\"a}t von Softwarebausteinen: Aspekte versus Merkmale}},
  JOURNAL = {iX Magazin f{\"u}r Professionelle Informationstechnik},
  NUMBER = 10,
  MONTH = OCT,
  YEAR = 2006,
  PAGES = {116--122},
  URL = {http://www.heise.de/kiosk/archiv/ix/06/10/116_Objektorientierte_Grenzen},
  ABSTRACT = {Schon seit einigen Jahren macht die aspektorientierte Programmierung von sich reden. Daneben zieht in j{\"u}ngster Zeit die merkmalsorientierte Programmierung die Aufmerksamkeit auf sich. Beide verfolgen mit der Verbesserung der Modularit{\"a}t von Softwarebausteinen {\"a}hnliche Ziele, realisieren dies aber auf unterschiedliche Art und Weise - jeweils mit Vor- und Nachteilen.}
}

@MASTERSTHESIS{kaestnerThesis,
  AUTHOR = {Christian K\"astner},
  TITLE = {Aspect-Oriented Refactoring of {Berkeley DB}},
  SCHOOL = {University of Magdeburg},
  ADDRESS = {Germany},
  MONTH = MAR,
  YEAR = 2007,
  NOTYPE = {Diplomarbeit},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/thesis_final.pdf}
}

@INPROCEEDINGS{AKT:ACoM07,
  AUTHOR = {Sven Apel and Christian K{\"a}stner and Salvador Trujillo},
  TITLE = {On the Necessity of Empirical Studies in the Assessment of Modularization Mechanisms for Crosscutting Concerns},
  BOOKTITLE = {Proc.\ ICSE Workshop on Assessment of Contemporary Modularization Techniques (ACoM)},
  LOCATION = {Minneapolis, MN, USA},
  MONTH = MAY,
  YEAR = 2007,
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/ACoM2007.pdf},
  ABSTRACT = {Collaborations are a frequently occurring class of crosscutting
concerns. Prior work has argued that collaborations
are better implemented using Collaboration Languages
(CLs) rather than AspectJ-like Languages (ALs).
The main argument is that aspects flatten the objectoriented
structure of a collaboration, and introduce more
complexity rather than benefits -- in other words, CLs and
ALs differ with regard to program comprehension. To explore
the effects of CL and AL modularization mechanisms
on program comprehension, we propose to conduct a series
of experiments. We present ideas on how to arrange such
experiments that should serve as a starting point and foster
a discussion with other researchers.}
}

@ARTICLE{AKLS:TOOLS07,
  AUTHOR = {Sven Apel and Christian K{\"a}stner and Thomas Leich and Gunter Saake},
  TITLE = {Aspect Refinement - Unifying {AOP} and Stepwise Refinement},
  JOURNAL = {Journal of Object Technology (JOT)},
  VOLUME = 6,
  NUMBER = 9,
  SELECTED = 1,
  MONTH = OCT,
  YEAR = 2007,
  PAGES = {13--33},
  NOTE = {Special Issue. TOOLS EUROPE 2007. Acceptance rate: 31\,\% (24/78)},
  PDF = {http://www.jot.fm/issues/issue_2007_10/paper1.pdf},
  ABSTRACT = {Stepwise refinement (SWR) is fundamental to software engineering. As aspectoriented
programming (AOP) is gaining momentum in software development, aspects
should be considered in the light of SWR. In this paper, we elaborate the notion of
aspect refinement that unifies AOP and SWR at the architectural level. To reflect this
unification to the programming language level, we present an implementation technique
for refining aspects based on mixin composition along with a set of language
mechanisms for refining all kinds of structural elements of aspects in a uniform way
(methods, pointcuts, advice). To underpin our proposal, we contribute a fully functional
compiler on top of AspectJ, present a non-trivial, medium-sized case study, and
derive a set of programming guidelines.
},
  URL = {http://www.jot.fm/issues/issue_2007_10/paper1/index.html}
}

@INPROCEEDINGS{KAB:SPLC07,
  AUTHOR = {Christian K\"astner and Sven Apel and Don Batory},
  TITLE = {A Case Study Implementing Features Using {AspectJ}},
  BOOKTITLE = {Proceedings of the 11th International Software Product Line Conference (SPLC)},
  YEAR = 2007,
  MONTH = SEP,
  PUBLISHER = {IEEE Computer Society},
  ADDRESS = {Los Alamitos, CA, USA},
  ISBN = {0-7695-2888-0},
  PAGES = {223-232},
  LOCATION = {Kyoto, Japan},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/splc07.pdf},
  SELECTED = 1,
  NOTE = {Acceptance rate: 35\,\% (28/80)},
  ABSTRACT = {Software product lines aim to create highly configurable
programs from a set of features. Common belief and recent
studies suggest that aspects are well-suited for implementing
features. We evaluate the suitability of AspectJ with respect
to this task by a case study that refactors the embedded
database system Berkeley DB into 38 features. Contrary to
our initial expectations, the results were not encouraging.
As the number of aspects in a feature grows, there is a noticeable
decrease in code readability and maintainability.
Most of the unique and powerful features of AspectJ were
not needed. We document where AspectJ is unsuitable for
implementing features of refactored legacy applications and
explain why.}
}

@INPROCEEDINGS{K:SPLCDemo07,
  AUTHOR = {Christian K\"astner},
  TITLE = {{CIDE}: Decomposing Legacy Applications into Features},
  BOOKTITLE = {Proceedings of the 11th International Software Product Line Conference (SPLC), second volume (Demonstration)},
  LOCATION = {Kyoto, Japan},
  YEAR = 2007,
  PAGES = {149--150},
  ISBN = {978-4-7649-0342-5},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/splc07demo.pdf},
  ABSTRACT = {Taking an extractive approach to decompose a legacy application
into features is difficult and laborious with current
approaches and tools. We present a prototype of a tooldriven
approach that largely hides the complexity of the task.}
}

@INPROCEEDINGS{KKB:ECOOPPoster07,
  AUTHOR = {Christian K\"astner and Martin Kuhlemann and Don Batory},
  TITLE = {Automating Feature-Oriented Refactoring of Legacy Applications},
  BOOKTITLE = {Poster presented at Europ.\ Conf.\ Object-Oriented Programming (ECOOP)},
  LOCATION = {Berlin, Germany},
  MONTH = JUL,
  YEAR = 2007,
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/ecooprefactoring.pdf},
  ABSTRACT = {Creating a software product line from a legacy application
is a difficult task. We propose a tool that helps automating
tedious tasks of refactoring legacy applications
into features and frees the developer from the burden of
performing laborious routine implementations.}
}

@TECHREPORT{ALBMK:Passau07,
  AUTHOR = {Sven Apel and Christian Lengauer and Don Batory and 
Bernhard M{\"o}ller and Christian K{\"a}stner},
  TITLE = {An Algebra for Feature-Oriented Software Development},
  INSTITUTION = {Department of Informatics and Mathematics, University 
of Passau},
  NUMBER = {MIP-0706},
  YEAR = 2007,
  PDF = {http://www.infosun.fim.uni-passau.de/cl/staff/apel/publications/mip-0706.pdf},
  ABSTRACT = {Feature-Oriented Software Development (FOSD) provides a
multitude of formalisms, methods, languages, and tools for building variable,
customizable, and extensible software. Along different lines of research
different ideas of what a feature is have been developed. Although
the existing approaches have similar goals, their representations and formalizations
have not been integrated so far into a common framework.
We present a feature algebra as a foundation of FOSD. The algebra captures
the key ideas and provides a common ground for current and future
research in this field, in which also alternative options can be explored.}
}

@INPROCEEDINGS{TKA:SOAPL07,
  AUTHOR = {Salvador Trujillo and Christian K{\"a}stner and Sven Apel},
  TITLE = {Product Lines that supply other Product Lines: A Service-Oriented Approach},
  BOOKTITLE = {SPLC Workshop: Service-Oriented Architectures and Product Lines - What is the Connection?},
  LOCATION = {Kyoto, Japan},
  MONTH = SEP,
  YEAR = 2007,
  ABSTRACT = {Software product line is a paradigm to develop a family
of software products with the goal of reuse. In this paper, we
focus on a scenario in which different products from different
product lines are combined together in a third product
line to yield more elaborate products, i.e., a product line
consumes products from third product line suppliers. The
issue is not how different products can be produced separately,
but how they can be combined together. We propose
a service-oriented architecture where product lines are regarded
as services, yielding a service-oriented product line.
This paper illustrates the approach with an example for a
service-oriented architecture of a web portal product line
supplied by portlet product lines.
}
}

@ARTICLE{AKML:NASA07,
  AUTHOR = {Sven Apel and Christian K{\"a}stner and Martin Kuhlemann and Thomas Leich},
  TITLE = {Pointcuts, Advice, Refinements, and Collaborations: Similarities, Differences, and Synergies},
  JOURNAL = {Innovations in Systems and Software Engineering (ISSE) -- A NASA Journal},
  VOLUME = 3,
  NUMBER = {3-4},
  PAGES = {281--289},
  ISSN = {1614-5046},
  PUBLISHER = {Springer},
  YEAR = 2007,
  MONTH = DEC,
  SELECTED = 1,
  ABSTRACT = {Aspect-oriented programming (AOP) is a novel programming paradigm
that aims at modularizing complex software. It embraces
several mechanisms including (1) pointcuts and advice as well as
(2) refinements and collaborations. Though all these mechanisms
deal with crosscutting concerns, i.e., a special class of design and
implementation problems that challenge traditional programming
paradigms, they do so in different ways. In this article we explore
their relationship and their impact on software modularity. This
helps researchers and practitioners to understand their differences
and guides to use the right mechanism for the right problem.},
  URL = {http://www.springerlink.com/content/08m600873g3044t4/},
  PDF = {http://www.infosun.fim.uni-passau.de/cl/staff/apel/publications/ISSE2007.pdf}
}

@INPROCEEDINGS{KK:AOPLE07,
  AUTHOR = {Martin Kuhlemann and Christian K{\"a}stner},
  TITLE = {Reducing the Complexity of {AspectJ} Mechanisms for Recurring Extensions},
  BOOKTITLE = {Proc.\ GPCE Workshop on Aspect-Oriented Product Line Engineering (AOPLE)},
  YEAR = 2007,
  LOCATION = {Salzburg, Austria},
  ABSTRACT = {Aspect-Oriented Programming (AOP) aims at modularizing crosscutting
concerns. AspectJ is a popular AOP language extension for
Java that includes numerous sophisticated mechanisms for implementing
crosscutting concerns modularly in one aspect. The language
allows to express complex extensions, but at the same time
the complexity of some of those mechanisms hamper the writing
of simple and recurring extensions, as they are often needed especially
in software product lines. In this paper we propose an AspectJ
extension that introduces a simplified syntax for simple and
recurring extensions. We show that our syntax proposal improves
evolvability and modularity in AspectJ programs by avoiding those
mechanisms that may harm evolution and modularity if misused.
We show that the syntax is applicable for up to 74\% of all pointcut
and advice mechanisms by analysing three AspectJ case studies.},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/aople07.pdf}
}

@INPROCEEDINGS{SKRKS:VaMoS08,
  TITLE = {Integrated Product Line Model for Semi-Automated Product Derivation Using Non-Functional Properties},
  AUTHOR = {Norbert Siegmund and Martin Kuhlemann and Marko Rosenm{\"u}ller and Christian K{\"a}stner and Gunter Saake},
  BOOKTITLE = {Proceedings of the Second International Workshop on Variability Modelling of Software-intensive Systems (VaMoS)},
  YEAR = 2008,
  MONTH = JAN,
  LOCATION = {Essen, Germany},
  PAGES = {25--23},
  ISSN = {1860-2770},
  PDF = {http://www.icb.uni-due.de/fileadmin/ICB/research/research_reports/icb_report_22.pdf},
  ABSTRACT = {Software product lines (SPL) allow to generate tailormade
software by manually configuring reusable core assets.
However, SPLs with hundreds of features and millions
of possible products require an appropriate support
for semi-automated product derivation. This derivation has
to be based on non-functional properties that are related to
core assets and domain features. Both elements are part
of different models connected via complex mappings. We
propose a model that integrates features and core assets in
order to allow semi-automated product derivation.
}
}

@INPROCEEDINGS{KAK:ICSE08,
  TITLE = {Granularity in Software Product Lines},
  AUTHOR = {Christian K\"{a}stner and Sven Apel and Martin Kuhlemann},
  BOOKTITLE = {Proceedings of the 30th International Conference on Software Engineering (ICSE)},
  YEAR = 2008,
  MONTH = MAY,
  LOCATION = {Leipzig, Germany},
  ISBN = {978-1-60558-079-1},
  PUBLISHER = {ACM},
  ADDRESS = {New York, NY, USA},
  PAGES = {311--320},
  DOI = {http://doi.acm.org/10.1145/1368088.1368131},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/icse2008.pdf},
  SELECTED = 1,
  ABSTRACT = {
Building software product lines (SPLs) with features is a challenging
task. Many SPL implementations support features with coarse
granularity - e.g., the ability to add and wrap entire methods. However,
fine-grained extensions, like adding a statement in the middle
of a method, either require intricate workarounds or obfuscate the
base code with annotations. Though many SPLs can and have been
implemented with the coarse granularity of existing approaches,
fine-grained extensions are essential when extracting features from
legacy applications. Furthermore, also some existing SPLs could
benefit from fine-grained extensions to reduce code replication or
improve readability. In this paper, we analyze the effects of feature
granularity in SPLs and present a tool, called Colored IDE (CIDE),
that allows features to implement coarse-grained and fine-grained
extensions in a concise way. In two case studies, we show how CIDE
simplifies SPL development compared to traditional approaches.
},
  NOTE = {Acceptance rate: 15\,\% (56/371)}
}

@INPROCEEDINGS{AKL:SDSOA08,
  TITLE = {Research Challenges in the Tension Between Features and Services},
  AUTHOR = {Sven Apel and Christian Kaestner and Christian Lengauer},
  BOOKTITLE = {Proc.\ ICSE Workshop on Systems Development in SOA Environments (SDSOA)},
  YEAR = 2008,
  MONTH = MAY,
  LOCATION = {Leipzig, Germany},
  ISBN = {978-1-60558-029-6},
  PAGES = {53--58},
  DOI = {http://doi.acm.org/10.1145/1370916.1370930},
  PUBLISHER = {ACM},
  ADDRESS = {New York, NY, USA},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/sdsoa2008.pdf},
  ABSTRACT = {We present a feature-based approach, known from software
product lines, to the development of service-oriented architectures.
We discuss five benefits of such an approach: improvements
in modularity, variability, uniformity, specifiability,
and typeability. Subsequently, we review preliminary
experiences and results, and propose an agenda for further
research in this direction.}
}

@TECHREPORT{KATKB:MD08,
  AUTHOR = {Christian K{\"a}stner and Sven Apel and Salvador Trujillo and Martin Kuhlemann and Don Batory},
  TITLE = {Language-Independent Safe Decomposition of Legacy~Applications into Features},
  YEAR = {2008},
  NUMBER = 2,
  INSTITUTION = {School of Computer Science, University of Magdeburg},
  ADDRESS = {Germany},
  MONTH = MAR,
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/gcidetech.pdf},
  ABSTRACT = {
Software product lines (SPL) usually consist of code and
non-code artifacts written in different languages. Often
they are created by decomposing legacy applications into
features. To handle different artifacts uniformly (code, documentation,
models, etc.), current SPL technologies either
use an approach that is so general that it works on character
or token level, but can easily introduce subtle errors; or they
provide specialized tools for a low number of languages.
Syntax errors that only occur in certain variants are difficult
to detect, as the exploding number of variants makes a manual
testing unfeasible. In this paper, we present CIDE, an
generic SPL tool that can ensure syntactic correctness for
all variants. We show CIDE's underlying mechanism that
abstracts from textual representation and generalize it from
Java to arbitrary languages. Furthermore, we automate the
generation of safe plug-ins for additional languages from
annotated grammars. To demonstrate CIDE's capabilities,
we applied it to a series of case studies with artifacts from
different languages, including Java, C#, C, Haskell, ANTLR,
and XML.}
}

@TECHREPORT{AKL:Passau08,
  AUTHOR = {Sven Apel and Christian K{\"a}stner and Christian Lengauer},
  TITLE = {An Overview of Feature Featherweight Java},
  YEAR = {2008},
  MONTH = APR,
  INSTITUTION = {Department of Informatics and Mathematics, University 
of Passau},
  NUMBER = {MIP-0802},
  ADDRESS = {Germany},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/ffjtech.pdf},
  ABSTRACT = {
Feature-oriented programming (FOP) is a paradigm that incorporates
programming language technology, program generation techniques,
and stepwise refinement. In their GPCE'07 paper, Thaker et al.
suggest the development of a type system for FOP in order to guarantee
safe feature composition. We present such a type system along with a
calculus for a simple feature-oriented, Java-like language, called Feature
Featherweight Java (FFJ). Furthermore, we explore several extensions of
FFJ and how they affect type soundness.
}
}

@INPROCEEDINGS{ALMK:AMAST08,
  AUTHOR = {Sven Apel and Christian Lengauer and Bernhard M{\"o}ller and Christian K{\"a}stner},
  TITLE = {An Algebra for Features and Feature Composition},
  BOOKTITLE = {Proceedings of the 12th International Conference on Algebraic Methodology and Software Technology (AMAST)},
  SERIES = {Lecture Notes in Computer Science},
  PUBLISHER = {Springer-Verlag},
  MONTH = JUL,
  SELECTED = 1,
  VOLUME = 5140,
  PAGES = {36--50},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/AMAST08.pdf},
  DOI = {http://dx.doi.org/10.1007/978-3-540-79980-1_4},
  YEAR = 2008,
  ABSTRACT = {Feature-Oriented Software Development (FOSD) provides a multitude
of formalisms, methods, languages, and tools for building variable, customizable,
and extensible software. Along different lines of research, different notions of
a feature have been developed. Although these notions have similar goals, no
common basis for evaluation, comparison, and integration exists. We present a
feature algebra that captures the key ideas of feature orientation and provides
a common ground for current and future research in this field, in which also
alternative options can be explored.},
  NOTE = {Acceptance rate: 47\,\% (27/58)}
}

@INPROCEEDINGS{KA:ASE08,
  AUTHOR = {Christian K{\"a}stner and Sven Apel},
  TITLE = {Type-checking Software Product Lines - A Formal Approach},
  BOOKTITLE = {Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE)},
  YEAR = 2008,
  MONTH = SEP,
  SELECTED = 1,
  LOCATION = {L'Aquila, Italy},
  PUBLISHER = {IEEE Computer Society},
  ISSN = {1527-1366},
  ISBN = {978-1-4244-2187-9},
  PAGES = {258--267},
  DOI = {http://dx.doi.org/10.1109/ASE.2008.36},
  ABSTRACT = {
A software product line (SPL) is an efficient means
to generate a family of program variants for a domain from
a single code base. However, because of the potentially high
number of possible program variants, it is difficult to test all
variants and ensure properties like type-safety for the entire SPL.
While first steps to type-check an entire SPL have been taken,
they are informal and incomplete. In this paper, we extend the
Featherweight Java (FJ) calculus with feature annotations to be
used for SPLs. By extending FJ's type system, we guarantee that
-- given a well-typed SPL -- all possible program variants are welltyped
as well. We show how results from this formalization reflect
and help implementing our own language-independent SPL tool
CIDE.},
  NOTE = {Acceptance rate: 12\,\% (30/280)},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/ASE08.pdf}
}

@INPROCEEDINGS{KKB:GPCE08,
  AUTHOR = {Chang Hwan Peter Kim and Christian K{\"a}stner and Don Batory},
  TITLE = {On the Modularity of Feature Interactions},
  BOOKTITLE = {Proceedings of the 7th International Conference on Generative Programming and Component Engineering (GPCE)},
  YEAR = 2008,
  MONTH = OCT,
  LOCATION = {Nashville, TN, USA},
  PUBLISHER = {ACM Press},
  ISBN = {978-1-60558-267-2},
  DOI = {http://doi.acm.org/10.1145/1449913.1449919},
  PAGES = {23--34},
  NOTE = {Acceptance rate: 29\,\% (16/55)},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/GPCE08-Kim.pdf},
  ABSTRACT = {
Feature modules are the building blocks of programs in software
product lines (SPLs). A foundational assumption of feature-based
program synthesis is that features are composed in a predefined
order. Recent work on virtual separation of concerns reveals a new
model of feature interactions that shows that feature modules can be
quantized as compositions of smaller modules called derivatives.
We present this model and examine some of its unintuitive consequences,
namely, that (1) a given program can be reconstructed by
composing features in any order, and (2) the contents of a feature
module (as expressed as a composition of derivatives) is determined
automatically by a feature order. We show that different
orders allow one to `adjust' the contents of a feature module to isolate
and study the impact of interactions that a feature has with
other features. Using derivatives, we show the utility of generalizing
safe composition (SC), a basic analysis of SPLs that verifies
program type-safety, to prove that every legal composition of derivatives
(and thus any composition order of features) produces a typesafe
program, which is a much stronger SC property.
	}
}

@INPROCEEDINGS{AKB:GPCE08,
  AUTHOR = {Sven Apel and Christian K{\"a}stner and Don Batory},
  TITLE = {Program Refactoring using Functional Aspects},
  BOOKTITLE = {Proceedings of the 7th International Conference on Generative Programming and Component Engineering (GPCE)},
  YEAR = 2008,
  MONTH = OCT,
  ISBN = {978-1-60558-267-2},
  PAGES = {161--170},
  DOI = {http://doi.acm.org/10.1145/1449913.1449938},
  LOCATION = {Nashville, TN, USA},
  PUBLISHER = {ACM Press},
  NOTE = {Acceptance rate: 29\,\% (16/55)},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/GPCE08-FA.pdf},
  ABSTRACT = {A functional aspect is an aspect that has the semantics of a transformation;
it is a function that maps a program to an advised program.
Functional aspects are composed by function composition. In
this paper, we explore functional aspects in the context of aspect-oriented
refactoring. We show that refactoring legacy applications
using functional aspects is just as flexible as traditional aspects in
that (a) the order in which aspects are refactored does not matter,
and (b) the number of potential aspect interactions is decreased.
We analyze several aspect-oriented programs of different sizes to
support our claims.}
}

@INPROCEEDINGS{AKL:GPCE08,
  AUTHOR = {Sven Apel and Christian K{\"a}stner and Christian Lengauer},
  TITLE = {{Feature Featherweight Java}: A Calculus for Feature-Oriented Programming and Stepwise Refinement},
  BOOKTITLE = {Proceedings of the 7th International Conference on Generative Programming and Component Engineering (GPCE)},
  YEAR = 2008,
  MONTH = OCT,
  ISBN = {978-1-60558-267-2},
  PAGES = {101--112},
  LOCATION = {Nashville, TN, USA},
  DOI = {http://doi.acm.org/10.1145/1449913.1449931},
  PUBLISHER = {ACM Press},
  NOTE = {Acceptance rate: 29\,\% (16/55)},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/GPCE08-FFJ.pdf},
  ABSTRACT = {Feature-oriented programming (FOP) is a paradigm that incorporates programming language technology, program generation techniques, and stepwise refinement. In their GPCE’07 paper, Thaker et al. suggest the development of a type system for FOP to guarantee safe feature composition, i.e, to guarantee the absence of type errors during feature composition. We present such a type system along with a calculus for a simple feature-oriented, Java-like language, called Feature Featherweight Java (FFJ). Furthermore, we explore four extensions of FFJ and how they affect type soundness.}
}

@INPROCEEDINGS{KAT:ViSPLE08,
  AUTHOR = {Christian K{\"a}stner and Salvador Trujillo and Sven Apel},
  TITLE = {Visualizing Software Product Line Variabilities in Source Code},
  BOOKTITLE = {Proceedings of the 2nd International SPLC Workshop on Visualisation in Software Product Line Engineering (ViSPLE)},
  YEAR = 2008,
  MONTH = SEP,
  LOCATION = {Limerick, Ireland},
  ISBN = {978-1-905952-06-9},
  PAGES = {303--313},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/ViSPLE08.pdf},
  ABSTRACT = {Implementing software product lines is a challenging task. Depending on the implementation technique the code that realizes a feature is often scattered across multiple code units. This way it becomes difficult to trace features in source code which hinders maintenance and evolution. While previous effort on visualization technologies in software product lines has focused mainly on the feature model, we suggest tool support for feature traceability in the code base. With our tool CIDE, we propose an approach based on filters and views on source code in order to visualize and trace features in source code.}
}

@INPROCEEDINGS{PKS:APSEC08,
  AUTHOR = {Mario Pukall and Christian K{\"a}stner and Gunter Saake},
  TITLE = {Towards Unanticipated Runtime Adaptation of {Java} Applications},
  BOOKTITLE = {Proceedings of the 15th Asia-Pacific Software Engineering Conference (APSEC)},
  YEAR = 2008,
  MONTH = DEC,
  ISBN = {978-0-7695-3446-6},
  ISSN = {1530-1362},
  PAGES = {85--92},
  LOCATION = {Beijing, China},
  PUBLISHER = {IEEE Computer Society},
  ABSTRACT = {Modifying an application usually means to stop the application,
apply the changes, and start the application
again. That means, the application is not available for at
least a short time period. This is not acceptable for highly
available applications. One reasonable approach which
faces the problem of unavailability is to change highly
available applications at runtime. To allow extensive runtime
adaptation the application must be enabled for unanticipated
changes even of already executed program parts.
This is due to the fact that it is not predictable what changes
become necessary and when they have to be applied. Since
Java is commonly used for developing highly available applications,
we discuss its shortcomings and opportunities
regarding unanticipated runtime adaptation. We present
an approach based on Java HotSwap and object wrapping
which overcomes the identified shortcomings and evaluate
it in a case study.},
  NOTE = {Acceptance rate: 30\,\% (66/221)},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/APSEC08-runtime.pdf}
}

@INPROCEEDINGS{SRKKS:APSEC08,
  AUTHOR = {Norbert Siegmund and Marko Rosenm{\"u}ller and Martin Kuhlemann and Christian K{\"a}stner and Gunter Saake},
  TITLE = {Measuring Non-functional Properties in Software Product Lines for Product Derivation},
  BOOKTITLE = {Proceedings of the 15th Asia-Pacific Software Engineering Conference (APSEC)},
  YEAR = 2008,
  MONTH = DEC,
  LOCATION = {Beijing, China},
  PUBLISHER = {IEEE Computer Society},
  ISBN = {978-0-7695-3446-6},
  ISSN = {1530-1362},
  PAGES = {187--194},
  ABSTRACT = {Software product lines (SPLs) enable stakeholders to derive
different software products for a domain while providing
a high degree of reuse of their code units. Software
products are derived in a configuration process by combining
different code units. This configuration process becomes
complex if SPLs contain hundreds of features. In
many cases, a stakeholder is not only interested in functional
but also in resulting non-functional properties of a
desired product. Because SPLs can be used in different application
scenarios alternative implementations of already
existing functionality are developed to meet special nonfunctional
requirements, like restricted binary size and performance
guarantees. To enable these complex configurations
we discuss and present techniques to measure nonfunctional
properties of software modules and use these values
to compute SPL configurations optimized to the users
needs.},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/APSEC08-nfp.pdf},
  NOTE = {Acceptance rate: 30\,\% (66/221)}
}

@INPROCEEDINGS{RSRK:McGPLE08,
  AUTHOR = {Marko Rosenm{\"u}ller and Norbert Siegmund and Syed Saif ur Rahman and Christian K{\"a}stner},
  TITLE = {Modeling Dependent Software Product Lines},
  BOOKTITLE = {Proceedings of the GPCE Workshop on Modularization, Composition and Generative Techniques for Product Line Engineering (McGPLE)},
  YEAR = 2008,
  MONTH = OCT,
  LOCATION = {Nashville, TN, USA},
  ABSTRACT = {Software product line development is a mature technique to implement
similar programs tailored to serve the needs of multiple
users while providing a high degree of reuse. This approach also
scales for larger product lines that use smaller product lines to fulfill
special tasks. In such compositions of SPLs, the interacting product
lines depend on each other and programs generated from these
product lines have to be correctly configured to ensure correct communication
between them. Constraints between product lines can
be used to allow only valid combinations of generated programs.
This, however, is not sufficient if multiple instances of one product
line are involved. In this paper we present an approach that uses
UML and OO concepts to model compositions of SPLs. The model
extends the approach of constraints between SPLs to constraints between
instances of SPLs and integrates SPL specialization. Based
on this model we apply a feature-oriented approach to simplify the
configuration of complete SPL compositions.},
  PUBLISHER = {Department of Informatics and Mathematics, University of Passau},
  PAGES = {13--18},
  NUMBER = {MIP-0802},
  PDF = {http://www.infosun.fim.uni-passau.de/cl/staff/apel/McGPLE2008/papers/McGPLE2008Proceedings.pdf}
}

@INPROCEEDINGS{KA:McGPLE08,
  AUTHOR = {Christian K{\"a}stner and Sven Apel},
  TITLE = {Integrating Compositional and Annotative Approaches for Product Line Engineering},
  BOOKTITLE = {Proceedings of the GPCE Workshop on Modularization, Composition and Generative Techniques for Product Line Engineering (McGPLE)},
  YEAR = 2008,
  MONTH = OCT,
  LOCATION = {Nashville, TN, USA},
  ABSTRACT = {Software product lines can be implemented with many different approaches. However, there are common underlying mechanisms which allow a classification into compositional and annotative approaches. While research focuses mainly on composition approaches like aspect- or feature-oriented programming because those support feature traceability and modularity, in practice annotative approaches like preprocessors are common as they are easier to adopt. In this paper, we compare both groups of approaches and find complementary strengths. We propose an integration of compositional and annotative approaches to combine advantages, increase flexibility for the developer, and ease adoption.},
  PUBLISHER = {Department of Informatics and Mathematics, University of Passau},
  PAGES = {35--40},
  NUMBER = {MIP-0802},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/McGPLE08.pdf}
}

@INPROCEEDINGS{AKL:ICSE09,
  TITLE = {{FeatureHouse}: Language-Independent, Automated Software Composition},
  AUTHOR = {Sven Apel and Christian K\"{a}stner and Christian Lengauer},
  BOOKTITLE = {Proceedings of the 31th International Conference on Software Engineering (ICSE)},
  YEAR = 2009,
  MONTH = MAY,
  LOCATION = {Vancouver, Canada},
  PUBLISHER = {IEEE Computer Society},
  SELECTED = 1,
  ISBN = {978-1-4244-3452-7},
  ISSN = {0270-5257},
  PAGES = {221--231},
  ABSTRACT = {
Superimposition is a composition technique that has
been applied successfully in many areas of software development.
Although superimposition is a general-purpose
concept, it has been (re)invented and implemented individually
for various kinds of software artifacts. We unify
languages and tools that rely on superimposition by using
the language-independent model of feature structure trees
(FSTs). On the basis of the FST model, we propose a general
approach to the composition of software artifacts written
in different languages, Furthermore, we offer a supporting
framework and tool chain, called FEATUREHOUSE. We
use attribute grammars to automate the integration of additional
languages, in particular, we have integrated Java,
C#, C, Haskell, JavaCC, and XML. Several case studies
demonstrate the practicality and scalability of our approach
and reveal insights into the properties a language must have
in order to be ready for superimposition.},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/icse2009_fh.pdf},
  NOTE = {Acceptance rate: 12\,\% (50/405)}
}

@INPROCEEDINGS{TBK:ICSE09,
  TITLE = {Reasoning about Edits to Feature Models},
  AUTHOR = {Thomas Th{\"u}m and Don Batory and Christian K\"{a}stner},
  BOOKTITLE = {Proceedings of the 31th International Conference on Software Engineering (ICSE)},
  YEAR = 2009,
  MONTH = MAY,
  LOCATION = {Vancouver, Canada},
  PUBLISHER = {IEEE Computer Society},
  SELECTED = 1,
  ISBN = {978-1-4244-3452-7},
  ISSN = {0270-5257},
  PAGES = {254--264},
  ABSTRACT = {
Features express the variabilities and commonalities
among programs in a software product line (SPL). A feature
model defines the valid combinations of features, where each
combination corresponds to a program in an SPL. SPLs
and their feature models evolve over time. We classify the
evolution of a feature model via modifications as refactorings,
specializations, generalizations, or arbitrary edits. We
present an algorithm to reason about feature model edits
to help designers determine how the program membership
of an SPL has changed. Our algorithm takes two feature
models as input (before and after edit versions), where the
set of features in both models are not necessarily the same,
and it automatically computes the change classification. Our
algorithm is able to give examples of added or deleted products
and efficiently classifies edits to even large models that
have thousands of features.},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/icse2009_fm.pdf},
  NOTE = {Acceptance rate: 12\,\% (50/405)}
}

@TECHREPORT{AKGL:Passau08,
  AUTHOR = {Sven Apel and Christian K{\"a}stner and Armin Gr{\"o}{\ss}linger and Christian Lengauer},
  TITLE = {On Feature Orientation and Functional Programming},
  INSTITUTION = {Department of Informatics and Mathematics, University 
of Passau},
  NUMBER = {MIP-0806},
  YEAR = 2008,
  MONTH = NOV,
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/mip-0806.pdf},
  ABSTRACT = {
The separation of concerns is a fundamental principle in software engineering.
Crosscutting concerns are concerns that do not align with hierarchical
and block decomposition supported by mainstream programming languages. In
the past, crosscutting concerns have been studied mainly in the context of object
orientation. Feature orientation is a novel programming paradigm that supports
the implementation of crosscutting concerns in a system with a hierarchical
block structure. We explore the problem of crosscutting concerns in functional
programming and propose two solutions based on feature orientation. Two case
studies support our claims.}
}

@INPROCEEDINGS{AKL:SE09,
  TITLE = {Vergleich und Integration von Komposition und Annotation zur Implementierung von Produktlinien},
  AUTHOR = {Sven Apel and  Christian K{\"a}stner and Christian Lengauer},
  BOOKTITLE = {Software Engineering 2009 -- Fachtagung des GI-Fachbereichs Softwaretechnik},
  YEAR = 2009,
  MONTH = MAR,
  ABSTRACT = {Es gibt eine Vielzahl sehr unterschiedlicher Techniken, Sprachen und Werkzeuge
zur Entwicklung von Softwareproduktlinien. Trotzdem liegen gemeinsame Mechanismen
zu Grunde, die eine Klassifikation in Kompositions- und Annotationsansatz
erlauben. W{\"a}hrend der Kompositionsansatz in der Forschung große Beachtung findet,
kommt im industriellen Umfeld haupts{\"a}chlich der Annotationsansatz zur Anwendung.
Wir analysieren und vergleichen beide Ans{\"a}tze anhand von drei repr{\"a}sentativen Vertretern
und identifizieren anhand von sechs Kriterien individuelle St{\"a}rken und Schw{\"a}chen.
Wir stellen fest, dass die jeweiligen St{\"a}rken und Schw{\"a}chen komplement{\"a}r sind. Aus
diesem Grund schlagen wir die Integration des Kompositions- und Annotationsansatzes
vor, um so die Vorteile beider zu vereinen, dem Entwickler eine breiteres Spektrum
an Implementierungsmechanismen zu Verf{\"u}gung zu stellen und die Einf{\"u}hrung von
Produktlinientechnologie in bestehende Softwareprojekte zu erleichtern.},
  SERIES = {Lecture Notes in Informatics},
  PUBLISHER = {Gesellschaft f{\"u}r Informatik (GI)},
  VOLUME = {P-143},
  LOCATION = {Kaiserslautern, Germany},
  PAGES = {101--112},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/SE2009.pdf},
  URL = {http://www.gi-ev.de/service/publikationen/lni/gi-edition-proceedings-2009/gi-edition-lecture-notes-in-informatics-lni-p-143.html}
}

@INPROCEEDINGS{SKRHAS:BTW09,
  TITLE = {Bridging the Gap between Variability in Client Application and Database Schema},
  AUTHOR = {Norbert Siegmund and Christian K{\"a}stner and Marko Rosenm{\"u}ller and Florian Heidenreich and Sven Apel and Gunter Saake},
  BOOKTITLE = {Proceedings 13. GI-Fachtagung Datenbanksysteme f{\"u}r Business, Technologie und Web (BTW)},
  YEAR = 2009,
  MONTH = MAR,
  PAGES = {297--306},
  SERIES = {Lecture Notes in Informatics},
  VOLUME = {P-144},
  ISBN = {978-3-88579-238-3},
  ISSN = {1617-5468},
  PUBLISHER = {Gesellschaft f{\"u}r Informatik (GI)},
  LOCATION = {M{\"u}nster, Germany},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~rosenmue/publications/SKRH08dbschema.pdf},
  ABSTRACT = {
Database schemas are used to describe the logical design of a database.
Diverse groups of users have different perspectives on the schema which leads to
different local schemas. Research has focused on view integration to generate a global,
consistent schema out of different local schemas or views. However, this approach
seems to be too constrained when the generated global view should be variable and
only a certain subset is needed. Variable schemas are needed in software product lines
in which products are tailored to the needs of stakeholders. We claim that traditional
modeling techniques are not sufficient for expressing a variable database schema. We
show that software product line methodologies, when applied to the database schemas,
overcome existing limitations and allow the generation of tailor-made database schemas.
	},
  URL = {http://www.gi-ev.de/service/publikationen/lni/gi-edition-proceedings-2009/gi-edition-lecture-notes-in-informatics-lni-p-144.html}
}

@INPROCEEDINGS{RKSSATS:BTW09,
  TITLE = {SQL \`{a} la Carte -- Toward Tailor-made Data Management},
  AUTHOR = {Marko Rosenm{\"u}ller and Christian K{\"a}stner and Norbert Siegmund and Sagar Sunkle and Sven Apel and Thomas Leich and Gunter Saake},
  BOOKTITLE = {Proceedings 13. GI-Fachtagung Datenbanksysteme f{\"u}r Business, Technologie und Web (BTW)},
  YEAR = 2009,
  MONTH = MAR,
  SERIES = {Lecture Notes in Informatics},
  VOLUME = {P-144},
  ISBN = {978-3-88579-238-3},
  ISSN = {1617-5468},
  PAGES = {117--136},
  PUBLISHER = {Gesellschaft f{\"u}r Informatik (GI)},
  LOCATION = {M{\"u}nster, Germany},
  ABSTRACT = {
The size of the structured query language (SQL) continuously increases.
Extensions of SQL for special domains like stream processing or sensor networks come
with own extensions, more or less unrelated to the standard. In general, underlying
DBMS support only a subset of SQL plus vendor specific extensions. In this paper,
we analyze application domains where special SQL dialects are needed or are already
in use. We show how SQL can be decomposed to create an extensible family of SQL
dialects. Concrete dialects, e.g., a dialect for web databases, can be generated from
such a family by choosing SQL features  \`{a} la carte. A family of SQL dialects simplifies
analysis of the standard when deriving a concrete dialect, makes it easy to understand
parts of the standard, and eases extension for new application domains. It is also the
starting point for developing tailor-made data management solutions that support only
a subset of SQL. We outline how such customizable DBMS can be developed and what
benefits, e.g., improved maintainability and performance, we can expect from this.},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~rosenmue/publications/RKSS08sql.pdf},
  URL = {http://www.gi-ev.de/service/publikationen/lni/gi-edition-proceedings-2009/gi-edition-lecture-notes-in-informatics-lni-p-144.html}
}

@INPROCEEDINGS{KTSFLWA:ICSE09,
  TITLE = {FeatureIDE: Tool Framework for Feature-Oriented Software Development},
  AUTHOR = {Christian K\"{a}stner and Thomas Th{\"u}m and Gunter Saake and Janet Feigenspan and Thomas Leich and Fabian Wielgorz and Sven Apel},
  BOOKTITLE = {Proceedings of the 31th International Conference on Software Engineering (ICSE)},
  NOTE = {Formal Demonstration paper, Acceptance rate: 33\,\% (24/72)},
  YEAR = 2009,
  MONTH = MAY,
  LOCATION = {Vancouver, Canada},
  PUBLISHER = {IEEE Computer Society},
  ISBN = {978-1-4244-3452-7},
  ISSN = {0270-5257},
  PAGES = {611--614},
  ABSTRACT = {
Tools support is crucial for the acceptance of a new programming
language. However, providing such tool support
is a huge investment that can usually not be provided
for a research language. With FeatureIDE, we have built
an IDE for AHEAD that integrates all phases of featureoriented
software development. To reuse this investment for
other tools and languages, we refactored FeatureIDE into
an open source framework that encapsulates the common
ideas of feature-oriented software development and that can
be reused and extended beyond AHEAD. Among others, we
implemented extensions for FeatureC++ and FeatureHouse,
but in general, FeatureIDE is open for everybody to showcase
new research results and make them usable to a wide
audience of students, researchers, and practitioners.},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/icse2009_featureide_demo.pdf}
}

@INPROCEEDINGS{KATKB:TOOLS09,
  TITLE = {Guaranteeing Syntactic Correctness for all Product Line Variants: A Language-Independent Approach},
  AUTHOR = {Christian K{\"a}stner and Sven Apel and Salvador Trujillo and Martin Kuhlemann and Don Batory},
  BOOKTITLE = {Proceedings of the 47th International Conference Objects, Models, Components, Patterns (TOOLS EUROPE)},
  YEAR = 2009,
  ISSN = {1865-1348},
  ISBN = {978-3-642-02570-9},
  SERIES = {Lecture Notes in Business Information Processing},
  VOLUME = 33,
  MONTH = JUN,
  SELECTED = 1,
  LOCATION = {Zurich, Switzerland},
  ABSTRACT = {A software product line (SPL) is a family of related program variants in
a well-defined domain, generated from a set of features. A fundamental difference
from classical application development is that engineers develop not a single
program but a whole family with hundreds to millions of variants. This makes
it infeasible to separately check every distinct variant for errors. Still engineers
want guarantees on the entire SPL. A further challenge is that an SPL may contain
artifacts in different languages (code, documentation, models, etc.) that should be
checked. In this paper, we present CIDE, an SPL development tool that guarantees
syntactic correctness for all variants of an SPL. We show how CIDE's underlying
mechanism abstracts from textual representation and we generalize it to arbitrary
languages. Furthermore, we automate the generation of safe plug-ins for additional
languages from annotated grammars. To demonstrate the language-independent
capabilities, we applied CIDE to a series of case studies with artifacts written in
Java, C++, C, Haskell, ANTLR, HTML, and XML.},
  DOI = {10.1007/978-3-642-02571-6},
  PUBLISHER = {Springer Berlin Heidelberg},
  PAGES = {175--194},
  NOTE = {Acceptance rate: 28\,\% (19 / 67)},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/tools09.pdf},
  URL = {http://www.springerlink.com/content/t8752407443k83j2}
}

@INPROCEEDINGS{BAK:SC09,
  AUTHOR = {Stefan Boxleitner and Sven Apel and Christian K{\"a}stner},
  TITLE = {Language-Independent Quantification and Weaving for Feature Composition},
  BOOKTITLE = {Proceedings of the 8th International Conference on Software Composition (SC)},
  SERIES = {Lecture Notes in Computer Science},
  VOLUME = 5634,
  PAGES = {45--54},
  PUBLISHER = {Springer Berlin Heidelberg},
  LOCATION = {Zurich, Switzerland},
  ISSN = {0302-9743},
  ISBN = {978-3-642-02654-6},
  DOI = {10.1007/978-3-642-02655-3_5},
  URL = {http://www.springerlink.com/content/p2p728q15r347576/},
  MONTH = JUL,
  YEAR = 2009,
  ABSTRACT = {
Based on a general model of feature composition, we present a composition
language that enables programmers by means of quantification and weaving
to formulate extensions to programs written in different languages. We explore
the design space of composition languages that rely on quantification and weaving
and discuss our choices. We outline a tool that extends an existing infrastructure
for feature composition and discuss results of three initial case studies.
	},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/sc09_mod.pdf},
  NOTE = {Short Paper; Acceptance rate: 33\,\% (10 / 30)}
}

@INPROCEEDINGS{AKGL:SC09,
  AUTHOR = {Sven Apel and Christian K{\"a}stner and Armin Gr{\"o}{\ss}linger and Christian Lengauer},
  TITLE = {Feature (De)composition in Functional Programming},
  BOOKTITLE = {Proceedings of the 8th International Conference on Software Composition (SC)},
  SERIES = {Lecture Notes in Computer Science},
  VOLUME = 5634,
  PAGES = {9--26},
  PUBLISHER = {Springer Berlin Heidelberg},
  LOCATION = {Zurich, Switzerland},
  ISSN = {0302-9743},
  ISBN = {978-3-642-02654-6},
  DOI = {10.1007/978-3-642-02655-3_3},
  URL = {http://www.springerlink.com/content/m0q4530571t18042/},
  MONTH = JUL,
  YEAR = 2009,
  ABSTRACT = {
The separation of concerns is a fundamental principle in software engineering.
Crosscutting concerns are concerns that do not align with hierarchical
and block decomposition supported by mainstream programming languages. In
the past, crosscutting concerns have been studied mainly in the context of object
orientation. Feature orientation is a novel programming paradigm that supports
the (de)composition of crosscutting concerns in a system with a hierarchical
block structure. By means of two case studies we explore the problem of crosscutting
concerns in functional programming and propose two solutions based on
feature orientation.
		},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/sc09_fc.pdf},
  NOTE = {Acceptance rate: 33\,\% (10 / 30)}
}

@INPROCEEDINGS{AJTK:ICMT09,
  AUTHOR = {Sven Apel and Florian Janda and Salvador Trujillo and Christian K{\"a}stner},
  TITLE = {Model Superimposition in Software Product Lines},
  BOOKTITLE = {Proceedings of the Second International Conference on Model Transformation (ICMT)},
  SERIES = {Lecture Notes in Computer Science},
  VOLUME = 5563,
  PAGES = {4--19},
  PUBLISHER = {Springer Berlin Heidelberg},
  LOCATION = {Zurich, Switzerland},
  ISSN = {0302-9743},
  ISBN = {978-3-642-02407-8},
  DOI = {10.1007/978-3-642-02408-5_2},
  URL = {http://www.springerlink.com/content/2k512285p2lv6j04/},
  MONTH = JUN,
  YEAR = 2009,
  ABSTRACT = {
In software product line engineering, feature composition generates
software tailored to specific requirements from a common set of artifacts. Superimposition
is a popular technique to merge code pieces belonging to different
features. The advent of model-driven development raises the question of how to
support the variability of software product lines in modeling techniques. We propose
to use superimposition as a model composition technique in order to support
variability. We analyze the feasibility of superimposition as a model composition
technique, offer a corresponding tool for model composition, and discuss our experiences
with three case studies (including one industrial study) using this tool.
		},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/icmt09.pdf},
  NOTE = {Acceptance rate: 21\,\% (14 / 67)}
}

@ARTICLE{SPAK:TOPLAS09,
  AUTHOR = {Friedrich Steimann and Thomas Pawlitzki and Sven Apel and Christian K{\"a}stner},
  TITLE = {Types and Modularity for Implicit Invocation with Implicit Announcement},
  JOURNAL = {ACM Transactions on Software Engineering and Methodology (TOSEM)},
  NOTE = {accepted for publication},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/TOSEM2009.pdf},
  ABSTRACT = {Through implicit invocation, procedures are called without explicitly referencing them. Implicit announcement
adds to this implicitness by not only keeping implicit which procedures are called, but also where or when --
under implicit invocation with implicit announcement, the call site contains no signs of that, or what it calls.
Recently, aspect-oriented programming has popularized implicit invocation with implicit announcement as a
possibility to separate concerns that lead to interwoven code if conventional programming techniques are used.
However, as has been noted elsewhere, as currently implemented it establishes strong implicit dependencies
between components, hampering independent software development and evolution. To address this problem, we
present a type-based modularization of implicit invocation with implicit announcement that is inspired by how
interfaces and exceptions are realized in JAVA. By extending an existing compiler and by rewriting several
programs to make use of our proposed language constructs, we found that the imposed declaration clutter tends
to be moderate; in particular, we found that for general applications of implicit invocation with implicit announcement,
fears that programs utilizing our form of modularization become unreasonably verbose are unjustified.},
  YEAR = 2010,
  NUMBER = 1,
  VOLUME = 20,
  SELECTED = 1
}

@INPROCEEDINGS{KAS:GI09,
  AUTHOR = {Christian K{\"a}stner and Sven Apel and Gunter Saake},
  TITLE = {Sichere Produktlinien: Herausforderungen f{\"u}r Syntax- und Typ-Pr{\"u}fungen},
  BOOKTITLE = {Proceedings des 26. Workshop der GI-Fachgruppe Programmiersprachen und Rechenkonzepte},
  EDITOR = {Bernd Brassel and Michael Hanus},
  PAGES = {37--38},
  LOCATION = {Bad Honnef},
  YEAR = 2009,
  MONTH = MAY,
  PUBLISHER = {University of Kiel},
  NUMBER = {0915},
  URL = {http://www.informatik.uni-kiel.de/ifi/forschung/technische-berichte/bericht/?tx_publication_pi1%5Bsingle%5D=162}
}

@INPROCEEDINGS{KARRBS:SPLC09,
  AUTHOR = {Christian K{\"a}stner and Sven Apel and Syed Saif ur Rahman and Marko Rosenm{\"u}ller and Don Batory and Gunter Saake},
  TITLE = {On the Impact of the Optional Feature Problem: Analysis and Case Studies},
  BOOKTITLE = {Proceedings of the 13th International Software Product Line Conference (SPLC)},
  YEAR = 2009,
  MONTH = AUG,
  PUBLISHER = {SEI},
  ISBN = {978-0-9786956-2-0},
  PAGES = {181--190},
  LOCATION = {San Francisco, CA, USA},
  SELECTED = 1,
  ABSTRACT = {A software product-line  is a family of related programs that are distinguished in terms of features. A feature implements a stakeholders' requirement. Different program variants specified by distinct feature selections are produced from a common code base. The optional feature problem describes a common mismatch between variability intended in the domain and dependencies in the implementation. When this occurs, some variants that are valid in the domain cannot be produced due to implementation issues. There are many different solutions to the optional feature problem, but they all suffer from drawbacks such as reduced variability, increased development effort, reduced efficiency, or reduced source code quality. In this paper, we examine the impact of the optional feature problem in two case studies in the domain of embedded database systems, and we survey different state-of-the-art solutions and their trade-offs. Our intension is to raise awareness of the problem, to guide developers in selecting an appropriate solution for their product-line project, and to identify opportunities for future research.},
  NOTE = {Acceptance rate: 36\,\% (30 / 83)},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/splc09.pdf}
}

@TECHREPORT{KAK:MD09,
  AUTHOR = {Christian K{\"a}stner and Sven Apel and Martin Kuhlemann},
  TITLE = {{LJ}$^{AR}$: A Model of Refactoring Physically and Virtually Separated Features},
  YEAR = {2009},
  NUMBER = {08},
  INSTITUTION = {School of Computer Science, University of Magdeburg},
  ADDRESS = {Germany},
  MONTH = MAY,
  PDF = {http://wwwiti.cs.uni-magdeburg.de/iti_db/forschung/cide/LJARTech/ljartech.pdf},
  ABSTRACT = {
Physical separation with class refinements and method refinements à la AHEAD
and virtual separation using annotations à la #ifdef or CIDE are two competing
groups of implementation approaches for software product lines with complementary
advantages. Although both groups have been mainly discussed in isolation,
we strive for an integration to leverage the respective advantages. In this paper, we
provide the basis for such an integration by providing a model that supports both,
physical and virtual separation, and by describing refactorings in both directions.
We prove the refactorings complete, such that every virtually separated product
line can be automatically transformed into a physically separated one (replacing
annotations by refinements) and vice versa. To demonstrate the feasibility of our
approach, we have implemented the refactorings in our tool CIDE and conducted
four case studies.}
}

@TECHREPORT{AKGL:Passau09,
  AUTHOR = {Sven Apel and Christian K{\"a}stner and Armin Gr{\"o}{\ss}linger and Christian Lengauer},
  TITLE = {Type-Safe Feature-Oriented Product Lines},
  NUMBER = {MIP-0909},
  INSTITUTION = {Department of Informatics and Mathematics, University of Passau},
  MONTH = JUN,
  YEAR = 2009,
  ADDRESS = {Germany},
  PDF = {http://www.infosun.fim.uni-passau.de/cl/publications/docs/MIP-0909.pdf},
  ABSTRACT = {
A feature-oriented product line is a family of programs that share a
common set of features. A feature implements a stakeholder’s requirement, represents
a design decision and configuration option and, when added to a program,
involves the introduction of new structures, such as classes and methods, and the
refinement of existing ones, such as extending methods. With feature-oriented
decomposition, programs can be generated, solely on the basis of a user’s selection
of features, by the composition of the corresponding feature code. A key
challenge of feature-oriented product line engineering is how to guarantee the
correctness of an entire feature-oriented product line, i.e., of all of the member
programs generated from different combinations of features. As the number of
valid feature combinations grows progressively with the number of features, it
is not feasible to check all individual programs. The only feasible approach is
to have a type system check the entire code base of the feature-oriented product
line. We have developed such a type system on the basis of a formal model of a
feature-oriented Java-like language. We demonstrate that the type system ensures
that every valid program of a feature-oriented product line is well-typed and that
the type system is complete.
}
}

@ARTICLE{AK:JOT09,
  AUTHOR = {Sven Apel and Christian K{\"a}stner},
  TITLE = {An Overview of Feature-Oriented Software Development},
  JOURNAL = {Journal of Object Technology (JOT)},
  VOLUME = 8,
  NUMBER = 5,
  PAGES = {49--84},
  MONTH = {July/August},
  YEAR = 2009,
  NOTE = {Refereed Column},
  SELECTED = 1,
  ABSTRACT = {Feature-oriented software development (FOSD) is a paradigm for the construction,
customization, and synthesis of large-scale software systems. In this survey, we give
an overview and a personal perspective on the roots of FOSD, connections to other
software development paradigms, and recent developments in this field. Our aim is to
point to connections between different lines of research and to identify open issues.},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/JOT09_OverviewFOSD.pdf},
  URL = {http://www.jot.fm/issues/issue_2009_07/column5/index.html}
}

@INPROCEEDINGS{KBK:GPCE09,
  AUTHOR = {Martin Kuhlemann and Don Batory and Christian K{\"a}stner},
  TITLE = {Safe Composition of Non-Monotonic Features},
  BOOKTITLE = {Proceedings of the 8th International Conference on Generative Programming and Component Engineering (GPCE)},
  YEAR = 2009,
  MONTH = OCT,
  LOCATION = {Denver, CO, USA},
  PUBLISHER = {ACM Press},
  NOTE = {Acceptance rate: 31\,\% (19/62)},
  ISBN = {978-1-60558-828-5},
  PAGES = {177--185},
  DOI = {http://doi.acm.org/10.1145/1621607.1621634},
  ABSTRACT = {
Programs can be composed from features. We want to verify automatically
that all legal combinations of features can be composed
safely without errors. Prior work on this problem assumed that features
add code monotonically. We generalize prior work to enable
features to both add and remove code, describe our analyses and
implementation, and review case studies. We observe that more
expressive features can increase the complexity of developed programs
rapidly -- up to the point where automated concepts as presented
in this paper are not a helpful tool but a necessity for verification.
	}
}

@INPROCEEDINGS{KAK:GPCE09,
  AUTHOR = {Christian K{\"a}stner and Sven Apel and Martin Kuhlemann},
  TITLE = {A Model of Refactoring Physically and Virtually Separated Features},
  BOOKTITLE = {Proceedings of the 8th International Conference on Generative Programming and Component Engineering (GPCE)},
  YEAR = 2009,
  MONTH = OCT,
  LOCATION = {Denver, CO, USA},
  PUBLISHER = {ACM Press},
  SELECTED = 1,
  NOTE = {Acceptance rate: 31\,\% (19/62)},
  ISBN = {978-1-60558-828-5},
  PAGES = {157--166},
  DOI = {http://doi.acm.org/10.1145/1621607.1621632},
  ABSTRACT = {
Physical separation with class refinements and method refinements \`{a} la AHEAD and virtual separation using annotations \`{a} la \emph{\#ifdef} or CIDE are two competing groups of implementation approaches for software product lines with complementary advantages. Although both groups have been mainly discussed in isolation, we strive for an integration to leverage the respective advantages. In this paper, we provide the basis for such an integration by providing a model that supports both, physical and virtual separation, and by describing refactorings in both directions. We prove the refactorings complete, such that every virtually separated product line can be automatically transformed into a physically separated one (replacing annotations by refinements) and vice versa. To demonstrate the feasibility of our approach, we have implemented the refactorings in our tool CIDE and conducted four case studies.
	},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/GPCE09-LJAR.pdf}
}

@ARTICLE{KA:JOT09,
  AUTHOR = {Christian K{\"a}stner and Sven Apel},
  TITLE = {Virtual Separation of Concerns -- A Second Chance for Preprocessors},
  JOURNAL = {Journal of Object Technology (JOT)},
  VOLUME = 8,
  NUMBER = 6,
  MONTH = SEP,
  YEAR = 2009,
  PAGES = {59--78},
  SELECTED = 1,
  ABSTRACT = {
Conditional compilation with preprocessors like cpp is a simple but effective means to
implement variability. By annotating code fragments with \emph{#ifdef} and \emph{#endif} directives,
different program variants with or without these fragments can be created, which
can be used (among others) to implement software product lines. Although, preprocessors
are frequently used in practice, they are often criticized for their negative effect
on code quality and maintainability. In contrast to modularized implementations, for
example using components or aspects, preprocessors neglect separation of concerns,
are prone to introduce subtle errors, can entirely obfuscate the source code, and limit
reuse. Our aim is to rehabilitate the preprocessor by showing how simple tool support
can address these problems and emulate some benefits of modularized implementations.
At the same time we emphasize unique benefits of preprocessors, like simplicity
and language independence. Although we do not have a definitive answer on how to
implement variability, we want highlight opportunities to improve preprocessors and
encourage research toward novel preprocessor-based approaches.},
  PDF = {http://www.jot.fm/issues/issue_2009_09/column5.pdf},
  HTTP = {http://www.jot.fm/issues/issue_2009_09/column5/},
  NOTE = {Refereed Column}
}

@INPROCEEDINGS{ALKKL:FOSD09,
  AUTHOR = {Sven Apel and J{\"o}rg Liebig and Christian K{\"a}stner and Martin Kuhlemann and Thomas Leich},
  TITLE = {An Orthogonal Access Modifier Model for Feature-Oriented Programming},
  BOOKTITLE = {Proceedings of the First Workshop on Feature-Oriented Software Development (FOSD)},
  PUBLISHER = {ACM Press},
  LOCATION = {Denver, CO, USA},
  ISBN = {978-1-60558-567-3},
  MONTH = OCT,
  YEAR = 2009,
  ABSTRACT = {
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 is an important ingredient to attain
feature modularity as it provides mechanisms to hide and
expose internal details of a module's implementation. But
developers of contemporary feature-oriented languages did
not consider access control mechanisms so far. The absence
of a well-defined access control model for FOP breaks the
encapsulation of feature code and leads to unexpected and
undefined program behaviors as well as inadvertent type errors,
as we will demonstrate. The reason for these problems
is that common object-oriented modifiers, typically provided
by the base language, are not expressive enough for FOP and
interact in subtle ways with feature-oriented language mechanisms.
We raise awareness of this problem, propose three
feature-oriented modifiers for access control, and present an
orthogonal access modifier model.
	},
  PDF = {http://www.infosun.fim.uni-passau.de/cl/publications/docs/FOSD2009am.pdf},
  DOI = {http://doi.acm.org/10.1145/1629716.1629723},
  PAGES = {27--34}
}

@INPROCEEDINGS{FKAL:FOSD09,
  AUTHOR = {Janet Feigenspan and Christian K{\"a}stner and Sven Apel and Thomas Leich},
  TITLE = {How to Compare Program Comprehension in FOSD Empirically -- An Experience Report},
  BOOKTITLE = {Proceedings of the First Workshop on Feature-Oriented Software Development (FOSD)},
  PUBLISHER = {ACM Press},
  LOCATION = {Denver, CO, USA},
  ISBN = {978-1-60558-567-3},
  MONTH = OCT,
  YEAR = 2009,
  DOI = {http://doi.acm.org/10.1145/1629716.1629728},
  ABSTRACT = {
There are many different implementation approaches to realize the
vision of feature oriented software development, ranging from simple
preprocessors, over feature-oriented programming, to sophisticated
aspect-oriented mechanisms. Their impact on readability and
maintainability (or program comprehension in general) has caused
a debate among researchers, but sound empirical results are missing.
We report experience from our endeavor to conduct experiments
to measure the influence of different implementation mechanisms
on program comprehension. We describe how to design such
experiments and report from possibilities and pitfalls we encountered.
Finally, we present some early results of our first experiment
on comparing CPP with CIDE.
	},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/FOSD09_emp.pdf},
  PAGES = {55--62}
}

@PROCEEDINGS{ACCKLN:FOSD09,
  EDITOR = {Sven Apel and William Cook and Krzysztof Czarnecki and Christian K{\"a}stner and Neil Loughran and Oscar Nierstrasz},
  TITLE = {Proceedings of the First International Workshop on Feature-Oriented Software Development (FOSD), October 6, 2009, Denver, Colorado, USA},
  PUBLISHER = {ACM Press},
  LOCATION = {Denver, CO, USA},
  ISBN = {978-1-60558-567-3},
  MONTH = OCT,
  YEAR = 2009,
  PDF = {http://www.infosun.fim.uni-passau.de/cl/staff/apel/FOSD2009/FOSD2009_Printed_Proceedings.pdf},
  HTTP = {http://portal.acm.org/citation.cfm?id=1629716}
}

@INPROCEEDINGS{KAS:SE09,
  TITLE = {Virtuelle Trennung von Belangen (Pr{\"a}prozessor 2.0)},
  AUTHOR = {Christian K{\"a}stner and Sven Apel and Gunter Saake},
  BOOKTITLE = {Software Engineering 2010 -- Fachtagung des GI-Fachbereichs Softwaretechnik},
  YEAR = 2010,
  MONTH = FEB,
  ABSTRACT = {
Bedingte Kompilierung mit Pr{\"a}prozessoren wie \emph{cpp} ist ein einfaches, aber wirksames Mittel zur Implementierung von Variabilit{\"a}t in Softwareproduktlinien. 
  Durch das Annotieren von Code-Fragmenten mit \emph{\#ifdef} und \emph{\#endif} k{\"o}nnen verschiedene Programmvarianten mit oder ohne diesen Fragmenten generiert werden. Obwohl Pr{\"a}prozessoren h{\"a}ufig in der Praxis verwendet werden, werden sie oft f{\"u}r ihre negativen Auswirkungen auf  Codequalit{\"a}t und Wartbarkeit kritisiert. Im Gegensatz zu modularen Implementierungen, etwa mit Komponenten oder Aspekte, vernachl{\"a}ssigen Pr{\"a}prozessoren die Trennung von Belangen im Quelltext, sind anf{\"a}llig f{\"u}r subtile Fehler und verschlechtern die Lesbarkeit des Quellcodes. 
  Wir zeigen, wie einfache Werkzeugunterst{\"u}tzung diese Probleme adressieren und zum Teil beheben bzw.\ die Vorteile einer modularen Implementierung emulieren kann. Gleichzeitig zeigen wir Vorteile von Pr{\"a}prozessoren wie Einfachheit und Sprachunabh{\"a}ngigkeit auf. 	
	},
  SERIES = {Lecture Notes in Informatics},
  PUBLISHER = {Gesellschaft f{\"u}r Informatik (GI)},
  LOCATION = {Paderborn, Germany},
  NOTE = {to appear},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/SE2010.pdf}
}

@INPROCEEDINGS{ALLKC:VaMoS10,
  AUTHOR = {Sven Apel and J{\"o}rg Liebig and Christian Lengauer and Christian K{\"a}stner and William R. Cook},
  TITLE = {Semistructured Merge in Revision Control Systems},
  BOOKTITLE = {Proceedings of the Fourth International Workshop on Variability Modelling of Software-intensive Systems (VaMoS)},
  PDF = {http://wwwiti.cs.uni-magdeburg.de/~ckaestne/VaMoS2010.pdf},
  PUBLISHER = {University of Duisburg-Essen},
  MONTH = JAN,
  YEAR = 2010,
  NOTE = {to appear},
  ABSTRACT = {
Revision control systems are a major means to
manage versions and variants of today’s software systems. An
ongoing problem in these systems is how to resolve conflicts
when merging independently developed revisions. Unstructured
revision control systems are purely text-based and solve conflicts
based on textual similarity. Structured revision control systems
are tailored to specific languages and use language-specific
knowledge for conflict resolution. We propose semistructured
revision control systems to inherit the strengths of both classes
of systems: generality and expressiveness. The idea is to provide
structural information of the underlying software artifacts in the
form of annotated grammars, which is motivated by recent work
on software product lines. This way, a wide variety of languages
can be supported and the information provided can assist the
resolution of conflicts. We have implemented a preliminary
tool and report on our experience with merging Java artifacts.
We believe that drawing a connection between revision control
systems and product lines has benefits for both fields.
	}
}

@INPROCEEDINGS{LALKS:ICSE10,
  TITLE = {An Analysis of the Variability in Forty Preprocessor-Based Software Product Lines},
  AUTHOR = {J{\"o}rg Liebig and Sven Apel and Christian Lengauer and Christian K\"{a}stner and Michael Schulze},
  BOOKTITLE = {Proceedings of the 32nd International Conference on Software Engineering (ICSE)},
  YEAR = 2010,
  MONTH = MAY,
  LOCATION = {Cape Town, South Africa},
  PUBLISHER = {ACM},
  ADDRESS = {New York, NY, USA},
  ABSTRACT = {
Over 30 years ago, the preprocessor cpp was developed to
extend the programming language C by lightweight metaprogramming
capabilities. Despite its error-proneness and low
abstraction level, the cpp is still widely being used in presentday
software projects to implement variable software. However,
not much is known about \emph{how} the cpp is employed
to implement variability. To address this issue, we have
analyzed forty open-source software projects written in C.
Specifically, we answer the following questions: How does program
size influence variability? How complex are extensions
made via cpp's variability mechanisms? At which level of
granularity are extensions applied? What is the general type
of extensions? These questions revive earlier discussions on
understanding and refactoring of the preprocessor. To answer
them, we introduce several metrics measuring the variability,
complexity, granularity, and type of extensions. Based on
the data obtained, we suggest alternative implementation
techniques. The data we have collected can influence other
research areas, such as language design and tool support.
},
  NOTE = {to appear; Acceptance rate: 14\,\% (52/380)}
}


This file has been generated by bibtex2html 1.79