Upload
rencore
View
458
Download
1
Embed Size (px)
Citation preview
Mastering code analysis metrics for ALMSharePoint Konferenz ErdingHugh Wood – Master Chief – Rencore AB - @HughAJWood
@HughAJWoodhttps//blog.spcaf.com [email protected]
Hugh WoodLeicester, EnglandLead Developer @ SPCAFMastering code analysis metrics for ALM - @HughAJWood
•What are they?•Who are they important to?•Where do they come from?•Looking deeper…
Static Code Analysis Metrics
Mastering code analysis metrics for ALM - @HughAJWood
What are they?
Mastering code analysis metrics for ALM - @HughAJWood
Who are they important to?
Mastering code analysis metrics for ALM - @HughAJWood
Developer
Architect
Project Manager
Business
Where do they come from?
Mastering code analysis metrics for ALM - @HughAJWood
FxCop
StyleCop
Digging deeper…
Mastering code analysis metrics for ALM - @HughAJWood
Visual Studio Metrics
Mastering code analysis metrics for ALM - @HughAJWood
Developer Friendly
Visual Studio Metrics
Mastering code analysis metrics for ALM - @HughAJWood
Developer Friendly
Visual Studio Metrics
Mastering code analysis metrics for ALM - @HughAJWood
Developer Friendly
Visual Studio Metrics
Mastering code analysis metrics for ALM - @HughAJWood
Architect Friendly
Visual Studio Metrics
Mastering code analysis metrics for ALM - @HughAJWood
Architect Friendly
Cyclomatic Complexity Density Ratio: (CC)11 / (LOC)21 = 0.5Class Coupling – Use DirectlyDepth Inheritance – Use DirectlyMaintainability Index – Use Directly
Visual Studio Metrics
Mastering code analysis metrics for ALM - @HughAJWood
Project Manager Friendly
Cyclomatic Complexity Density Ratio: (CC)11 / (LOC)21 = 0.5Maintainability Index – Use Directly
Visual Studio Metrics
Mastering code analysis metrics for ALM - @HughAJWood
Business FriendlyProject Complexity: (CC)11 / (LOC)21 = 0.5 x 100 = 50%
25% < Simple50% < Moderate70% < Complex71% > Unsupportable
Maintainability Index – Use Directly< 25% Expensive to maintain26~50% Moderately Expensive51~70% Low Expenditure71%+ Extremely Low Expenditure
Metrics outside ofVisual Studio
Mastering code analysis metrics for ALM - @HughAJWood
• Quality Metrics• Security Metrics• Research & Development metrics
Code Quality Metrics
Mastering code analysis metrics for ALM - @HughAJWood
• Defect Density (High/Medium per 1000 LOC)• Critical Defects / 1000 LOC• Uninspected Defects
Code Quality Metrics
Mastering code analysis metrics for ALM - @HughAJWood
What are Defects?
Code Quality Metrics
Mastering code analysis metrics for ALM - @HughAJWood
What are Defects?
Code Quality Metrics
Mastering code analysis metrics for ALM - @HughAJWood
What are Defects?
Code Quality Metrics
Mastering code analysis metrics for ALM - @HughAJWood
What are Defects?
Code Security Metrics
Mastering code analysis metrics for ALM - @HughAJWood
• Information Security• System Security – System and Web
Research & DevelopmentEfficiency
Mastering code analysis metrics for ALM - @HughAJWood
• Cyclomatic Complexity• Comment Density
Policies & Thresholds
Mastering code analysis metrics for ALM - @HughAJWood
• ISO-9000 / ISO-27001• Defect limits• Developer Vectors• Defect Contingency• Development Language Segregation
Policies & Thresholds
Mastering code analysis metrics for ALM - @HughAJWood
• Assign a Defect Lead• Ignore only false positives• Use custom rule sets• Monitor and track all exceptions
Managing False Positives
Adjusting Project Plans
Mastering code analysis metrics for ALM - @HughAJWood
• Size of Code Base• Outstanding Defects• Number of Developers• Defects Per Developer by Category• Time to Inspect Defects (Average)• Time Scheduled per week for triage per Developer• Weeks until project completion
Adjusting Project Plans
Mastering code analysis metrics for ALM - @HughAJWood
Measure Defects and Metrics Over Time
Summary
Mastering code analysis metrics for ALM - @HughAJWood
• Ensure Defect and Metric policies are in place• Delegate the responsibility for collating data to a developer• Use code quality tools to keep records of progress• Use gathered metrics to inform Business• Decide on course of action and plan
Mastering code analysis metrics for ALM - @HughAJWood