Корпорация начинает коммерческое распространение своего инструментария

Microsoft планирует предложить для открытой продажи версию инструментария проверки корректности кода, которым ранее могли пользоваться только разработчики самой корпорации. Все вопросы, связанные с разработкой и распространением инструментария, курирует центр Microsoft Programmer Productivity Research Center. В центре используются инструментальные средства статического анализа, позволяющие проверять корректность исходных текстов и шаблонов, указывающих на ошибки. Томас Болл, научный сотрудник исследовательского центра, отметил, что одним из приоритетных направлений работы является создание инструментария динамического анализа, который обнаруживает ошибки в ПО во время ее исполнения.

К средствам статического анализа, которые могут быть предложены в составе коммерческой версии, относится модуль Prefix, включающий в себя набор инструментальных средств анализа исходных текстов в поисках распространенных ошибок. «Он выполняет очень глубокий семантический анализ, обнаруживая такие ошибки, как утечки памяти, искажение данных в памяти и ссылки на нулевые указатели», — отметил Болл.

Еще один инструментарий, Prefast, представляет собой более простое средство статического анализа исходных текстов. «Prefast выполняет поиск ошибок, но при этом относительно невелик, и разработчики могут запустить его на своей настольной системе, чтобы заняться проверкой написанного ими кода», — сказал Болл. Prefast, по существу, имеет сокращенную версию, входящую в состав инструментария для разработчиков драйверов, но Microsoft планирует предложить расширенную коммерческую версию.

Prefix, созданный компанией Intrinsa в 1999 году, и Prefast, разработанный в Microsoft, широко использовались в группах, которые работали над основными продуктами корпорации, в частности, в таких проектах, как Windows Server 2003.

Кроме того, Microsoft планирует выпустить коммерческую версию инструментария, предназначенного для разработчиков драйверов. Этот продукт, получивший название Slam, представляет собой базовый механизм для проверки корректности кода при создании драйверов для устройств. Slam выполняет проверку правильности использования API, он работает вместе со Static Driver, который представляет собой набор правил для поиска ошибок в драйверах устройств.