Characterization of Shallow and Deep Reuse
摘要
Reuse in software development avoids to carry out the same processes again and again, thereby being more efficient, i.e. faster and producing less errors. We call such forms shallow reuse, as reuse is mostly in the mind of developers. Deep reuse means to change the development process remarkably, because upcoming knowledge makes more or less big parts of the development superfluous. Examples are that components and frameworks from former developments are used, steps are automated, etc. In this chapter, we try to clarify the difference of shallow and deep reuse. Furthermore, we characterize the changes due to reuse on three levels: the new product with improved reuse, the change of the development process, and the new parts to be reused in the future. The notation for processes makes the changes and the dependencies of subprocesses more evident. We take the multiphase compiler as running example. It is one of the best studied software products, a good example for the combination of theory and practice, and also of deep reuse.