Решетнеескцие чтения. 2015
УДК 681.3
ОБЪЕКТНО ОРИЕНТИРОВАННЫЙ ПОДХОД К РАЗРАБОТКЕ МУЛЬТИВЕРСИОННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
И. А. Аксененко
Красноярский государственный аграрный университет Российская Федерация, 660140, г. Красноярск, ул. Елены Стасовой, 14 E-mail: [email protected]
Обеспечение высокого уровня надежности программного обеспечения в ракетно-космической отрасли является крайне важной и актуальной проблемой. Мультиверсионная методология гарантирует высокий уровень надежности программного обеспечения. Рассмотрены особенности применения объектно ориентированного подхода к разработке мультиверсионного программного обеспечения.
Ключевые слова: мультиверсионное программное обеспечение, объектно ориентированное программирование, восстановление.
OBJECT-ORIENTED APPROACH TO MULTIVERSION SOFTWARE DEVELOPMENT
I. A. Aksenenko
Krasnoyarsk State Agrarian University 41, Elena Stasova Str., Krasnoyarsk, 660140, Russian Federation E-mail: [email protected]
Ensuring a high level of software reliability in the space industry is extremely important. Multiversion methodology guarantees a high level of reliability of the software. The article describes the features of object-oriented approach to multiversion software development.
Keywords: multiversion software, object-oriented programming, recovery.
Применение мультиверсионного программного обеспечения в критичных областях, в том числе в ракетно-космической отрасли, позволяет существенно повысить надежность и отказоустойчивость систем управления и обработки информации [1-3].
Объектно ориентированный подход может оказать значимую помощь в разработке подходов к восстановлению версий мультиверсионного программного обеспечения. Восстановление основано на действиях с данными, а данные - часть структурных единиц в объектно ориентированном программировании. Кроме этого, объектно-ориентированное программирование обеспечивает четкое разделение спецификации (интерфейса) и реализации: интерфейс описывает операции, которые могут быть произведены (включая и имеющие отношение к восстановлению). Абстрактные (виртуальные) классы и наследование дают возможность повторного использования некоторых компонент и расширения интерфейса, что позволяет добавить средства для восстановления [4; 5].
Сравнительно недавно была разработана общая объектно ориентированная схема мультиверсионного программирования [6]. Согласно этой схеме, версии создаются особым образом путем наследования базового класса и особого абстрактного служебного класса, расширяющего интерфейсы версий с тем, чтобы позволить восстановление сбойных версий. Этот абстрактный класс имеет два метода Give_State и Correct_State.
Реализация базового класса включает менеджера как центрального компонента, который координирует исполнение версий. Такие классы называют ^/-классы (diversity-implemented) [4]. Менеджер может вызвать решающий метод (модуль), чтобы сравнить результаты выполнения методов или целые состояния версий (используя для их извлечения служебный метод GiveState). Тот же метод GiveState при необходимости используется для восстановления после сравнения: он возвращает состояние корректной версии для передачи в сбойную. Это состояние представлено в абстрактном виде, общем для всех версий (см. рисунок).
Восстановление сбойной версии с использованием абстрактного состояния корректной версии
Математические методы моделирования, управления и анализа данных
Разработчики версий объектов используют одинаковые спецификации. Версии являются скрытыми внутри Б1-классов. Кроме того, Б1-классы имеют внутри скрытые объекты - решающий модуль и менеджер (механизм контроля). Все Б1-классы должны быть наследованы от метакласса, в котором реализованы все механизмы построения и контроля избыточности в виде скрытых методов класса.
Когда метод Б1-объекта вызывается, метод-менеджер вызывает этот метод во всех N версиях для параллельного выполнения, ожидает результаты и отсылает их в модуль принятия решений. Решающий модуль возвращает уже правильный результат, если есть большинство среди решений. Если все результаты отличаются, то метод-менеджер сигнализирует об ошибке.
Каждый объект имеет состояние и абстрактное состояние, являющееся отображением состояния объекта. Методы работают с данными, которые являются частью состояния. Абстрактное состояние объекта описывает состояние всех версий объекта, которые были разработаны по одной спецификации абстрактного базового класса. Все избыточно реализованные версии описывают одно и то же явление и имеют идентичное поведение, поэтому они в некотором смысле эквивалентны и должны иметь одинаковое абстрактное состояние. Вообще говоря, абстрактное состояние не просто часть состояния объекта, это одна из его функций (для каждой версии объекта).
Предположим, есть множество объектов {V,}. Допустим Sj будет текущим состоянием объекта VI (невидимым извне). Ц и Oij - входные и выходные параметры метода Mi объекта VI. Параметры не являются частью состояния. Для каждого метода Mi объекта V выходные параметры вычисляются функцией Fij: Ор = Fj(Ij,
где Sj' - состояние объекта до вызова М. Введем абстрактное состояние Е, объекта VI как множество данных, отображающих текущее состояние V,-. Эти данные невидимы извне, они представляют собой проекцию внутренних данных объекта. Е, не является частью Sj или входных/выходных параметров, потому что оно не имеет отношения к вызову конкретных методов.
Рассмотрим множество объектов {V} реализующих абстрактный класс А. Пусть V - сбойная версия (этот факт установлен модулем принятия решений). В таком случае можно гарантировать восстановление сбойной версии V при условии существования корректной версии Ут из множества {V} следующим образом:
- существует функция копирования Ст объекта Уm, которая вычисляет текущее абстрактное состояние Ет объекта Уm (Ст соответствует методу Give_State, описанному выше):
Ет Ст№т);
- существует функция восстановления Я1 объекта У1 (Ят соответствует методу Correct_State, описанному выше):
Я = Я\(Ет).
Состояния Sl и Ет можно рассматривать как множества данных, описывающих текущее полное и аб-
страктное состояния объекта. Функция Я1 не обязательно осуществляет непосредственное отображение, потому что Ет описывает концептуальное состояние версии объекта (это означает, что Я\(С^т)) может быть не равно Sm). Эти функции всегда существуют, но их создание может быть очень сложной задачей, требующей детального понимания принципов работы каждой версии. Абстрактное состояние вычисляется после принятия решения, что позволяет определить, какие версии являются корректными, а какие - сбойными: мы используем состояние корректной версии Уm и его функцию копирования Ст, чтобы вычислить Ет, а затем функцию восстановления Я1 версии У1 для восстановления его внутреннего состояния S1.
Абстрактное состояние объекта и функции копирования должны быть разработаны таким образом, чтобы для любых двух корректных версий Уk и Уm выполнялось следующее условие:
если (Ек = Ск^к) и Ет = Cm(Sm)), то (Ек = Ет).
Это, в частности, означает, что мы можем использовать любую корректную версию объекта, имеющую функцию копирования, для восстановления любой сбойной. Функции Як и Ск являются частью интерфейса версий, и разработчики версий должны реализовать их в качестве объектных методов. Чтобы сделать это, им необходима спецификация абстрактного состояния версий для каждого абстрактного класса А, который требуется реализовать с использованием избыточности классов.
Абстрактное состояние версии может быть описано как множество данных, представляющих различные аспекты текущего состояния объекта. Данные этого типа используются менеджером при восстановлении версий. Данные скрыты внутри базового объекта, который имеет избыточную реализацию. Тип этих данных зависит от приложения и может быть реализован в виде класса, имеющего простейшие методы присваивания, необходимые для того, чтобы использовать объекты данного класса в качестве входных и выходных параметров при вызове методов объектов-версий Give_State и Correct_State. Таким образом, нужен только один объект данного класса для каждого объекта базового класса.
Интерфейс версии объекта должен быть расширен соответствующим образом, чтобы позволять получить абстрактное состояние текущей корректной версии и передать его сбойной для восстановления. Чтобы сделать этот процесс систематизированным и контролируемым, все версии объекта являются производными от базового класса, включающего в себя два вышеописанных метода. Кроме того, все версии используют один и тот же тип данных, описывающий абстрактное состояние версии, чтобы данные методы могли с ним работать.
Библиографические ссылки
1. Модели поддержки многоэтапного анализа надежности программного обеспечения автоматизированных систем управления / И. В. Ковалев [и др.] // Проблемы машиностроения и автоматизации. 2005. № 2. С. 30-35.
Решетнееские чтения. 2015
2. Ковалев И. В., Новой А. В., Штенцель А. В. Оценка надежности мультиверсионной программной архитектуры систем управления и обработки информации // Вестник СибГАУ. 2008. № 3 (20). С. 50-52.
3. Царев Р. Ю. Методология многоатрибутивного формирования мультиверсионного программного обеспечения сложных систем управления и обработки информации : монография / Краснояр. гос. аграр. ун-т. Красноярск, 2011. 210 с.
4. Romanovsky A. On version state recovery and adjudication in class diversity // Computer Systems Science and Engineering, 2002. Vol. 17, № 3. P. 159-168.
5. Оценка транзакционной надежности современных систем управления и обработки информации / Р. Ю. Царев [и др.] // Приборы и системы. Управление, контроль, диагностика. 2012. № 6. С. 29-32.
6. Применение COM-технологии для реализации мультиверсионного программного обеспечения систем управления и обработки информации / И. В. Ковалев [и др.] // Приборы и системы. Управление, контроль, диагностика. 2007. № 3. С. 18-22.
References
1. Kovalev I. V., Tsarev R. Yu., Rusakov M. A., Slobodin M. Yu. [Support models of multistage analysis
of automated control system software reliability] // Problemy mashinostroeniya i avtomatizatsii, 2005. No. 2, pp. 30-35 (In Russ.).
2. Kovalev I. V., Novoi A. V., Shtentsel' A. V. [Multi-version software architecture reliability estimation of cotrol and information processing systems] // Vestnik SibGAU, 2008. Vol. 3, no. 20, pp. 50-52 (In Russ.).
3. Tsarev R. Yu. [Methodology of multiple attribute formation of multiversion software for complex control and information processing systems] / Krasnoyarsk State Agrarian University. Krasnojarsk, 2011, 210 p. (In Russ.).
4. Romanovsky A. On version state recovery and adjudication in class diversity // Computer Systems Science and Engineering, 2002. Vol. 17, no. 3, pp. 159-168.
5. Tsarev R. Yu., Shtarik A. V., Shtarik E. N., Zav'yalova O. I. [Estimation of transaction reliability of modern control and information processing systems] // Pribory i sistemy. Upravlenie, kontrol', diagnostika, 2012. No. 6, pp. 29-32 (In Russ.).
6. Kovalev I. V., Stupina A. A., Tsarev R. Yu., Volkov V. A. [An application of corn-technology for implementation the multi-version software in controlling data processing systems] // Pribory i sistemy. Upravlenie, kontrol', diagnostika, 2007. No. 3, pp. 18-22 (In Russ.).
© Аксененко И. А., 2015
УДК 62.501
АДАПТИВНЫЕ МОДЕЛИ КОРРЕКЦИИ ПОКАЗАНИЙ ДАТЧИКОВ ДАВЛЕНИЯ МАГИСТРАЛЬНОГО НЕФТЕПРОВОДА
Н. Р. Антропов, Е. Д. Агафонов
Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31 E-mail: [email protected], [email protected]
Рассматриваются вопросы построения адаптивных моделей и алгоритмов коррекции погрешностей датчиков давлений на линейных участках трубопроводной сети. Модель представлена в комбинированном виде, состоящем из параметрической и непараметрической части.
Ключевые слова: адаптивные алгоритмы, комбинированные модели, коррекция погрешностей, датчики давлений.
ADAPTIVE MODELS OF PRESSURE SENROR DATA CORRECTION OF MAIN PIPELINE
N. R. Antropov, E. D. Agafonov
Reshetnev Siberian State Aerospace University 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation E-mail: [email protected], [email protected]
The article deals with questions of constructing an adaptive models and algorithms for error correction pressure of sensor linear sections of the pipeline network. The model is presented in a combined form, composed of nonparametric and parametric parts.
Keywords: adaptive algorithms, combined models, correction of errors, the pressure sensor.