Новый продукт выполняет анализ программ, написанных на языке C#, в поисках повторяющихся фрагментов кода. Эти дублирования могут привести к внутренней противоречивости программы и свидетельствовать о плохой организации кода, как утверждается на Web-странице Clone Detective на сайте Microsoft CodePlex, посвященном проектам категории Open Source.

Clone Detective for Visual Studio 1.0.0.0 опубликована 16 августа на условиях лицензии Apache 2.0.

"Наличие дублирующихся фрагментов в исходном коде свидетельствует о проблемах качества, - считает координатор проекта Иммо Лендверт. – Если один и тот же алгоритм используется в приложении в виде слегка отличающихся вариантов, это усложняет поддержку такого приложения, что в конечном итоге может привести к внутренним противоречиям в программе".

Лендверт считает, что одна из главных причин дублирования кода – нерадивость разработчиков, которые только и умеют, что копировать и вставлять текст. Кроме того, свою роль играют также архитектурные ограничения и методологические проблемы.

Текущая версия рассчитаны только на код на языке C#, но в следующий вариант будут добавлены возможности анализа кода, написанного на Visual Basic .Net и C++. Интеграция между Clone Detective и Visual Studio была реализована Лендвертом и его коллегой Томасом Деллмейером в сотрудничестве с Техническим университетом Мюнхена.

"Clone Detective облегчает разработчикам процесс поиска клонов. Однако в некоторых случаях избавиться от дублирования исходного кода не так-то просто. Например, удаление клонов может обойтись намного дороже сохранения сложившейся ситуации, поскольку нередко требует крайне сложных изменений в архитектуре программы, - заметил Лендверт. – В этом случае помогает Clone Detective, напоминая, что данная часть кода дублируется (в редакторе кода соответствующий текст выделяется фиолетовым цветом). Поэтому при внесении изменений нужно просмотреть другие вхождения такого же кода и убедиться, что приложение по-прежнему остается согласованным".

В Clone Detective широко используется разработанный в университете инструментарий непрерывной оценки качества ConQUAT для выявления клонов.

"Следующая версия Clone Detective сможет находить 'неидентичные клоны', - заметил Лендверт. – Неидентичные клоны – это практически одинаковые фрагменты исходного кода, различающиеся на уровне отдельных символов. Эта возможность позволит находить коллизии и противоречивые участки в вашем коде".

Кроме того, TeamExpand планирует выпустить программное обеспечение TX Chrono для контроля соблюдения сроков реализации проектов, предназначенное для групп, разрабатывающих программы в Visual Studio.Net. Вместе с сервером управления жизненным циклом приложений Microsoft TFS (Team Foundation Server) коммерческая версия TX Chrono позволит менеджерам утверждать и анализировать сроки и планы реализации проектов.

Этот инструмент с Web-интерфейсом имеет ряд возможностей по генерации уведомлений и составлению отчетов, отсутствующих в TFS. Как утверждают в TeamExpand, TX Chrono позволяет сделать разработку программного обеспечения более предсказуемой и визуальной. Добавлены также и возможности исправления ошибок.

TX Chrono отличают следующие возможности:

  • автоматические извещения и уведомления по проектам, разработчикам и операциям;
  • передача на утверждение и одобрение планов и сроков реализации;
  • индивидуальные и нестандартные планы реализации;
  • поддержка нестандартной продолжительности рабочего дня или рабочей недели;
  • раздельная поддержка оплачиваемых и неоплачиваемых задач;
  • настраиваемые расписания;
  • улучшенные возможности генерации отчетов.

Лицензия TX Chrono стоит 15 долл. в месяц в расчете на рабочее место. На сайте можно найти бесплатную версию, рассчитанную на опытную эксплуатацию в течение 30 дней.