It is common knowledge that many companies invest more than half of their programming and analysis effort in software maintenance. The purpose of maintenance is to protect a company's investment in an application system by prolonging its useful service life and improving its benefits [3]. With this as a background, we are currently experiencing a transition from a project- or production-oriented perception to a product- or life cycle-oriented view of application systems. This means that the costs of further maintenance and continued use of the application system need to be compared to the costs of new software development or of moving to a new environment. This comparison must consider the maintenance costs of both the old and the new environment in which the application system is to be used. Old application system, however, are often maintained without noticing that the costs are escalating, i.e., that it might be less expensive to rewrite or replace the entire application. Thus it is necessary to formalize the process of deciding whether to continue to maintain existing application systems or to retire them. This paper introduces a methodology for distinguishing the phases of the software life cycle. This phase distinction makes it possible to support support phase-specific measures and planning activities during the service life of the system. Furthermore, this paper presents a methodology for determining the optimal time to retire a system. The methodology is based on empirical data collected on the software life cycle [9, 10, 11]. The collection and evaluation of these longitudinal data began in 1987/88 and was completed in 1989/90.