A User-Centered Approach to Product Configuration in Software Product Line Engineering

Rick Rabiser


Abstract

Software product lines aim at leveraging extensive reuse in software development to help dealing with the challenges of today’s software development. These result from changing customer requirements as well as tight budgets and schedules. Software product line approaches typically separate two processes: (1) In domain engineering a product line is built by developing reusable assets, e.g., software components, documentation, or test cases, as well as explicitly modeling these assets’ variability. (2) In application engineering the assets’ variability is utilized to select a particular product from the product line and customize it to the needs of a particular customer or market. This process is called product configuration. Compared to the vast amount of research results on developing and modeling product lines, comparably few approaches and tools are available for product configuration.

Product configuration is a complex task requiring the involvement of diverse, heterogeneous stakeholders such as customers, engineers, and sales people. Product line variability must be communicated to these stakeholders to allow them selecting and customizing a product. Product configuration is also hard because of the diversity of product line assets and their complex interdependencies. Views on the available variability are required that hide complexity and take into account the tasks and roles of the different involved stakeholders. Furthermore, customers typically have requirements that can not be fulfilled by the product line and the variability it provides. Such product-specific requirements must be captured and managed in product configuration to not diminish the expected gains of the product line approach.

The goal of this thesis is to support the different stakeholders involved in product configuration and help them to handle the inherent complexity of product lines and the diversity of customer requirements. After a thorough analysis of the state-of-the-art, we define the required capabilities for a product configuration approach and evaluate their importance and relevancy. We present our user-centered product configuration approach DOPLERUCon and accompanying tools we developed to support these capabilities. The development of the approach and tools was conducted in close collaboration with an industrial partner who continuously provided us with feedback and real-world requirements. We evaluate the usefulness of our approach and tools by showing how their capabilities were used in four different case studies we conducted to address different industrial and academic partners’ product configuration challenges.

The key contributions of this thesis are: (i) A thorough and systematic analysis of the state-ofthe- art in product configuration; (ii) A clear definition and evaluation of the required capabilities for a product configuration approach; (iii) A user-centered approach and tools that provide these capabilities; (iv) Four case studies on the usefulness of the developed approach and tools.

Kurzfassung

Softwareproduktlinien haben das Ziel, durch explizite und umfassende Wiederverwendung den Herausforderungen heutiger Softwareentwicklung gerecht zu werden. Diese Herausforderungen zeigen sich in ständig ändernden Kundenanforderungen sowie knappen Budgets und Zeitplänen. Softwareproduktlinienansätze unterscheiden typischerweise zwei Prozesse: (1) Im Domänen-Engineering wird die Produktlinie durch die Entwicklung wiederverwendbarer Artefakte wie Softwarekomponenten, Dokumentation oder Testfälle und die Modellierung der Variabilität dieser Artefakte aufgebaut. (2) Im Applikations-Engineering wird die Variabilität der Produktlinie ausgenutzt, um ein bestimmtes Produkt auszuwählen und dieses an die Anforderungen eines bestimmten Kunden oder Marktes anzupassen. Dieser Prozess wird Produktkonfiguration genannt. Verglichen mit der Menge an Forschungsergebnissen zur Entwicklung von Produktlinien sind nur wenige Ansätze und Werkzeuge zur Produktkonfiguration verfügbar.

Produktkonfiguration ist ein komplexer Prozess. Es sind verschiedene Personen mit unterschiedlichen Zielen und unterschiedlichem Hintergrund involviert, zum Beispiel Kunden, Entwickler und Verkäufer. Die Variabilität der Produktlinienartefakte muss diesen Personen in einer Art kommuniziert werden, die es ihnen erlaubt die nötigen Entscheidungen zur Auswahl und Anpassung eines Produktes zu treffen. Produktkonfiguration wird außerdem durch die Unterschiedlichkeit der Produktlinienartefakte und die komplexen Beziehungen zwischen diesen Artefakten erschwert. Dafür sind Sichten auf die verfügbare Variabilität erforderlich, welche die Komplexität verbergen und die Aufgaben und Rollen der verschiedenen involvierten Personen berücksichtigen. Zusätzlich gibt es in der Regel Kundenanforderungen die nicht durch Ausnutzung von Produktlinienvariabilität erfüllt werden können. Diese müssen erfasst und verwaltet werden.

Das Ziel dieser Dissertation ist es, die verschiedenen in die Produktkonfiguration involvierten Personen im Umgang mit komplexen Produktlinien und Kundenanforderungen zu unterstützen. Nach einer detaillierten Analyse des „State of the Art“ werden die Anforderungen an einen Ansatz zur Produktkonfiguration definiert und evaluiert. Basierend auf dieser Evaluierung wird der benutzerzentrierte Ansatz DOPLERUCon präsentiert, welcher im Rahmen dieser Dissertation entwickelt wurde, um diese Anforderungen zu erfüllen. Der Ansatz und dessen Werkzeugunterstützung wurden in enger Zusammenarbeit mit einem Industriepartner entwickelt, welcher Feedback und Anforderungen aus der Praxis zur Verfügung stellte. Abschließend wird die Nützlichkeit des Ansatzes evaluiert. Vier Fallstudien zeigen, wie dieser verwendet wurde um die Herausforderungen verschiedener industrieller und akademischer Partner zu adressieren.

Die Hauptbeiträge dieser Dissertation zur Forschung sind: (i) Eine detaillierte und systematische Analyse des „State of the Art“; (ii) Klar definierte und evaluierte Anforderungen an einen Ansatz zur Produktkonfiguration; (iii) Ein benutzerzentrierter Ansatz inklusive Werkzeugunterstützung, welcher diese Anforderungen erfüllt; (iv) Vier Fallstudien über die praktische Anwendung des entwickelten Ansatzes und dessen Werkzeugunterstützung.


PhD thesis, Johannes Kepler University Linz, Februar 2009

Kontakt: Mag. Dr. Rick Rabiser