Software product lines present many benefits over the traditional methods of building systems. With the diverse implementation
of product lines, organizations are faced with complex design constraints. Layered architectures assist with breaking down
complexity through separating architectural elements based on their use and applicability. It is difficult to achieve high
levels of reuse and productivity by focusing on one architectural style. This paper discusses three primary concepts, namely,
the product line architecture, the separation continuum and application assembly. It starts by presenting a product line architectural
view that shows how various concepts are separated based on abstraction. The separation continuum shows how vertical and horizontal
layering can assist with separating user interface from business logic and data at an implementation level, and the separation
of customer facing processes from infrastructure facing processes at a business or abstract level. An application assembly
approach is discussed whereby a product line architecture is tied to the separation continuum, showing how high levels of
productivity can be achieved when realizing product lines. The approach presented in this paper is still under development
with implementation on a limited number of product lines only. It is intended that the content will provoke and stimulate
the thinking and experimentation needed to deal with application assembly by means of having a product line architecture overlaid
onto a separation continuum.
Keywords product line - architecture - separation of concerns - separation continuum - patterns - software assembly