inter-class def-use analysis with partial class representations
Object-oriented program design promotes the reuse of code not only through inheritance and polymorphism, but also through building server classes which can be used by many different client classes. Research on static analysis of object-oriented software has focused on addressing the new features of classes, inheritance, polymorphism, and dynamic binding. This paper demonstrates how exploiting the nature of object-oriented design principles can enable development of scalable static analyses. We present an algorithm for computing def-use information for a single class's manipulation of objects of other classes, which requires that only partial representations of server classes be constructed. This information is useful for data flow testing and debugging.
class analysis object object-oriented design reuse code inheritance polymorphic server use research static analysis software feature dynamic binding paper object-oriented design developer scalability algorithm computation informal manipulation data flow test debugging