Клиенты и партнерыОсновные услуги СМ-КонсалтПортфолио и квалификация
Тренинги и обучениеРешения и услугиКарта сайта


Реклама:

Наши партнёры:

UML2RU
UML2RU

Наша рассылка:

СМ-Консалт

Подписаться письмом








 

 Новичков Александр  Шамрай Александр Читайте также статьи и материалы о технологиях Rational и Microsoft в блоге Новичкова Александра и Шамрая Александра

 

Отчётность IBM Rational ClearCase: модуль формирования отчётов с вычислением метрик размера и сложности программ

Статьи Управление конфигурациями и изменениями (Subversion, IBM Rational ClearCase, ClearQuest и Jira)

Отчётность IBM Rational ClearCase: модуль формирования отчётов с вычислением метрик размера и сложности программ

 

Александр Новичков, руководитель отдела внедрения и консалтинга, СМ-Консалт

Рустам Зайдуллин, ведущий инженер, "ТатАСУнефть" ОАО "Татнефть"

Статья опубликована на сайте IBM  DeveloperWorks

Ссылки на дополнительные материалы:

 

Если вам доводилось руководить проектом разработки программного обеспечения (программных комплексов, информационных систем) то вы точно сталкивались с вопросом оценки трудозатрат и трудового вклада разработчиков и понимаете нетривиальность этой задачи. В отличие от большинства отраслей материального производства, в вопросах проектов создания ПО недопустимы простые подходы, основанные на умножении трудоемкости на среднюю производительность труда. Это вызвано, прежде всего, тем, что экономические показатели проекта нелинейно зависят от объема работ, а при вычислении трудоемкости допускается большая погрешность. Поэтому для решения этой задачи используются комплексные и достаточно сложные методики. К ним, в частности, относятся метрики исходного кода - метрики размера, сложности и понятности программ.

 

Метрики сложности программ принято разделять на три основные группы:

  • метрики размера программ;
  • метрики стилистики и понятности программ;
  • метрики сложности потока управления программ;
  • метрики сложности потока данных программ.

 

Метрики первой группы базируются на определении количественных характеристик, связанных с размером программы, и отличаются относительной простотой. К наиболее известным метрикам данной группы относятся число операторов программы, количество строк исходного текста, набор метрик Холстеда. Метрики этой группы ориентированы на анализ исходного текста программ. Поэтому они могут использоваться для оценки сложности промежуточных продуктов разработки.

 

Метрики второй группы показывают полноту комментирования исходного кода. Причём, учитывается не просто количество строк комментариев, а насколько плотно комментирован исходный код . То есть код сначала был документирован хорошо, затем - плохо. Или, например, так - шапка функции или класса документирована и комментирована, а код нет. Суть метрики проста: код разбивается на n-равные куски и для каждого из них определяется коэффициент

 

Метрики третьей группы базируются на анализе управляющего графа программы. Представителем данной группы является метрика Мак-Кейба. Управляющий граф программы, который используют метрики данной группы, может быть построен на основе алгоритмов модулей. В процессе автоматизированного вычисления показателя цикломатической сложности, как правило, применяется упрощенный подход, в соответствии с которым построение графа не осуществляется, а вычисление показателя производится на основании подсчета числа операторов управляющей логики (if, switch и т.д.) и возможного количества путей исполнения программы. Цикломатическое число Мак-Кейба показывает требуемое количество проходов для покрытия всех контуров сильносвязанного графа или количества тестовых прогонов программы, необходимых для исчерпывающего тестирования по принципу "работает каждая ветвь".

 

 

Метрики четвёртой группы базируются на оценке использования, конфигурации и размещения данных в программе. В первую очередь это касается глобальных переменных. К данной группе относятся метрики Чепина.

 

Здесь мы считаем необходимым заметить, что применение любых метрик должно выполнятся с учётом контекста. То есть сами по себе метрики не являются законченными и универсальными средствами оценки трудоёмкости, применение которых всегда давало бы однозначный результат. Скорее, они указывают, в каком направлении необходимо провести детальный анализ. Или используются в конкретном случае, когда их применение твёрдо обосновано.

 

Итак, далее речь пойдёт, собственно, о получении отчётов по изменённым версиям исходного кода, и вычислении метрик по ним. В ClearCase есть инструмент формирования отчётности - Report Builder. Он содержит ряд предустановленных отчётов, позволяет экспортировать полученные отчёты в различных форматах. Инструмент Report Builder вполне удовлетворяет потребности в начале использования ClearCase. Но со временем, рано или поздно, появляется потребность расширения возможностей системы отчётности. Например, получать метрики размера и сложности исходного кода.

 

Архитектура описываемого решения изображена на Рисунке 1.

 

Рисунок 1 - Архитектура решения

 

Инициацию формирования отчёта мы выполняем из контекстного меню версии каталога ClearCase. Из контекстного меню происходит запуск скрипта, выполняющего, собственно, запрос остальных входных данных (путь к каталогу уже введён - им является тот самый каталог, из контекстного меню которого запущен отчёт). Скрипт размещаем в каталоге с общим доступом, например - на сервере ClearCase. Это избавит от необходимости обновления на клиентских местах в случае дальнейших доработок и изменений.

 

Скрипт выполняет следующие функции:

  • собирает входящую информацию для отчёта (временной промежуток, метки, обозначающие базовые линии, список разработчиков);
  • формирует строку запроса cleartool find для выборки нужных версий;
  • производит анализ выбранных версий - описание, подсчёт количества изменённых версий, рассчитывает метрики, создаёт атрибуты со значениями полученных метрик на обработанных версиях;
  • формирует результат отчёта в удобочитаемом виде (мы будем использовать формат MS Excel).

 

Для расчёта метрик мы используем бесплатно распространяемую утилиту сссс.exe. Для получения метрик необходимо запустить утилиту с указанием в аргументах пути к анализируемому файлу (версии элемента в нашем случае). Результат работы утилиты выводится в xml-файл.

 

