13th International Software
Product Line Conference (SPLC)

August 24–28, 2009 | Airport Marriott, San Francisco, CA, USA

Tutorials – Monday, August 24, 2009

Morning Session


Introduction to Software Product Lines
Patrick Donohoe, Software Engineering Institute, USA

Software product lines have emerged as a new software development paradigm of great importance. A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. Organizations developing a portfolio of products as a software product line are experiencing order-of-magnitude improvements in cost, time to market, staff productivity, and quality of the deployed products.

This tutorial introduces the essential activities and underlying practice areas of software product line development. It is aimed at those in an organization who are in a position to influence the decision to adopt a product line approach and those in a position to carry out that decision. Anyone who can act as a technology change agent will benefit from this tutorial. The tutorial reviews the basic concepts of software product lines, discusses the costs and benefits of product line adoption, introduces the SEI Framework for Software Product Line Practice, and describes approaches to applying the practices of the framework.

Presenter Biography:
Patrick Donohoe
is a senior member of the technical staff at the Software Engineering Institute, working in the Research, Technology, and System Solutions Program. His current interests are analysis modeling and production planning for software product lines. He has participated in several SEI Product Line Technical Probes and architecture evaluations and is also an instructor in the SEI’s Software Product Line Curriculum.


Systems and Software Product Line Engineering
with the SPL Lifecycle Framework

Charles Krueger, BigLever Software, USA

Mainstream forces are driving software product line (SPL) approaches to take a more holistic perspective that is deeply integrated into the systems and software engineering lifecycle. These forces illustrate that SPL challenges will not be solved at any one stage in the product engineering lifecycle, nor will they be solved in independent and disparate silos in each of the different stages of the lifecycle. We describe a response to these forces—the SPL Lifecycle Framework. The motivation for this technology framework is to ease the integration of tools, assets, and processes across the full systems and software development lifecycle.

In this tutorial, we explore how the SPL Lifecycle Framework provides all product line engineers—including systems analysts, requirements engineers, architects, modelers, developers, build engineers, document writers, configuration managers, test engineers, project managers, product marketers, and so forth—with a common set of SPL concepts and constructs for all of their tools and assets, at every stage of the lifecycle and how to assure that product line development traceability and processes flow cleanly from one stage of the lifecycle to another.

The SPL Lifecycle Framework has been adopted by IBM Rational Software as the standard SPL solution for the Rational toolset, so we will illustrate how the framework is used in conjunction with these and other widely used industry tools that many organizations already have in-house, as well as how to integrate homegrown tools into the framework. We will describe observations and firsthand experiences on how the SPL Lifecycle Framework has enabled mainstream organizations, such as Lockheed Martin, with some of the largest, most sophisticated and complex, safety-critical systems ever built, to transition legacy and new systems and software assets to the SPL approach.

The target audience for this tutorial is (1) practitioners from industry settings who are interested in the most efficient, effective, and proven methods for transitioning to and sustaining software product line practice, and (2) members of the research community who are interested in the new methods emerging from proven industry successes. The tutorial is suitable for all levels, ranging from SPL novices who want to learn how the SPL Lifecycle Framework approach is an improvement over early generation SPL approaches, to experienced SPL practitioners who want to learn about the latest advances in commercial SPL practices.

Presenter Biography:
Charles Krueger, PhD, is the founder and CEO of BigLever Software, the leading provider of SPL framework, tools, and services. He moderates the SoftwareProductLines.com website and is a thought leader in the SPL field, with 20 years of experience and over 40 articles, columns, book chapters, and conference sessions to his credit. He has proven expertise in leading commercial software product line development teams and helping companies establish some of the industry’s most highly acclaimed SPL practices. These companies include nominees and inductees in the SPLC Hall of Fame including Salion, LSI Logic, and HomeAway. He received his PhD in computer science from Carnegie Mellon University.


Production Planning in a Software Product Line Organization
Gary Chastek & John D. McGregor, Software Engineering Institute, USA

