16th International Software Product Line Conference Salvador - Brazil, September 02 - 07, 2012

 

Tutorials


T1. Leveraging Model Driven Engineering in Software Product Line Architectures


T2. Managing Requirements in Product Lines


T3. Transforming Legacy Systems into Software 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. Next-Generation Model-based Variability Management: Languages and Tools


T7. Product Line Engineering for Globalization — PLE4G


T8. Second Generation Systems and Software Product Line Engineering


T9. Ecosystem modeling and Analysis


T10. Management and Operation of a Software Product Line


T11. Production Planning in a Software Product Line Organization


T12. Introduction to Software Product Lines


T13. Introduction to Software Product Lines Adoption






Descriptions



T1. Leveraging Model Driven Engineering in Software Product Line Architectures


Abstract

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.


Presenters

Bruce Trask and Angel Roman

bruce [dot] trask [at] mdesystems [dot] com




T2. Managing Requirements in Product Lines


Abstract

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.


Presenter

Danilo Beuche

danilo [dot] beuche [at] pure-systems [dot] com




T3. Transforming Legacy Systems into Software Product Lines


Abstract

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.


Presenter

Danilo Beuche

danilo [dot] beuche [at] pure-systems [dot] com




T4. CVL – Common Variability Language


Abstract

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:

  1. -To show how this fully generic language can be used through simple examples

  2. -To make the participants aware of the opportunities and challenges of getting a CVL standard and allowing the community to influence the process.

  3. -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.

  4. -To solicit feedback from tutorial participants on the CVL in order to make the CVL even more suitable for the Product Line community

  5. -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.


Presenters

Øystein Haugen, Andrzej Wasowski and Krzysztof Czarnecki

oystein [dot] haugen [at] sintef [dot] no

wasowski [at] itu [dot] dk

kczarnec [at] swen [dot] uwaterloo [dot] ca




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


Abstract

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. Product line evolution is a compromise between a vendor’s commercial objectives, the existing product line design, the vendor’s structure and culture, and customers’ requirements. Within this context, this tutorial will describe the alignment of business and technical strategies and present a range of techniques for managing this alignment. After this tutorial the participant will be able to:  


  1. 1.describe open issues around business and technical strategy alignment

  2. 2.discuss a range of techniques for managing business and technical strategy alignment

  3. 3.describe how these ideas have been used in real applications


Presenters

Juha Savolainen and Mike Mannion

JuhaErik [dot] Savolainen [at] danfoss [dot] com

M [dot] A [dot] G [dot] Mannion [at] gcu [dot] ac [dot] uk




T6. Next-Generation Model-based Variability Management: Languages and Tools


Abstract

Variability modelling and management is a key activity in a growing number of software engineering contexts, from software product lines (SPLs) to dynamic adaptive systems. Feature models are the defacto standard to formally represent and reason about commonality and variability of a software system.


This tutorial aims at presenting next generation of feature modelling languages and tools, directly applicable to a wide range of variability problems. The languages and tools have already been applied in practical contexts (industrial and academic), in different application domains (printers, semi-conductors, medical imaging, video surveillance, etc.) and for various purposes (extraction of feature models from legacy software artifacts, document management, SPL evolution, management of multi SPLs and supply chains, validation of SPLs, large scale configuration of feature models, etc.)


Participants (being practitioners or academics, beginners or advanced) will learn the principles and foundations of languages and tool-supported techniques dedicated to the model-based management of variability.


At the end of the tutorial, the attendees will be able to go further with the languages and tool-supported techniques, and to combine them in practical or academic contexts.


Presenter

Mathieu Acher, Raphaël Michel and Patrick Heymans

macher [at] fundp [dot] ac [dot] be

raphael [dot] michel [at] fundp [dot] ac [dot] be

patrick [dot] heymans [at] fundp [dot] ac [dot] be




T7. Product Line Engineering for Globalization — PLE4G


Abstract

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.


Presenter

Klaus Schmid and Seiyoung (Sarah) Lee

schmid [at] sse [dot] uni-hildesheim [dot] de

sylee [at] nipa [dot] kr





T8. Second Generation Systems and Software Product Line Engineering


Abstract

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:


  1. -a small set of feature constructs suffices to model the most complex product lines in the world;

  2. -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;

  3. -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;

  1. -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 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.


Presenters

Charles Krueger and Paul Clements

ckrueger [at] biglever [dot] com

pclements [at] biglever [dot] com




T9. Ecosystem Modeling and Analysis


Abstract

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


Presenter

John McGregor

johnmc [at] cs [dot] clemson [dot] edu




T10. Management and Operation of a Software Product Line


Abstract

The tutorial will be driven by a set of scenarios that will set the context for several threads of discussion. These scenarios will reflect different domains and organizational types. Each of the scenarios will illustrate an aspect of one or more of the topics 1 – 6 listed above. For example, John McGregor has had experience with product lines in which there are many suppliers of core assets and multiple independent builders of products. A scenario like this would provide the context for topic number 4, communication.


  1. 1.Managing the scope and variation over time

  2. 2.The core asset base as a platform

  3. 3.Refreshing the technical assets

  4. 4.Communication among customers, product developers, and core asset developers

  5. 5.Iterative, incremental business cases for experiments and innovation

6. Producing products efficiently and effectively


Presenters

John McGregor and Dirk Muthig

johnmc [at] cs [dot] clemson [dot] edu

dirk [dot] muthig [at] lhsystems [dot] com




T11. Production Planning in a Software Product Line Organization


Abstract

Business and market goals drive an organization’s operation of a software product line strategy. 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 outlines a method for coordinating the core asset development and product production.


Presenter

John Mcgregor and Gary Chastek

johnmc [at] cs [dot] clemson [dot] edu

gjc [at] sei [dot] cmu [dot] edu




T12. Introduction to Software Product Lines


Abstract

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’s Framework for Software Product Line Practice, and describes approaches to applying the practices of the framework.


Presenter

Patrick Donohoe

pd [at] sei [dot] cmu [dot] edu




T13. Introduction to Software Product Lines Adoption


Abstract

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 organiza-tion 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 re-duction 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.


Presenter

Linda Northrop and Lawrence Jones

lmn [at] sei [dot] cmu [dot] edu

lgj [at] sei [dot] cmu [dot] edu