* Home

* Registration

* Program

* Calls

* Workshop

* Tutorials

* Program Committee

* Organization

* Call for Sponsors

* Venue

Tutorials

T1. Introduction to Software Product Lines

T2. Transforming Legacy Systems into Software Product Lines

T3. Managing Requirements in Product Lines

T4. CVL - Common Variability Language

T5. Aligning Product Line Business and Technical Strategies (Mapping Product Line Requirements to a Product Line Architecture)

T6. Leveraging Model Driven Engineering in Software Product Line Architectures

T7. Product Line Engineering for Globalization - PLE4G

T8. Production Planning in a Software Product Line Organization

T9. Ecosystem Modeling and Analysis

T10. Second Generation Systems and Software Product Line Engineering

T11. Engineering Self-Adaptive Systems & Dynamic Software Product Line

T12. Introduction to Software Product Line Adoption


T1. Introduction to Software Product Lines
Presenter: Patrick Donohoe

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 will introduce the essential activities and underlying practice areas of software product line development. It will review the basic concepts of software product lines, discuss the costs and benefits of product line adoption, introduce the SEI's Framework for Software Product Line Practice, and describe approaches to applying the practices of the framework.

Participants should have experience in designing and developing software-intensive systems and some familiarity with modern software engineering concepts and management practices. 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.


T2. Transforming Legacy Systems into Software Product Lines
Presenter: Danilo Beuche

Not every software product lines starts from the scratch, often organizations face the problem that after a while their 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 also discusses some of the relevant 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 into software product line concepts, discussing terms such as problem and solution space, feature models, versions vs. variants. Tutorial topics are how to choose adequate problem space modelling, the mining of problem space variability from existing artefacts such as requirements documents and software architecture. Also part of the discussion will be 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.


T3. Managing Requirements in Product Lines
Presenter: Danilo Beuche

Many organizations develop software or software -intensive products, which are can be seen as variants or members of a product line. Often the market demands variability and the software organization expects productivity benefits from reuse. In any case, complexity of the software development increases. Requirements management plays a central role in this, when it comes to mastering the complexity.

The tutorial aims at providing the essential knowledge for successfully running requirements management for product lines and variant rich development scenarios. Besides explaining methods also information about implementing the methods with standard tools is given.


T4. CVL - Common Variability Language
Presenters: Øystein Haugen, Andrzej Wasowski and Krzysztof Czarnecki

The tutorial will present the present the outcome of the work done by the Joint Submission Team against the Request For Proposals for a Common Variability Language issued by the OMG (Object Management Group). The tutorial will present the language and experiments done by some of the consortium members on tools supporting preliminary tools for CVL.

The Common Variability Language (CVL) defined in this document is a domain-independent language for specifying and resolving variability. It facilitates the specification and resolution of variability over any instance of any language defined using a MOF-based meta-model.

The goals of the tutorial are:

  • To show how this fully generic language can be used through simple examples
  • To make the participants aware of the opportunities and challenges of getting a CVL standard and allowing the community to influence the process.
  • To present the CVL language as it is now specified in such a way that the audience will be able to provide meaningful feedback based on their own experience.
  • To solicit feedback from tutorial participants on the CVL in order to make the CVL even more suitable for the Product Line community
  • To encourage independent implementations of tools based on the CVL specification

The audience for our tutorial can be experienced product line engineers as well as beginners in the field of PLE. It will be an advantage if the participant has some experience in modeling e.g. with SysML or UML, but this is not a strict requirement.

Academics and practitioners alike will have benefit from the tutorial. We expect that the tutorial is of particular interest for builders of modeling and analysis tools, both academics and practitioners, who would like to support CVL.


T5. Aligning Product Line Business and Technical Strategies (Mapping Product Line Requirements to a Product Line Architecture)
Presenter: Mike Mannion