Most software product line organizations recognize the need for two roles: core asset developers and product builders. These roles may both be assumed by the same individual, or each may be assumed by persons who are in different administrative units, in different geographic locations, or of vastly different skill levels. For example, a corporation may have one lab assigned to produce core assets and other labs around the world to use those assets to produce products. The greater the separation among these people, the greater the need for communication and coordination regarding product production.

Production planning is used in many industries to coordinate the efforts of external suppliers who supply parts and to structure the assembly line where products are produced. The need for coordination in a software product line organization is even greater than in hard-goods manufacturing, because product production is less constrained by physical properties or industrial standards. Our research has shown that organizations that fail to plan production are more likely to fail than those that do plan. The goal of this tutorial is to provide participants with techniques for conducting production planning.

We will cover the complete product line life cycle from adoption until a first generation of products is developed. We use a business strategy development tool, Porter’s Five Forces model, to guide strategy development. We will use the Software Process Engineering Meta-model and an instantiation of it—the Eclipse Process Framework—for method development and documentation. For the production plan, we will use a document template that has been used with numerous clients.

Presenter Biographies:
Gary J. Chastek
is a senior member of the technical staff at the Software Engineering Institute, working in the Research, Technology, and System Solutions Program. He has presented tutorials and led workshops at SPLC and OOPSLA. Chastek’s current research interests include production planning, variability management, and the use of aspect-oriented development in a software product line.

John D. McGregor is an associate professor of computer science at Clemson University, a founding partner of Luminary Software, and a Visiting Scientist at the Software Engineering Institute. He is co-author of two books on software engineering, including A Practical Guide to Testing Object-Oriented Software Engineering. McGregor teaches graduate software engineering courses and courses in the SEI's Software Product Line Curriculum and has presented numerous tutorials at a variety of conferences. He also consults with numerous software development organizations.

Afternoon Session


Introduction to Software Product Line Adoption
Linda Northrop & Larry Jones, Software Engineering Institute, USA

Through a software product line approach, organizations have achieved significant reductions in cost and time to market and, at the same time, increased the quality of families of their software systems. However, to date, there are considerable barriers to organizational adoption of product line practices. Phased adoption is attractive as a risk reduction and fiscally viable proposition. This tutorial describes a phased, pattern-based approach to software product line adoption. This tutorial will acquaint participants with product line adoption barriers and two ways to overcome them:

  1. a phased, pattern-based adoption approach

  2. explicit linkage with other improvement efforts

The objectives of the tutorial are to acquaint participants with

  • issues surrounding software product line adoption
  • a phased, pattern-based adoption approach
  • adoption planning artifacts
  • explicit linkage of software product line adoption with other improvement efforts

The tutorial begins with a discussion of software product line adoption issues, including benefits, barriers, risks, and the technical and organizational factors that influence adoption. We then present the Adoption Factory pattern, a roadmap for phased product line adoption. The tutorial covers the Adoption Factory pattern in detail. Examples of product line adoption plans following the pattern are used to illustrate its utility. The tutorial also describes strategies for creating synergy within an organization between product line adoption and ongoing CMMI or other improvement initiatives.

Participants should have experience in designing and developing software-intensive systems, have some familiarity with modern software engineering concepts and management practices, and be familiar with product line concepts. The tutorial is aimed at those in an organization who are in a position to influence the decision to adopt a product line approach and those in a position to carry out that decision. This includes technical managers at all levels, as well as those on the software development staff. Anyone who can act as a technology change agent will benefit from this tutorial.

Presenter Biographies:
Linda Northrop is director of the Research, Technology, and System Solutions Program at the Software Engineering Institute where she leads the work in architecture-centric engineering, software product lines, systems of systems, and ultra-large-scale (ULS) systems. She is coauthor of the book Software Product Lines: Practices and Patterns and led the research group on ULS systems that resulted in the book, Ultra-Large-Scale Systems: The Software Challenge of the Future. Before joining the SEI, she was associated with both the United States Air Force Academy and the State University of New York as professor of computer science, and with both Eastman Kodak and IBM as a software engineer.

