Новый продукт выполняет анализ программ, написанных на языке 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 дней.