Надежность программного обеспечения

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

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

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

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

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

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

Модели надежности ПО

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

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

- число команд N в программе постоянно;

- при начальном числе ошибок Надежность программного обеспечения - student2.ru в ходе испытаний длитель­ностью Т их число снижается, Надежность программного обеспечения - student2.ru , новые ошибки в ходе исправлений не вносятся;

- относительное число исправленных в ходе испытаний оши­бок Надежность программного обеспечения - student2.ru и их изменение во времени характеризу­ют оставшееся число ошибок Надежность программного обеспечения - student2.ru и интенсив­ность их возникновения

Надежность программного обеспечения - student2.ru ,

Надежность программного обеспечения - student2.ru –коэффициент пропорциональности.

В ходе эксплуатации программ Надежность программного обеспечения - student2.ru и будет не ниже Надежность программного обеспечения - student2.ru , поскольку Надежность программного обеспечения - student2.ru .

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

Надежность программного обеспечения - student2.ru , получаем Надежность программного обеспечения - student2.ru

Для повышения точности определения Надежность программного обеспечения - student2.ru могут быть ис­пользованы статистические данные и метод максимального правдоподобия.

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

Наши рекомендации