Скачиваний:
17
Добавлен:
01.05.2014
Размер:
275.74 Кб
Скачать

Руководство пользователя программой расчета характеристик качества программ по метрикам Холстеда

Программа расчета характеристик состоит из главного модуля, производящего все расчеты, и набора вспомогательных модулей (по одному для каждого из обрабатываемых языков программирования). Модули представляют собой законченные приложения с известными входными и выходными параметрами. Главный расчетный модуль получает в качестве входных параметров список файлов, содержащих данные о коде анализируемого приложения. Для предварительной обработки каждого из входных файлов вызывается соответствующий языку программирования препроцессор. Выходными данными каждого из препроцессоров является файл определенного формата, содержащий статистические данные для соответствующего модуля:

  • Число простых операторов в данной реализации

  • Число простых операндов в данной реализации

  • Общее количество всех операторов

  • Общее количество всех операндов

По полученным данным главный модуль вычисляет метрики Холстеда для данного модуля. По окончании работы вычисляются суммарные характеристики для всего приложения. Все результаты сохраняются в текстовом log-файле. Схема обработки данных приведена на рис.1.

Представленная структура программы позволяет впоследствии легко добавить модуль препроцессора для любого из языков программирования, не меняя управляющий модуль. Соответственно, такая организация позволяет поддерживать сколь угодно много языков программирования. Требование легкости расширения диапазона вычисляемых метрик обеспечивается использованием объектно-ориентированного стиля программирования. Компиляция для различных платформ возможна благодаря использованию только стандартных библиотек C/C++.

Рис.1 Обработка исходных текстов программы.

Краткая характеристика основных модулей.

1. Модуль вычисления метрик Холстеда

Программа (исполняемый модуль Metrics.exe) предназначена для вычисления характеристик Холстеда на основе бинарных файлов, полученных трансляторами parser.

В версии доступной на данный момент вычисляются:

  • оценка длины программы

  • объем программы

  • оценка объема программы

  • потенциальный объем программы

  • уровень программы

  • оценка уровня программы

  • интеллектуальное содержание

  • уровень языка программирования

  • оценка числа ожидаемых ошибок

  • работа по программированию

  • время программирования

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

Parser_C – транслятор, предназначен для перевода исходного текста на языке программирования ANSI C в независимый от языка внутренний формат. При анализе исходных текстов производится грамматический разбор конструкций заданного языка программирования и заполнение таблиц первоначальных метрик. Рассматривается язык ANSI C и для разбора была использована грамматика типа LALR(1). На этапе трансляции исходного текста имеется возможность повлиять на интерпретацию и учет разделителей и спецификаторов типа переменных.

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

Parser_PAS – транслятор, предназначен для перевода исходного текста на языке программирования Pascal в независимый от языка внутренний формат. При анализе исходных текстов производится грамматический разбор конструкций заданного языка программирования и заполнение таблиц первоначальных метрик. Для анализа программ на е языке Pascal была использована грамматика типа LALR(1). На этапе трансляции исходного текста имеется возможность повлиять на интерпретацию разделителей и спецификаторов типа переменных.

Способы обращения к основным модулям

  1. Parser_C – программа, которая переводит текст программы на языке С во внутренний формат lxm.

parser_c 0.21 (Feb 24 2000)

2000 (c)opyright V.A.K. Science Group (moevm@eltech.ru).

2000 (c)opyright Moiseichuk Leonid (ldm@sprl.sps.mot.com)

2000 (c)opyright Vlasov Andrey (vlasas@mail.ru)

Командная строка вызова программы использует следующие параметры и ключи:

parser_c -i ifile.c [-o ofile.lxm] [-d] [-t] [-n]

parser_c [-v] [-h]

-i --input ifile.c файл анализируемой программы на С

-o --output ofile.lxm задание имени выходного lxm файла (по умолчанию используется output.lxm).

-t –types учитывать операторы описания типа в качестве операторов программы.

-n –next учитывать ‘ ; ’ в качестве операторов программы

-v –version вывод на экран номера версии программы parser_c

-h –help вывод на экран данной подсказки

-d –debug выдача log - файла.

Пример запуска:

parser_c -i input.c -o output.lxm –t -n

трансляция файла input.c в файл output.lxm, где

input.c - файл программа на языке С.

output.lxm - выходной файл lxm.

  1. Parser_PAS - программа переводит текст программы на языке Pascal во внутренний формат lxm.

parser_pas 0.14 (May 30 2000)

2000 (c)opyright V.A.K. Science Group (moevm@eltech.ru).

2000 (c)opyright Moiseichuk Leonid (ldm@sprl.sps.mot.com)

2000 (c)opyright Vlasov Andrey (vlasas@mail.ru)

Командная строка вызова программы использует следующие параметры и ключи:

parser_pas -i ifile.pas [-o ofile.lxm] [-d] [-t] [-n]

parser_pas [-v] [-h]

-i --input ifile.pas файл анализируемой программы на Pascal

-o --output ofile.lxm задание имени выходного lxm файла (по умолчанию используется output.lxm)

-t –types учитывать операторы описания типа в качестве операторов программы

-n –next учитывать ‘ ; ’ в качестве операторов программы

-v –version вывод на экран номера версии программы parser_c

-h –help вывод на экран данной подсказки

-d –debug выдача log - файла.

Пример запуска:

parser_pas -i input.pas -o output.lxm –t -n

трансляция файла input.pas в файл output.lxm, где

input.pas - файл программа на языке Pascal.

output.lxm - выходной файл lxm.

  1. Metrics - программа расчета и выдачи метрик Холстеда на основе файла lxm.

metrics 0.15 (Sep 07 1999)

1999 (c)opyright V.A.K. Science Group (moevm@eltech.ru).

1999 (c)opyright Moiseichuk Leonid (ldm@sprl.sps.mot.com)

1999 (c)opyright Vlasov Andrey (vlasas@mail.ru)

Командная строка вызова программы использует следующие параметры и ключи:

metrics -i ifile {ifile} [-o file] [-vhbf] [-n ETA]

-i --input ifile.lxm файл анализируемой программы во внутреннем

формате lxm

-o --output ofile.txt задание имени выходного файла результатов типа txt.

-v –version вывод на экран номера версии программы parser_c

-h –help вывод на экран данной подсказки

-b –brief выдача сокращенного файла результатов.

-f –full выдача полного файла результатов.

-n --eta ETA установить значение параметра *eta равным ETA

(по умолчанию используется значение 5).

Пример использования :

metrics -i input.lxm -o output.txt -

трансляция файла input.lxm в файл output.txt , где

input.lxm - файл внутреннего формата lxm.

output.txt - выходной текстовый файл.

Рекомендации по использованию

Возможные ошибки трансляции parser_c:

  1. Несуществующий тип.

В том числе:

- необъявленный тип.

- объявленный через define (препроцессор игнорируется).

- объявленный в файле header(препроцессор игнорируется).

Возможный вариант исправления:

- определить тип через typedef.

typedef int NewType.

Соседние файлы в папке avt_holst