Lawrence G. Jones is a senior member of the technical staff at the Software Engineering Institute, working in the Research, Technology and System Solutions Program. He has over 39 years experience in software development, management and education including service in the U.S. Air Force. He is the former Chair of the Computer Science Department at the Air Force Academy, current Chair of the ABET Accreditation Council, Past Chair of the ABET Computing Accreditation Commission, a Senior Member of the IEEE and the ACM, and Secretary/Treasurer of the Computing Sciences Accreditation Board.


From Product Line Requirements to Product Line Architecture – Optimizing Industrial Product Lines for New Competitive Advantage
Juha Savolainen, Nokia Research Center, Helsinki, Finland
Michael Mannion, Glasgow Caledonian University, Glasgow, Scotland

Product lines have been used in Nokia for more than a decade. In the consumer products, a commercial challenge is to offer personalization of products and services for individual customers at a mass-production price. Product line development is a compromise between customer requirements, existing product line architectural constraints, and commercial needs. Managing variability is the key to a successful product line development. As a product line evolves, selections of requirements for new products are often constrained by the design of the existing product line architecture and the cost of making these changes.

In this tutorial, we describe how to evaluate the current state of the product line, alleviate identified problems, and select the right techniques for managing the evolution. We discuss techniques, experiences, and open issues about managing the transitions back and forth between product line requirements and architectural components as products evolve. We present a set of rules to map variability in requirements to the architecture. We describe architectural views to design, document, and analyze variability and dependencies. We examine the challenges of these techniques and present results of using them for real-world applications.

Attendees should have a reasonable understanding of product line engineering and the problems of developing medium to large computer-based systems. The audience does not need to know about the mobile phone domain used for the case study. Sufficient explanation will be provided to enable understanding of our key development ideas.

Presenter Biographies:
Juha Savolainen is a principal member of the research staff at Nokia Research Center, Helsinki, Finland. He has extensive experience in working closely with the developers of numerous product lines, helping them to manage and realize variability. He is a frequent speaker, teaching courses on requirements engineering and software architecture. His main research interests include requirements engineering, software architectures, and product line development. He has published more than 25 papers.

Michael Mannion is professor of computing and pro vice-chancellor (international) at Glasgow Caledonian University, Glasgow, Scotland, UK. He has several years of software engineering industrial experience and is a former chairman of the British Computer Society Special Interest Group in Software Reuse. His research interests include product line engineering, software engineering, and engineering education. He has published more than 50 papers.

Tutorials – Tuesday, August 25, 2009

Morning Session


Introducing and Optimizing Software Product Lines Using the FEF
Klaus Schmid, University of Hildesheim, Germany

This tutorial addresses in particular the needs of people who either want to introduce product line engineering in their organizations or want to reevaluate and assess their product line maturity.

The tutorial first provides a general introduction to the principles and success factors of software product line engineering (PLE). It introduces PLE as a modern form of software reuse and describes the history and success factors that make it different from earlier work in the area of software reuse.

According to our point of view, the basic principles of PLE are

  • business orientation: Product line engineering must be embedded in a business and strategic context.

  • variability management: Enabling the management of variation is key to efficient and effective reuse.

  • architecture-driven development: E ffective reuse of implementations requires architectural measures.

  • two-lifecycle approach: An explicit distinction between development for reuse and with reuse on the process and organization level is very important for the integrity of the product line.

Each of these principles is described, and its relation and importance to product line engineering is discussed.

On this basis, the Families Evaluation Framework (FEF) is described. This is a framework for assessing the status of a software product line organization along four dimensions: business, architecture, process, and organization. While the process dimension relies on an extension of the CMMI, the other three dimensions have been developed from scratch.

The FEF is also illustrated using examples of very large and very small organizations.

Presenter Biography:
Klaus Schmid, PhD,
leads the software engineering group at the University of Hildesheim. He has worked in various product line projects; both in research projects like ESAPS, Café, and Families and in industrial projects where he helped to introduce product line engineering or to optimize specific practices. He has authored numerous papers in various areas of product line engineering, as diverse as product line economics and scoping, variability management, product line evolution, and variant generation.


