Embracing Software Variability to Build Explainable Systems

Invited Talk

Location PinHaus der Universität, Schlösslistrasse 5, 3008 Bern, Switzerland
9 February 2024, 9:00 CET
SpeakerOscar Nierstrasz, Professor emeritus, University of Bern


Software systems can be a rich resource of knowledge about their application domain, stakeholder requirements, design decisions, and technical infrastructure, but this knowledge is often hard to access and exploit. An explainable system is a software system that can quickly and accurately answer questions that humans ask about it. We show how explainable systems can be systematically constructed through moldable development, an approach in which existing, moldable tools, such as code editors, inspectors, debuggers and notebooks, can be molded to an arbitrary application domain by creating dozens, hundreds or thousands of cheap, custom tools. This is made possible by enabling fine-grained variability in moldable tools. In contrast to conventional plug-in architectures, moldable tools adapt themselves to the dynamic context of live objects in the development environment, thus supporting navigation and exploration within an explainable system. Variability in the environment thus becomes the key to explaining variability in the software systems themselves. We will illustrate the approach through numerous examples gained over several years of experience with moldable development.


Oscar Nierstrasz is Professor emeritus of Computer Science at the University of Bern, where he founded the Software Composition Group in 1994. He retired from the University at the end of 2021, and is currently working at feenk.com to support onboarding and teaching of moldable development. He is co-author of over 400 publications, including the open-source books Object-Oriented Reengineering Patterns and Pharo by Example.