104981 (Базовые сведения о надежности информационных технологий управления), страница 7

2016-08-01СтудИзба

Описание файла

Документ из архива "Базовые сведения о надежности информационных технологий управления", который расположен в категории "". Всё это находится в предмете "менеджмент" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "менеджмент" в общих файлах.

Онлайн просмотр документа "104981"

Текст 7 страницы из документа "104981"

Для этой цели необходимо осуществлять систематический контроль за такими системами.

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

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

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

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

Поэтому, рассматривая программу как систему управления, можно сформулировать такие цели управления:

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

  2. снижение времени решения при приемлемом уровне достоверности ;

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

Такая система управления схематично показана на рис. 4.11.


Рис. 4.11. Модель программы

N - внешние воздействия

X - входные величины

Y - результат

R - конструктивные средства

S - управляющие средства

M - модель результата

A - блок выбора реакции

C1, C2 - управляющие воздействия

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

Внешние воздействия могут быть разного происхождения:

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

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

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

  4. вводимая в динамике выполнения информации.

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

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

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

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

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

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

М - модель результата. Здесь проверяется, соответствует ли результат работы средств R спланированной ранее модели, например, удовлетворяет ли он условию 0 Y 1.

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

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

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

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

Простейшим примером управляющего средства может служить оператор 1F. Например, 1F (Х=1) ТНЕN GО ТО А, ЕLSЕ В:=1

Здесь роль блока М играет вычисление предиката (Х=1), блок А определяет, какой из путей THEN или ЕLSЕ выбрать, а управляющие воздействия: GO TO A и B:=1. Как уже говорилось, целью программы, как системы управления может быть повышение достоверности результата или, по крайней мере, достижение приемлемого уровня достоверности. Для этого программа должна иметь достаточно мощные управляющие средства, обеспечивающие кроме измерения нужных характеристик, выбора и реализации управляющих воздействий, еще и повышение надежности программ.

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

Надежность программ. Разные подходы

Вопрос определения и повышения надежности программ приобретает в последнее время особую важность в связи с возросшим уровнем сложности применения ЭВМ.

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

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

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

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

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

Вторую группу определений подытоживает определение, приводимое Г.Майерсом: Надежность программного обеспечения есть вероятность его работы без отказов в течение определенного периода времени, рассчитанная с учетом стоимости (важности) для пользователя каждого отказа.

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

Надежная программа должна обладать двумя основными свойствами:

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

Такое свойство программы назовем безошибочностью.

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

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

Такое свойство программы назовем помехоустойчивостью.

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

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

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

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

Технологии повышения безошибочности программ

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

К первой группе методов относятся, в частности:

  1. использование принципов модульного программирования;

  2. использование принципов структурного программирования;

  3. применение языков высокого уровня;

  4. повышение уровня непроцедурности программы;

  5. методы синтеза программ по спецификациям и методы автоматического доказательства программ.

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

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

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

Технологии, применяемые при подготовке программы

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

  2. ограничение размера модуля (обычно, в пределах 20-100 операторов);

  3. семантическое выделение в отдельные модули (неформальная функционально-структурная декомпозиция);

  4. относительная независимость модуля. Связи между модулями как по управлению, так и по информации должны быть минимальными.

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

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее