Научная статья на тему 'Проблемы управления конфигурациями в процессе разработки программного обеспечения встроенных систем'

Проблемы управления конфигурациями в процессе разработки программного обеспечения встроенных систем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
131
60
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Проблемы управления конфигурациями в процессе разработки программного обеспечения встроенных систем»

цептуальную модель предметной области. Она является надстройкой над схемой данных и задает систему связей между концептами предметной области, установленную в данной ИС. Построение данной модели осуществляется при помощи онтологии предметной области. Онтология содержит словарь концептов предметной области и хранит общую сеть связей между этими концептами. То есть каждая концептуальная модель является подмножеством онтологии предметной области. Использование онтологии позволяет определять концептуальные модели в одних терминах и анализировать связи между их концептами.

Далее на базе концептуальных моделей ИС-А и ИС-В осуществляется построение метамодели предметной области интегрируемых ИС. Данная метамодель объединяет и согласует в себе обе концептуальные модели. На этапе ее построения также используется онтология. Метамодель определяет соответствия сущностей ИС-А сущностям ИС-В и правила их преобразования, позволяя установить взаимодействие между указанными ИС.

Практическая реализация

Разработанные концепции были применены при решении задачи интеграции БД системы измерений параметров нефте-водо-газовой смеси «Ультрафлоу» (УатРто) и ИС нефтяного месторождения АДКУ 2000 ООО «Лукойл-Пермь».

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

Хранилища данных такого типа, как правило, достаточно велики и содержат порядка 200 базовых сущностей, с этим связана большая трудоемкость их анализа и обработки. Интеграция базы данных нового измерительного прибора в данную систему, произведенная вручную, вызвала бы необходимость ручного определения отображений сущностей ИС, то есть установления подмножества сущностей АДКУ 2000, которому соответствуют сущности ИС УатРто. Самым сложным этапом

является определение отображения связей сущностей АДКУ 2000 на связи сущностей ИС VarPro.

Более того, установка прибора на другом месторождении с другой штатной ИС вызвала бы повторное ручное построение таких отображений без использования накопленного опыта. Ручное построение данных отображений осуществляется без применения строгого стандартного алгоритма в силу субъективности точек зрения операторов на функционирование ИС.

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

Таким образом, данное программное средство обеспечивает интерпретацию ИС VarPro другими ИС, а значит, интероперабельность ИС VarPro.

Интеграция указанных ИС была проведена с использованием изложенных концепций. Для этой цели была создана программа Var Pro Integrator, которая вначале позволяет пользователю определить метаданные для хранилищ данных с использованием онтологии предметной области, а затем на их основе устанавливает структурные и семантические отображения ИС.

В результате данного исследования была разработана методология создания интероперабельных ИС. После выполнения данной процедуры ИС включается в единое информационное поле, задаваемое онтологией, и получает возможность взаимодействовать с другими хранилищами данных из данной предметной области. Разработанная методология позволяет значительно ускорить и упростить интеграцию ИС. Кроме того, она обеспечивает успешное эволюционирование хранилищ данных в ходе развития предприятий, где они используются.

Список литературы

1. Башмаков А.И., Башмаков И.А. Интеллектуальные информационные технологии: Учеб. пособие. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2005. - 304 с.

2. Когаловский М.Р. Перспективные технологии информационных систем. - М.: ИТ-Экономика, 2003. - 288 с.

3. W3C Recommendation 10 February 2004, RDF/XML Syntax Specification, http://www.w3.org/

ПРОБЛЕМЫ УПРАВЛЕНИЯ КОНФИГУРАЦИЯМИ В ПРОЦЕССЕ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ВСТРОЕННЫХ СИСТЕМ

Н.Ю. Налютин; С.В. Синицын, к.т.н. (Московский инженерно-физический институт (государственный университет))

Программное обеспечение встроенных систем (ВС) - часть программно-аппаратного комплекса, выполняющего четко определенные функ-

ции в составе специализированной системы. Программное обеспечение в таких системах обычно тесно интегрировано с аппаратурой. Основная

особенность ВС, в отличие от систем общего назначения, состоит в следующем. Во-первых, цена исправления дефектов в ВС очень высока - либо по экономическим соображениям (устранение ошибки на этапе эксплуатации может потребовать замены всех выпущенных устройств), либо по соображениям безопасности (сбои и отказы, вызванные не выявленными вовремя дефектами, могут служить причиной возникновения угрозы человеческой жизни). Во-вторых, длительность жизненного цикла ВС может достигать нескольких десятков лет, причем большая часть времени приходится на ее эксплуатацию и сопровождение. В результате этого к надежности ВС предъявляются повышенные требования.

В авиации эти требования жестко регламентируются такими стандартами, как КТ-178А, DO-178B и аналогичными, которые требуют наличия управляемых процессов разработки, верификации, управления конфигурациями, гарантии качества и сертификации ВС перед сдачей ее в эксплуатацию, а также процесса сопровождения системы в течение всего ее жизненного цикла.