In the consumer product market space a commercial challenge is to offer personalization of products and services for individual customers at a mass production price. One solution is the development of a software product line platform comprising a set of products that have similar functions, behaviours and properties but with sufficient variability to capture customer differences. However as a product line evolves, customer requirements change and new products are added to the product line, software producers realize the platform cannot be "stretched" indefinitely. The central problem is striking a balance between development efficiency through increasing platform commonality and customer dissatisfaction with products that have unwanted features/properties. The introduction of multiple product lines may be a better alternative. In practice, achieving the balance is a compromise between satisfying customers' requirements, minimising the costs of changes to the product line platform, and a vendor's mission, capability and capacity. This tutorial will explore the broader challenges of product line evolution but focus on platform management through describing techniques for mapping changing variability between product line requirements and a product line platform architecture, and describe the contexts for deploying multiple product lines as an alternative.


T6. Leveraging Model Driven Engineering in Software Product Line Architectures
Presenters: Bruce Trask, Angel Roman

Model Driven Engineering (MDE) is a promising recent innovation in the software industry that has proven to work synergistically with Software Product Line Architectures (SPLA). It 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, Microsoft, standards bodies including the Object Management Group and leading Universities such as the ISIS group at Vanderbilt University are embracing this MDE/SPLA combination fully. IBM is spearheading the Eclipse Foundation including its MDE tools like the Eclipse Modeling Framework (EMF) and the Graphical Modeling Framework. Microsoft has also launched their Software Factories and DSL Toolkit into the MDE space. 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 allow such an approach to finally be viable. To further emphasize the timeliness of this technology is the complexity ceiling the software industry find itself facing wherein the platform technologies have increased far in advance of the language tools necessary to deal with them. This complexity ceiling is evident in today's Software Product Lines.

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

The benefits of the technology are so far reaching that we feel 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 and leverage Eclipse as a framework to develop MDE solutions. The first half will be less technical than the second half where we cover the details of SPLA and MDE in action in complete detail showing patterns and code.


T7. Product Line Engineering for Globalization -PLE4G
Presenters: Seiyoung (Sarah) Lee, Klaus Schmid

Globalization is a key challenge in the modern software industry. It covers issues like developing software in joint teams spread over the world, or developing software that needs to be used in many different countries and different cultural environments. In this tutorial, we focus on the second aspect of globalization. What may sound like a trivial task (do it in a number of different languages), is indeed far from trivial: languages, cultures, laws, usage contexts, etc. may vary and need to be adequately reflected in the corresponding software systems.

This approach enriches product line engineering methodology with a specific technical consideration of globalization issues. As we will assume that participants are mostly familiar with the basics of product line engineering, we will focus in particular on those issues that are specific to globalization. We will focus on increasing the awareness of the issues that need to be addressed for globalization and describe how product line engineering in general and the PLE4G approach in particular can help.


T8. Production Planning in a Software Product Line Organization
Presenters: Gary J. Chastek , John D. McGregor

Business and market goals drive an organization's creation and operation of a software product line. Effective product production is critical to the success of that product line and must also be driven by those business and market goals.

This tutorial describes a method of production planning in the context of a running example software product line. It explains how to utilize production scenarios and Porter's Five Forces to transform business and market goals into a

Production strategy, the overall approach for realizing both the core assets and products in a software product line
Production method, the overall implementation approach that specifies the models, processes, and tools to be utilized by the core asset and product developers, and
Production plan, the guide to how products in the software product line will be constructed from the product line's core assets.


T9. Ecosystem Modeling and Analysis
Presenters: John D. McGregor

The ecosystem, within which a software product line resides, is a network of organizations producing and consuming software assets and the linkages among those assets. The complexity of the relationships among the elements in the ecosystem requires analytic techniques to predict the effects of strategic decisions on the network of suppliers, buyers, collaborators, and ecosystem. The STRategic Ecosystem Analysis Method (STREAM) guides the collection of data and structures a model that can be queried.

