Heineman, G.T.G.T.HeinemanBessai, J.J.BessaiDüdder, B.B.DüdderRehof, J.J.Rehof2022-03-142022-03-142016https://publica.fraunhofer.de/handle/publica/40791510.1007/978-3-319-47166-2_21This paper offers a personal reflection on a number of attempts over the past decade to apply a variety of approaches to construct a product line for solitaire card games implemented in Java. A product line shares a common set of features developed from a common set of software artifacts. A feature is a unit of functionality within a system that is visible to an end-user and can be used to differentiate members of the product line. The ultimate research goal is to assemble a product line by selecting a configuration of a set of pre-designed modular units and developing new units as necessary for individual members; in short, incorporating configuration into routine development. A secondary goal was to develop a suitable tool chain that could be integrated with existing IDEs to achieve widespread acceptance of the approach. We compare progress against by-hand development in Java. During this period we investigated a number of approaches from the research literature, including components, aspects, and layers; these efforts led to a productive collaboration supported by type theory.en004A Long and Winding Road Towards Modular Synthesisconference paper