Master's Thesis Defense

  • View

  • Download

Embed Size (px)


Presentation slides used for my master's thesis defense on the topic of OCLInt, a static code analysis tool for Objective-C and related languages.

Text of Master's Thesis Defense

  • 1. A Static Code Analysis Tool ForObjective-C and Related LanguagesLongyi Qi Advisor: Dr. Venkat Subramaniam April 20121

2. * Image in this slide:Spinellis, D. Code Quality: The Open Source Perspective. (2006).Indianapolis, IN: Addison-Wesley Professional2 3. Outline Motivation Related Work Open Problems OCLint and Whats Good How OCLint Can Help Conclusion and Future Work 3 4. Motivation 4* Image in this slide: Copyright 2010 Apple Inc. 5. Related Work 5 6. Open Problems The Objective-C programming language Care about code quality Continuous Integration 6 7. Theory Study Static Code Analysis Process Abstract Syntax Tree (AST) Analysis Techniques Control Flow Analysis Data Flow Analysis Dependence Analysis Code Smells 7 8. OCLint 8 9. Workflow 9 10. Good Architecture10 11. Dynamically Loading Rules Dynamic libraries Rule search path 11 12. Configuring & Extending Rules Alter thresholds Custom rules 12 13. Smart AST Traversing AST is traversed only once and dispatcheach node to registered rules Intelligent traverse policy13 14. High Accuracy andLow False Positive Rate14 15. Report Support multiple output format Meaningful violation message As continuous integration artifacts15 16. OCLint Good architecture Dynamically loading rules Configuring and extending rules Smart AST traversing High accuracy and low false positive rate Report16 17. OCLint helps Find code smells Refactor the code Find problems early Add customer rules if needed Integrate into developers workflow17 18. Conclusion A static code analysis tool for Objective-C Focus on code quality Involve many analysis techniques Good design Positive case study feedback Research infrastructure18 19. Future Work Accuracy and False Positives Better Code Quality Extended Rules Compatibility Performance User Experiences 19 20. Acknowledgements 20 21. Questions? 21 22. Thank you!Contact Information:OCLint Project: @oclint_projectLongyi Qi: @longyiqi 22