К определению степени интегрированности программных подсистем

для эксп. 1: Л = 0,0458, сх1 = 0,0004, а2 = 0,0011, ЛР = 0,0332. Для эксп. 2: Л = 0,0522, а1 = 0,0002, а2 = 0,0003, Хр = 0,0338. Оценка Хр для обоих случаев близка, с точки зрения простейшего потока эти случаи неразличимы. Оценки параметров альтернирующего потока отличаются существенно, эта модель — более гибкая.

Рис. 1. Моменты поступления пакетов данных

На рис. 1,а представлена динамика оценок параметров трафика пользователя, работавшего с сетевыми сервисами и посещавшего сайты, в течение часа. Средние оценок, представленных на рис. 1,б, составили: Л=0,0534, а1=0,0003, а2=0,0009, ЛР=0,0281. Выборочные дисперсии оценок: Ц=0,0003, Ца1 =0,00001, Ца1 =0,00001, Ц^ =0,0004. Анализ результатов позволяет сделать следующие выводы: 1) стабильность оценок говорит о том, что модель альтернирующего потока более адекватно описывает трафик пользователя, чем модель пуассоновского; 2) резкое изменение оценок для альтернирующего потока позволяет использовать их для анализа сетевой активности.

ЛИТЕРАТУРА

1. Головко Н. И., Каретник В. О., Танин В. Е., Сафонюк И. И. Исследование моделей систем массового обслуживания в информационных сетях // Сиб. жур. индустр. матем. 2008. Т.Х1. № 2(34). С. 50-58.

2. Васильева Л. А., Горцев А. М. Оценивание параметров дважды стохастического потока событий в условиях его неполной наблюдаемости // Автоматика и телемеханика. 2002. № 3. С. 179-184.

3. Вентцель Е. С., Овчаров Л. А. Теория случайных процессов и ее инженерные приложения. М.: Высш. шк., 2000. 383 с.

УДК 004.412

К ОПРЕДЕЛЕНИЮ СТЕПЕНИ ИНТЕГРИРОВАННОСТИ ПРОГРАММНЫХ ПОДСИСТЕМ

Д. А. Стефанцов

При разработке защищённых систем обработки информации (СОИ) строится модель нарушителя в виде формального описания набора угроз и/или атак и формулируется политика безопасности (ПБ) в виде набора формальных требований [1]. С изменением модели нарушителя появляется необходимость внесения изменений в ПБ.

Примером подобных изменений может служить реализация политики мандатного разграничения доступа ВЕЬтих для операционной системы ОМИ/Ьтих, ранее обладавшей только политикой дискреционного разграничения доступа [2]. Тесная интеграция программных реализаций СОИ и ПБ является препятствием к внесению изменений в ПБ [3], в связи с чем возникает проблема выбора такого метода интегрирования программной подсистемы ПБ в программную подсистему СОИ, который обеспечивал бы наименьшую степень интегрированности (далее: СИ) первой во вторую. Решение этой проблемы предполагает наличие количественной характеристики СИ одной программной подсистемы в другую.

В данной работе предлагается вариант формального определения СИ произвольной программной подсистемы, называемой подчинённой, в произвольную программную подсистему, называемую главной, и показывается его применение к оценке СИ подсистемы ПБ в файловую подсистему ядра операционной системы Ьтих.

Это определение удовлетворяет всем критериям метрики программного обеспечения, сформулированным в [4]. В его основе лежит подсчёт количества идентификаторов (имён переменных, функций, констант и т. п.) подчинённой подсистемы, встречаемых в исходном тексте главной подсистемы. Предполагается, что при модификации подчинённой подсистемы на обработку идентификаторов тратятся некоторые (вычислительные, ёмкостные, временные и др.) ресурсы, совокупность которых характеризует сложность этой обработки, и СИ определяется в зависимости от её величины.

Грубой оценкой СИ программных подсистем может служить выражение М = =а • п, где п — это количество идентификаторов подчинённой подсистемы, встречаемых в исходном тексте главной подсистемы, и а — средняя сложность обработки одного идентификатора.