Evolutionary Product Line Requirements Engineering
Isabel John, Fraunhofer IESE, Germany
Karina Villela, Fraunhofer IESE, Germany

Product line engineering has a widespread use in industry now. Therefore, there is a great need for customizable, adaptable, as well as mature methods. Scoping and product line analysis are a unique and integral part of product line engineering. In these phases, we determine where to reuse and what to reuse, establishing the basis for all technical, managerial, and investment decisions in the product line to come. Furthermore, these early phases are highly context dependent. In this tutorial, we will give an introduction on how to analyze an environment with the purpose of planning a product line and its future evolution. We focus on product line requirements engineering methods, comprising product line scoping, product line analysis, and planning for evolution.

With these topics, we completely cover the early phases of product line engineering, enabling practitioners to start with product lines on a solid basis. The intended audience is practitioners who want to learn how to carry out these early phases successfully, as well as researchers who want to know about an integrated approach for product line analysis and planning for future evolution.

  1. Introduction
    - overview on product line scoping, analysis, and modeling in an architecture-centric product line approach
    - importance of a thoroughly planned product line as a key factor for successful product line engineering and evolution
    - key principles of product line requirements engineering

  2. Scoping
    - introduction to the PuLSE-Eco approach for scoping, which includes an overview on the activities and key principles of scoping
    - explanation on how to build up key artifacts (e.g., a product–feature matrix)

  3. Product Line Analysis
    - introduction to the PuLSE-CDA approach for product line analysis, which adds product line specifics to existing requirements engineering approaches and notations
    - overview of other approaches for product line analysis, such as FAST and FODA

  4. Product Line Evolution
    - overview of a model of software evolution that defines key concepts for systematic reasoning on product line requirements volatility
    - introduction to PLEvo-Scoping, a method based on such concepts, encompassing its activities and a complete example of its usage
    - integration with existing scoping approaches

This tutorial is based on our experience with product line engineering in many industrial projects. It crystallizes the essence of the experience gained in those industrial projects and combines it with our latest research in the area of evolution in product line requirements.

Presenter Biographies:
Isabel John is a researcher and project leader at Fraunhofer IESE. She works in several research and industrial projects in the context of software product lines, scoping, and requirements engineering. Her work focuses on product line analysis and scoping. She has given several presentations and tutorials on product line engineering at software engineering conferences and in industrial contexts. She received her Diploma degree in Computer Science from the Technical University of Kaiserslautern.

Karina Villela has recently become a researcher at Fraunhofer IESE. As part of her Alexander von Humboldt Fellowship at this institute, she defined a method for proactively managing the evolving scope of a product line, which was applied in different application domains. Since then, she has been working on product line requirements engineering with the goal of improving the ability of product lines to evolve over time. She received her M.Sc. and PhD degrees in computer science from the Federal University of Rio de Janeiro, in Brazil.


Transforming Legacy Systems into Software Product Lines
Danilo Beuche, pure-systems GmbH, Germany

Not every software product line starts from scratch. Often, an organization faces the problem that after a while its software system is deployed in several variants and the need arises to migrate to systematic variability and variant management using a software product line approach.

The tutorial will discuss issues coming up during this migration process mainly on the technical level but will also discuss some of the organisational questions. The goal of the tutorial is to give attendees an initial idea how a transition into a software product line development process could be done with respect to the technical transition.

The tutorial starts with a brief introduction to software product line concepts, discussing terms such as problem and solution space, feature models, and versions vs. variants.

Further tutorial topics will be how to choose adequate problem space modelling and the mining of problem space variability from existing artefacts such as requirements documents and software architecture. Also, part of the discussion will be on the need for separation of problem space from solution space and ways to realize it. A substantial part will be dedicated to variability detection and refactoring in the solution space of legacy systems.

