Программное обеспечение как надежная система технологий управления

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

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

Рис. 13.4 Модель элементов ИТ управления программой

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

- ИТ повышения достоверности результата при ограничениях на время выполнения программы, на стоимость решения, на конфигурацию внешней памяти и т.п.;

- ИТ снижения времени решения при приемлемом уровне достоверности;

- ИТ снижения стоимости решения задачи при заданных границах времени выполнения программы, достоверности результата и т.д.

Рассмотрим внешние воздействия N, показанные на схеме (см. рис. 4). Они могут быть запланированными или неожиданными. Внешние воздействия могут быть разного происхождения:

- от технических средств;

- от человека (оператора);

- из других программ (подпрограмм);

- от вводимой в динамику выполнения программы информации.

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

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

Застраховаться от таких ситуаций можно только повышением надежности ИТ всего вычислительного процесса и, в частности, программного обеспечения.

Анализ методов повышения надежности программ показывает целесообразность введения дополнительных контуров управления для достижения этой цели.

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

Рассмотрим управляющие средства контура. Они осуществляют управление программой, олицетворяя и обратные связи в программе (см. рис.13.4).

М – модель результата. Здесь проверяется, соответствует ли результат работы программы спланированным ранее условиям, например, удовлетворяет ли он условию .

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

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

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

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

Простейшим примером управляющего средства может служить оператор IF. Например, IF (X=1) THEN GO TO A, ELSE B:=1. здесь роль блока М играет вычисление предиката (Х=1), блок А определяет, какой из путей – THEN или ELSE – выбрать, а управляющие воздействия: GO TO A и B:=1. как уже говорилось, целью программы как системы управления может быть повышение достоверности результата или по крайней мере достижение приемлемого уровня достоверности. Для этого программа должна иметь достаточно разнообразные ИТ управляющих средств, обеспечивающие кроме измерения нужных характеристик, выбора и реализации управляющих воздействий еще и повышение надежности программ.

Само выражение «повышение надежности» предполагает знание того, что такое надежность ИТ управления программой и как ее измерить (чтобы убедиться, что надежность повысилась).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: