To Merge or Not to Merge: Managing Software Families
Software surrounds us and drives our lives: most modern systems heavily rely on software. Managing the complexity of these large software systems is a challenging task. It is even more challenging for software product lines -- families of software variants with similar yet not identical functionality (think Samsung's Galaxy S line which includes over two dozen smartphone models, each with its own variation of software).
In the last two decades, numerous approaches have been proposed to help develop product lines in an efficient manner. Surprisingly, they are rarely used in practice. In this talk, we investigate reasons for such lack of adoption. We then propose a approach for improving existing practices that relies on a set of software analysis and transformation tasks.
We show that some of the required tasks are barely studied by existing works and look in detail into one of them: merging artifacts of multiple products (a.k.a. n-way merge). We explain why the n-way problem is NP-hard, explore possible approximate solutions, and propose our own heuristic n-way merge algorithm that is superior to other practical approaches in terms of its accuracy. We conclude the talk by outlining a future research agenda.
Julia Rubin is a PhD candidate at the University of Toronto, Canada and a member of the Emerging Quality Technologies group in IBM Research - Haifa, Israel. Her research interests span a wide range of software engineering areas, including design, analysis, maintenance and evolution of large complex systems. Julia is also working on various aspects of software quality and, specifically, on the use of formal methods, program analysis and testing techniques to ensure information security and privacy of mobile applications. Her most recent area of interest is secure-by-design development of mobile applications.
Julia serves on program committees of several major international conferences, such as FASE, RE, SPLC and ECMFA, and is a PC co-chair for both the SPLC'14 and the ECMFA'14. She also co-organized several international workshops on modeling and software product line engineering such as MOMPES@ASE and PLEASE@ICSE. Julia has been elected an IEEE TCSE member-at-large for 2013-2015.