07.04.2014 Views

SPLC 2009 - SPLC.net l Software Product Line Conferences

SPLC 2009 - SPLC.net l Software Product Line Conferences

SPLC 2009 - SPLC.net l Software Product Line Conferences

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>SPLC</strong> <strong>2009</strong> | The 13th International <strong>Software</strong> <strong>Product</strong> <strong>Line</strong> Conference<br />

Pragmatic Strategies for Variability Management in <strong>Product</strong> <strong>Line</strong>s in Small- to<br />

Medium-Size Companies<br />

Stan Jarzabek, National University of Singapore, Singapore<br />

If you deploy multiple product variants for a variety of customers, you are already in the<br />

software product line (SPL) business. Most SPLs in small- to medium-size companies<br />

evolve from a single successful product. Each new product variant is often developed by ad<br />

hoc reuse—copy and modify—of source code files implementing existing products. As the<br />

SPL practice matures, a common practice is to stabilize a product component architecture<br />

and to use preprocessing, parameter configuration files, Ant, or annotations (Java/JEE) to<br />

handle the impact of variant features at the detailed level of code. If you use these<br />

techniques, you may be aware of problems that usually emerge in time: Features get<br />

complicated and inclusion of one feature into a custom product must be properly<br />

coordinated with modifications of yet other features; core reusable components become<br />

heavily instrumented with variation points and complex to work with.<br />

If the above picture reflects your experience, you may find this tutorial useful. We’ll review<br />

techniques commonly employed for SPL variability management and their strengths and<br />

pitfalls. In the second part of the tutorial, we’ll examine the XML-based Variant<br />

Configuration Language (XVCL) variation mechanism that exercises the total control over<br />

SPL variability, from architecture, to component configuration, to any detail of code (e.g.,<br />

variations at the source statement, expression, or keyword level). XVCL streamlines and<br />

automates customizations involved in implementation of selected variant features into<br />

custom products, from component reconfiguration to detailed customizations of component<br />

code. The approach replaces the need for multiple variation mechanisms and avoids the<br />

problems of digging out feature customization and reuse information from SCM<br />

repositories. It complements conventional architecture-centric, component-based design for<br />

reuse and works with any conventional programming language and/or platform such as<br />

JEE, .NET, Ruby on Rails, or PHP.<br />

In the tutorial, we discuss industrial case studies of product lines with XVCL.<br />

Presenter Biographies:<br />

Stan Jarzabek is an associate professor at the Department of Computer Science, School of<br />

Computing, National University of Singapore. He spent 12 years of his professional career<br />

in industry and 20 years in academia. Stan is interested in all aspects of software design, in<br />

particular, techniques for design of adaptable, easy-to-change (high-variability) software,<br />

http://www.sei.cmu.edu/splc<strong>2009</strong>/tutorials.html (16 of 18) [11/4/<strong>2009</strong> 12:06:26 PM]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!