1. A method for instrumenting virtual-machine-executable software, the software including one or more objects, each object being defined by a class, each class being associated with a class-hierarchy location, the method comprising the steps of: (a) identifying at least one target class included within the software, the at least one target class being associated with a first class-hierarchy location and with a first class name; (b) for each target class, adding instrumentation to the software according to at least one of the following steps: (i) creating a new class, adding instrumentation to the new class, and assigning the new class to a class-hierarchy location adjacent to and above the first class-hierarchy location of the target class; and (ii) creating a new class, adding instrumentation to the new class, and assigning the new class to a class-hierarchy location adjacent to and below the first class-hierarchy location of the target class, assigning the first class name to the new class and assigning a second class name to the target class; and (iii) adding instrumentation to the target class without modifying bytecode within the target class; (c) causing a virtual machine to process as the target class the class assigned the first class name.