Научная статья на тему 'Выбор структуры мультиверсионного программного обеспечения при нечетком бюджете и ограничениях на совместимость версий'

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

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ковалев И.В., Антамошкин А.Н., Ерыгин В.Ю.

Задаваясь вопросом создания надежных программных средств с использованием мультиверсионного подхода, разработчикам зачастую приходится помимо стандартных трудностей сталкиваться и с такими, как нечеткость бюджета и несовместимость различных версий модулей программного средства. В данной статье рассматривается предложенные модель и алгоритм для выбора структуры мультиверсионного программного средства с учетом ограничений на совместимость версий и нечеткость бюджета.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ковалев И.В., Антамошкин А.Н., Ерыгин В.Ю.

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

Текст научной работы на тему «Выбор структуры мультиверсионного программного обеспечения при нечетком бюджете и ограничениях на совместимость версий»

5. Чернышев А.Б. Интерпретация критерия абсолютной устойчивости для нелинейных распределенных систем [Текст] / А.Б. Чернышев // Автоматизация и современные технологии. - 2010. - № 2. - С. 28-32.

6. Чернышев А.Б. Исследование абсолютной устойчивости нелинейных распределенных систем [Текст] / А.Б. Чернышев // Автоматизация и современные технологии. - 2010. - № 4. - С. 21-26.

7. Чернышев А.Б. Модифицированный годограф пространственно-апериодического звена [Текст] / А.Б. Чернышев // Вестник Нижегородского университета им. Н.И. Лобачевского. - 2010. - № 2(1). - С 159-163.

ВЫБОР СТРУКТУРЫ МУЛЬТИВЕРСИОННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПРИ НЕЧЕТКОМ БЮДЖЕТЕ И ОГРАНИЧЕНИЯХ НА СОВМЕСТИМОСТЬ ВЕРСИЙ

© Ковалев И.В.*, Антамошкин А.Н.*, Ерыгин В.Ю.*

Сибирский государственный аэрокосмический университет им. академика М.Ф. Решетнева, г. Красноярск

Задаваясь вопросом создания надежных программных средств с использованием мультиверсионного подхода, разработчикам зачастую приходится помимо стандартных трудностей сталкиваться и с такими, как нечеткость бюджета и несовместимость различных версий модулей программного средства. В данной статье рассматривается предложенные модель и алгоритм для выбора структуры мультиверсионного программного средства с учетом ограничений на совместимость версий и нечеткость бюджета.

Актуальность

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

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

* Ректор, доктор технических наук, профессор.

* Профессор кафедры Системного анализа и исследования операций, доктор технических наук. " Магистрант Института информатики и телекоммуникаций.

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

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

Проблемы создания программного обеспечения

Учитывая указанные аспекты развития систем, в основе которых лежат программные средства, можно выделить ряд проблем, связанных с их созданием.

Основными проблемами, сопровождающими разработчиков подобного программного обеспечения, как правило, являются следующие:

- проблема рационального структурного построения комплекса программ, возникающая в условиях использования основных ресурсов ЭВМ не в полном объеме;

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

- проблема стандартизации программных средств, когда требуется стандартизация и комплексная автоматизация всего технологического процесса создания программ [4].

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

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

Предложенная еще в 1976 году А. Авижгнисом [1] методология мульти-версионного проектирования программных средств позволяет значительно

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

- мультиверсионная программа без избыточности;

- мультиверсионная программа с избыточностью;

- мультиверсионная программная система без избыточности;

- мультиверсионная программная система с избыточностью.

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

Вместе с тем использование методологии мультиверсионного программирования так же усложняет процесс построения программного средства, внося две основные проблемы, с которыми приходится сталкиваться, как разработчику, так и заказчику:

- усложнение процесса создания ПО;

- увеличение затрат, связанных с разработкой.

Именно с ними связана необходимость введения дополнительных ограничений на совместимость версий и нечеткость бюджета соответственно.

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

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

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

Однако этот подход не всегда верный [5]. Для получения наилучшего результата стоит рассматривать эту неточность в качестве неопределенности, поскольку нельзя отождествлять случайность и неопределенность. Учет неопределенности в модели уже не списывается на помехи, а требует специальных подходов при построении модели.

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

Всё это учитывается введением специальных ограничений в модель математического программирования.

Модель выбора структуры ПО с учетом рассматриваемых ограничений

Предлагаемая модель математического программирования, используемая для выбора структуры мультиверсионного программного обеспечения, имеет следующий вид:

т П