STREAM has been applied in several organizations and provides input to several software product line practices including development of the CONOPS, scope definition, and business case development. For example, picking a new implementation framework to include in your product line asset base is not a trivial exercise and has long-term implications. Not only are you committed to the software but also the organization that assembles it and the organizations that produced the assets. How well the framework fits in the software architecture of your product line and how well the framework's roadmap aligns with the priorities of the product line can have a huge impact on the success of the product line organization. What has been traditionally been a technical decision becomes a strategic decision


T10. Second Generation Systems and Software Product Line Engineering
Presenters: Charles W. Krueger, Paul C. Clements

Second Generation Systems and Software Product Line Engineering (2GPLE) has emerged to pick up where classic software product line practice leaves off, and is empowering a whole new class of product lines that solve unprecedented challenges of scale and variation complexity. These so-called "mega-scale" product lines often define product spaces with more possible variations than there are atoms in the universe.

To deal with product line complexity that is literally astronomical, 2GPLE comprises a surprisingly small set of elegant and simple concepts. This tutorial will show how, in 2GPLE:

- a small set of feature constructs suffices to model the most complex product lines in the world;
- a small set of variation mechanisms suffices to work in all kinds of shared assets from across the entire engineering lifecycle -- from requirements to architectures, design models, implementations, calibrations, parts lists, test cases, documentation, and more;
- a simple model of configuration management makes product line CM as simple, or simpler, than single-product CM;
- application engineering (the partner of domain engineering) is reduced to a vanishingly small activity;
- off-the-shelf automation is available to exercise variation points in assets, based on the features needed in a product being built.

Together, these concepts make migrating to, defining, developing, and sustaining a product line of almost any size tractable and practical, either within an organization or across organizations. Further, the products are not limited to software or software-intensive systems; 2GPLE is a true systems and software engineering approach.

This tutorial will draw upon first-hand experience in applying 2GPLE, using Gears from BigLever Software, to some of the best-known product lines in the world, from companies such as Lockheed Martin, General Dynamics, HomeAway, and General Motors. In addition to concepts and experience, it will also cover roles and responsibilities, and organizational adoption and training. Finally, it will introduce the concept of multistage configuration, explain what it is, why it is a product-line game-changer, and how it is being applied in practice.


T11. Engineering Self-Adaptive Systems & Dynamic Software Product Line
Presenters: Ebrahim Bagheri, Mahdi Bashari

Self-adaptive systems are a class of software applications, which are able to dynamically transform their internal structure and hence their behavior in response to internal or external stimuli. The transformation may provide the basis for new functionalities or improve or maintain non-functional properties in order to match the application better to its operational requirements and standards. Software Product Line Engineering has rich methods and techniques in variability modeling and management which is one of the main issues in developing self-adaptive systems. Dynamic software product lines (DSPL) have been proposed to exploit the knowledge acquired in SPLE to develop self-adaptive software systems.

In this tutorial, we portray the problem of developing self-adaptive systems. Then we investigate how the idea of dynamic software product line could help to deal with the challenges that we face in developing efficient self-adaptive software. We also offer insight into the different approaches that use dynamic software product line engineering for developing self-adaptive systems focusing on practical approaches by showing how the approaches are applied to real case studies and also methods for evaluating these approaches.


T12. Introduction to Software Product Lines Adoption
Presenters: Linda Northrop and Lawrence Jones

The tremendous benefits of taking a software product line approach are well documented. 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, there are still considerable barriers to organizational adoption of product line practices. If an organization is sold on the concept, how is it to proceed? Most organizations are today doing incre-mental development. So, phased adoption simply makes sense. It is attractive as a risk reduction and fiscally viable proposition. This tutorial describes a phased, pattern-based approach to software product line adoption. The tutorial begins with a discussion of software product line adoption issues and then presents the Adoption Factory pattern. The Adoption Factory pattern provides a roadmap for phased, product line adoption. The tutorial covers the Adoption Factory in detail, including focus areas, phases, subpatterns, related practice areas, outputs, and roles. Examples of product line adoption plans following the pattern are used to illustrate its utility. The tutorial also describes common pitfalls and strategies for creating synergy within an organization between product line adoption and ongoing agile, CMMI or architecture-centric activities.