турная защищенность данного КЭ не соответствует категории. Необходимо проанализировать средства защиты на самом уязвимом пути в эту зону и увеличить их эффективность либо добавить новые средства защиты на любых незащищенных участках этого пути.
На основании изложенного можно сделать следующие выводы. Представленный метод, позволяющий провести оценку уровня защищенности объекта, имеет определенные достоинства.
В качестве исходных данных используется экспертная информация в нечеткой форме, что позволяет отразить нечеткость и неопределенность, присутствующие в предметной области.
Для описания нечетких значений можно использовать любые виды функций принадлежности; вид функций может различаться даже в пределах исходных данных, описывающих один объект.
Оценка уровня защищенности объекта с помощью дедуктивной схемы вывода требует от экспертов анализа уровня защищенности всех возможных путей. Описанный метод позволяет автоматизировать анализ путей по составленному экспертами графу объекта.
К недостаткам метода следует отнести необходимость выбирать экспертов, уровень подготовки которых позволяет адекватно оценивать вероятности обнаружения и задержки, а также определять соответствующие функции принадлежности.
Таким образом, применение данной методики может повысить эффективность принятия решения при проектировании СФЗ объекта.
Литература
1. Боровский А.С., Тарасов А.Д. Интегрированный подход к разработке общей модели функционирования систем физической защиты объектов: тр. ИСА РАН. 2011. Т. 61. Вып. 1. С. 3-14.
2. Бояринцев А.В., Бражник А.Н., Зуев А.Г. Проблемы антитерроризма: категорирование и анализ уязвимости объектов. СПб: ИСТА-Системс, 2006. 252 с.
3. Бешелев С.Д., Гурвич С.Д. Математико-статистичес-кие методы экспертных оценок. М.: Статистика, 1980. 263 с.
4. Радаев Н.Н. Приближенные оценки защищенности объектов от террористических действий // Безопасность. Достоверность. Информация. 2007. № 3 (72). С. 28-32.
5. Панин О.А. Как измерить эффективность? Логико-вероятностное моделирование в задачах оценки систем физической защиты // Безопасность. Достоверность. Информация. 2008. № 2 (77). С. 20-24.
6. Боровский А.С., Тарасов А.Д. Метод оценки защищенности потенциально опасных объектов при проектировании систем физической защиты с использованием нечеткого логического вывода // Вестн. комп. и информ. технологий. 2012. № 4 (94). С. 47-53.
7. Королев В.С. Некоторые аспекты построения интегрированных систем безопасности объектов / Технические средства и системы физической защиты ядерно-опасных объектов: матер. отрасл. семинара. М.: Элерон, 2004.
8. Кормен Т.Х., Лейзерсон Ч.И., Ривест Р.Л., Штайн К. Алгоритмы: построение и анализ = Introduction to Algorithms. М.: Вильямс, 2006. 2-е изд. 1296 с.
9. Штовба С.Д. Введение в теорию нечетких множеств и нечеткую логику. Винница: Изд-во Винницкого гос. тех. ун-та, 2001. 198 с.
References
1. Borovsky A.S., Tarasov A.D., Trudy ISA RAN [Proc. ISA RAS], 2011, Vol. 61, iss. 1, pp. 3-14.
2. Boyarintsev A.V., Brazhnik A.N., Zuev A.G., Problemy antiterrorizma: kategorirovanie i analiz uyazvimosti obyektov [Counterterrorism problems: rating and objects' fragility analysis], SPb., "NPP "ISTA-Sistems" Publ., 2006.
3. Beshelev S.D., Gurvich S.D., Matematiko-statisticheskie metody ekspertnykh otsenok [Mathematical and statistical methods of expert analysis], Moscow, Statistika, 1980.
4. Radaev N.N., Bezopasnost. Dostovernost. Informatsiya [Safety. Accuracy. Information], 2007, no. 3(72), pp. 28-32.
5. Panin O.A., Bezopasnost. Dostovernost. Informatsiya [Safety. Accuracy. Information], 2008, no. 2(77), pp. 20-24.
6. Borovsky A.S., Tarasov A.D., Vestnik kompyuternykh i informatsionnykh tekhnologiy [The bulletin of computer and information technologies], 2012, no. 4(94), pp. 47-53.
7. Korolev V.S., Mater. otrasl. seminara "Tekhnicheskie sredstva i sistemy fizicheskoy zashchity yaderno-opasnykh obyektov" [Proc. of field seminar: "Facilities and physical protection systems for nuclear-hazardous objects"], Moscow, FGUP "SNPO "Eleron", 2004.
8. Cormen T.H., Leiserson Ch.E., Rivest R.L., Stein C., Introduction to Algorithms, 2nd ed., MIT Press and McGraw-Hill, 2001.
9. Shtovba S.D., Vvedenie v teoriyu nechetkikh mnozhestv i nechetkuyu logiku [An introduction to the theory of fuzzy nechetkikh sets and fuzzy logic], Vinnitsa: Vinnytsia National Tech. Univ. Publ., 2001.
УДК 004.415.538
СИСТЕМА КОНТРОЛЯ КАЧЕСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ЭКСПЕРИМЕНТА MPD НА КОЛЛАЙДЕРЕ NICA
(Исследование выполнено при поддержке Объединенного института ядерных исследований, грант № 13-102-08)
И.П. Слепов, младший научный сотрудник; О.В. Рогачевский, к.ф.-м.н., ведущий научный сотрудник (Объединенный институт ядерных исследований, ул. Жолио-Кюри, 6, г. Дубна, 141980, Россия, [email protected], [email protected])
Предлагается новый подход к построению системы контроля качества для проекта программного обеспечения (ПО) эксперимента MPD, коллайдера NICA. Данное ПО имеет название MpdRoot и представляет собой оболочку для
моделирования работы детектора, реконструкции экспериментальных данных и последующего анализа событий столкновения тяжелых ионов. Авторами частично описывается программно-техническая сторона эксперимента MPD. Рассматривается использование системы управления содержимым веб-сайта как платформы для разработчиков проекта, содержащей техническую информацию о проекте, систему управления версиями, тестирования, мониторинга и другие веб-инструменты. В результате получается полноценная система контроля качества для ПО проекта MpdRoot. Изложенный материал будет полезен для разработчиков ПО с большим количеством участников, которые хотели бы облегчить свой труд и улучшить взаимодействие в команде.
Ключевые слова: установка MPD, коллайдер NICA, ПО MpdRoot, система управления данными Drupal, система управления процессами сборки ПО CMake, CTest, CDash, система управления версиями Subversion.
THE QUALITY CONTROL SYSTEM FOR SOFTWARE FOR THE MPD EXPERIMENT
IN THE NICA COLLIDER Slepov I.P., junior researcher; Rogachevsky O. V., Ph.D., senior research fellow (Joint Institute for Nuclear Research, Joliot-Curie St., 6, Dubna, 141980, Russia, speloff@gmail. com, rogachevsky@jinr. ru) Аbstract. The article expounds a new method to build a quality control system for software design of the MPD experiment in the NICA collider. This software is called MpdRoot and is a shell to simulate the detector operations, to reconstruct the experimental data and analyse the events of heavy ions collisions. The author briefly describes software and technical side of the MPD experiment. A website content management system is considered as a platform for this project developers containing technical information about the project, a control version system, a testing system, a monitoring and others webtools. The result is a complete system of quality control for MpdRoot software project. The article will be useful for software developers with a lot of members who would like to facilitate their work and improve teamwork. Keywords: MPD, NICA, MpdRoot, Drupal, CMake, CTest, CDash, Subversion.
В современной физике одной из важнейших составляющих экспериментов является программное обеспечение (ПО), которое на этапе создания установки используется для моделирования и исследования возможности решения различных физических задач, а при работе установки выполняет набор данных и их дальнейший физический анализ. Особенно это относится к экспериментам в области физики частиц высоких энергий, где из-за необходимости обработки огромного потока данных всегда требовались привлечение новейших программных технологий и использование значительных вычислительных ресурсов. Например, экспериментальные установки, работающие на коллайдере LHC (Large Hadron Collider), запущенном в 2010 году в CERN, за год получают поток экспериментальных данных, составляющий около 15 петабайт [1]. Обеспечить хранение и обработку настолько большого количества данных в пределах одного научного центра просто невозможно. Данная проблема побудила ученых создать новую сетевую инфраструктуру Grid, позволяющую пользоваться вычислительными ресурсами институтов всего мира, участвующих в этом проекте.
Существующие методы обработки данных постоянно совершенствуются, появляются более эффективные. Пример этому - технологии параллельных и облачных вычислений с использованием не только сетевых Grid-инфраструктур, но и GPGPU-программирования (General-purpose computing on graphics processing units) [2]. Однако все эти новые методы не принесут желаемого результата, если окажется, что программный код эксперимента содержит ошибки, узкие места, не адаптирован к созданному методу или не оптимизирован для полноценного использования выделяемых вычислительных ресурсов.
В настоящее время Объединенный институт ядерных исследований (г. Дубна) реализует проект по созданию на базе Нуклотрона нового ускорительного комплекса ионов - коллайдера NICA (Nuclotron-based Ion Collider fAcility), позволяющего сталкивать тяжелые ионы (вплоть до ядер Au, Pb, U) при энергиях 4-11 ГэВ/нуклон [3]. В одной из точек пересечения пучков ионов накопительных колец коллайдера будет находиться универсальная установка MPD (Multi-Purpose Detector), позволяющая регистрировать частицы, образующиеся во время столкновения ядер. Целью эксперимента является исследование состояния горячей и плотной ядерной материи, образованной при соударениях тяжелых ионов, в данном диапазоне энергий.
Для эксперимента MPD разрабатывается ПО MpdRoot [4], представляющее собой оболочку как для моделирования работы детектора, так и для реконструкции экспериментальных данных и последующего анализа событий столкновения тяжелых ионов, регистрируемых многоцелевым детектором. MpdRoot создается на базе широко используемой в физике высоких энергий программной платформы ROOT и разработанного на ее основе ПО FairRoot.
Ожидаемый объем данных на установке MPD составит около 10 петабайт в год. Учитывая опыт аналогичных экспериментов, работающих в CERN, для хранения и обработки данных с установки необходимо будет не только использовать современные методы, технологии программирования, вычислительные средства и сетевые инфраструктуры распределенной обработки данных, но и обеспечить качество кода ПО для MPD. Таким образом, исследуемая в данной статье проблема разработки новых, более эффективных методов контроля качества кода MpdRoot с использовани-
ем современных программных инструментов является весьма актуальной.
Для решения этой проблемы требовалось исследовать современные программные продукты, которые можно эффективно применить для повышения уровня качества MpdRoot. В результате исследования необходимо было решить ряд конкретных задач по выбору платформы для разработчиков, системы управления версиями ПО, организации системы тестирования и информационной поддержки проекта. Необходимо было учитывать следующие особенности проекта MpdRoot: в проекте используются язык программирования C/C++, компилятор GCC и система управления процессом сборки ПО CMake; программы должны быть с открытым исходным кодом и работать под операционной системой Scientific Linux; все взаимодействия разработчиков должны осуществляться с использованием централизованной модели клиент-сервер; для всех инструментов необходимо наличие веб-интерфейса.
Платформа для разработчиков
Создание ПО MpdRoot для научного эксперимента MPD требует совместного участия большой группы программистов и физиков, которые находятся в различных лабораториях и даже странах. Для плодотворной работы над проектом разработчикам необходимо виртуальное рабочее пространство с совместным доступом, возможность объединения всех программ каждого участника в одну систему и согласование совместной работы этих программ. Чтобы своевременно замечать допущенные ошибки, непременно возникающие при совместной работе, появилась необходимость разработать систему тестирования работоспособности кода для всей программной оболочки эксперимента с возможностью публикации тестовых результатов. Также требуется отслеживание изменений в программном коде, сделанных всеми участниками, чтобы в случае проблем можно было вернуться назад, восстановив работоспособную версию файла. В зависимости от вида информации, будь то документы, публикации, события или еще какие-либо данные по теме эксперимента, она должна быть представлена в удобном для работы виде. Все это должно контролироваться с помощью централизованного веб-сайта, объединяющего в себе все вышеперечисленные функции в виде так называемых веб-инструментов.
До недавнего времени веб-сайты экспериментов проектировались с нуля своими силами, имели статическую структуру, ограниченную функциональность. Информацию было неудобно и трудоемко обновлять, и этим в основном занимались не сами физики, а группы системных администраторов. Такой подход тормозил развитие проекта из-за постоянной задержки обновления содержимого
сайта, поэтому было предложено иное решение задачи создания веб-сайта для проекта MpdRoot. Для этой цели необходимо использовать систему управления данными, разработчики которой сами будут беспокоиться о функциональности, безопасности и надежности своего продукта, а физики смогут заняться редактированием страниц сайта.
В связи с большим количеством разрабатываемых систем управления данными возникает проблема выбора наиболее подходящей для данного проекта. Учитывая основные требования со стороны разработчиков к веб-сайту проекта MpdRoot, а именно информативность, простота в работе, расширяемость, гибкая настройка прав пользователей и безопасность информации, выбор был сделан в пользу системы управления данными Drupal [5].
Drupal является гибко настраиваемой, многофункциональной и хорошо задокументированной оболочкой веб-сайта с модульной архитектурой, интуитивно понятным интерфейсом и открытым исходным кодом. Данная система предлагает гибкую схему организации сайта на основе таксономии. В отличие от существующих методов построения сайта использование механизма таксономии позволяет создавать произвольное количество тематических категорий для содержимого сайта и ассоциировать их с модулями, обеспечивающими ввод и вывод информации. Категории могут представлять плоские или иерархические списки либо сложные структуры, где элемент может иметь несколько родителей и несколько дочерних элементов. С помощью подобной схемы возможна организация различных вариантов структуризации содержимого одними и теми же модулями.
Система управления данными Drupal совместно с дополнительными модулями позволили расширить функциональность оболочки веб-сайта до необходимого уровня. Видимость страниц была ограничена правами пользователей: анонимные, авторизованные и администраторы. По умолчанию пользователи имеют ограниченный доступ к сайту и могут просматривать только открытые страницы. Для авторизации необходимо зарегистрироваться и пройти проверку личности, что дает право на полный доступ к сайту, публикацию собственных материалов, комментариев к статьям и использование других функций.
Система контроля качества
Для разработки нового проекта ПО необходимо было выбрать систему управления версиями. Учитывая особенности проекта MpdRoot, а именно используемую модель взаимодействия разработчиков клиент-сервер и требование к открытости кода, выбор был ограничен тремя видами систем [6], из которых одна считается устаревшей, а
другая не обладает необходимой функциональностью и не обновляется уже с 2006 года. Таким образом, остается централизованная система управления версиями с открытым исходным кодом Subversion (SVN) [7].
Subversion является первой ступенью контроля качества ПО MpdRoot. Она предоставляет информацию о каждом шаге совместной работы над проектом, позволяет хранить полную историю изменений отслеживаемых объектов (файлов, каталогов) в централизованном хранилище данных (репозитории). SVN поддерживает одновременную многопользовательскую работу и автоматическое объединение измененных данных. Система одинаково эффективно работает как с текстовыми, так и с двоичными файлами. При сохранении новых версий используется дельта-компрессия: система находит отличия новой версии от предыдущей и записывает только их, избегая дублирования данных, что также существенно снижает сетевой трафик и время загрузки файлов.
На рисунке 1 схематично показана структура хранилища Subversion. С точки зрения пользователя она представляет собой двухмерную файловую систему, объекты которой идентифицируются двумя координатами: именем и номером ревизии. Другими словами, хранилище представляет собой массив мгновенных снимков (ревизий) дерева файлов и директорий, индексируемый номером ревизии. Каждый такой снимок является обычной (одномерной) файловой системой.
/tags/М/ /trunk/ /ffle.txt /bar.txt /fOD.txt /maiTLC
Ими файла или каталога
аз—т-
• нетывнено ® (A)dded
л (A+)dded
^ with history
0 (D)eleted О (M)odified
6S (Replaced
О
Ревизия (время)
27 28 » 30 31 i 32,
33 (HEAD)
Рис. 1. Двухмерное представление файловой системы в Subversion
Для совместной работы над файлами в проекте MpdRoot были задействованы две модели. В первой разработчики копируют файлы из хранилища, создавая локальные рабочие копии, затем вносят изменения в рабочие копии и фиксируют эти изменения в хранилище - это модель копирование-изменение-слияние. Для бинарных форматов файлов, не допускающих слияние, используется модель блокирование-изменение-разблокирование. При каждом изменении кода проекту присваивается следующий порядковый номер версии и записывается комментарий о новом изменении.
С помощью инструмента Trac через веб-интерфейс сайта можно увидеть подробную историю изменения файлов.
Второй ступенью контроля качества является система тестирования. Она была составлена из инструментов, наиболее подходящих к особенностям проекта. Благодаря использованию в MpdRoot системы управления процессом сборки ПО CMake удалось внедрить инструменты CTest и CDash. Они разработаны компанией Kitware и вместе обладают наилучшей совместимостью по сравнению с аналогами [8]. Дополняет систему инструментарий статического анализа кода СррЛеск, который был внедрен в проект как обладающий большим набором уже подготовленных тестов. Приведенные инструменты позволили значительно поднять уровень качества благодаря возможности проверки не только выполнения тестовых задач, но и всех этапов сборки и настройки MpdRoot.
Такой подход формирования системы контроля качества можно схематично представить в виде цикличной модели разработки проекта MpdRoot, изображенной на рисунке 2. На первом этапе пользователь скачивает рабочую копию проекта или создает ее, если проект новый. Далее он загружает в хранилище новые объекты или обновляет существующие. На третьем этапе ежедневно в автоматическом режиме выполняется комплексная проверка работоспособности кода ПО. Система проверяет обновления для проекта из общего хранилища, конфигурирует и компилирует проект с использованием программы CMake. Затем тестирует откомпилированную версию с помощью подготовленных тестовых задач и ПО CTest и CppCheck. На заключительном этапе результаты тестирования публикуются на сайте в веб-интерфейсах CDash и CppCheck.
Тестирование
^ CMake / CTest ■
(Т CppCheck з\
1 Сохранение Цикл У Результаты
изменений новой CDash /
в SVN к версии CppCheck 1
ч ^ Рабочая ^
версия
Рис. 2. Цикл разработки ПО MpdRoot
Благодаря этой системе разработчикам становится доступной информация о важных результатах всестороннего тестирования каждой версии проекта. Система указывает, где именно и какого
рода ошибка спряталась в коде, сколько времени выполнялась каждая тестовая задача, кроме того, проверяются все зависимости файлов. Благодаря этим данным облегчается задача исправления ошибок и оптимизации выполнения кода программы, а совместное использование Subversion позволяет вернуться к более ранней версии проекта, если ошибку не так просто исправить.
Третьей ступенью контроля качества является информационная поддержка разработчиков. В процессе работы над большим и сложным проектом, таким как MpdRoot, непременно возникают трудности, например с исправлением ошибок. Решение проблем может потребовать мнения членов команды, специалистов в своей области. Для обмена опытом можно воспользоваться виртуальным пространством сайта, форумом PhpBB или системой рассылки MailMan. После публикации вопроса группы разработчиков смогут получить уведомления на почту и постараются совместно решить возникшую проблему, комментируя и предлагая свои идеи. Оболочка сайта Drupal совместно с форумом PhpBB предлагают расширенные возможности публикации информационного материала. К записи можно прикрепить файл или графический материал, подписаться на новые комментарии, опубликовать на главной странице или сохранить как черновик. Для всех материалов, доступных на сайте, была добавлена возможность сохранения их в виде pdf документов с помощью перехода по ссылке внизу страницы.
Полученные результаты
На основе платформы веб-сайта и специализированных веб-инструментов была создана полноценная система контроля качества ПО, объединяющая в себе всю информацию о проекте MpdRoot, комплексную систему тестирования и управления версиями ПО, а также удобную виртуальную среду для обмена опытом. На сайте со временем были зарегистрированы все физики и разработчики эксперимента MPD, написаны основные инструкции по установке и использованию оболочки MpdRoot. На форуме постоянно появляются новые темы, обсуждаются проблемы и решаются важные вопросы. Накоплена статистика результатов ежедневного тестирования разрабатываемого ПО. Благодаря этим результатам исправлены многие ошибки в зависимостях файлов, в оптимизации работы и совместимости компонентов MpdRoot.
В заключение необходимо отметить, что для решения проблемы контроля качества ПО эксперимента MPD, коллайдера NICA, были исследова-
ны современные программные продукты. В результате исследования решены конкретные задачи выбора платформы для разработчиков проекта, системы управления версиями ПО, организации системы тестирования, мониторинга результатов и информационной поддержки проекта. Описанные инструменты впервые были использованы для проекта MpdRoot и в результате позволили значительно поднять уровень качества благодаря возможности проверки не только выполнения тестовых задач, но и всех этапов сборки, настройки и использования ПО MpdRoot. Планируются дальнейшее развитие системы тестирования с добавлением новых инструментов, а также разработка интерфейса для запуска задач на вычислительном кластере.
Литература
1. Robertson L., From R&D to a Service for LHC Data Analysis, 2nd Intern. Conf. "Distributed Computing and Grid technologies in Science and Education", Dubna, JINR, 2006.
2. Owens J.D., Luebke D., Govindaraju N., A Survey of General-Purpose Computation on Graphics Hardware, Computer Graphics forum, 2007, Vol. 26, no. 1, pp. 80-113.
3. Nuclotron-based Ion Collider fAcility and Multi-Purpose Detector. MPD Conceptual Design Report 1.4. URL: http://nica.jinr.ru/files/CDR_MPD/MPD_CDR_en.pdf, 2012 (дата обращения: 19.06.2012).
4. Simulation and analysis Framework for NICA/MPD detectors. http://mpd.jinr.ru/, 2012.
5. Drupal - open source content management system. URL: http://drupal.org (дата обращения: 19.06.2012).
6. List of revision control software. URL: http://en.wikipe-dia.org/wiki/List_of_revision_control_software (дата обращения: 19.06.2012).
7. Subversion — свободная централизованная система управления версиями. URL: http://ru.wikipedia.org/wiki/Subver-sion (дата обращения: 19.06.2012).
8. List of tools for static code analysis. URL: http://en.wi-kipedia.org/wiki/List_of_tools_for_static_code_analysis (дата обращения: 19.06.2012).
References
1. Robertson L., The 2nd Int. Conf. "Distributed Computing and Grid technologies in Science and Education", JINR, Dubna, 2006.
2. Owens J.D., Luebke D., Govindaraju N., COMPUTER GRAPHICS forum, 2007, Vol. 26 (2007), no. 1, pp. 80-113.
3. Nuclotron-based Ion Collider fAcility and Multi-Purpose Detector. MPD Conceptual Design Report 1.4, available at: http://nica.jinr.ru/files/CDR_MPD/MPD_CDR_en.pdf (accessed 19 June 2012).
4. Simulation and analysis Framework for NICA/MPD detectors, available at: http://mpd.jinr.ru/ (accessed 19 June 2012).
5. Drupal — open source content management system, available at: http://drupal.org/ (accessed 19 June 2012).
6. List of revision control software, available at: http://en.wikipedia.org/wiki/List_of_revision_control_software (accessed 19 June 2012).
7. Subversion, available at: http://ru.wikipedia.org/wiki/Sub-version, 2012.
8. List of tools for static code analysis, available at: http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis (accessed 19 June 2012).
Вниманию авторов!
Все поступающие в редакцию статьи проходят экспертизу. При выявлении плагиата публикация отклоняется без права доработки материалов, автор статьи заносится в черный список.