Presenter Biography:
Danilo Beuche, PhD, is CEO of the pure-systems GmbH. Pure-systems is a software company specialized in services and tool development for the application of product line technologies in embedded software systems. In 1995, he started to work in the field of embedded operating systems and software families and received his PhD in this area. His work on tool support for feature-based software development finally led to the founding of pure-systems in 2001. At pure-systems, he also works as consultant in the area of product line development, mainly for clients from the automotive industry. He has been tutorial presenter, speaker, workshop organizer, and panelist at conferences such as AOSD, ISORC, SPLC, and OOPSLA. In addition, he is the author of articles in scientific journals and software developer magazines.


Leveraging Model Driven Engineering in Software Product Line Architectures
Bruce Trask, MDE Systems, Inc
Angel Roman, MDE Systems, Inc

Model driven engineering (MDE) is a recent innovation in the software industry that has proven to work synergistically with software product line architectures (SPLAs). MDE can provide the tools necessary to fully harness the power of software product lines. The major players in the software industry—including commercial companies such as IBM and Microsoft, standards bodies such as the Object Management Group, and leading Universities such as the ISIS group at Vanderbilt University—are embracing this MDE/PLA combination fully. IBM is spearheading the Eclipse Foundation, including its MDE tools like EMF, GEF, and GMF. Microsoft has launched its Software Factories foray into the MDE space with its Domain Specific Language Toolkit. Top software groups such as the ISIS group at Vanderbilt are using these MDE techniques in combination with SPLAs for very complex systems. The Object Management Group is working on standardizing the various facets of MDE. All of these groups are capitalizing on the perfect storm of critical innovations today that allows such an approach to finally be viable. Further emphasizing the timeliness of this technology is the complexity ceiling the software industry finds itself facing, wherein the platform technologies have increased far in advance of the language tools necessary to deal with them.

The process of d SPLAs can be a complex task. However, the use of MDE techniques can facilitate their development by introducing domain-specific languages, domain-specific graphical editors, and domain-specific generators. Together, these are considered the sacred triad of MDE. Key to understanding MDE and how it fits into SPLAs is to know exactly what each part of the trinity means, how it relates to the other parts, and what the various implementations are for each. This tutorial will walk through the development of an entire MDE tool as applied to a particular software product line of mobile applications (e.g., for the new Google Android phone platform).

The goal of this tutorial is to educate attendees on what MDE technologies are, exactly how they relate synergistically to SPLAs, and how to actually apply them using an existing Eclipse implementation.

The benefits of the technology are so far reaching that the intended audience spans technical managers, developers, and CTOs. In general, the target audience includes researchers and practitioners who are working on problems related to the design and implementation of SPLAs and would like to understand the benefits of applying MDE techniques towards SPLAs.

Presenter Biographies:
Bruce Trask has been working on complex distributed real-time embedded systems for over 20 years, specializing in software product lines and MDE as applied to these systems in the last 7 years. He has been teaching C++, object orientation, design patterns, UML, CORBA, and framework courses for over 10 years. He has led multiple study groups in the New York/New Jersey/Connecticut area on various topics ranging from design patterns to middleware. He is a regular speaker/presenter at software industry conferences and has delivered tutorials at the OMG. Bruce Trask is the CEO of MDE Systems.

Angel Roman is the chief software architect of MDE Systems and an expert on the Eclipse development environment and its application frameworks. He has presented at various industry conferences on topics such as software defined radios and MDE technologies.

Afternoon Session


Inner Source Product Line Development
Frank van der Linden, Philips Medical Systems, The Netherlands

Open source has shown to be an effective way to do distributed development. This tutorial shows how to profit from the open source model in product line development.

Inner source is a way to exploit the advantages of distributed development in the open source way but in a wish to avoid problems with planning, ownership, and control. Several companies have adopted an inner source development model. In inner source development, a set of teams collaborates in a cooperative eco-system. Similar to open source development, inner source development applies an open, concurrent, model of collaboration. It implies distributed ownership and control of code, early and frequent releasing, and many continuous feedback channels. It makes use of organization mechanisms already in place; for example, for escalation of conflicts or setting up roadmaps. Inner source enables flexibility in (starting, stopping, and changing of) collaborations and in timing and setting priorities of development teams across organizational (and geographical) boundaries.