Управление конфигурациями - это процесс, обеспечивающий хранение всех артефактов разработки системы (требований, исходного кода, тестов, эксплуатационной документации и пр.), гарантирующий прослеживаемость изменений в системе, причин, которые привели к этим изменениям. Процесс активен как во время разработки системы, так и при ее эксплуатации и сопровождении. При этом для встроенных систем характерна разнородность структуры артефактов и их источников. Таковыми могут быть коллективы разработчиков, пользователи, представители сертифицирующих органов и т.п.

В качестве объектов конфигурации (ОК -Configuration Item) могут выступать любые результаты деятельности проекта. Под конфигурацией понимается любая структурированная совокупность ОК, для которой определен процесс управления конфигурациями.

Общепринято выделение в процессе управления конфигурациями следующих составляющих: идентификация объектов конфигурации, обеспечение их трассируемости, управление изменениями, разграничение доступа, аудит и вычисление статусов конфигураций. Задача двух последних -оценить состояние конфигурации на основе характеристик элементарных объектов, входящих в нее. В ходе аудита конфигурации проверяется корректность ее состояния на момент проведения аудита.

Методы определения структуры конфигурации рассматриваются в задачах идентификации и трассируемости. Обычно структура конфигурации определяется на связях между ОК, что позволяет создавать конфигурации ОК путем объединения многих ОК в структуры, подобные сетевым.

На практике такие структуры часто могут быть преобразованы к древовидному представлению (либо при помощи разрыва циклов в сети и введения избыточности, либо за счет описания одной сетевой конфигурации множеством деревьев). Некоторые конфигурации не требуют преобразования, поскольку уже являются древовидными. К таким может быть отнесена конфигурация задач (работ) в плане-графике проекта по разработке программной системы (рис. 1).

План разработчиков

Отдельные задачи

Рис. 1. Типичная древовидная упорядоченная конфигурация

Кроме того, существующие в настоящее время модели состояний и жизненных циклов ОК построены на одном базовом допущении: характеристики каждого ОК задаются явно, путем прямого присвоения, или могут быть вычислены на основании только его свойств, без привлечения сведений о его структуре. Связи между ОК в этих моделях никак не используются для вычисления характеристик конфигураций и отдельных ОК. Примером такой вычислимой характеристики может служить состояние жизненного цикла ОК - состояние конфигурации явно зависит от состояния входящих в нее ОК, то есть, например, мы не можем считать завершенным проект, пока не завершены все работы, входящие в его план.

В данной статье рассмотрен подход к управлению конфигурациями, учитывающий взаимосвязи между ОК при вычислении их характеристик. Поскольку основное внимание при этом уделялось древовидным конфигурациям, в частности, рассмотренным выше конфигурациям работ, подход получил название управление конфигурациями, ориентированное на задачи. Тем не менее, данный подход может быть распространен на любые древовидные конфигурации или конфигурации, сводимые к ним.

В рамках данного подхода авторами была построена формальная система, модель которой позволяет определять структуру конфигураций, процесс их изменения и вычислять характеристики конфигураций на основе ОК, входящих в них.

Иерархическая структура в рамках данного подхода задается при помощи композиции элементарных структур одного из следующих видов: параллельного вхождения (рис. 2а) и последовательного вхождения (рис. 2б). В формулах, опи-

сывающих структуру конфигурации, ОК задаются малыми латинскими буквами, параллельное вхождение задается функцией avb, а последовательное - aлb. Конфигурация при этом задается как суперпозиция функций. Например, на рисунке 2в показана конфигурация, соответствующая формуле aлbлcл(dл(evf)vg). Эквивалентность определений доказывается при помощи индуктивного определения понятий дерева и формулы и построения соответствия между данными определениями.

GD

db

m сю

a v b

CaD

a л b

CD Cl

со СО

ал(Ьл(сл (йл )))

Рис. 2. Алгебраический вид элементарных иерархических конфигураций

Процесс создания конфигураций основан на натуральном выводе Генцена со следующими правилами вывода (см.: Правиц Д. Натуральный вывод. М. 1997):

A B

-(v)

a B

(л),

AvB a л (Б)

где а , с - элементарные ОК; А, Б - формулы, задающие конфигурации.

