Program slicing is a technology of analyzing and understanding program,has traits of predigesting problem and reducing range of aim.It is used extensively in software maintenance, program debugging, software testing and code understanding.Object-oriented technology has become an important direction of software development.Object-oriented program is more flexible, and more easy to reuse and maintain.The layered framework of object-oriented program and the traits of class, inheritance and polymorphism,make the traditional methods of program slicing become unsuitability.Much information of object-oriented program can't be affirmed in compiling.It means that the static slicing of object-oriented program must have some redundance.The method of dynamic slicing uses dynamic information of program, can resolve the complexity of dynamic slicing of object-oriented program.On the analysis process of object-oriented program, the research of dynamic slicing began later.At present, except a few of scholars do some research on this aspect, the research of theory and application is underway.We use C++ as research object, analyzing traits of object-oriented program, and put forward an object-oriented program dynamic system dependence graph (OODSDG).The OODSDG use dynamic information of program sufficiently, and predigest system dependence graph.Based on OODSDG, we design a dynamic slicing algorithm of object-oriented program from bottom to top, and implement a prototype system (NUAA_DSS) with using program instrumentation. Dynamic slicing algorithm from bottom to top, resolve polymorphism effective, reduce redundancy of slicing, keeping the excellence of traditionary hierarchical slice model.NUAA_DSS sustains the forward slice and backward slice,and can view the frame of the C++ program and a variety of data dictionaries related to specific variables. |