  Delta-oriented programming (DOP) is a flexible transformational approach to
implement software product lines. In delta-oriented product lines, variants are
generated by applying operations contained in delta modules to a (possibly
empty) base program. These operations can add, remove or modify named elements
in a program (e.g., classes, methods and fields in a Java program). This paper
presents algorithms for refactoring a delta-oriented product line into
monotonic form, i.e., either to contain add and modify operations only
(monotonic increasing) or to contain remove and modify operations only
(monotonic decreasing). Because of their simpler structure, monotonic
delta-oriented product lines are easier to analyze. The algorithms are
formalized by means of a core calculus for DOP of product lines of Java
programs and their correctness and complexity are given.