Дерево вывода для конфигурации вида а л (Ь л (с л (а л (е V f) V g))), записанной для экономии места в виде а(Ь(с(а(е + О + g))), где avb = а + Ь, а а л Ь = аЬ, будет выглядеть следующим образом:

а е+f Д(е+р g с а(е+о + g Ь с(а(е + О + g)

а Ь(с(а(е + f) + g))

а(Ь(с(а(е + f) + g))) '

Необходимо заметить, что при проходе по дереву вывода сверху вниз и при выделении конечных термов мы получим последовательность включенных друг в друга конфигураций, то есть в нашем примере включение будет выглядеть как ^ а ^ g ^ с ^ Ь ^ а .

Эта последовательность определяет последовательность вычисления характеристик конфигураций (например состояния жизненного цикла) на основании характеристик, входящих в конфигурацию ОК. Так, вершина дерева а включает в себя конфигурацию, состоящую из элементов е и Д. Для вычисления состояния а необходимо сначала вы-

числить состояния e и f. Метод вычисления также использует правила натурального вывода Генцена и широко распространен в теоретическом программировании под названием «Натуральная семантика».

В данном подходе функция вычисления некоторой характеристики объекта алгебры задается с помощью правил вывода следующего вида: F[xJ = at F[x2] = a2 ... F[xn] = an F[C(Xl,x2,... ,xn)] = f(ax,a2V.. ,an) '

Условия, записанные над чертой, называются посылками правил, а итоговое равенство под чертой - заключением правила. Если все посылки правила истинны, то и заключение истинно. Каждое правило определяет способ вычисления. Для определения значения искомой характеристики F сложного объекта (конфигурации) C(x1,x2,. ,xn) необходимо получить значения характеристики F для объектов x1,x2,. ,xn, из которых он состоит. Значения характеристики для этого объекта представлены значениями a1,a2,.,an. Если полученные характеристики удовлетворяют посылкам правила, то можно получить значение искомой характеристики как результат применения некоторой функции f(a1,a2,.,an). Таким образом, вычисление значения характеристики F осуществляется рекурсивным построением дерева вывода по системе правил с возвращением, когда промежуточные результаты получены.

Между элементарными ОК и конфигурациями есть одна существенная разница - состояния элементарных объектов задаются, а состояния конфигураций вычисляются. Задать состояния элементарных объектов проще всего в виде функции Statedef : Adef ^ Vdef, которая определяет связь между объектом и его состоянием и может пониматься как «снимок» состояний элементарных ОК в некоторый момент времени. При вычислении состояний конфигураций необходимо руководствоваться принципом композиционности, то есть состояния сложных объектов должны определяться только состояниями их компонент. Поэтому для вычисления состояния конфигурации необходимо знать состояния элементарных объектов, то есть функцию Statedef. Дальнейшее вычисление состояний конфигураций должно проходить на основании этой функции, поэтому правила натуральной семантики приобретают вид Statedef > State[x1] = a1 ... Statedef > State[xn] = an (2)

Statedef > State[C(x1

где запись Statedef > A означает, что A выводимо при условии Statedef. То есть если функция Statedef связывает элементарный объект а с его состоянием, например accepted, то Statedef > >State(a) = accepted истинно, а Statedef >State(a) = b

в)

ложно для каждого b * accepted . Таким образом, функция Statedef определяет контекст, в котором происходит вычисление состояний конфигураций.

Процесс вычисления состояния конфигурации при использовании данного подхода состоит из следующих шагов:

• фиксируется функция Statedef, которая задает состояния элементарных объектов;

• определяется цель вывода (конфигурация, состояние которой необходимо вычислить);

• проводится построение дерева вывода с помощью рассматриваемых правил, в процессе которого означиваются подэлементы конфигурации;

• процесс построения дерева вывода завершается на элементарных объектах, состояния которых заданы с помощью функции Statedef;

• на основе полученной в процессе вывода информация и правил вывода делается заключение о состоянии искомой конфигурации.

В простых случаях на состояниях ОК возможно определить линейный или частичный порядок и построить правила вычисления, основываясь на прямом отображении элементов множества состояний конфигурации во множества состояний ОК. Конфигурации при разработке встроенных программных систем состоят из разнородных объектов, для которых сложно определить прямое отображение состояний. Для вычисления состояния конфигурации в данном случае строится таблица решений, включающая все сочетания состояний ОК и конфигурации. На практике количество допустимых сочетаний состояний заведомо меньше общего их количества, кроме того, обработка больших таблиц решений затруднительна. При переходе от таблиц решений к правилам, основанным на натуральной семантике, процесс вычисления состояний значительно упрощается.

В качестве примера определим правила вывода для элементарной конфигурации, в начале своего жизненного цикла состоящей из одного объекта документ. Затем к конфигурации добавляется второй объект форма инспекции. Первый объект проходит состояния жизненного цикла active (в работе), ready (готов), review (инспекция) и завершает свой жизненный цикл в состоянии ac-

cepted (принят) или rejected (отклонен). Второй объект имеет только два состояния: active (в работе) и closed (закрыто). Statedef > State[A] = active л State[A] = ready

Stated > State[CpartConf(A)] = active Statedef > State[A] ^ active л State[A] ^ ready

Stated > State[Cpartconf(A)] = error

Statedef > State[A] = a Statedef > State[B] = b

active, если b = active

accepted, если a = accepted,

Statedef > State[Ccnf(A,B)] = • b = closed

rejected, если a = rejected,

b = closed

Правило (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.

ТЕОРЕТИЧЕСКИЙ ПОДХОД К УПРАВЛЕНИЮ СОЦИАЛЬНО-ТЕХНИЧЕСКИМИ СИСТЕМАМИ

А.В. Затонский, к.т.н. (Березниковский филиал Пермского ГТУ, г. Березники)

Социально-техническими системами (СТС) будем называть сложные производственные, технические, управленческие и общественные систе-

мы, которые включают технические и программные средства, физическое окружение, работников, наборы внутренних и внешних по отношению к

i Надоели баннеры? Вы всегда можете отключить рекламу.