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. INTRODUCTIONOrganizations developing software face a number of challenges today. In particular, there is a critical need to reduce the cost, effort, and time-to-market of software, but, at the same time, the complexity and size of systems are rapidly increasing and customers are requesting increasingly quality systems tailored to their individual needs [1].A promising approach to improve conceptually the productivity of the software development process and thus to reduce both cost and time of developing and maintaining increasingly complex systems is the notion of software product lines [2]. Product-line software engineering refers to techniques for creating a collection of similar software systems from a shared set of software assets using a common means of production. A software product line is defined as a family of products designed to take advantage of their common aspects and predicted variability [3]. Product-line engineering is based on strategic reuse as opposed to opportunistic reuse, which usually comes into play in single-system development. Strategic reuse means that attributes of software such as generality, modularity, environment independence, and self-descriptiveness are planned and implemented with respect to the predictable benefits concerning customer needs and market trends. In product-line engineering, the overall development life cycle is split into two concurrent phase...
This paper describes activities performed to systematically improve 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's PuLSE-DSSA approach for defining the architecture of a new product line. 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. Both the improvement of 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
An argument pro component-based software development is the idea of constructing software systems by assembling preexisting components instead of redeveloping similar or identical functionality always from the scratch. Unfortunately, integrating existing components practically means reuse (i.e., adaptation and use) rather than use only, which makes a clean, ideal component-based development hard to realize in practice. Product line engineering, however, is an approach that tackles this problem by making components systematically as generic as needed for a particular product family and thus allows components to be reused easily within a family context. Making a component generic means a component covers variabilities among systems in the family and thus that its implementation must consider variabilities. In this paper, we describe a process for implementing generic product line components and give an overview of variability mechanisms at the implementation level. The process, as well as the described variability mechanisms, is illustrated by a running example, a generic test component
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.