Налютин Н.Ю. (nnalutin@gmail.com) - Национальный исследовательский ядерный университет «МИФИ», г. Москва, кандидат технических наук, Синицын С.В. (nnalutin@gmail.com) - Национальный исследовательский ядерный университет «МИФИ», г. Москва, кандидат технических наук | |
Ключевые слова: управление, программное обеспечение, встроенные системы |
|
Keywords: control management, the software, embedded systems |
|
|
Программное обеспечение встроенных систем (ВС) – часть программно-аппаратного комплекса, выполняющего четко определенные функции в составе специализированной системы. Программное обеспечение в таких системах обычно тесно интегрировано с аппаратурой. Основная особенность ВС, в отличие от систем общего назначения, состоит в следующем. Во-первых, цена исправления дефектов в ВС очень высока – либо по экономическим соображениям (устранение ошибки на этапе эксплуатации может потребовать замены всех выпущенных устройств), либо по соображениям безопасности (сбои и отказы, вызванные не выявленными вовремя дефектами, могут служить причиной возникновения угрозы человеческой жизни). Во-вторых, длительность жизненного цикла ВС может достигать нескольких десятков лет, причем большая часть времени приходится на ее эксплуатацию и сопровождение. В результате этого к надежности ВС предъявляются повышенные требования. В авиации эти требования жестко регламентируются такими стандартами, как КТ-178А, DO-178B и аналогичными, которые требуют наличия управляемых процессов разработки, верификации, управления конфигурациями, гарантии качества и сертификации ВС перед сдачей ее в эксплуатацию, а также процесса сопровождения системы в течение всего ее жизненного цикла. Управление конфигурациями – это процесс, обеспечивающий хранение всех артефактов разработки системы (требований, исходного кода, тестов, эксплуатационной документации и пр.), гарантирующий прослеживаемость изменений в системе, причин, которые привели к этим изменениям. Процесс активен как во время разработки системы, так и при ее эксплуатации и сопровождении. При этом для встроенных систем характерна разнородность структуры артефактов и их источников. Таковыми могут быть коллективы разработчиков, пользователи, представители сертифицирующих органов и т.п. В качестве объектов конфигурации (ОК – Configuration Item) могут выступать любые результаты деятельности проекта. Под конфигурацией понимается любая структурированная совокупность ОК, для которой определен процесс управления конфигурациями. Общепринято выделение в процессе управления конфигурациями следующих составляющих: идентификация объектов конфигурации, обеспечение их трассируемости, управление изменениями, разграничение доступа, аудит и вычисление статусов конфигураций. Задача двух последних – оценить состояние конфигурации на основе характеристик элементарных объектов, входящих в нее. В ходе аудита конфигурации проверяется корректность ее состояния на момент проведения аудита. Методы определения структуры конфигурации рассматриваются в задачах идентификации и трассируемости. Обычно структура конфигурации определяется на связях между ОК, что позволяет создавать конфигурации ОК путем объединения многих ОК в структуры, подобные сетевым. На практике такие структуры часто могут быть преобразованы к древовидному представлению (либо при помощи разрыва циклов в сети и введения избыточности, либо за счет описания одной сетевой конфигурации множеством деревьев). Некоторые конфигурации не требуют преобразования, поскольку уже являются древовидными. К таким может быть отнесена конфигурация задач (работ) в плане-графике проекта по разработке программной системы (рис. 1). Кроме того, существующие в настоящее время модели состояний и жизненных циклов ОК построены на одном базовом допущении: характеристики каждого ОК задаются явно, путем прямого присвоения, или могут быть вычислены на основании только его свойств, без привлечения сведений о его структуре. Связи между ОК в этих моделях никак не используются для вычисления характеристик конфигураций и отдельных ОК. Примером такой вычислимой характеристики может служить состояние жизненного цикла ОК – состояние конфигурации явно зависит от состояния входящих в нее ОК, то есть, например, мы не можем считать завершенным проект, пока не завершены все работы, входящие в его план. В данной статье рассмотрен подход к управлению конфигурациями, учитывающий взаимосвязи между ОК при вычислении их характеристик. Поскольку основное внимание при этом уделялось древовидным конфигурациям, в частности, рассмотренным выше конфигурациям работ, подход получил название управление конфигурациями, ориентированное на задачи. Тем не менее, данный подход может быть распространен на любые древовидные конфигурации или конфигурации, сводимые к ним. В рамках данного подхода авторами была построена формальная система, модель которой позволяет определять структуру конфигураций, процесс их изменения и вычислять характеристики конфигураций на основе ОК, входящих в них. Иерархическая структура в рамках данного подхода задается при помощи композиции элементарных структур одного из следующих видов: параллельного вхождения (рис. 2а) и последовательного вхождения (рис. 2б). В формулах, описывающих структуру конфигурации, ОК задаются малыми латинскими буквами, параллельное вхождение задается функцией aÚb, а последовательное – aÙb. Конфигурация при этом задается как суперпозиция функций. Например, на рисунке 2в показана конфигурация, соответствующая формуле aÙbÙcÙ(dÙ(eÚf)Úg). Эквивалентность определений доказывается при помощи индуктивного определения понятий дерева и формулы и построения соответствия между данными определениями. Процесс создания конфигураций основан на натуральном выводе Генцена со следующими правилами вывода (см.: Правиц Д. Натуральный вывод. М. 1997): , где , c – элементарные ОК; A, B – формулы, задающие конфигурации. Дерево вывода для конфигурации вида , записанной для экономии места в виде , где , а , будет выглядеть следующим образом: . Необходимо заметить, что при проходе по дереву вывода сверху вниз и при выделении конечных термов мы получим последовательность включенных друг в друга конфигураций, то есть в нашем примере включение будет выглядеть как . Эта последовательность определяет последовательность вычисления характеристик конфигураций (например состояния жизненного цикла) на основании характеристик, входящих в конфигурацию ОК. Так, вершина дерева d включает в себя конфигурацию, состоящую из элементов e и f. Для вычисления состояния d необходимо сначала вычислить состояния e и f. Метод вычисления также использует правила натурального вывода Генцена и широко распространен в теоретическом программировании под названием «Натуральная семантика». В данном подходе функция вычисления некоторой характеристики объекта алгебры задается с помощью правил вывода следующего вида: . (1) Условия, записанные над чертой, называются посылками правил, а итоговое равенство под чертой – заключением правила. Если все посылки правила истинны, то и заключение истинно. Каждое правило определяет способ вычисления. Для определения значения искомой характеристики F сложного объекта (конфигурации) необходимо получить значения характеристики F для объектов , из которых он состоит. Значения характеристики для этого объекта представлены значениями . Если полученные характеристики удовлетворяют посылкам правила, то можно получить значение искомой характеристики как результат применения некоторой функции . Таким образом, вычисление значения характеристики F осуществляется рекурсивным построением дерева вывода по системе правил с возвращением, когда промежуточные результаты получены. Между элементарными ОК и конфигурациями есть одна существенная разница – состояния элементарных объектов задаются, а состояния конфигураций вычисляются. Задать состояния элементарных объектов проще всего в виде функции , которая определяет связь между объектом и его состоянием и может пониматься как «снимок» состояний элементарных ОК в некоторый момент времени. При вычислении состояний конфигураций необходимо руководствоваться принципом композиционности, то есть состояния сложных объектов должны определяться только состояниями их компонент. Поэтому для вычисления состояния конфигурации необходимо знать состояния элементарных объектов, то есть функцию . Дальнейшее вычисление состояний конфигураций должно проходить на основании этой функции, поэтому правила натуральной семантики приобретают вид , (2) где запись означает, что A выводимо при условии . То есть если функция связывает элементарный объект a с его состоянием, например accepted, то истинно, а ложно для каждого . Таким образом, функция определяет контекст, в котором происходит вычисление состояний конфигураций. Процесс вычисления состояния конфигурации при использовании данного подхода состоит из следующих шагов: · фиксируется функция , которая задает состояния элементарных объектов; · определяется цель вывода (конфигурация, состояние которой необходимо вычислить); · проводится построение дерева вывода с помощью рассматриваемых правил, в процессе которого означиваются подэлементы конфигурации; · процесс построения дерева вывода завершается на элементарных объектах, состояния которых заданы с помощью функции ; · на основе полученной в процессе вывода информация и правил вывода делается заключение о состоянии искомой конфигурации. В простых случаях на состояниях ОК возможно определить линейный или частичный порядок и построить правила вычисления, основываясь на прямом отображении элементов множества состояний конфигурации во множества состояний ОК. Конфигурации при разработке встроенных программных систем состоят из разнородных объектов, для которых сложно определить прямое отображение состояний. Для вычисления состояния конфигурации в данном случае строится таблица решений, включающая все сочетания состояний ОК и конфигурации. На практике количество допустимых сочетаний состояний заведомо меньше общего их количества, кроме того, обработка больших таблиц решений затруднительна. При переходе от таблиц решений к правилам, основанным на натуральной семантике, процесс вычисления состояний значительно упрощается. В качестве примера определим правила вывода для элементарной конфигурации, в начале своего жизненного цикла состоящей из одного объекта документ. Затем к конфигурации добавляется второй объект форма инспекции. Первый объект проходит состояния жизненного цикла active (в работе), ready (готов), review (инспекция) и завершает свой жизненный цикл в состоянии accepted (принят) или rejected (отклонен). Второй объект имеет только два состояния: active (в работе) и closed (закрыто). (3) (4) (5) Правило (3) определяет, что если конфигурация состоит из одного объекта, который находится в состоянии active или ready, то конфигурация имеет состояние active. Правило (4), запрещающее, определяет, что в конфигурациях, состоящих из одного объекта, этот объект не может иметь состояния, отличные от active или ready. В противном случае констатируется нарушение целостности конфигурации, и она переходит в состояние error. При построении правила (5), которое может быть преобразовано в три более простых правила, был использован принцип композиционности. На базе данного подхода разработана АСУ работами DMS, включающая в себя элементы системы управления конфигурациями. Система находится в промышленной эксплуатации с 2004 г. на одном из предприятий авиационной отрасли. Анализ результатов эксплуатации показывает эффективность работы данной системы и предложенного подхода. Список литературы 1. КТ-178А. Квалификационные требования часть 178А. - Жуковский: АОЗТ «ИСПАС», 1997. 2. RTCA/DO-178B. Software considerations in airborne system and equipment certification, RTCA Inc, 1992, – 138 p. 3. Estublier J. et al. Impact of software engineering research on the practice of software configuration management // ACM Transactions on Software Engineering and Methodology, Vol. 14, No. 4, October 2005, pp. 1-48. 4. Правиц Д. Натуральный вывод. - М.: Лори-пресс, 1997, - 107 с. 5. Kahn G. Natural Semantics. - In Proceedings of the Symposium on Theoretical Aspects of Computer Science, pages 22-39. - Springer-Verlag LNCS 247, 1987. |
http://swsys.ru/index.php?id=90&lang=.docs&page=article |
|