svpp 08
industrial relevance

Software has become an important if not an indispensable part for conducting business. This expresses itself on both the operational and the product level. As a consequence the demand for increased and adapted functionality continues to grow, which poses several challenges from a developer perspective. Consider for example the cell phone industry where each vendor offers a wide variety of cell phones. Each cell phone family has a set of features that are common to all the phones in the family (e.g., address book, text-messaging) and a set of variation points (e.g., GPRS, camera support) that distinguishes the product functionality from each other. This implies that every product requires a customised software version. Nevertheless the base functionality should remain consistent and reusable across the whole range of products. Another example are security suites which must cover a wide range of possible treats ensuring security for many customers. Software development companies cannot simply respond to that by adding new functionality specific for a customer as that would be too expensive. For example, a cell phone company cannot construct the software for each phone from scratch, neither can a new security suites to counter a new security threat.

In order to cope with this demand, software companies need to rationalize their development by employing programming techniques to support variability. This allows companies to cost effectively keep up with the demands of their customers. Classical approaches for this are situated within the realm of general purpose programming languages (e.g., Java, C#, C++). Dominant approaches are the use of libraries, framework technology, and macro's.


Unfortunately the adoption of these implies an in-depth knowledge and expertise about the internals of the implementation to add or adapt functionality. This increases the cost and reduces the ability of a company to swiftly respond to customer demands. Cheaper and quicker are other approaches such as configuration files and wizards. However, these can only exploit a pre-defined set of variability.

In these situations, a specific-purpose programming language for variability becomes important. Such programming languages offer dedicated language features (operations & mechanisms) which can even specific for a particular problem domain. This allows companies to respond to more complex demands of customers more reliably, easily and quickly. In the case of cell phone companies, the software required for a particular cellphone is swiftly specified by using a dedicated programming language (metamodel). Security suite provides like McAfee offer a specific scripting language called Foundstone Scripting Language, so that customers can write vulnerability checks themselves.

The goal of this two-day symposium is to promote discussion about proper programming language support required to deal with software variability. Rather than ad hoc implementations of infrastructure to cope with software variability, we search for solutions that provide built-in support by either extending existing programming languages with the language features required, or by creating completely new domain-
specific languages.

The topics we address during the symposium cover:

  • Programming language abstractions for software variability (e.g. macros, traits, prototype-based extensions)
  • Configuration languages (eg. feature description interpreters, transformational approaches)
  • Interaction between non-functional programming concerns and software variability (e.g. security, persistence, concurrency, distribution)
  • Modularization approaches for software variability (e.g. aspect-orientation, modules, layers, plugins).
  • Guidelines to include software variability in programs (e.g. best-practices, patterns)
  • Runtime support for software variability (e.g. reflection, dynamic binding)
  • Generative programming for software variability (e.g. GUI generation)
  • Tool support


June 22, submission
July 11, notification
August 8-9, svpp 08
contact us
call for papers
in collaboration with
MoVES logo