В компании TeamExpand создан распространяемый на условиях Open Source инструментарий Clone Detective for Visual Studio, помогающий разработчикам, использующим Microsoft Visual Studio 2008, находить дублирующиеся фрагменты кода в своих программных проектах.
Новый продукт выполняет анализ программ, написанных на языке 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 дней.