3.2Алгоритм работы программы
3.2.1Запуск ПК РСП-Контроль
ПК «РСП-Контроль» – графическое приложение, однако, при использовании режима расчета и сравнения контрольных сумм возможна работа в консольном режиме.
После ввода команды запуска jar-файла в консоль выводится сообщение, поясняющее способы запуска ПК «РСП-Контроль»:
Запуск приложения в графическом осуществляется двумя способами:
1) с помощью команды:
java –Xmx512m –jar RSP.jar –g
Для вычисления/сравнения контрольных сумм используется команда:
java –Xmx512m –jar RSP.jar -f <0|1|2|3>
[
] [-a <0|1|2>] [-m] -r ---- runs application in CheckSum mode without GUI
где
-f – режим работы: 0-подсчет контрольных сумм для папки
; 1-сравнение двух готовых отчетов
; 2-сравнение готового отчета
и папки
; 3-сравнение двух папок
и
;
-a – алгоритм хэширования: 0 − MD5 (используется по умолчанию), 1 − SHA-1, 2 – ГОСТ 34.11;
-m – использование фильтра файлов mask.xml выбора контролируемых файлов;
-r – папка для отчетов.
2) с помощью файлов запуска: RSP-Control.bat, RSP-Control.sh.
3.2.2Графическая оболочка
3.2.2.1Вкладка «Контрольное суммирование»
Расчет и сравнение контрольных сумм – одна из основных функций ПК «РСП-Контроль». Внешний вид вкладки, представляющей графический интерфейс для работы с контрольными суммами, проиллюстрирован на рис. 3.
Рис. 3. Вкладка «Контрольное суммирование»
Вкладка состоит из следующих элементов:
Блок «Выбор операции», содержащий переключатель между режимами «Расчет контрольных сумм» и «Сравнение версий». В режиме сравнения так же становится активным блок выбора вида сравнения: «сравнение отчетов РСП-Контроль», «сравнение отчета РСП-Контроль и каталога», «сравнение каталогов».
Блок «Алгоритм расчета контрольных сумм» позволяет выбрать один из трех алгоритмов MD5, SHA-1 или ГОСТ 34.11-94.
Дерево для выбора обрабатываемой папки со встроенным статусбаром для отображения пути к выбранному элементу дерева.
Блок выбора папки для отчетов, содержащий кнопку для вызова диалогового окна выбора и строку, содержащую текущие значение пути к директории отчетов.
Кнопки «Рассчитать» (для начала обработки) и «Отмена» (для отмены задания).
Папка для отчетов предназначена для задания каталога, в который будут сохраняться отчеты, полученные в результате операции контрольного суммирования.
Индикатор процесса расчета.
Для простого расчета контрольных сумм необходимо выполнить следующее:
Выбрать режим «Расчет контрольных сумм»;
В дереве файлов выбрать каталог, контрольные суммы которого необходимо рассчитать;
Нажатием на кнопку «Обзор» вызвать диалоговое окно и выбрать в нем папку для отчетов;
Нажить кнопку «Рассчитать».
После этой последовательности действий программа сменит состояния «Расчет продолжительности обработки …», «Обрабатываемый каталог …» (будет сопровождаться движением индикатора процесса), «Готово». Отчет по обработке будет находиться в папке, выбранной в качестве хранилища отчетов.
Для сравнения контрольных сумм необходимо, в первую очередь, выбрать режим. В случае если необходимо сравнить два готовых отчета, полученных последовательностью действий, описанной выше, следует использовать режим «сравнение отчетов РСП-Контроль». В этом режиме окно преобразуется к виду, изображенному на рис. 4.
Рис. 4. Режим сравнения «сравнение отчетов РСП-Контроль»
В каждом из деревьев следует выбрать папку с отчетами, а в списках xml-файлов, расположенных под деревьями, отчеты ПК «РСП-Контроль» по расчету контрольных сумм. Далее следует выбрать папку для отчетов, нажать кнопку «Рассчитать» и подождать окончания процесса обработки. Файлы отчетов будут автоматически помещены в выбранную папку.
Режимы «сравнение отчета РСП-Контроль и каталога» и «сравнение каталогов» аналогичны режиму «сравнение отчетов РСП-Контроль», только для путей в деревьях не надо выбирать xml-отчеты ПК «РСП-Контроль» по расчету контрольных сумм, а достаточно указывать папки для обработки.
При необходимости отмены текущей операции необходимо нажать кнопку «Отмена».
На вкладке «Настройки» можно задать фильтр файлов, который включает список расширений и диапазон дат последней модификации рассматриваемых файлов. Фильтр файлов можно сохранить (кнопка «Сохранить фильтр файлов») и загрузить из файла (кнопка «Загрузить фильтр файлов»).
3.2.2.2Вкладка «Построчное сравнение»
Еще одной функцией программы является построчное сравнение текстовых файлов. Графический интерфейс, реализующий работу с этим режимом функционирования, изображен на рис. 5.
Рис. 5. Вкладка «Построчное сравнение»
Алгоритм работы с этой вкладкой представляет собой следующую последовательность действий:
Выбор файлов для анализа. Осуществляется через соответствующие диалоговые окна, вызываемые нажатием кнопок «Обзор»;
Нажатие на кнопку «Сравнить».
После этого, в текстовых областях должно появиться содержимое обоих файлов, подсвеченное в соответствии с результатами сравнения (черным цветом обозначаются совпавшие блоки, красным – различия). Кроме того, в результате выполнения процедуры сравнения формируется три отчета. Первый содержит уникальные строки первого из сравниваемых файлов, второй – второго, третий – общие для двух файлов строки. В случае если файлы с отчетами уже существуют, программа уведомляет об этом пользователя, выводя на экран специальное диалоговое окно. Пользователь может либо перезаписать существующие файлы, либо сохранить их под другими именами и/или в другой директории.
3.2.2.3Вкладка «Посекционное сравнение»
Посекционное сравнение бинарных файлов – стандартная задача при испытании ПО на соответствие требованиям РД НДВ. Наиболее популярные форматы бинарных модулей - PE и ELF. ПК «РСП-Контроль» поддерживает парсинг и сравнение этих форматов.
Этот вид анализа проводится по следующему алгоритму: с помощью кнопок «Обзор» и соответствующих диалоговых окон выбираются бинарные файлы для сравнения, нажимается кнопка «Сравнить». Все совпавшие секции будут отображены черным цветом в дереве-структуре файла, а секции, для которых не удалось найти абсолютно идентичные блоки из другого файла, будут отмечены красным. При выборе сегментов и секций одинакового типа будет доступна кнопка «Сравнить секцию», при нажатии которой происходит подробное сравнение выбранных секций или сегментов.
В случае выбора файлов различных бинарных форматов любое сравнение будет недоступно.
При выборе какого-либо элемента дерева-структуры для него будут выведены заголовок, разобранный на поля в формате Поле/Значение/Описание, шестнадцатеричное представление заголовка, шестнадцатеричное представление содержимого (если возможно).
Вывод таблиц с заголовками и содержимым может осуществляться несколькими способами:
вывод таблиц содержимого и заголовков без сравнения;
вывод таблиц содержимого и заголовков после сравнения (в этом режиме разные символы подсвечиваются красным цветом, одинаковые - черным);
вывод только различий (в этом режиме в таблицах отображаются только строки, содержащие различия, если на странице различий нет, в таблицу выводится соответствующее сообщение).
Заголовки и содержимое модулей представлены в 16-ичном виде и в виде ASCII - символов. Во всех режимах осуществляется последовательное сравнение байтов заданных модулей, начиная с первого, и фиксация смещений и длин совпадающих и различающихся участков.
Вывод содержимого и заголовков таблиц осуществляется постранично, на каждой странице отображается не более 1000 строк. Для перехода между страницами предусмотрены кнопки перехода, расположенные на специальных панелях под таблицами. Надпись на панелях позволяет определить, какая страница из всего количества страниц выведена на экран.
Примеры разбора и сравнения бинарных модулей форматов PE и ELF представлены на рис. 6, рис. 7.
Рис. 6. Вкладка «Посекционное сравнение». Разбор и сравнение бинарных модулей форматов ELF
Рис. 7. Вкладка «Посекционное сравнение». Разбор и сравнение бинарных модулей форматов PE
3.2.2.4. Вкладка «Проверка избыточности исходных текстов на уровне файлов»
Проверка осуществляется с помощью двух режимов: подготовка и анализ, основные поля для которых расположены на отдельных вкладках. Выходной каталог и файл с датчиками являются необходимыми атрибутами для работы двух режимов, поэтому они вынесены отдельно, их следует заполнять при любом режиме. Датчик – определенная языковая конструкция, которая будет дописана в конец каждого из файлов исходных текстов, и которая обеспечит вывод сообщения в лог-файл сборочного процесса. Файл со списком датчиков можно загрузить, если он уже существует, или создать заново и сохранить в формате xml.
На вкладке «Подготовка» с помощью кнопки «Обзор» и соответствующего диалогового окна следует задать имя исследуемого проекта. Кроме того, необходимо установить фильтр файлов (расширения и/или дату последней модификации) для файлов, в которые будут вставляться датчики специального вида, и нажать кнопку «Подготовка» (рис. 8).
Рис. 8. Вкладка «Проверка избыточности исходных текстов». Режим «Подготовка»
После нажатия на кнопку «Подготовка» в выходном каталоге в папке RSP_Control будет находиться перезаписанный исследуемый проект. В файлах, соответствующих заданному фильтру, будет дописан датчик. Кроме того, в выходном каталоге создается файл list.txt, содержащий список файлов, в которые был дописан датчик. Этот файл автоматически отобразится на вкладке «Анализ» в поле «Список файлов» (рис. 9).
Рис. 9. Вид вкладки «Анализ» после выполнения режима «Подготовка»
В случае если файл list.txt уже существует, на экране появится специальное диалоговое окно (рис. 10). Если пользователь выберет кнопку «Да», файл list.txt будет перезаписан, если – «Задать другое имя», то файл со списком будет сохранен под именем, заданным пользователем (рис. 11).
Рис. 10. Диалоговое окно выбора файла в случае, если он уже существует
Рис. 11. Диалоговое окно для создания нового файла после нажатия на кнопку «Задать другое имя»
Модифицированные исходные тексты проекта необходимо «пересобрать». Сформированный средой сборки лог-файл в текстовом виде используется ПК в режиме анализа.
В режиме анализа с помощью кнопки «Обзор» и соответствующего диалогового окна выбора каталогов необходимо задать имя log-файла, полученного при сборке модифицированных исходных текстов (рис. 12). Далее следует нажать кнопку «Анализ», после чего в выходном каталоге будет создан xml-документ, содержащий список избыточных файлов, т.е. файлов, не используемых в проекте.
Рис. 12. Вкладка «Проверка избыточности исходных текстов». Режим «Анализ»
|