Program partitioning
Pankaj Jalote, Vipindeep Vangala, Taranbir Singh, Prateek Jain · 2006
For higher quality software, static analysis and dynamic analysis should be used in a complementary manner. In this work, we explore the concept of partitioning a program such that the partitions can be analyzed separately. With such partitioning, potentially different analysis techniques can be applied to different program partitions, with each analysis having to deal with reduced code which can increase its effectiveness. Our experiments show that partitioning can indeed increase the effectiveness of static analysis. Our initial experience in using testing data for partitioning and applying static analysis only on the complementary partition, indicates that it results in detection of more errors which might have gone unnoticed otherwise.