Software Product Line Agility (original) (raw)

Enhancing Software Development through Software Product Line: Developing Product Family rather than Individual Products

Software Engineering is an art of designing software products for users' consumption. This is an enduring knowledge area due to growing computational needs. Nobody succeed re-inventing the wheel. Re-usability is a key concept in software design. To an extent, the concept of software reuse has helped developers in meeting up with the market demands. Common reuse method includes using developed components, modules etc. to build new products. Yet, the traditional software engineering reuse patterns have not successfully addressed development challenges in terms of delivery time, cost and quality. This paper considers a new approach to reuse called Software Product Line Engineering (SPLE). This is described as "Industrial/Massive re-use". While traditional software engineering focuses on developing individual products, software product line practice focuses on developing product family. To gain significant reduction in development time, reduced cost (both in development and products) and increase software quality, development is channeled towards SPLE.

Agile product line engineering - a systematic literature review

2011

Software product line engineering (SPLE) demands upfront long-term investment in (i) designing a common set of core-assets and (ii) managing variability across the products from the same family. When anticipated changes in these core-assets have been predicted with certain accuracy, SPLE has proved significant improvements. However, when large/complex product-line projects have to deal with changing market conditions, alternatives to supplement SPLE are required. Agile software development (ASD) may be an alternative, as agile processes harness change for the customer's competitive advantage. However, when the aim is to scale agile projects up to effectively manage reusability and variability across the products from the same family, alternatives to supplement agility are also required. As a result, a new approach called agile product line engineering (APLE) advocates integrating SPLE and ASD with the aim of addressing these gaps. APLE is an emerging approach, what implies that organizations have to face with several barriers to achieve its adoption. This paper presents a systematic literature review of experiences and practices on APLE, in which the key findings uncover important challenges about how to integrate the SPLE model with an agile iterative approach to fully put APLE into practice. . . . KEY WORDS: Agile Product Line Engineering (APLE), Agile Software Development, Software Product

Towards Strategic Reuse in Project-Oriented Environments by Using Software Product Line Practices

2009

Software product line engineering has become a widely used and popular approach for developing products that are targeted at a specific market. Strategic reuse is a key factor in its success. Large organizations, such as in the financial industry, cover large domains and thus have huge existing infrastructures running in separate business units. Systems running on these infrastructures have been separately built in each business unit using a project-oriented approach. This implies that a system is built to satisfy a single user's requirements, thus there is a high possibility of duplicate systems occurring across business units of an organization, costing them enormous amounts of money. In order to reduce development and maintenance costs for these organizations, we propose a product line-oriented approach to incorporate strategic reuse into existing infrastructures of large organizations. These concepts have not been applied at a level of granularity that is most beneficial for large organizations. Our approach facilitates the entry of product line practice into large organizations by means of requirements analysis, separation of concerns and feature modelling.

Supporting Incremental Product Development using Multiple Product Line Architecture

International Journal of Knowledge and Systems Science, 2014

Software product line engineering (SPLE) has been successfully applied in various application domains to support systematic reuse. Besides of its benefits it is also acknowledged that the SPLE process can in practice be considered too time consuming and heavyweight due to the required planning and development of the asset base. For this reason more lightweight SPLE processes are required that can be integrated in the ongoing product development of the organization. In this context, the authors share their experiences in adopting a multiple product line architecture to support the incremental product development of Aselsan REHIS, a leading high technology company in Turkey. The authors first discuss the important business needs for defining a more lightweight multiple product line engineering (MPLE) process. Then they discuss the multiple product line architecture and how it has been used to guide the incremental product development.

Software product lines evolution for valuable reusability

2015

Nowadays, adopting software product line (SPL) development approach becomes a successful strategic decision in software development since the rapid time to market necessity is guaranteed by SPLs due to assets reusability [1,2]. However, the expansion of the market segment implies a boost of user's requirements that should be satisfied by quickly developing new products [1]. Thus, an agile evolution of SPLs becomes a necessity. The general purpose of a SPL is the automated construction of a new product based on the reusability of existing features [2]. A feature is a characteristic defined by the domain experts [3] that abstracts a set of software-related resources called assets. Thus, a feature model (FM) represents all the products of the SPL and permits capturing products commonalities and variability [3]. To generate a new product, a user selects a set of features via a process called configuration by respecting the constraints defined in the FM [2]. Despite that SPLs permit ...

Integrating Software Product Line Engineering and Agile Development

IEEE Software

A software product line is a set of software-intensive systems sharing a common, managed set of features, developed from reusable core assets and incorporating variations to derive product variants. This involves identifying commonality and variability in the product family and implementing shared artifacts while preserving the ability to implement required variability. Software development organizations that recognize market opportunities for products that share a significant number of common elements, but that also exhibit variations, can reap significant economic benefits with SPLE. Agile methods emphasize improvisation over conventional development approaches. These methods focus on quick development in an uncertain, ill-understood environment in which requirements rapidly evolve. These methods also view people, rather than formal documentation, as a project's most important element.

Agile software product line engineering: enabling factors

Software: Practice and Experience, 2011

This paper reports on a study of a software product line organization that has adopted agile software development to address process rigidity and slowing performance. Experience has showed that despite some impediments, this has become a valuable change to both the organization and its development process. The aim of this study is to identify and understand enabling factors of a combined process, and to understand their subsequent effects. Qualitative data are summarized and analyzed, giving insight into the actions taken, their effects that have emerged over time, and the enabling and contextual factors. The study concludes that a combined process is feasible, that the simplified approach makes the organization more flexible and thus capable of serving a volatile market with fast-changing technologies. This has also enabled the organization to collaborate better with external actors.

A report on the XP workshop on agile product line engineering

ACM SIGSOFT Software Engineering Notes, 2009

Software Product Line Engineering (SPLE) promises to lower the costs of developing individual applications as they heavily reuse existing artifacts. Besides decreasing costs, software reuse achieves faster development and higher quality. Traditionally, SPLE favors big design upfront and employs traditional, heavy weight processes. On the other hand, agile methods have been proposed to rapidly develop high quality software by focusing on producing working code while reducing upfront analysis and design. Combining both paradigms, although is challenging, can yield significant improvements. In this workshop, we discussed the challenges, the research questions and the tradeoffs that need to be addressed for such an integration to enjoy success.