An integrated approach to software engineering
An integrated approach to software engineering
Dynamically discovering likely program invariants to support program evolution
Proceedings of the 21st international conference on Software engineering
Theoretical Improvements in Algorithmic Efficiency for Network Flow Problems
Journal of the ACM (JACM)
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Efficient static analysis with path pruning using coverage data
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Program partitioning: a framework for combining static and dynamic analysis
Proceedings of the 2006 international workshop on Dynamic systems analysis
Hi-index | 0.01 |
Static analysis and Dynamic analysis are two common techniques used for detecting bugs in a system. Neither static nor dynamic analysis is individually known to be able to exhaustively analyze all paths in a program in order to find bugs. There is a need to increase the effectiveness of detecting bugs in a system. In program partitioning, the original program is divided into two or more partitions each of which may be individually compiled and executed, and may be statically analyzed separately. Partitioning allows a static analyzer to perform a more thorough analysis of the reduced code, thereby reducing the noise or increasing the effectiveness of static analysis. In addition, partitioning can also be used as one of the means to combine static and dynamic analysis, by pruning out the part of code already covered by dynamic analysis, and subjecting the remaining code to static analysis. This increases the overall effectiveness of analysis of the entire program. Random partitioning strategy has been implemented to perform the task of partitioning. Two Partitioning methods (maximal and minimal) are employed to decide how the partition is generated from the information provided by the partitioning strategy and then in last these methods are compared.