Для более точного определения СИ рассмотрим сначала простейший случай главной подсистемы — последовательность f некоторых команд вг без циклов и ветвлений, т. е. f = (в1, в2,..., вк). Обозначим п(вг) количество идентификаторов подчинённой подсистемы в команде вг. Пусть задана функция а(п) —сложность обработки команды, содержащей п идентификаторов подчинённой подсистемы. Тогда более точную

к

оценку СИ подсистем даёт выражение М(f) = ^ а(п(вг)).

г=1

Предполагается, что функция а(п) определена либо на всём множестве целых неотрицательных чисел, либо на множестве {0, 1, ... , N} для достаточно большого N. Она должна быть также монотонно неубывающей и обладать свойством а(0) = 0.

Рассмотрение случаев циклов и составных условных операторов может быть проведено аналогично случаю неполного условного оператора (НУО), поэтому далее предполагаем, что среди команд в программах могут встречаться только НУО и выражения (команды, не содержащие циклов и ветвлений). В свою очередь, НУО может быть рассмотрен как алгоритм f = (а; в), где а — условие, в = (в1,..., вк) —последовательность команд, являющаяся телом условного оператора. Полагая идентификаторы подчинённой подсистемы, встречаемые в параметрах алгоритма и в одной из его команд, связанными, определим степень интегрированности М (f) подчинённой подсистемы в реализацию алгоритма f рекурсивно как

M (f ) = M (a; (si, ...Sk )) = ^ M (а; s*),

i=1

M

а(п(а) + n(si)), если s* — выражение,

M(а, а»; (sib ..., s^)) = M(а, a*; Sj),

j=i

_ если Si = (a*; (sib ..., s^)) — НУО.

Введённая мера СИ была применена к существующим программным системам — к версиям 0.01 и 2.6.24 ядра операционной системы Linux, являющимся соответственно самой первой и одной из самых последних версий ядра Linux. В качестве главной подсистемы была выбрана подсистема работы с файлами с помощью системных вызовов sys_open(), sys_mkdir(), sys_rmdir(), sys_link(), sys_unlink(), а в качестве подчинённой — реализация дискреционной политики безопасности.

Для Linux 0.01 получено значение СИ, равное a(1) + 5a(2) + 5a(3), а в случае Linux 2.6.24 СИ равна 3a(1) + 2a(2) + 3a(3). Как было отмечено, функция a — монотонно неубывающая. Если принять a(n) за константу, то оценка для Linux 0.01 станет равной 26a, а для Linux 2.6.24 — равной 16a. Это уменьшение значения СИ является следствием уменьшения как общего количества идентификаторов подчинённой подсистемы в главной, так и тех из них, которые связаны (входят в один оператор).

ЛИТЕРАТУРА

1. Landwehr C. E. Formal models for computer security // ACM Comput. Surv. 1981. September. V. 13. No. 3. P. 247-278.

2. Security-Enhanced Linux / USA National Security Agency., Электрон. дан., 2009. Режим доступа: http://www.nsa.gov/research/selinux/index.shtml, свободный.

3. Grand Research Challenges in Information Systems / Computing Research Association., Электрон. дан., 2002. Режим доступа: http://www.cra.org/reports/gc.systems.pdf, свободный.

4. Mills E. E. Metrics in the software engineering curriculum // Ann. Softw. Eng. 1999. V. 6. No. 1-4. P. 181-200.

УДК 681.3.06:62-507

ТРАНСЛЯЦИЯ ОПИСАНИЙ АВТОМАТОВ, ПРЕДСТАВЛЕННЫХ В ФОРМАТЕ MICROSOFT VISIO, В ИСХОДНЫЙ КОД НА ЯЗЫКЕ C

Л. В. Столяров, И. Р. Дединский, А. А. Шалыто

Существует подход к созданию программ для систем логического управления с использованием конечных автоматов, названный в [1] автоматным программированием (АП). В последнее время этот подход быстро развивается [1, 2]. С его помощью удобно реализуются различные системы логического и событийного управления [3]. АП основывается на использовании конечных автоматов (КА) для описания логики работы программ. КА — это конечное множество состояний, в которых он может находиться, и переходов между этими состояниями. Подход основан на создании графов переходов КА (автоматных схем) [4] с последующей их трансляцией в исходный код программы. Автоматная схема является графическим отражением алгоритма в терминах состояний и переходов. Поэтому при разработке программ на основе АП автоматная схема