В Microsoft для анализа кода широко используются два основных инструмента: FXCop для управляемого кода и PreFast для нативного C ++.
Исторически сложилось так, что, хотя не каждая команда тщательно внедрила использование CA при создании своих продуктов, за последние 3-4 года произошел существенный рост, особенно в том, что касается количества команд, которые в настоящее время применяют довольно строгие требования CA к своим функциям. команды и о продукте в целом.
Например, в Vista команда Windows, по сути, взяла 3 месяца на разработку продукта и SAL аннотировала подавляющее большинство своих ключевых методов и объявлений функций. в Win7 они предписывали, чтобы весь новый код соответствовал ряду требований для ключевых сценариев, аннотирующих SAL (в первую очередь для уменьшения вероятности переполнения буфера). В Win8 они идут еще дальше и включают новые аннотации SAL для ряда ключевых сценариев. В сочетании с улучшенными компиляторами и инструментами, такими как PreFast (теперь они встроены в VS 2010 Pro и более поздние версии), они и вы можете найти и устранить потенциальные проблемы до выпуска продукта.
Обратите внимание, что выдача предупреждений CA (какой бы инструмент CA вы не выбрали) всегда будет требовать переопределения - иногда есть действительно веская причина, почему код должен делать то, что он делает. Но вы должны переопределить только если вы абсолютно уверены, что это необходимо и уместно. НИКОГДА не отключайте предупреждение, потому что вы его не понимаете, и никогда не отключайте предупреждение, если вас не затруднит исправить это.