Для создания атрибутов на элементах версионного хранилища, необходимо предварительно создать типы атрибутов. Для этого переходим к списку типов версионного хранилища и открываем каталог attribute types. Создаём типы атрибутов (Рисунок 2).

 

Рисунок 2 - Создание типов атрибутов

 

Тип значения по-умолчанию задаётся Integer, для метрики L_C необходимо указать тип Real (Рисунок 3).

Рисунок 3 - Меняем тип данных значения атрибута

 

После того, как типы атрибутов сформированы, можно создавать сами атрибуты на версиях элементов версионного хранилища (Рисунок 4).

 

Рисунок 4 - Типы атрибутов для метрик

 

Итак, по порядку. Сначала необходимо определить дату отчётного периода. За окончание периода примем текущую дату, а начало периода введёт пользователь. Для ввода данных используем интерфейс clearprompt. Можно было бы запросить дату одной строкой, но во избежание ввода некорректной даты (ошибок в формате ввода, или ввода даты позднее текущей) организуем ввод в графическом интерфейсе, из списка. Запрашиваем дату в следующей последовательности - год, месяц, день. Для начала, определим текущую дату.

 

use Time::localtime;

use Time::tm;

 

$tm = localtime;

 

$cyear = $tm->year+1900;

$cmon = $tm->mon+1;

$cday = $tm->mday;

$chour = $tm->hour;

$cminutes = $tm->min;

 

$cdato="$cday-$cmon-$cyear.$chour:$cminutes";

 

Составляем список годов, из которых будет производиться выбор. Начало периода - год создания версионного хранилища.

 

for ($y = 2005; $y < $cyear+1; $y++)

{

            $years="$years,$y";

};

$years=substr($years,1,length($years));

 

Далее запрашиваем выбор года отчётного периода и считываем введённое значение. В случае нажатия кнопки "Отмена" завершаем работу скрипта, при вводе пустого значения - запрашиваем ввод даных вновь.

 

prompty: $lab=system("clearprompt list -outfile date -items \"$years\" -prompt \"Выберите год начала периода (дд-мм-гггг)\"");

if ($lab != 0)

{

            Win32::MsgBox("Операция прервана пользователем");

            exit(1);

};

 

open(FL, "date") || die "Can't open file \n";

$i=0;

while (<FL>)

{

@pas[$i]=split(FL);

$i=$i+1;

};

close FL;

 

$year=$pas[0];

if ($year eq "")

{

            goto prompty ;

}

else

{

            chop($year);

};

@pas[0]="";

 

Описанное диалоговое окно имеет следующий вид:

 

Рисунок 5 - Диалог ввода даты

 

Сразу выполняем проверку, является ли введённый год високосным. Эта информация будет нужна далее, при выводе диалога выбора дня текущего периода.

 

@mdays = qw(31 28 31 30 31 30 31 31 30 31 30 31);

if (($year % 4) == 0)

{

if ($year % 100 != 0)

            {

$mdays[1] = 29;

}

            elsif ($year % 400 == 0)

            {

$mdays[1] = 29;

            }

};

 

Далее выводим диалог выбора месяца отчётного периода. Если ранее был введён текущий год - выводим список месяцев включительно текущий.

 

promptm: @mons=('january','february','march','april','may','june','july','august','september','october','november','december');

$monses="";

if ($year == $cyear)

{

            $#mons=$cmon-1;

};

 

foreach $mons (@mons)

{

            $monses=$monses.$mons.",";

};

chop($monses);

 

$lab=system("clearprompt list -outfile date -items \"$monses\" -prompt \"Выберите месяц начала периода (дд-мм-$year)\"");

if ($lab != 0)

{

            Win32::MsgBox("Операция прервана пользователем");

            exit(1);

};

 

Рисунок 6 - Диалог ввода даты

 

Далее таким же образом считываем введённое значение из файла. Затем по выбранному месяцу определяем количество дней в месяце

 

if ($mon eq "january")

{

            $days=@mdays[0]; $imon=1;

}

elsif ($mon eq "february")

{

            $days=@mdays[1]; $imon=2;

}

elsif ($mon eq "march")

{

            $days=@mdays[2]; $imon=3;

}

elsif ($mon eq "april")

{

            $days=@mdays[3]; $imon=4;

}

elsif ($mon eq "may")

{

            $days=@mdays[4]; $imon=5;

}

elsif ($mon eq "june")

{

            $days=@mdays[5]; $imon=6;

}

elsif ($mon eq "july")

{

            $days=@mdays[6]; $imon=7;

}

elsif ($mon eq "august")

{

            $days=@mdays[7]; $imon=8;

}

elsif ($mon eq "september")

{

            $days=@mdays[8]; $imon=9;

}

elsif ($mon eq "october")

{

            $days=@mdays[9]; $imon=10;

}

elsif ($mon eq "november")

{

            $days=@mdays[10]; $imon=11;

}

elsif ($mon eq "december")

{

            $days=@mdays[11]; $imon=12;

};

 

После этого запрашиваем день отчётного периода. Если ранее были введены текущие год и месяц - ограничиваем список текущим днём.

 

if (($year == $cyear) && ($imon == $cmon))

{

            for ($d = 1; $d < $cday+1; $d++)

            {

                       $dayso="$dayso,$d";

            };

            $dayso=substr($dayso,1,length($dayso));

}

else

{

            for ($d = 1; $d < $days+1; $d++)

            {

                       $dayso="$dayso,$d";

            };

            $dayso=substr($dayso,1,length($dayso));

};

 

Форма этого диалога выглядит следующим образом

 

Рисунок 7 - Диалог ввода даты

 

