Issues in Software Product Line Evolution: Complex Changes in Variability Models

This paper describes industrial experience with the evolution of a software product line when such evolution requires complex modification of the variability model. This experience has identified types of changes in the variability model that have made evaluating the impact of such changes difficult in practice.


On the Problems with Evolving Egemin's Software Product Line

Egemin, an industrial manufacturer of logistic systems is adopting a Software Product Line (SPL) approach to manage the development of their product portfolio. However, due to the intrinsic complexity of the logistic systems and lack of explicitly documented architectural knowledge, evolution of the products is error-prone. Faulty updates increase maintenance costs and harm the company's reputation. Therefore, Egemin searches for a systematic solution that can improve their SPL evolution strategy.


Migrating Towards Evolving Software Product Lines: Challenges of an SME in a Core Customer-driven Industrial Systems Engineering Context

In this paper we identify key challenges a medium sized software organization is facing in migrating towards Software Product Line Engineering (SPLE). The software engineering context of the company is characterized by a two-fold access to the market - "core customer driven product enhancement and product development for a broader, anonymous market" - and the embedding of software engineering in multi-disciplinary systems and solutions engineering.

Based on a characterization of the business, the software product subject to migration towards SPLE, and the goals and background of the SPLE initiative, seven key challenges are identified. These challenges relate to process diversity in the face of multiple reuse approaches; the management of requirements and variability; the integration of requirements traceability and variability management; legacy software and discipline- vs. software-specific modularization; integration with systems engineering; costing and pricing models; and project vs. product documentation.


Use of SPLE to deliver Custom Solutions at Product Cost" Challenges and Way forward

Need for adaptiveness of business applications is on the rise with continued increase in business dynamics. Ground-up development techniques neither deliver nor scale in this dynamic situation. Software product line engineering (SPLE) aims to increase adaptiveness by capturing commonality and variability up front so as to suitably configure the application from its parts so to say. Code-centric SPLE techniques show unacceptable responsiveness when business applications are subjected to changes along multiple dimensions that continue to evolve simultaneously. Through clear separation of functional concerns from implementation platform, model driven approaches enable easy delivery of the same functionality into multiple technology platforms. However, business applications exhibit variability in several dimensions such as functionality, business process, design decisions, architecture, technology platform etc. We argue SPLE techniques need to be elevated to a higher level of abstraction to be able to work in unison with model-driven techniques in order to realize the desired adaptiveness along all these dimensions. We have been delivering large business applications using model-driven techniques for past 15 years. Several key challenges we faced in adopting SPLE are outlined and tenets of a solution that is likely to have greater acceptance by industry practice are presented.


Flexible Support for Managing Evolving Software Product Lines

In software product line engineering, core assets are shared among multiple products. Core assets and products generally evolve independently. Developers need to capture evolution in both contexts and to propagate changes in both directions between the core assets and the products. Current version control systems have no support for these tasks and this may be one reason for the slow adoption of the product line approach. We address these issues with a prototype version control system that is designed to support product line engineering, but without imposing a strong process model.

The prototype is being tested on the DITA documentation standard. It supports evolution of core assets and of products, as well as propagation of changes from core assets to products and vice versa.


Ontology-Based Product Line Modeling and Generation

Software product line engineering enable the definition of a family of related software products. Every product line engineering method has two essential elements, a set of models representing the product family, and a process for instantiating product members from those models. In this paper, we investigate the use of ontologies to model product lines. We also show how product members can be instantiated from an ontology-based model. We discuss our early experiences using ontologies to specify a family of workflows for a large insurance company.


Commonality and Variability Analysis for Resource Constrained Organizations

This position paper describes our current work in applying a commonality and variability analysis with an organization adopting a software product line approach while facing severe resource constraints because of current product development commitments. The approach can be generalized and is currently being applied to other portions of that organization's product line adoption.


On-Demand Integration of Product Lines: A Study of Reuse and Stability

The integration of multiple SPLs is increasingly becoming a trend to enable on-demand derivation of new products and accelerate their time-to-market. Integration of SPLs often implies the reuse of a previously-implemented feature across other SPLs. The reuse of a SPL feature is only viable if the underlying programming mechanisms enable its smooth composition within the code of other SPLs. If the required modifications are significant, the design of the target SPLs are likely to be destabilized. This paper presents an exploratory study on the integration of three product lines from the board game domain. We investigate how aspect-oriented and feature-oriented programming impact on the reuse and stability of those product lines.


Identifying Best Practice by Analyzing the Evolution of the FISCAN MTMSIS Software Product Line

In the face of development of a software-intensive products family in a domain, Software Product Line Engineering (SPLE) itself is an inevitable best practice that has been representatively demonstrated by the cases inducted to Software Product Line Hall of Fame. As a whole, this SPLE best practice is supported by various vivid meta best practices generated from concrete activities through solution finding processes. FISCAN MTMSIS software product line, nominated to Hall of Fame at SPLC 2010, pursues the best practice of SPLE in the security inspection domain through years of experience in the past and will insist on it in the future. This paper introduces the evolution of the MTMSIS software product line and discusses the lessons we learned during the process. More work, both development and research, are still in progress on the platform of the MTMSIS software product line.


