Communications of the ACM
A small matter of programming: perspectives on end user computing
A small matter of programming: perspectives on end user computing
ACM SIGSOFT Software Engineering Notes
Software reusability
Principles of CASE tool integration
Principles of CASE tool integration
Software process reengineering: toward a new generation of CASE technology
Journal of Systems and Software - Double issue on reengineering complex systems
Effects of Reuse on Quality, Productivity, and Economics
IEEE Software
IEEE Software
ACM SIGSOFT Software Engineering Notes
Using Patterns to Model Variability in Product Families
IEEE Software
Pattern-Based Framework for Multimedia Distributed Applications
TOOLS '97 Proceedings of the Tools-23: Technology of Object-Oriented Languages and Systems
Hi-index | 4.10 |
High costs and long backlogs in software development and maintenance often constrict an organization's ability to compete. Proposed solutions frequently include organizational changes and methodologies for systematic software reuse. The approach described in this article integrates the reengineering of legacy software and the reuse-based production of new software applications. In addition, the authors propose methodologies and enabling technologies for transitioning from current practices. The main innovation lies in the role and impact of reengineering legacy software in the proposed software life cycle. The top-down comprehensive methodologies advocated to date for transitioning from the prevailing software development and maintenance modes to the software reuse mode have proven to be costly and risky, with long-delayed payback periods for recovering the initial investment. However, the integration of legacy software reengineering in a reuse-based software life cycle, supported by enabling computer-aided-software-engineering environments, accelerates and economizes on the transitional processes and their ongoing operation. The authors illustrate this approach from their experience with integrating existing automatic software engineering/reengineering environments. The cost of developing software for even a few applications using a conventional methodology should approximately equal the cost of developing the domain reuse components from legacy software and generating the applications from them. The payoff comes in the declining incremental costs of engineering new applications from reusable components.