Abstract
Design erosion is a common problem in software engineering. We have found that invariably, no matter how ambitious the intentions of the designers were, software designs tend to erode over time to the point that redesigning from scratch becomes a viable alternative compared to prolonging the life of the existing design. In this paper, we illustrate how design erosion works by presenting the evolution of the design of a small software system. in our analysis of this example, we show how design decisions accumulate and become invalid because of new requirements. Also it is argued that even an optimal strategy for designing the system (i.e. no compromises with respect to e.g. cost are made) does not lead to an optimal design because of unforeseen requirement changes that invalidate design decisions that were once optimal. (C) 2002 Elsevier Science Inc. All rights reserved.
Original language | English |
---|---|
Article number | PII S0164-1212(01)00152-2 |
Pages (from-to) | 105-119 |
Number of pages | 15 |
Journal | Journal of Systems and Software |
Volume | 61 |
Issue number | 2 |
Publication status | Published - 15-Mar-2002 |