Characterization of Shallow and Deep Reuse [report]

Manfred Nagl
2021 Aachen : RWTH Aachen University  
Reuse in software development is not only to carry out the same processes over and over again, thereby being more efficient, i.e. faster and producing less errors. We call these forms shallow reuse, where 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,
more » ... eps are automated, etc. In this article, 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 an improved form of reuse, the change of the development process, and the new parts to be reused in the future. A new notation for processes makes the changes and the dependences of subprocesses more evident. We take the multiphase compiler as the running example, as it is one of the best studied software products, a good example for the combination of theory and practice, and also of deep reuse forms. Key words: implicit (shallow) and explicit (deep) reuse, elaborated reuse forms as table driven software approach or generation approach, intelligent architectures, global architecture patterns, multiphase compilers and compiler compiler approach, reuse steps: changes of product and process
doi:10.18154/rwth-2021-02450 fatcat:vg2klh2o45co3kwk3t6x66nrhi