Posts

Showing posts from September, 2011

Dynamic Analysis - Tools for Improving Engineering Process

Dynamic Analysis Tools Dynamic analysis is the testing and evaluation of a program by executing data in real-time. The objective is to find errors in a program while it is running, rather than by repeatedly examining the code offline. Core activities involved in Dynamic analysis: Code coverage Hotspot analysis and Memory profiling Multi-threaded correctness Debugging Advantages: N/A Features of Dynamic Analysis tools that need to be considered before picking it: N/A Some Popular Open Source Dynamic Analysis Tools: Cobertura (Java, Code Coverage) EMMA (Java, Code Coverage) JCoverage (Java, Code Coverage) Valgrind (Hotspot analysis and Memory profiling) Eclipse TPTP (Memory profiling) List of other dynamic analysis tools - http://en.wikipedia.org/wiki/Dynamic_program_analysis#Examples_of_Tools http://en.wikipedia.org/wiki/List_of_performance_analysis_tools

Static Analysis - Tools for Improving Engineering Process

Static Analysis Tools Static program analysis is the analysis of computer software that is performed without actually executing programs built from that software (analysis performed on executing programs is known as dynamic analysis). In most cases the analysis is performed on some version of the source code and in the other cases some form of the object code. The term is usually applied to the analysis performed by an automated tool, with human analysis being called program understanding, program comprehension or code review. Core activities involved in Static analysis: N/A Advantages: If there are anti-patterns in your code, you can be warned about it. There are certain metrics (such as McCabe's Cyclomatic Complexity) that tell useful things about source code. You can also get great stuff like call-graphs, and class diagrams from static analysis. Those are wonderful if you are attacking a new code base Many classes of memory leaks