The tutorial is mainly structured along the basic dimensions of BAPO and the FEF: business, architecture, process, and organization.

The tutorial starts with an overview of BAPO and the FEF. This is a rehearsal of the basic ideas presented in the tutorial T4: “Introducing and Optimizing Software Product Lines Using the FEF.” Next, the idea of inner source is presented, followed with a detailed explanation of inner source in each of the four BAPO dimensions.

Presenter Biography:
Frank van der Linden, PhD, works at Philips Healthcare CTO Office. He received his Ph.D. in pure Mathematics in 1984 at the University of Amsterdam. He was then employed by Philips Research and since 1999 by Philips Medical Systems. During this time, his main interest was in software product lines. He was the project leader of four relevant ITEA projects: ESAPS, CAFÉ, FAMILIES, and COSI. During these projects, he organized as program chair a series of SWAPF & PFE workshops. He then served as general chair of the SPLC 2005 and as program co-chair of the SPLC 2006.


Building Reusable Testing Assets for a Software Product Line
John D. McGregor, Software Engineering Institute, USA

Testing consumes a significant percentage of the resources required to produce software-intensive products. The exact impact on the project is often hard to evaluate, because testing activities are distributed over the entire scope of the development effort. In this tutorial, we take a comprehensive end-to-end view of the testing activities and roles that should be present in a software product line organization.

The Software Engineering Institute (SEI) identifies three areas of responsibility in a product line organization. We relate to testing those described below.

Organizational managers have responsibility for establishing the test strategy for the organization in general and the product line in particular. These activities are directly related to the business goals and scope of the product line.

Technical managers have responsibility for planning the numerous test activities needed to implement the test strategy. These activities are planned in concert with the development activities to coordinate milestones and resources.

Software engineers have responsibility for implementing the planned activities. They select the specific test cases necessary to achieve specific test coverage levels and implement any software needed to apply the test cases to the software under test.

The close relationship between developing software and testing it results in the test activities being crafted with knowledge of the chosen development process. The method engineer arranges the testing activities so that they are timely and have the appropriate perspective for their position in the development process. This tutorial considers test techniques and test process models.

Presenter Biographies:
John D. McGregor is an associate professor of computer science at Clemson University, a founding partner of Luminary Software, and a Visiting Scientist at the Software Engineering Institute. He is co-author of two books on software engineering, including A Practical Guide to Testing Object-Oriented Software Engineering. McGregor teaches graduate software engineering courses and courses in the SEI's Software Product Line Curriculum and has presented numerous tutorials at a variety of conferences. He also consults with numerous software development organizations.


Pragmatic Strategies for Variability Management in Product Lines in Small- to Medium-Size Companies
Stan Jarzabek, National University of Singapore
, Singapore

If you deploy multiple product variants for a variety of customers, you are already in the software product line (SPL) business. Most SPLs in small- to medium-size companies evolve from a single successful product. Each new product variant is often developed by ad hoc reuse—copy and modify—of source code files implementing existing products. As the SPL practice matures, a common practice is to stabilize a product component architecture and to use preprocessing, parameter configuration files, Ant, or annotations (Java/JEE) to handle the impact of variant features at the detailed level of code. If you use these techniques, you may be aware of problems that usually emerge in time: Features get complicated and inclusion of one feature into a custom product must be properly coordinated with modifications of yet other features; core reusable components become heavily instrumented with variation points and complex to work with.

