УДК 004.052.2
В. А. Кулягин
МОДЕЛЬ ОЦЕНКИ НАДЕЖНОСТИ АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ ПРЕДПРИЯТИЕМ НА ОСНОВЕ СТАТИЧЕСКИХ ВЕРОЯТНОСТЕЙ КОМПОНЕНТОВ
Рассмотрен комплексный подход к оценке надежности автоматизированных систем управления предприятием в торговле на основных этапах жизненного цикла разработки. Разработан универсальный показатель надежности, применяемый как для оценки надежности конкретной разрабатываемой программноаппаратной системы на разных этапах жизненного цикла разработки, так и для сравнения надежности готовой системы с другими системами подобного класса.
Ключевые слова: модели оценки надежности, автоматизированная система управления предприятием.
В последние десятилетия проблема повышения надежности не ослабела, а, напротив, значительно обострилась. Это связано с действием ряда объективных причин, обусловленных бурным техническим прогрессом в новой области техники - информатике и вычислительной технике. Одной из таких причин является непрерывный рост сложности аппаратуры, который намного опережает рост качества элементной базы.
Говоря о другой составной части информационных систем - программном обеспечении (ПО), следует отметить, что оно также заметно влияет на надежность системы. Нарушение работоспособности ПО часто приводит к не менее тяжелым последствиям, чем отказы техники, но найти причину такого нарушения бывает крайне тяжело. Неправильная работа программ может провоцировать отказы технических устройств, устанавливая для них более тяжелые условия функционирования, поэтому вопросам обеспечения и поддержания надежности ПО всегда уделялось большое внимание [1]. Несмотря на создание большого количества методов и моделей исследования надежности программного обеспечения, единого подхода к решению этой проблемы предложено не было, причиной чего является уникальность каждой программной системы. Тем не менее создатели важных проектов стараются получить оценку надежности разрабатываемого ими ПО.
Одним из видов информационных систем является автоматизированная система управления предприятием (АСУП) - комплекс программных, технических, информационных, лингвистических, организационно -технологических средств и действий квалифицированного персонала, предназначенный для решения задач планирования и управления различными видами деятельности предприятия. Основу АСУП составляет БКР-система - программная система управления ресурсами предприятия.
Автоматизированные системы управления предприятием в торговле обладают более высокими требованиями к непрерывности и оперативности работы, чем в других сферах экономической деятельности. В связи с этим возникает вопрос исследования оценки и обеспечения надежности применительно к этому классу информационных систем.
Согласно классическому определению, надежность - это способность системы или компонента выполнять требуемые функции при определенных условиях за определенный период времени [2]. Надежность в широком смысле - комплексное свойство, которое в зависимости от назначения объекта и условий его эксплуатации может включать в себя свойства безотказности, долговечности, ремонтопригодности и сохраняемости. Для количественной оценки надежности используют как единичные показатели надежности, характеризующие только одно свойство надежности, и комплексные показатели надежности, так и характеризующие несколько ее свойств.
Рассмотрим основные факторы, влияющие на надежность ERP-систем в торговых организациях:
- область применения. Торговые предприятия можно разделять по видам продаж (оптовые, розничные, интернет-продажи), структуре организации (распределенная, централизованная), видам товара, количеству торговых точек и рабочих мест пользователей, количеству продаж товара;
- структура внедряемой ERP-системы, взаимодействие ERP-системы с другим программным обеспечением: обмен с бухгалтерской программой, розничной программой, сайтом (например, с сайтом, с которого ведется продажа товара), ПО карманного компьютера, банковским ПО и т. д.;
- использование специальных систем автоматизированного проектирования (САПР). Например, в программе 1С: Предприятие в качестве такой системы используется конфигурация «Система проектирования прикладных решений»;
- способ доступа к базе данных: файл-серверный, клиент-серверный;
- количество одновременно работающих пользователей информационной базы - от одного до нескольких тысяч;
- среда разработки: Microsoft Sql Server и Borland
Delphy, 1С: Предприятие, SAP R3, Microsoft
Dynamics, Oracle E-Business Suite и др.;
- количество и квалификация задействованных специалистов, структура коллектива разработчиков и организационное взаимодействие в нем;
- объем и сложность компонентов программной системы. Объем модуля - это количество строк кода
в нем. Сложностью в общем случае является функция взаимодействия элементов системы;
- методология тестирования, использования специальных инструментов для тестирования. Например, в 1С: Предприятие для этих целей используются конфигурации «Корпоративный инструментальный пакет», «Сценарное тестирование»;
- степень помехозащищенности алгоритмов, безопасное реагирование ПО на отклонения в алгоритмах (несрабатывание, неправильное срабатывание);
- приспособленность ПО к модернизации, адаптивность к изменению конфигурации, эффективность контроля проведенных модификаций, состояния версий [1].
Рассмотрим классификацию сбоев в АСУП. Сбой -это отклонение выхода системы от желаемого при выполнении кода. Сбой имеет следующие уровни: катастрофичный, высокий, средний, низкий, незначительный [3].
Все сбои в АСУП можно разделить на несколько классов:
а) сбои локальной сети и Интернета: зависание сетевого роутера, отсутствие интернет-связи, когда время устранения неисправности часто зависит от провайдера услуг;
б) сбои аппаратного обеспечения компьютеров и торгового оборудования:
- сбои и неполадки, вызванные несовместимостью отдельных устройств, версий драйверов и т. п.;
- сбои и неполадки, вызванные несоблюдением условий эксплуатации устройств;
- сбои и неполадки, вызванные неисправностью устройств;
- перегрев из-за отсутствия охлаждения или его низкого качества;
- статический разряд от прикосновения к отдельным элементам или системному блоку в целом;
- чрезмерное повышение напряжения питания в электросети, например из-за разряда молнии во время грозы;
в) сбои в операционной системе (ОС): ошибки в файловой системе жесткого диска, наличие ошибочных записей в системном реестре, отсутствие необходимых ресурсов. Эти ошибки могут быть результатом действия вредоносного ПО;
г) сбои прикладного программного обеспечения: программная несовместимость, зависание из-за перегруженности системы или конфликта блокировок транзакций, неверный или неточный результат вывода, отсутствие необходимых функций, отсутствие защиты «от дурака».
Автором предлагается модель оценки надежности АСУП, которая является модификацией модели оценки надежности, описанной в [4]. В этой модели входными показателями надежности компонентов являются вероятности их успешного срабатывания и приводится расчет значений надежности работы пользователей информационной системы через вероятности применения компонентов пользователями:
- полной надежности автоматизированной системы управления предприятием торговли ЯАСУШ за рабочее время V.
яасуп = П Яасуш _
I=1
к,
яасуп _, = П Я
= (1 - я,) • г / тг
(1)
(1а)
(2)
(3)
ЯАСУП = ^ Яг • Сг / ^Т, ^Т = ^ Сг , (4)
г=1 г=1
Я =Х[Я--хяТО ■■хя ■ ] Яп1
‘ г■ ТО г] инт гт л
С г
■=1
(5)
' Яап _ г * Яс _ г * *^УБД _ г * Япом _ г * Япл ,
где ЯАСУШ_, - надежность ,-й секции (магазина или склада) АСУП за время ^ I = 1, ..., Ы; N - количество секций (магазинов или складов) АСУП; К - максимальный индекс модуля ,-й секции; ЯАСУП - надежность АСУП в статической модели; Яи - надежность работы пользователя г за время t, г = 1, ..., К; Яi - надежность работы пользователя г в статической модели; Я] - надежность программного компонента ] для пользователя г, ] = 1, ..., Е; К - количество пользователей системы; Е - количество программных компонентов системы; t - интервал времени, за который определяется вероятность безотказной работы АСУП; ЯсуБд_/ - надежность подключаемой системы управления базами данных для пользователя г; Япл - надежность платформы БКР-системы, на основе которой разрабатывается программное решение; Яс_г - надежности локальной сети для пользователя г; ЯОС г - надежность операционной системы для пользователя г; Яап_г- - надежность аппаратного обеспечения персонального компьютера пользователя г; Япомг- - надежность помещения, в котором осуществляется работа пользователя г (включает в себя влияние климатических факторов: температуры, влажности, солнечного света - и факторов надежности электросети); ЯТО_] -надежность подключенного торгового оборудования для пользователя г, компонента ]; Яинт_] - надежность сети Интернет для пользователя г, компонента]; сС^ -средний интервал времени между двумя последовательными прогонами программы для пользователя г; Хг- - частота появления ошибок у пользователя г;
- коэффициент готовности системы 5АсУП.
о = Т -Т Т =1 у = -1П( ЯАСУПt} (6)
°ДСУП _ > 2 ’ ^ ’ 4 ■'
у
t
где Т - среднее время простоя системы вследствие отказа, определяемое экспертом; Т2 - среднее время появления отказа; у - частота появления отказов [4].
Рассмотрим последовательность действий для оценки и обеспечения надежности АСУП на всех этапах жизненного цикла ее разработки. Традиционно
2
выделяют шесть стадий выполнения проекта разработки программно-аппаратной системы.
Первая стадия - предпроектное обследование, постановка задачи.
На данной стадии составляются организационная и функциональная схемы предприятия, выявляются цели внедрения АСУП, важные организационные признаки, влияющие на проектирование, узкие (критичные) места бизнес-процессов, которым требуется уделять больше внимания при проектировании и разработке системы. Для уменьшения сложности разрабатываемой системы, а следовательно, увеличения ее общей надежности, выполняется оптимизация бизнес-процессов.
Вторая стадия - проектирование.
На этой стадии выбираются методологии разработки и тестирования, играющие немаловажную роль в обеспечении надежности; собирается команда разработчиков - специалистов необходимой квалификации, среди которых распределяются задачи, обязанности и сроки их выполнения; моделируется архитектура ПО, задающая структурные элементы системы и механизмы их взаимодействия [5]; определяется количество автоматизированных рабочих мест (АРМ) пользователей и их функции; в соответствии с архитектурой ПО подбирается аппаратное обеспечение (компьютеры, торговое оборудование, специализированные устройства), в случае необходимости на вычислительные машины устанавливаются операционные системы и дополнительное ПО; составляются перечни элементов, разрешенных к применению, с выделением наименее надежных из них, при этом если какие-либо комплектующие не удовлетворяют требованиям к надежности, то разрабатываются предложения по повышению их надежности; выбирается программная среда (БРР-система), на базе которой будет выполняться разработка и внедрение информационной системы; решается вопрос о применении специализированных устройств и программ обеспечения надежности.
Особенно большое значение для повышения качества и надежности технических систем при разработке ПО имеет использование систем автоматизированного проектирования, поскольку это позволяет существенно снизить количество проектных ошибок, повысить качество конструкторской и технологической документации, создать условия для многовариантного проектирования и выбора лучшего варианта, сократить сроки проектирования и освободить тем самым время на отработку технических решений, согласование параметров, проведение испытаний [1].
В процессе составления технического задания определяется конечная стоимость проекта для заказчика, длительность разработки, сроки запуска. В небольших организациях время разработки программной системы и ее стоимость оказываются не очень высокими, так как в этом случае обычно используются типовые решения с минимальным количеством доработок, а время внедрения складывается из времени установки, настройки и обучения пользователей работе с про-
граммой. В средних и больших организациях практически всегда требуются какие-либо доработки системы исходя из особенностей фирмы либо в особых случаях - разработка программной системы с нуля.
При составлении технического задания выбирается и обосновывается номенклатура показателей надежности, которые в дальнейшем необходимо обеспечить, оценить и подтвердить, устанавливаются нормы надежности и объемы испытаний на различных стадиях разработки, включая приемосдаточные испытания. На данной стадии применяются эмпирические модели оценки надежности ПО, такие как марковская модель, имитационная модель, модель количества ошибок на основании подсчета независимых входов и выходов и т. п.
Для уменьшения сложности архитектуры ПО выполняется ее оптимизация. При техническом проектировании особое внимание нужно уделять рациональной компоновке оборудования, которая должна обеспечить требуемые климатические и механические режимы работы элементов, упростить работу персонала по техническому обслуживанию и подготовке системы к работе. В составе технической документации разрабатываются карты режимов, позволяющие установить реальные значения характеристик электрической нагрузки (ток, напряжение, рассеиваемая мощность). На этой стадии впервые можно оценить показатели ремонтопригодности с учетом особенностей конструкции, системы контроля работоспособности и диагностирования.
Заложенный при проектировании уровень надежности проявляет себя в процессе применения системы только в том случае, когда выполняются условия и правила ее эксплуатации. В связи с этим большое значение имеют привлечение к эксплуатации высококвалифицированных специалистов, их подготовка и инструктаж по системе эксплуатационной документации: инструкции по эксплуатации (ИЭ), техническому описанию (ТО), техническому обслуживанию (ИО), формуляру (ФО), паспорту (ПС) и пр. Обеспечению безотказной работы и высокой готовности технических средств к применению по назначению также способствует инициатива персонала по прогнозированию и своевременному предупреждению отказов. Поэтому высокие показатели надежности являются, как правило, заслугой не только эксплуатационного и оперативного персонала, но и других специалистов [1]. Опыт показывает, что значительный эффект при решении задачи обеспечения качества и надежности дает системная организация работ на основе внедрения международных стандартов серии 180 9000.
Предложенная модель позволяет получить оценку надежности АСУП на этапе проектирования. Согласно формулам (1), (4) и на основании входных параметров, заносимых в систему экспертом, делается расчет предполагаемой надежности всей системы или ее отдельных секций. Если надежность неудовлетворительна, то архитектуру информационной системы необходимо оптимизировать.
Надежность разрабатываемых модулей определяется следующим образом:
Р-тест j 1 yj, (7)
' y j = cj \ % (8)
E0j Ej Еисп j, (9)
Cj 1 ' Сслj, (10)
E0j = k ■ Pj, (11)
Pj = tj • q , (12)
где у/ - частота появления ошибок в модуле/,/ = 1, р; £о/ - количество оставшихся ошибок в модуле / после тестирования; е/- - общее количество ошибок в модуле /, рассчитывается на основании количества независимых входов и выходов; еисп / - предполагаемое количество исправленных ошибок в модуле после тестирования; I - коэффициент пропорциональности, определяемый на основании данных о ранее выполненных проектах; ссл / - коэффициент сложности модуля /; // - время, затрачиваемое тестером на тестирование модуля /; с - квалификация тестера модуля /, 0 < с/ < 1.
Надежность компонента / для пользователя / рассчитывается по формуле:
Щ = РЩ Щтестр (13)
где РЩ/ - вероятность использования компонента /
р
пользователем /', I = 1, ..., К, / = 1, ..., р; ^ РЩ/ = 1.
/=1
Третья стадия - кодирование.
На этой стадии проводится как разработка принципиально новых модулей программной системы, так и доработка уже существующих. В случае необходимости выполняется перенос данных из ранних версий программ. Здесь применяются визуальные средства разработки, включенные в состав БКР-системы (различные редакторы, конструкторы), и непосредственно коддинг. Для получения оценки надежности используются эмпирические модели, основанные на характеристиках ПО (объем, сложность и т. д.), и такие показатели надежности, как количество ошибок каждого вида, критичность ошибок, плотность ошибок в коде.
Сложность - это одна из главных причин ненадежности программного обеспечения. Мерой сложности объекта является количество интеллектуальных усилий, необходимых для ее понимания. В общем случае сложность объекта является функцией взаимодействия между его компонентами. В борьбе со сложностью программного обеспечения необходимо привлекать две концепции из общей теории систем: первую концепцию - независимость, в соответствии с которой для минимизации сложности необходимо максимально усилить независимость компонентов системы, и вторую концепцию - иерархическую структуру, согласно которой каждый верхний уровень представляет собой совокупность структурных отношений между элементами нижних уровней.
Расчет надежности на стадии кодирования выполняется для того, чтобы определить те участки программной системы, которым следует уделить больше внимания при тестировании, а также оптимизировать
код с целью увеличения общей надежности системы. Применяя представленную ранее модель оценки надежности АСУП и подставляя в формулы уточненные на данном этапе коэффициенты сложности, можно рассчитать показатели надежности каждого модуля и системы в целом.
Четвертая стадия - тестирование.
В зависимости от характеристик ПО и ресурсов проекта используются следующие методы тестирования для ERP-систем: восходящий, нисходящий и модифицированный нисходящий [6], а также специальный инструментарий, позволяющий подготавливать тесты и проводить их в ручном или автоматическом режиме, применять нагрузочное тестирование без участия реальных пользователей для оценки производительности и масштабируемости системы, проверять прикладные решения на соответствие стандартам.
На данной стадии используются как статические, так и динамические модели оценки надежности ПО. Критериями, позволяющими оценить надежность ПО для статических моделей, являются количество ошибок каждого вида, критичность ошибок, количество отказов каждого вида, критичность отказов, вероятность безотказной работы; критериями оценки в динамических моделях - вероятность возникновения ошибки на интервале времени, средняя наработка на отказ, среднее время восстановления, коэффициент готовности.
Модели оценки надежности ПО на данной стадии используются:
- для определения времени тестирования до достижения заданного уровня надежности модуля;
- сравнения надежности разрабатываемой системы с надежностью других систем этого класса и получения оценки качества (аккредитации).
Для нахождения значений надежности каждого разработанного модуля можно воспользоваться моделью простейших испытаний Бернулли:
Лтест j = 1 - nj /mj, (14)
где nj - количество неудачных прогонов (с ошибкой); mj - количество удачных прогонов [7].
Показатели надежности всей системы определяются с помощью модели оценки надежности АСУП и подстановки полученных значений надежности модулей в формулу (13), а затем в формулы (4) и (1).
Пятая стадия - эксплуатация.
На этой и последующей стадии получается наиболее точная оценка надежности АСУП, которая используется для сравнения с эталонным значением и с оценками других систем, чтобы определить, насколько качественно была разработана система. Если значение оценки надежности оказывается ниже заданного уровня, то осуществляется возврат на предыдущие стадии жизненного цикла для доработки системы.
На данной стадии значения надежности каждого разработанного модуля и вероятности использования компонентов рассчитываются на основании статистики работы пользователей. Для этого применяются специальные программные измерительные мониторы, которые встраиваются в готовую систему. После
подстановки уточненных значений в формулы (13), (4), (1) вычисляются показатели надежности АСУП.
Шестая стадия - сопровождение.
В процессе сопровождения программ устраняются обнаруженные проектные ошибки, а также ошибки, внесенные при устранении обнаруженных ошибок, программы адаптируются к конфигурации технических средств и новых версий системного ПО, расширяются функции программного комплекса. Главными факторами, влияющими на надежность программного комплекса на этой стадии, являются его приспособленность к модернизации в связи с расширением функций, адаптивность к изменению конфигурации и других характеристик аппаратного комплекса, трудоемкость модификации программ, эффективность контроля проведенных модернизаций, модификаций, состояний версий, их тиражирования и эксплуатации [1].
Периодически выполняется пересчет показателей надежности системы по формулам (1), (4), (6) в связи с исправлением ошибок в программных компонентах, внесением новых ошибок при обновлении ПО, приработкой и устареванием аппаратных устройств.
Предлагаемая модель оценки надежности была успешно апробирована при работе под проектом внедрения информационной системы штрихкодирования и учета товара на складе торгового предприятия «Шелковые сети» на базе «1С: Предприятие 8». Во время выполнения проекта была разработана специализированная система поддержки принятия решений, с помощью которой в дальнейшем удалось вычислить основные показатели надежности на каждом этапе внедрения: надежность системы в статической модели, надежность системы за время t, коэффициент го-
товности системы и его максимальные отклонения на основе входных параметров, задаваемых экспертом. Результаты вычислений подтвердили эффективность данной модели оценки надежности. В дальнейшем необходимо доработать методологию принятия решений, на основе которой будет делаться выбор между той или иной моделью оценки надежности, входящей в комплексную модель.
Библиографические ссылки
1. Черкесов Г. Н. Надежность аппаратнопрограммных комплексов. СПб. : Питер, 2005.
2. ГОСТ 27.002-89. Надежность в технике. Основные понятия. Термины и определения. М. : Изд-во стандартов, 1989.
3. Юнусов Р. В. Система модельно-
алгоритмической поддержки многоэтапного анализа надежности программных средств : дис. ... канд. техн. наук : 05.13.01. Красноярск, 2003.
4. Кулягин В. А. Оценка надежности программноаппаратного информационно-управляющего комплекса в торговле. Новосибирск : Сибпринт, 2012,
С. 37-39.
5. Слободин М. Ю. Моделирование программной архитектуры и оценка надежности программного обеспечения систем управления и обработки данных. СПб. : Инфо-да, 2005.
6. Майерс Г. Искусство тестирование программ / пер. с англ. под ред. Б. А. Позина. М. : Финансы и статистика, 1982.
7. Романюк С. Г. Оценка надежности программного обеспечения / НИИ систем. исслед. Рос. акад. наук. М., 1994.
V. A. Kulyagin
MODELS OF RELIABILITY ESTIMATION OF AN ENTERPRISE AUTOMATED CONTROL SYSTEMS BASED ON STATIC PROBABILITY OF COMPONENTS
The research is directed on the decision of such scientific problem as creation of the complex approach for reliability estimation of an enterprise automated control systems in economics through the basic stages of life cycle of software design, creation of a universal indicator of reliability applied as for an reliability estimation of the concrete hardware-software system at different stages of life cycle, and for comparing the reliability of the complete system with other systems of the given class, as well.
Keywords: models of reliability estimation, automated management system of enterprise.
© KyMraH B. A., 2012