После считывания из файла введённого значения дня начала отчётного периода, формируем строки даты. Одну из них создаём со словесным обозначением месяца (например, "april""), другую - с числовым (соответственно, "4"). Далее пригодятся оба варианта.

 

Дата отчётного периода определена. Кроме этого, мы хотим видеть изменения в разрезе по разработчикам, которые создали эти новые версии. Для этого необходимо передать скрипту с входными параметрами список разработчиков, по которым производится анализ. Здесь мы не будем  выводить дополнительные формы, а поступим проще, и, на наш взгляд, эффективнее. Передачу списка персоналий проекта, по которым производится анализ, производим, как и путь к анализируемому каталогу, из самого контекстного меню - Рисунок 8.

 

Рисунок 8 - Контекстное меню ClearCase с внесёнными дополнениями

 

Настройки пункта "Отчёт по группе интеграции" контекстного меню приведены на следующем рисунке. По второму аргументу - "integr" - скрипт определит имя файла со списком персоналий (Рисунок 9).

 

Рисунок 9 - Настройка контекстного меню

 

Собственно, сохраняем значение второго аргумента в переменную, и формируем путь к файлу, содержащему список персоналий. Файлы созданы заранее и размещены в каталогах с открытым доступом, там же, где и файл самого выполняемого скрипта. Считываем строки файла в массив.

 

$otdel = $ARGV[1];

$path = "\\\\clearcase\\addins\\context_menu\\reports\\";

$file=$path.$otdel.".txt";

 

open(FL, $file) || die "Can't open file \n";

$i=0;

 

while (<FL>)

{

@users[$i]=split(FL);

$i=$i+1;

};

close FL;

 

Теперь вся информация для поиска версий подготовлена, и остаётся выполнить запрос, получить выборку нужных версий, и рассчитать для них метрики. Для расчета метрик мы используем бесплатно распространяемую утилиту cccc.exe. Чтобы получить метрики по исходному коду, необходимо запустить утилиту с путём к файлу, содержащему исходный код. В нашем случае, это будет путь к версии элемента версионного хранилища.

 

Остаётся выполнить еще одно подготовительное действие. Так как результат мы хотим получить в таблицу MS Excel, нужно инициировать для этого новую книгу.

 

Добавим библиотеки работы с OLE-объектами, и с объектами MS-Excel в заголовок скрипта.

 

use Win32;

use Win32::OLE;

use Win32::OLE::Const 'Microsoft Excel';

 

Ловим открытое приложение MS Excel, если таковое имеется, в противном случае создаём новое. Создаём новую книгу

 

$Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application');

$Excel->{Visible} = 1;

 

$Book = $Excel->Workbooks->Add;

$Sheet = $Book->Worksheets(1);

 

Запишем в файл заголовок - название отчёта, и шапку формируемой таблицы

 

$Sheet->Range("A1")->{Value} = "Отчёт за период с $idato по $cdato в каталоге $where";

$Sheet->Range("A2")->{Value} = "Разработчик";

$Sheet->Range("B2")->{Value} = "Версия файла";

$Sheet->Range("C2")->{Value} = "LOC";

$Sheet->Range("D2")->{Value} = "MVG";

$Sheet->Range("F2")->{Value} = "L_C";

$row=2;

 

Далее описана процедура, которая ищет по заданным критериям версии и рассчитывает для них метрики. Здесь мы должны сделать небольшое отступление, так как на этом этапе возникает вопрос обработки файлов формата XML. Скрипт, который мы пишем, будет выполняться встроенным в ClearCase языком Perl - ccperl. В поставку ccperl не включены распространённые библиотеки для обработки XML - XML::SAX и XML::Parser. Данные модули являются свободно распространяемыми, найти их можно на сайте CPAN. Там же находятся инструкции по установке дополнительных модулей, сведения о зависимых модулях и вся необходимая информация. Но при установке дополнительных модулей в ccperl возникают проблемы. Можно использовать обычный Perl, но в этом случае возникает необходимость установки его на все рабочие станции, на которых будет выполняться скрипт. Другой вариант - самостоятельно описать анализ XML-файла в скрипте, который, собственно, по своему содержанию является обычным текстовым файлом. В данном примере мы поступим именно таким образом.

 

Для начала проанализируем файл с исходным кодом и посмотрим, что собственно, выдаст нам утилита. Для этого выбираем файл, и выполняем строку cccc.exe <путь_к_файлу>. Для того, чтобы не запускать используемую утилиту без указания полного пути к ней, мы прописали этот путь в переменную среды окружения PATH. Утилита формирует несколько файлов, нас интересует файл с именем анализируемого файла и расширением XML. Нас интересуют следующие метрики - количество строк кода (LOC), метрика цикломатической сложности по Мак-Кейбу для всей программы (MVG), и метрика качества комментирования программы - отношение количества строк кода к количеству строк комментариев (L_C). Ниже приведён фрагмент полученного XML-файла, упомянутые метрики выделены маркером.

 

1.                  <?xml version="1.0" encoding="utf-8"?>

2.                  <!--Detailed report on module BackingBean-->

3.                  <CCCC_Project>

4.                  <module_summary>

5.                  <lines_of_code value="425" level="0" />

6.                  <lines_of_code_per_member_function value="******" level="0" />

7.                  <McCabes_cyclomatic_complexity value="18" level="0" />

8.                  <McCabes_cyclomatic_complexity_per_member_function value="******" level="2" />

9.                  <lines_of_code value="112" level="0" />

10.              <lines_of_code_per_member_function value="********" level="2" />

11.              <lines_of_code_per_line_of_comment value="3.795" level="0" />

12.              <McCabes_cyclomatic_complexity_per_line_of_comment value="0.161" level="0" />

13.              <weighted_methods_per_class_unity value="13" level="0" />

14.              <weighted_methods_per_class_visibility value="0" level="0" />

15.              <depth_of_inheritance_tree value="0" level="0" />

16.              <number_of_children value="0" level="0" />

17.              <coupling_between_objects value="8" level="0" />

18.              <IF4 value="0" level="0" />

19.              <IF4_per_member_function value="********" level="0" />

20.              <IF4_visible value="0" level="0" />

21.              <IF4_visible_per_member_function value="********" level="0" />

22.              <IF4_concrete value="0" level="0" />

23.              <IF4_concrete_per_member_function value="********" level="0" />

24.              </module_summary>

 

Теперь мы можем описать правила для выборки значений метрик скриптом. Выше мы сформировали массив с именами разработчиков, работающих в версионном хранилище. Теперь выполняем поиск созданных каждым разработчиком версий, для каждой найденной версии выполняем расчет выбранных метрик. Далее описан цикл, обрабатывающий значения массива, вызов процедуры расчёта метрик, и, естественно, сама процедура.

 

foreach $user (@users)

{

            chop($user);

            $row++;

            $Sheet->Range("A$row")->{Value} = $user;

            DoCommand("cleartool find . -name \"*.java\" -version \"created_since(25-march-2007)&& created_by($user)\" -print");

            $row++;

};

 

Мы записали в таблицу имя разработчика, и выполняем поиск в выбранном каталоге версионного хранилища ClearCase версий созданных данным специалистом в течение указанного срока. Поиск выполняется описанной ниже процедурой, она же анализирует полученный результат и записывает его в созданную книгу MS Excel.

 

sub DoCommand

{

my $cmd = shift;

$count=0;

 

my $line;

open(CMD, "$cmd 2>&1 |");

foreach $line (<CMD>)

Мы выполнили поиск, и перехватываем результат из консоли в переменную $line. Обрабатываем полученное значение

{

                        chop($line);

                        $end = substr ($line, length($line)-2, length($line));

                        if ($end ne "\\0")

Проверяем окончание строки. Мы не будем учитывать нулевые версии, так как они не содержат информации. Остальные версии подвергаются анализу.

                       {

                                    $tmpname = substr ($line, 0, index($line, "@@"));

В переменной $tmpname мы сформировали стандартное имя файла, то есть завершающееся расширением. Используемая в примере утилита расчета метрик не может оперировать названиями файлов, содержащими полный путь ClearCase - то есть, названиями версий.

                                   system("cleartool co -unr -nc -version $line ");

                                    system ("cccc.exe \"$tmpname\" --xml_outfile=c:\\temp\\cccc\\tmp.xml --outdir=c:\\temp\\cccc");

 

Мы выполнили операцию CheckOut для обрабатываемой версии, чтобы увидеть её в текущем представлении ClearCase, и вычисляем метрики. Операция CheckOut выполняется без резервирования версии - на тот случай, если в настоящее время кто-то работает с данным элементом. Результат сохраняется во временном файле - c:\temp\cccc\tmp.xls

 

                                    open(FL, "c:\\temp\\cccc\\tmp.xml") || die "Can't open file \n";

                                   $i=1;

                                   while (<FL>)

                                    {

                                               @lines[$i]=split(FL);

                                               $i=$i+1;

                                    };

                                    close FL;

Содержимое файла считано в массив построчно. Далее, находим в нужных нам строках значения метрик (см. выше).

                       $LOC=substr(@lines[5],index(@lines[5],"=\"")+2,index(@lines[5],"\" level")-index(@lines[5],"=\"")-1);

                       $MVG=substr(@lines[7],index(@lines[7],"=\"")+2,index(@lines[7],"\" level")-index(@lines[7],"=\"")-1);

                       $L_C=substr(@lines[11],index(@lines[11],"=\"")+2,index(@lines[11],"\" level")-index(@lines[11],"=\"")-1);

 

 

Значения метрик записаны в переменные, и нам остаётся только сохранить полученные результаты в таблицу. Записываем название версии (здесь - полное имя, включая номер версии), и вычисленные метрики.

                      $Sheet->Range("B$row")->{Value} = $line;

             $Sheet->Range("C$row")->{Value} = $LOC;

             $Sheet->Range("D$row")->{Value} = $MVG;

             $Sheet->Range("E$row")->{Value} = $L_C;

Далее отменяем CheckOut, создаём на версии атрибуты, содержащие соответствующие значения метрик и добавляем приращение к переменной указателя строки таблицы.

                       system("cleartool unco -rm $line ");

                      

                       system("cleartool mkattr LOC $LOC \"$line \"");

                       system("cleartool mkattr MVG $MVG \"$line \"");

                       system("cleartool mkattr L_C $L_C \"$line \"");

$row++;

            };

}

close CMD;

}

Результат работы скрипта представлен ниже в таблице. После завершения работы скрипта книга MS Excel остаётся открытой, для дальнейшей работы. Можно настроить сохранение сформированной таблицы и рассылку по электронной почте - как угодно, в зависимости от потребностей.

 

Таблица 1- Результат работы скрипта

Разработчик

Версия файла

LOC

MVG

L_C

pavel

.\controller\BackingBean.java@@\main\dev\12

428

16

3.927

 

.\controller\BackingBean.java@@\main\dev\11

439

19

3.658

 

.\controller\BackingBean.java@@\main\dev\10

439

19

3.658

 

.\controller\BackingBean.java@@\main\dev\9

435

19

3.884

 

.\controller\BackingBean.java@@\main\dev\8

435

19

3.884

 

.\controller\BackingBean.java@@\main\dev\7

425

18

3.795

 

.\controller\Mail.java@@\main\dev\4

338

37

5.541

 

.\controller\Mail.java@@\main\dev\3

320

37

5.246

 

.\controller\Mail.java@@\main\dev\2

316

36

5.097

 

.\controller\Mail.java@@\main\dev\1

314

36

4.906

 

.\controller\MenuSearch.java@@\main\dev\3

109

18

5.737

andrey

.\controller\ShuttleAuthCheck.java@@\main\dev\4

93

11

3.207

 

.\controller\ShuttleAuthCheck.java@@\main\dev\3

93

11

3.207

 

.\controller\ShuttleAuthCheck.java@@\main\dev\2

94

11

3.357

 

.\model\KEntity.java@@\main\dev\2

205

33

8.542

 

.\ProcessThread.java@@\main\dev\6

49

1

3.500

 

.\ProcessThread.java@@\main\dev\5

48

1

16.000

 

.\servlet\Crystal.java@@\main\dev\5

545

31

3.893

 

.\servlet\Crystal.java@@\main\dev\4

545

31

3.865

 

.\servlet\Crystal.java@@\main\dev\3

535

29

3.794

 

.\servlet\SecurityFilter.java@@\main\dev\9

65

10

9.286

 

.\servlet\SecurityFilter.java@@\main\dev\8

65

10

9.286

 

На Рисунке 10 - отображение на дереве версий атрибутов с метками. В дальнейшем при анализе метрики могут быть считаны из атрибутов.

Рисунок 10 - Дерево версий с атрибутами

 

Так же, может быть интересен результат сравнения исходных кодов по метрикам в различных потоках разработки. Например, в случае, когда ведётся совместная работа нескольких подразделений, или, например, к проекту привлечён субподрядчик, и разрабатываемые им исходные коды хранятся в отдельном потоке версионного хранилища. Причём, в этом случае, анализ в разрезе версий, созданных каждым отдельным разработчиком, скорее всего уже не интересен (хотя если нужно получить информацию и с учётом вклада каждого из разработчиков - ничто этому не препятствует, это будет означать всего лишь добавление второго вложенного цикла). Если мы рассматриваем первый вариант - то просто заменяем в критериях поиска привязку к имени пользователя на параметр - название потока разработки. То есть строка принимает следующий вид:

            cleartool find . -name \"*.java\" -version \"created_since(25-march-2007)&& brtype($branch)\" -print

 

Так же, для удобочитаемости скрипта, массив @users везде по тексту скрипта заменяем на @branches.

 

Полученные данные можно далее интерпретировать средствами самого инструмента MS Excel. Например, строить диаграммы (Рисунок 11, 12).

 

Рисунок 11 - Диаграмма изменения метрики LOC

 

Рисунок 12 - Диаграмма изменения метрики MVG

 

Как мы видим, диаграммы на рисунках 11 и 12 коррелируются - был дописан определённый код, причем именно в плане усложнения логики выполнения модуля, но в дальнейшем были внесены корректировки, после которых исполняемый код сократился, но сложность логики по сравнению с начальным состоянием усложнилась. Можно сделать вывод, что на данном этапе было произведено расширение модуля с последующей оптимизацией.

 

Метрики, полученные с разных потоков разработки, так же очень удобно просматривать в графическом виде. На рисунке 13 - сравнение метрики количества строк исполняемого кода для версий, найденных на потоках разработки dev и sub.

 

Рисунок 13 - Диаграмма сравнения метрики LOC для двух потоков разработки

 

Подведём итог - плюсы решения очевидны - нет необходимости запускать отдельное приложение для создания отчёта, интересующий фрагмент исходного кода подвергается анализу непосредственно из браузера ClearCase Explorer. В стандартных отчётах Report Builder нет возможности формирования отчёта по группе разработчиков, хотя зачастую потребность такая возникает. В описанном решении она реализована (собственно, это и послужило толчком к разработке собственной системы отчётности). Централизованное хранение скрипта избавляет от необходимости обновления модуля отчётности на клиентских местах в случае его изменения. Навыки программирования на Perl позволяют получить практически любые отчёты, а так же внести дополнения в сам процесс.

 

 

Ссылки на дополнительные материалы:

Об авторах:

Новичков Александр работает в области информационных технологий с 1994 года. Является руководителем отдела консалтинга и внедрения IBM Rational. Участвовал более чем в 20 успешных проектах внедрения IBM Rational в таких организациях как Банк внешней торговли, ОАО "Татнефть", Национальный банк "ТРАСТ", Банк "Русский стандарт", ОАО "Иркут Авиа", ЗАО "АйТи", ЗАО "Аплана", Сбербанк России, Центральный банк Российской Федерации, ОАО "Русский алюминий" и многих других. Имеет более 30 публикаций научных и научно-популярных материалов. Является сертифицированным специалистом по следующим продуктам IBM Rational: ClearCase for Windows, ClearQuest for Windows и UCM Essentials. За время работы в консалтинге им обучено более 500 специалистов ведущих IT-компаний России и СНГ. Является руководителем отдела внедрения и консалтинга в компании СМ-Консалт (www.cmcons.com). Связаться с ним можно по адресу rational.tools.info@gmail.com
Перейти в блог

 

Зайдуллин Рустам работает в области информационных технологий с 2005 года. Имеет опыт адаптации и внедрения RUP и инструментальных средств IBM Rational. Сертифицированный специалист по следующим продуктам и направлениям: IBM Rational ClearCase, Requirements Management with Use Cases, Rational Unified Process, Microsoft Project 2003. Является ведущим инженером группы контроля качества процессов разработки программного обеспечения управления "ТатАСУнефть" ОАО "Татнефть".


09.12.2009

Комментарии

Добавить комментарий (анонимные комментарии не публикуются!!!)

ФИО: 
E-mail: 
Тема: 
Комментарий: 
Оценка:   
 
 
 
 
 
Код подтверждения:

 

 Новичков Александр  Шамрай Александр Читайте также статьи и материалы о технологиях Rational и Microsoft в блоге Новичкова Александра и Шамрая Александра

 

Новости и пресс-релизы СМ-Консалт


    08.05.2012 18:00:34
    Тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах» состоится 28-30 мая в Москве
    Тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах» состоится 28-30 мая в Москве. Проводится совместными усилиями компаний СМ-Консалт итренинговым центром КарьерЛаб. Место проведения тренинга - ул. Восьмого Марта, вл. 1, стр. 12 (схема проезда).

    Продолжительность тренинга составляет 2 или 3 дня по выбору. Целевая аудитория: начальники отделов, менеджеры проектов, директора, руководители проектов внедрения, бизнес-аналитики, специалисты команды внедрения. Скачать буклет тренинга в PDF

    21.02.2012 14:21:11
    Тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах» состоится 14-16 марта в Санкт-Петербурге
    Тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах» состоится 14-16 марта в Санкт-Петербурге. Проводится совместными усилиями компаний СМ-Консалт, тренинговым центром КарьерЛаб и Legal SoftWave. Место проведения тренинга в данный момент уточняется.

    Продолжительность тренинга составляет 2 или 3 дня по выбору. Целевая аудитория: начальники отделов, менеджеры проектов, директора, руководители проектов внедрения, бизнес-аналитики, специалисты команды внедрения.

    21.02.2012 12:42:20
    Новая статья: IT и психология. Человеческий фактор в парном программировании: почему многие не получают желаемого от его внедрения?
    Статья, находящаяся перед вами, открывает цикл статей о человеческом факторе, Agile-практиках и других полезных приемах, используемых при управлении командами в ИТ. Объединяет рассматриваемые практики и приемы одно – они позволяют проявиться положительным эффектам, связанным с человеческим фактором. И мы объясняем, почему с точки зрения психологии, это происходит. Так сказать, подводим теоретическую и экспериментальную базу под то, что себя уже давно зарекомендовало и работает. Или под то, что работает не у всех, и потому является предметом оживленных споров и дискуссий. И начинаем мы наши исследования с рассмотрения эффекта парного программирования через призму экспериментов социальной психологии. Отдельную благодарность за рецензию и время, потраченное на прочтение первого варианта статьи, выражаем Асхату Уразбаеву, ценные замечания которого позволили не только улучшить данную статью, но и позволили убедиться в необходимости и востребованности именно цикла статей!
    Читать -->

    16.01.2012 20:09:00
    Тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах» состоится 14-16 февраля в Новосибирске
    Тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах» состоится 14-16 февраля в Новосибирске. Проводится совместными усилиями компаний СМ-Консалт, тренинговым центром КарьерЛаб. Место проведения тренинга в данный момент уточняется.

    Продолжительность тренинга составляет 2 или 3 дня по выбору. Целевая аудитория: начальники отделов, менеджеры проектов, директора, руководители проектов внедрения, бизнес-аналитики, специалисты команды внедрения.

    27.12.2011 16:15:27
    Компания "СМ-Консалт" получила отзыв о работах в Федеральной Налоговой Службе (ГНИВЦ ФНС)
    Специалистами ООО «СМ-Консалт» в 2010-2011г. был выполнен проект по настройке и внедрению системы управления жизненным циклом разработки программных систем в части управления изменениями и конфигурациями на основе Microsoft Visual Studio Team Foundation Server 2010 для Филиала Федерального государственного унитарного предприятия «Главный научно-исследовательский вычислительный центр Федеральной налоговой службы» в Приволжском Федеральном округе (Филиал ФГУП ГНИВЦ ФНС России в ПФО).

    26.12.2011 21:05:28
    Успешное проведение тренинга по коммуникациям и психологии для ИТ-руководителей в Санкт-Петербурге

    В блоге Новичкова Александа доступен отчет авторов тренинга «Коммуникации и психология межличностных отношений в ИТ-проектах». В целом, тренинг завершился положительно - средний балл за интересность по 5 бальной шкале - 4,2 балла.
    В отчете дается развернутый комментарий, подводятся итоги, рассматриваются как положительные моменты, так и элементы критики и пожеланий, собранные на основе анкет слушателей.
    Читать -->

    28.11.2011 20:09:21
    Тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах» состоится 19-21 декабря в Санкт-Петербурге
    Тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах» состоится 19-21 декабря в Санкт-Петербурге. Проводится совместными усилиями компаний СМ-Консалт, тренинговым центром КарьерЛаб и Legal SoftWave. Место проведения тренинга в данный момент уточняется.

    Продолжительность тренинга составляет 2 или 3 дня по выбору. Целевая аудитория: начальники отделов, менеджеры проектов, директора, руководители проектов внедрения, бизнес-аналитики, специалисты команды внедрения.

    28.11.2011 18:31:55
    Компания «СМ-Консалт» сообщает об успешном завершении нового тренинга, проведенного совместно с компанией «Карьерлаб»!
    Тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах» прошел 17-18 ноября в Москве.
    Слушатели проявили большой интерес и подтвердили важность выбранного направления. Контакт с аудиторией был установлен сразу. Были проработаны такие важные аспекты необходимых навыков из области психологии и коммуникаций, как умение управлять группой, говорить с заказчиком, как донести до оппонента свое решение и многое другое, что очень важно при разработке или внедрении ИТ-проектов.

    28.11.2011 15:05:11
    Новая статья: "Всегда ли «Да» – это «Да»? Или как нас вынуждают принимать решения"
    Мы предлагаем вашему вниманию цикл статей, в основу которых положены психологические практики и приемы, позволяющие влиять на решения, принимаемые людьми. Эта идея была логическим продолжением ряда выступлений с докладами о коммуникациях в проектах разработки и внедрения ПО. Давайте, не откладывая в долгий ящик, начнем с самого простого приема убеждения, с которым сталкиваемся ежедневно в магазинах, в транспорте, в разговорах с коллегами… да мало ли где еще!
    Авторы: Новичков Александр и Карабанова Галина.
    Читать -->

    10.10.2011 11:16:06
    Компания «СМ-Консалт» открывает новое направление продаж - ПО Adobe Connect
    Программное обеспечение Adobe Connect является гибкой системой web-коммуникации с высоким уровнем информационной безопасности. Adobe Connect предоставляет такие важнейшие функции корпоративного взаимодействия, как деловое общение и совместная работа сотрудников на уровне предприятий, дистанционное обучение, организация широкомасштабных сетевых семинаров и презентаций. Система Adobe Connect базируется на технологии Adobe Flash, а также Air, и поэтому позволяет подключать сотрудников к единому пространству взаимодействия через web-браузер с любых устройств.

    17.09.2011 21:40:22
    Новая статья: "Разработка прикладного программного обеспечения с использованием Rational Unified Process на Иркутском Авиационном заводе"

    На сайте СМ-Консалт открыт новый раздел Статьи наших заказчиков об успешных внедрениях IBM Rational и Microsoft. Статьи для данного раздела пишутся нашими заказчиками и рассказывают о сути проектов внедрения технологий IBM и Microsoft. Первая статья, представленная вашему вниманию написана сотрудниками Иркутского Авиационного Завода (ИАЗ).

    Иркутский авиазавод имеет длительный опыт разработки программного обеспечения для информационной поддержки ключевых бизнес-процессов предприятия. Однако, в связи с увеличивающейся сложностью и повышением требований к разрабатываемому программному обеспечению, возникла настоятельная необходимость усовершенствовать процесс разработки: повысить качество разрабатываемых программных продуктов, стандартизировать процесс с увеличением его эффективности.

    С целью повышения качества программного обеспечения собственной разработки и сокращения сроков разработки руководство Управления информационных технологий (УИТ) Иркутского Авиационного Завода в 2006г. приняло решение о внедрении технологии разработки ПО на базе методологии Rational Unified Process и с использованием инструментов автоматизации IBM Rational.

     

    13.09.2011 12:07:29
    Новый тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах»

    Компания «СМ-Консалт» представляет новый тренинг, организуемый совместно с компанией «КарьерKаб» - «Коммуникации и психология межличностных отношений в ИТ-проектах.

    Тренинг позволит понять, насколько коммуникации в проектах важнее инструментов, что люди и их взаимоотношения зачастую оказываются решающим фактором, определяющим успех проекта. Если более пятидесяти процентов рабочего времени вы тратите на взаимодействие с заказчиком, если вам небезразлична судьба вашей команды и вы хотите, чтобы ваша команда работала как часы, реализуя проекты точно, вовремя и без перерасхода ресурсов - наш тренинг поможет в этом. 

    25.08.2011 13:46:04
    Компания СМ-Консалт сообщает об открытии нового направления деятельности: консалтинг и внедрение систем аналитической обработки информации (Business Intelligence)

    Наша компания специализируется на консалтинге и внедрении инструментов и методологий IBM Rational, Microsoft и др. для повышения эффективности процессов разработки и сопровождения программного обеспечения.
    Методы и технологии Business Intelligence являются прекрасным дополнением к ряду специализированных инструментальных средств, используемых для поддержки ЖЦ разработки ПО и управления ИТ-проектами. Инструменты BI играют роль недостающего промежуточного звена между основным бизнесом организации и ИТ-процессами, и, таким образом, способствуют повышению эффективности ключевых бизнес-процессов и достижению стратегических целей компании.

     

    03.08.2011 14:05:11
    На сайте размещены мультимедиа материалы докладов семинара «Повышение эффективности IT подразделений и качества разрабатываемого ПО с использованием современных методологий и технологий»
    Компании СМ-Консалт , Legal SoftWaveTM и DNA  провели бесплатный семинар-вебинар, посвященный обзору технологий и методологий, которые позволяют повысить эффективность ИТ подразделений. На семинаре были рассмотрены технологии IBM Rational, Microsoft TFS, а также системы аналитической обработки информации (Business Intelligence).
    На нашем сайте размещены все мультимедийные материалы с семинара: презентации и видео-ролики с демонстрацией отдельных функций ПО IBM и Microsoft.
    Перейти к просмотру: 14 июля 2011г. Семинар «Повышение эффективности IT подразделений и качества разрабатываемого ПО с использованием современных методологий и технологий»

    01.08.2011 17:44:25
    Наша компания получила отзыв о сотрудничестве с ОАО «Нордеа Банк»

    В 2010-2011 гг. наши специалисты  провели в Нордеа Банке проект по предварительному обследованию, развертыванию инструментальных средств и ряд тренингов по обучению методологии и работе с продуктами IBM Rational: «Методология разработки программных систем IBM Rational Unified Process», «Управление требованиями с использованием IBM Rational RequisitePro», «Управление изменениями в IBM Rational ClearQuest».

    24.06.2011 01:27:57
    Бесплатный семинар-вебинар «Повышение эффективности IT подразделений и качества разрабатываемого ПО с использованием современных методологий и технологий»
    Компании СМ-Консалт , Legal SoftWaveTM и DNA приглашают Вас посетить бесплатный семинар-вебинар, посвященный обзору технологий и методологий, которые позволяют повысить эффективность ИТ подразделений. На семинаре рассматриваются технологии IBM Rational, Microsoft TFS, а также системы аналитической обработки информации (Business Intelligence) (IBM SPSS, Deductor, QlikView и другие).

    Планируемая продолжительность семинара - 8 академических часов.

    Место проведения: Санкт-Петербург (очно) и Интернет (для всех желающих: приходите сами и приглашайте друзей!).

    Дата и время: 14 июля 2011 в 9 00.

    ВНИМАНИЕ: если вы не сможете очно приехать на семинар - это не страшно, так как семинар будет транслироваться через интернет в формате вебинара и к нему, после регистрации, смогут присоединиться все желающие. Трансляция будет осуществляться посредством технологии Adobe Connect Pro , это позволит Вам присоединяться к конференции без установки дополнительного ПО - только интернет браузер.
    Скачать программу семинара
    Смотреть программу -->

    07.06.2011 13:02:44
    Компания "СМ-Консалт" провела серию успешных семинаров для ГНИВЦ ФНС России

    Проведенные семинары были посвящены средствам разработки и тестирования программного обеспечения компании Майкрософт для сотрудников ГНИВЦ ФНС России. Слушатели семинаров отметили высокую квалификацию тренеров компании "СМ-Консалт" по организации учебного процесса и повышению квалификации специалистов, прошедших обучение.
    Индивидуальный подход при решении любых вопросов, возникающих в процессе обучения, оперативность принятия решений, гарантированное выполнение взятых на себя обязательств и профессионализм позволили провести обучение на самом высоком уровне. 

    07.12.2010 12:28:15
    Мы идем в Твиттер!

    Наша компания открыла аккаунт в системе микроблоггинга Twiter.Теперь все официальные и неофициальные новости будут появляться в нашей ленте в Twitter.
    Там же возможно будет задать прямые вопросы специалистам СМ-Консалт, по всем вопросам, связанным как с деятельностью компании, так и с техническими аспектов продуктов IBM и собственных решений СМ-Консалт.

    Следуйте за нами!

    https://twitter.com/cmconscom

    11.11.2010 14:14:14
    Осенний марафон Microsoft ALM Road Show
    Компания СМ-Консалт совместно с образовательным центром Careerlab провели серию семинаров в рамках мероприятий ALM Roadshow 2.0 в крупнейших городах, расположенных на Волге, – крупных научных центрах, в которых ИТ технологии находятся на высоком уровне. Семинары прошли в Самаре, Нижнем Новгороде и Казани. Cеминары были посвящены использованию новых инструментов MS Visual Studio Team System в проектах разработки ПО.
    В семинарах принимали участие представители различных ролей процесса разработки ПО: от разработчиков до руководителей предприятий различного уровня. Темы, обсуждаемые в ходе семинара, вызвали большой интерес аудитории и немалое количество вопросов, на которые были предоставлены исчерпывающие ответы. В процессе семинара также было показано большое количество примеров, которые дают представление о возможностях инструментов MS Team System. Средняя оценка за семинар составила 4,6 балла по пятибальной шкале

    09.09.2010 16:11:03
    Компания СМ-Консалт предлагает бесплатную настройку своих флагманских решений GanttChart и ProjectTracker.

    Если вы хотите сэкономить время или у вас не получается сразу и эффективно настроить наши решения на вашу схему ClearQuest, то вы можете прислать свою схему ClearQuest нам и специалисты СМ-Консалт бесплатно в течение 3х рабочих дней:

    • Проведут анализ схемы и дадут заключение по настройке схемы ClearQuest своими силами*;
    • Предоставят ознакомительные лицензии на решения GanttChart и ProjectTracker сроком на один месяц;
    • Предоставят файлы настроек для GanttChart и ProjectTracker, адаптированные под вашу схему.

     

    08.09.2010 18:37:52
    Скидки до 30% на программное обеспечение IBM Rational

    Компания СМ-Консалт предлагает для всех желающих на льготных условиях приобрести программное обеспечение IBM Rational. Снижение  цен связано с тем, что мы стараемся быть как можно ближе к нашим клиентам, многие из которых постепенно начали преодолевать последствия финансового кризиса.Наше предложение поможет с минимальными издержками приобрести ПО IBM Rational, что является хорошим капиталовложением.
    Скидки до 1 декабря 2010 года:

    • 20% скидки при покупке IBM Rational ClearCase, ClearQuest, CearCase LT, при приобретении пяти и более лицензий*;
    • 30% скидки при покупке пяти любых продуктов IBM Rational + решение или тренинг СМ-Консалт*.
    Для получения деталей обязательно свяжитесь с нашими менеджерами

     

    07.09.2010 13:53:40
    Успешное внедрение уникального решения компании «СМ-Консалт» - GanttChart for ClearQuest в страховой компании «HUK-COBURG», Германия.
    Компания «СМ-Консалт» и компания «HUK-COBURG» объявляют об успешном завершении проекта по поставке и внедрению решения «СМ-Консалт» - GanttChart for ClearQuest. Руководство «HUK-COBURG» обратилось в «СМ-Консалт» с просьбой поставки, адаптации и последующего сопровождения GanttChart for ClearQuest. С учетом требований Заказчика специалистами компании «СМ-Консалт» была выпущена и внедрена адаптированная версия  GanttChart for ClearQuest, учитывающая особенности схемы процессов ClearQuest, применяемой в «HUK-COBURG», и дополнительные пожелания к функционированию GanttChart

    02.09.2010 14:41:12
    Успешное внедрение Уникального решения СМ-Консалт - GanttChart for ClearQuest в Федеральном Национальном банке Бразилии

    Компания СМ-Консалт и Федеральный Национальный банк Бразилии (ФНББ)  объявляют об успешном завершении проекта по поставке и внедрению решения СМ-Консалт - GanttChart for ClearQuest. Руководство ФНББ, понимая ограничения использования IBM Rational ClearQuest в части проектного управления, обратилось в СМ-Консалт с просьбой поставки и адаптации GanttChart for ClearQuest под свои потребности.
    С учетом требований Заказчика специалистами компании СМ-Консалт была выпущена и внедрена обновленная версия  GanttChart for ClearQuest, учитывающая все особенности схемы процессов ClearQuest, применяемой в ФНББ.
    По истечении срока опытной эксплуатации ФНББ приняло  решение о принятии GanttChart for ClearQuest в промышленную эксплуатацию. 

    02.09.2010 14:17:23
    Компания «СМ-Консалт» объявляет об успешном завершении обучения и консультирования IBM Rational сотрудников ЗАО «Промышленная Группа Метран» г. Челябинск.

    В августе 2010 года специалистами компании «СМ-Консалт» были выполнены работы по обучению и консультированию сотрудников компании «Метран» методологии и инструментальным средствам процесса управления конфигурациями – IBM Rational Software ClearCase и ClearQuest. Был проведен тренинг-консультация «Практика и технология внедрения процесса конфигурационного управления и управления изменениями на основе IBM RUP, ClearCase и ClearQuest».

    В тренинге принимали участие ведущие специалисты и руководители отделов компании «Метран».

    29.06.2010 13:07:07
    Успех семинара "Программное обеспечение IBM Rational для улучшения процессов разработки и сопровождения ПО" 15 июня 2010 г.
    Компании "СМ-Консалт", IBM и DNA провели бесплатный семинар по теме "ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ IBM RATIONAL ДЛЯ УЛУЧШЕНИЯ ПРОЦЕССОВ РАЗРАБОТКИ И СОПРОВОЖДЕНИЯ ПО" 15 июня 2010 года. На семинаре специалисты СМ-Консалт, IBM и UML2.RU рассказали о технологиях IBM Rational и поделились практическим опытом использования и внедрения методологии Rational Unified Process. Также были представлены отдельные решения СМ-Консалт, расширяющие функциональные характеристики IBM Rational.


    Copyright © 2010 СМ Консалт | Вселенная СМК: http://cm-consult.ru | Блоги специалистов: http://anovichkov.msk.ru | http://ashamray.wordpress.com |www.cmcons.com | Карта сайта Rambler's Top100