Design and Validation of Variability in Product Lines

We propose an emerging solution technique, pushing the application of model-checking techniques to the design and validation of variability in a product line (PL), mainly aimed at those industrial domains where model-based development is adopted for the development of safety-critical systems.


Supporting Feature Model Configuration using a Demonstration-based Approach

Configuration of feature models in software product-lines typically involves manipulating a model to modify the feature selections and analyzing the model to ensure that no configuration constraints are violated. In order to capture and reuse configuration knowledge from different users, model transformation and constraint languages can be used to specify and automate the constraint checking and model manipulation processes. However, this approach presents challenges to general end-users (e.g., domain experts who may not be programmers) who do not have experience using these languages. This paper presents an end-user technique to support capture and reuse of feature model configurations.


Smart Composition of Reusable Software Components in Mobile Application Product Lines

Mobile application development opens up several challenges to developers. Among these challenges, possibly the most important one is the porting of applications to the heterogeneous devices available on the market. This requires mobile developers to create and maintain several versions of their applications in order to deal with particular features of each platform, including display size, development libraries, sensors, keypad layout, etc. The Software Product Lines (SPL) approach seems to be an useful technique to support mobile application development. A way to make SPL more effective is automating the software components composition for building mobile applications. We present a software infrastructure called AppSpotter that enables the dynamic and automated composition of software components of mobile applications taking into account the particular features of each mobile device. By means of the devices features, AppSpotter determines the components selection and composition of them to build customized mobile applications.


Why Software Product Lines for a family of eLearning Systems {9 Existing + 13 New + X Variants} has worked? and Why is it not enough?

In this paper, we present our experience of mining a product line from 9 existing eLearning Systems developed at 9 different locations by 9 different teams following 9 varied development processes over a decade. We explain the unique nature of these eLearning Systems (i) whose audience is adult illiterates (ii) their development involves assembling multimedia components with little or no coding. We then present the key challenges of mining a product line from these eLearning Systems and our approach towards addressing these challenges. Drawing inspiration from traditional manufacturing and adapting the ideas of software product lines, we have designed and implemented a platform that enables even non-technical users during development and maintenance of these eLearning Systems. We summarize the experiences of this platform which has reduced the overall development effort of an eLearning System from 5 person-years to 5 person-months. Motivated by the broader scope of these kinds of eLearning Systems in the instructional design space, we plan to increase the problem scope spanning all kinds of eLearning Systems and adapt our approach and design a unifying modeling framework for automating families of eLearning Platforms.


Experience Report: Introducing Software Product Lines into Multiple Divisions

This paper reports introducing software product lines (SPLs) into multiple organizations at Hitachi. For any business developing software for product families that have many variations, SPL is the key to improving quality, cost, and development efficiency. To introduce SPLs into multiple business divisions simultaneously, we organized an SPL project across organizations. Throughout the project activity, we identified common useful activities such as evaluating a legacy system and technology transfer for domain specialists.


A Software Product Line Experience and Observations

Software product line engineering (SPLE) specifies commonality and anticipated variability to insure proper and systematic reuse of components in a product line. This paper reports on creation of a product line for software testing tools, called PolyFlow, using FAST PLE development process and decision models to define variability and generate products. Besides the process of creating a product line, we will also discuss our observations of FAST process for PLE.


Integrating Product Line Refactoring and Derivation Tools: Challenges and Potential Solutions

This paper describes and explores existing challenges of integrating software product line refactoring and product derivation tools. It also presents and discusses a concrete integration of the Flip - refactoring tool, and GenArch - a model-driven product derivation tool, developed by our research groups. This integration partially addresses the mentioned challenges and reveals potential difficulties and new challenges to be dealt with when integrating such kind of tools.


Industry Trends in Systems and Software Product Line Engineering

Over the past decade, BigLever Software has helped advance the Systems and Software Product Line Engineering (SPL) field from a visionary concept into a viable, validated and repeatable mainstream commercial practice. Through a combination of basic research, applied research and commercial practice, BigLever has created the tools, methodology and mentoring services that are being leveraged in successful large-scale SPL deployments such as LSI Logic for high performance RAID storage servers to OEM customers, Lockheed Martin for Aegis cruisers and destroyers to the US Navy, General Dynamics for live and simulated training systems to US Army, General Motors for the full engineering lifecycle for all vehicles, HomeAway for worldwide online vacation home rental sites, Crisplant. for post, parcel, baggage and material sortation & logistics, and IKERLAN/ Alstom for wind turbine energy generators.

The in-depth experience across a broad spectrum of companies, industries and business models has allowed BigLever to continually expand the envelop of solutions in SPL. The following is an overview of the tools, methods and solutions that illustrate the trends for SPL in the industry.


Applying the PLUS Method to Industrial Product Line Problems

This paper describes how the PLUS (Product Line UML-based Software Engineering) Software Product Line Engineering method can be used to solve industrial product line problems. PLUS can be used as an extension to an existing UML-based modeling and design approach for single systems or, alternatively, as a stand-alone method for software product line development. This paper briefly describes the steps in using PLUS before describing its application to two industrial problems.