Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

Refactoring a legacy component for reuse in a software product line: A case study

: Kolb, R.; Muthig, D.; Patzke, T.; Yamauchi, K.


Journal of software maintenance and evolution 18 (2006), Nr.2, S.109-132 : Ill., Lit.
ISSN: 1532-060X
ISSN: 1532-0618
Fraunhofer IESE ()
software refactoring; reuse; software product line; variability; PuLSE-DSSA

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