тах ( £(1)

п _

1 <Е ху < П' 1 = 1 т (2)

X - Хвр\ < у,, I = й (4)

L

1 <Е у, <1 (5)

I=1

Здесь др надежность отдельной версии модуля, ерр - её стоимость, т -количество модулей в программном средстве, п - число версий каждого модуля, доступных для выбора, Ь - количество ограничений, накладываемых на совместимость версии, В - количество выделяемых средств.

1, если для ^го модуля была выбранар-ая версия, Уi, р 0, в противном случае

0, если учитывается к-ое ограничение

1, если к-ое ограничение не учитывается

Ук :

Общая надежность системы Q выражается в модели целевой функцией (1). Учесть возможность выбора для каждого модуля хотя бы одной версии

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

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

Алгоритм решения модели

Данный алгоритм объединяет в себе принцип оптимальности динамического программирования Р. Беллмана и подход, предложенный Л. Заде и Р. Беллманом для задач нечеткого математического программирования. Описанный ещё в 1970 году, он направлен на представление множества ограничений и целей как нечетких подмножеств единого множества альтернатив. В этом случае нечеткое множество целей представляется функцией принадлежности д?(0, а нечеткое множество ограничений функцией /с(С). Выбор этих функций всецело возлагается на ЛПР и зависит от особенностей задачи в каждом конкретном случае. При пересечении множеств ограничений и целей, являющихся симметричными нечеткими множествами, мы получаем решение, сформулированное в тех же терминах нечетких множеств.

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

Общая схема алгоритма представлена ниже.

Шаг 1.

Выбрать функции принадлежности цели и ограничения на бюджет, соответственно /ь(<2) и /рС) на множестве альтернатив X.

Шаг 2.

Исключить из модели все версии модулей, порождающие ограничения. На первой итерации выбирается начальное значение Х0, соответствующее

минимальной стоимости и, как следствие, минимальному качеству, т.е. набор самых дешевых версий каждого модуля. При этом к = 0, где к - номер итерации алгоритма.

Шаг 3.

к = 1, выбираем произвольный модуль i, г= 1, т. Находим ¡ио(х^)-) и Ис(хр) У] = 1,п . тахршт^Х), ^(хр)) ^Хь т.е. выбираем ту комбинацию,

которая доставляет максимум в предыдущем выражении, получая тем самым решение, используемое для дальнейших расчетов.

Шаг 4.

Выпишем рекуррентное соотношение для произвольного к:

шщШп^Х(+к}Р)л^Х(+к)Р)шахрШп^(х(+к - 1 р) - 1 р). шахрШт^о(хр)л^с{хр) ^ Хк

Шаг 5.

к = к + 1 переход к шагу 4. Переход к шагу 6 происходит при выполнении условия к = т.

Шаг 6.

В модель вводится одна из исключенных ранее версий, соответствующая произвольно выбранному ограничению. Строятся дополнительные решения, количество которых зависит от самого ограничения. В противном случае при переборе всех исключенных версий переход к шагу 8.

Шаг 7.

Производится сравнение полученных решений с исходным и выбирается наилучшее, которое впоследствии становится исходным.

Переход к шагу 6.

Шаг 8.

Выписать окончательно получившееся решение.

Естественно полагать, что в зависимости от типа мультиверсионности, этапы алгоритма будут несколько отличаться. К примеру, если необходимо сформировать мультиверсионную систему с обязательным условием присутствия более одной версии для каждого модуля, то функции принадлежности ¡ио(0) и ^с(С) на первом этапе должны выбираться соответствующим образом. Так же в случае выбора более одной версии для каждого модуля на шаге 3 необходимо перебрать все возможные сочетания версий.

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

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

1. Авиженис А.Н. Гарантоспособные вычисления: от идей до реализации в проектах I А.Н. Авиженис, Ж.-К. Лапри II ТИИЭР. - 1986. - Т. 74, № 5. -С. 8-21.

2. Ковалев И.В. Надежность архитектуры программного обеспечения телекоммуникационных технологий I И.В. Ковалев, Н.В. Василенко, Р.В. Юну-сов; Международная научная конференция Telematica'2001. - СПб., 2001. -С. 23-24

3. Ковалев И.В., Нургалеева Ю.А., Ежеманская С.Н., Ерыгин В.Ю. Многоатрибутивное управление трудозатратами на разработку n-вариант-ных программных систем II Журнал «Фундаментальные исследования». -2011. - № 8 - С. 124-127.

4. Липаев В.В. Качество программного обеспечения I В.В. Липаев. -М.: Финансы и статистика, 1983. - 263 с.

5. Bellman R.E., Zadeh L.A., Decision-Making in Fuzzy Environment // Management Science. - 1970. - 17, № 4. - Р. 141-164.

ОСОБЕННОСТИ ИЗУЧЕНИЯ ЭКОНОМИЧЕСКОЙ ИНФОРМАЦИИ1

© Корабейников И.Н.*

Оренбургский государственный университет, г. Оренбург

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

Наука об информации достаточно молода, поэтому наблюдается некоторый разброс в определении понятия. Н. Винер определяет информацию как «обозначение содержания, черпаемого нами из внешнего мира в процессе приспособления к нему и приведения в соответствие с ним нашего мышления» [3]. Информация определяется через категорию «содержание внешнего мира» и напрямую увязана с человеком, его мышлением и процессом приспособления человека к явлениям и событиям внешнего мира. Иными словами, Винер утверждает, что информация вне человеческого сознания не существует. Многие современные представления о содержании понятия «информация» связаны с человеком и его способностью мыслить.

1 Работа выполнена в рамках Гранта Президента Российской Федерации для государственной

поддержки молодых российских ученых - кандидатов наук. Проект № МК-2939.2011.6.).

* Заведующий отделом Региональной конкурентоспособности и инвестиционного развития, кандидат экономических наук.

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