Slicing Object Oriented Programs for Maintenance Purposes - Al-Fawareh, Hamed Jasem Khaled (2001)
Object oriented approach is growing very fast in various applications of the computer science. Those applications may contain a lot of entity relationships which, need to be understood by the maintainers. These relationships (involving classes, message, variables, etc.) will make maintainers and developers face several problems to understand, make changes, modify, or enhance a huge software system that contains thousands of classes without automatic aids. Therefore several problems arise in the maintenance of object oriented program that is software understanding, complex dependencies, inheritance, polymorphism and dynamic binding. An approach for formally defining slices for object oriented programs is an important problem in the maintenance phase. This thesis proposes definitions of slices for object oriented programs. Basic relations such as Usage, Affect and Inheritance are defined, and they are extended to a family of dependence relations between entities in object oriented programs and defines slicing techniques based on these relations. Slice collection methods for specified slice criteria are given. This approach shows how the proposed slicing concepts and rules can be applied within the software maintenance process by giving an illustration through examples written by Java and Delphi programming languages. The research also develop a prototype of an object oriented system tool (02SMt) which represent an automatically extractable and captures an object oriented software system dependencies i n order to aid in maintenance phase. The dependencies occurs and explain in this research are control dependence, statement dependence on a variable, statement dependence on a method, variable dependence on statement, variable dependent on a method, Class-Class dependence through usage, Class-Class dependence through inheritance, Class-Class dependence for causing side effects, method dependence on another method, and method dependence on a variable. The 02SMt captures program slicing according to the slicing concepts, rules and definitions to feature out the dependencies with the basic object oriented relations. This research also, discusses an object oriented dependence graph (02DG). The 02DG categorized according levels. The first category is class-level involving a class to another class. The second category is method-level involving a method or a statement within a method to another method or variable in a class. The final category is statement level which is basically intra-method involving statements within a given method. Slices, intum, can also be categorized according to such levels of dependencies they intend to capture.