If the above picture reflects your experience, you may find this tutorial useful. We’ll review techniques commonly employed for SPL variability management and their strengths and pitfalls. In the second part of the tutorial, we’ll examine the XML-based Variant Configuration Language (XVCL) variation mechanism that exercises the total control over SPL variability, from architecture, to component configuration, to any detail of code (e.g., variations at the source statement, expression, or keyword level). XVCL streamlines and automates customizations involved in implementation of selected variant features into custom products, from component reconfiguration to detailed customizations of component code. The approach replaces the need for multiple variation mechanisms and avoids the problems of digging out feature customization and reuse information from SCM repositories. It complements conventional architecture-centric, component-based design for reuse and works with any conventional programming language and/or platform such as JEE, .NET, Ruby on Rails, or PHP.

In the tutorial, we discuss industrial case studies of product lines with XVCL.

Presenter Biographies:
Stan Jarzabek is an associate professor at the Department of Computer Science, School of Computing, National University of Singapore. He spent 12 years of his professional career in industry and 20 years in academia. Stan is interested in all aspects of software design, in particular, techniques for design of adaptable, easy-to-change (high-variability) software, clone detection, and program analysis. He is an author of the book Effective Software Maintenance and Evolution: Reuse-based Approach and has published over 90 papers in international journals and conference proceedings. (His recent paper received the ACM Distinguished Paper Award). Stan works with industries, and XVCL has been applied to manage web portal product lines at ST Electronics (Info-Software Systems) Pte Ltd. and to create mobile phone role-playing games and customer relation management systems.


Using Domain-Specific Languages for Product Line Engineering
Markus Voelter, itemis AG, Germany

Domain-specific languages, together with code generation or interpreters (a.k.a. model-driven development), are becoming more and more important. Since there is a certain overhead involved in building languages and processors, this approach is especially useful in environments where a specific set of languages and generators can be reused many times. Product lines are such an environment. Consequently, the use of domain-specific languages (DSLs) for software product line engineering (SPLE) is becoming more relevant.

However, exploiting DSLs in the context of product lines involves more than just defining and using languages. This tutorial explains the differences as well as commonalities between model-driven development (MDD) and SPLE and shows how the two approaches can be combined.

In this tutorial, we will first recap/introduce feature modeling and model-driven development. We then build a simple textual DSL and a code generator based on Eclipse openArchitectureWare (oAW). Based on this language, we’ll discuss the kinds of variability expressible via DSLs versus those expressible via feature modeling, leading to a discussion about ways to combine the two. In the next demo slot, we’ll do just that: We’ll annotate a model with feature dependencies. When generating code, the elements whose features are not selected will be removed, and hence no code will be generated. Finally, we’ll discuss and demo the integration feature dependencies into code generators to configure the kind of code generated from the model.

Presenter Biography:
Markus Völter works as an independent researcher, consultant, and coach for itemis AG in Stuttgart, Germany. His focus is on software architecture, model-driven software development, and domain-specific languages, as well as on product line engineering. He coaches projects small to large, in business, science and embedded systems, trying to bridge the gaps between these worlds. Markus also regularly writes (articles, patterns, books) and speaks (trainings, conferences) on those subjects. Contact him via voelter@acm.org or www.voelter.de.


This year’s program included keynotes by leaders in the field, experience reports from industry, presentations on current research, and product line workshops, tutorials, and tool demos. View the entire program here »

News Committee Members

Join the SPLC 2009 Conference Mailing List and stay up to date:

To be included in the SPLC 2009 Conference mailing list for latest updates, sign up here:


SPLC on LinkedIn

Committee Members

Organizing Committee Members

General Chair: Dirk Muthig, Lufthansa Systems Passenger Services GmbH

Program Chair: John McGregor, Clemson University, USA

Industry Track:
* Paul Jensen, Overwatch, USA
* Kentaro Yoshimura, Hitachi, Japan
* Michael Schumpelt, ETAS, Germany

Workshops: Jaejoon Lee, Lancaster University, UK

Demonstrations & Posters: Ronny Kolb, Honeywell, Switzerland

Tutorials: Gary Chastek, Software Engineering Institute, USA

Doctoral Symposium: Eduardo Santana de Almeida, C.E.S.A.R., Brazil

Publicity: Pat Donohoe, Software Engineering Institute, USA

See the list of program committee members.