Software systems that undergo repeated addition
of functionality commonly suffer a loss of quality in
their underlying designs, termed design erosion. This leads to
the maintenance of a system becoming increasingly ...