Enhancing Software Development through Software Product Line: Developing Product Family rather than Individual Products (original) (raw)
Related papers
Synergy between Generative Reuse and Software Product Line
Software reuse through concrete component library has a strong support for component composition, refinement and specialization. Despite of the library's support, scalability problem occur in its implementation. Amongst the problem being reported were feature combinatorics problem, vertical and also horizontal scaling of the components. Generative reuse is an approach in software reuse where it combines reusable part that are not only code but also generic architectures and variations of components for future customization. Generative reuse via application generator is cost effective to build when many similar software systems are written or when evolution of software requires the software to be written and rewritten many times during its lifetime. Software Product Line is a suitable field to implement application generator where it can help to generate similar systems and also customize variations needed to the systems functionalities. This paper briefly discusses the issues in generative reuse via application generator and software product line. The main contribution of this paper is in the explicit mapping between generative reuse specifically the development process of application generator with the Software Product Line systematic reuse process. This explicit mapping shows several points of synergistic process between both fields. This mapping can also help designer and organization who are interested in the development of application generator in software product line to know the underlying process and artifacts for both fields.
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 ...
Refactoring a legacy component for reuse in a software product line: a case study
Journal of Software Maintenance and Evolution: Research and Practice, 2006
Product lines are a promising approach to improve conceptually the productivity of the software development process and thus to reduce both the cost and time of developing and maintaining increasingly complex systems. An important issue in the adoption of the product-line approach is the migration of legacy software components, which have not been designed for reuse, systematically into reusable product-line components. This article describes activities performed to improve systematically the design and implementation of an existing software component in order to reuse it in a software product line. The activities are embedded in the application of Fraunhofer PuLSE TM -DSSA-an approach for defining domain-specific software architectures (DSSA) and product-line architectures. The component under investigation is the so-called Image Memory Handler (IMH), which is used in Ricoh's current products of office appliances such as copier machines, printers, and multi-functional peripherals. It is responsible for controlling memory usage and compressing and decompressing image data. Improvement of both the component's design and implementation are based on a systematic analysis and focused on increasing maintainability and reusability and hence suitability for use in a product line. As a result of the analysis and refactoring activities, the documentation and implementation of the component has been considerably improved as shown by quantitative data collected at the end of the activities. Despite a number of changes to the code, the external behavior of the component has been preserved without significantly affecting the performance.
Economic Impact of Software Product Line Engineering Method– a Survey
International Journal of Advanced Research in Computer Science, 2020
Software Engineering has to do with the art of design, development and maintenance of software products that adequately meet user's need. The key market requirements this field tries to meet are basically time to deliver, product cost and quality. With these goals in mind, software engineering researches had experienced rigorous changes in time and in space especially in the area of "software re-use". Software Product Line Engineering (SPLE) leverages on building reusable components to achieve massive re-use. It is about designing systems for, and with reuse. In traditional software engineering, requirements and software architectures are engineered based on individual product alone but a product line approach requires the software expert to do same for a family of related products. Therefore, common assets are built for these related products while variable assets are also discovered which will lead to production of each specific product. This process, as it were, does not come cheap at first. There are surrounding economic, social and other consequences. This work proposes to survey the economic impact of adopting software product line engineering methods in software production. This will help software developers make sound business case as well as appropriate judgments in terms of decision making.
Syspl: A Based Generic Approach for Software Product Line Enhanced Reusability
The use a Product Line strategy for the software development requires a good feature modeling of the field that needs to be achieved primarily. This task requires a great effort to study the domain because all products are derived firstly by a set of choices from the feature model .However, despite the effectiveness of the Product Line approach, it does not explore sufficiently the existing products and assets. In addition, the latter are produced in a clearly defined application context and can be reused in multiple context. In this paper, we present our enhanced PL reuse process approach based on a variability generic model contained in the assets. To build reusable components, the approach explores in addition to the knowledge domain, the existing products and assets and thus provides greater productivity once a new variant of asset or product can be developed faster from respectively generic reusable asset subsystem and generic reusable product subsystem.
Introducing systematic reuse in mainstream software process
Proceedings of the 20th IEEE Instrumentation Technology Conference (Cat No 03CH37412) EURMIC-03, 2003
Software reuse is accepted as a source of important benefits, expressed in productivity and quality terms, when an industrial approach is introduced in the software process. However, mainstream software processes such as Unified Process do not include reuse techniques among the tools that software engineers must deal with. In this paper, we present a proposal to introduce software reuse with minimal disturbance of established disciplines by means of the introduction of a new process for product line engineering and the adaptation of Unified Process for specific product construction. This proposal reduces the money and time costs related to the progressive introduction of software reuse in an organization. Some tools that provide support to the process, including a requirement tool and a repository of reusable elements, have been developed.
Design for large scale software reuse: an industrial case study
Software Reuse, 1996., …, 1996
Reuse of sofhvare is an excellent way for saving costs and development efforts. Design for large scale reuse addresses the need for higher productivity in a domain-specific (telecommunication) product line. This paper presents our approach to design for large scale reuse. The large-scale granularity of reusable components includes subsystems, building blocks (a collection of object classes} and architectures. The main principles are configurability, conceptual integri9, domain-specific architectures (for a product family), design for reuse, reuse guidelines and rules. We have achieved more than 70% reuse within a product family and more than 40% on a different product family.
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.