- •Размещено на http://www.Allbest.Ru/
- •2. Предмет изучения, цели и задачи, содержание дисциплины
- •3. Краткая история возникновения и развития теории надежности
- •4. Определение понятия надежность
- •2. Основные понятия теории надежности
- •1. Характер изменения выходного параметра объекта до момента возникновения отказа. По этому признаку различают следующие виды отказов:
- •3. Показатели надежности невосстанавливаемых и восстанавливаемых объектов
- •2. Показатели ремонтопригодности
- •3. Показатели долговечности
- •4. Показатели сохраняемости
- •5. Комплексные показатели надежности
- •2. Модель надежности невосстанавливаемого и восстанавливаемого элемента
- •3. Аналитические методы расчета надежности
- •4. Расчет надежности системы с параллельным соединением элементов
- •3. Задачи определительных испытаний
- •4. Контрольные испытания на надежность
- •2. Обеспечение надежности на всех этапах жизненного цикла объекта
- •9. Основы обеспечения сохранности информации
- •1. Возможные угрозы информации
- •2. Методы, средства и мероприятия по обеспечению сохранности данных
- •2. Факторы, создающие угрозу безопасности функционирования программных средств
- •3. Выбор и обоснование характеристик надежности по
- •2. Методы обеспечения надежности программных средств
- •3. Подход к обеспечению надежности №1 - Предупреждение ошибок
- •4. Подход к обеспечению надежности №2 - Обнаружение и исправление ошибок в программе
- •I. Тестирование для обнаружения ошибок в программе.
- •5. Подход к обеспечению надежности №3 - Обеспечение устойчивости программы к ошибкам
- •2. Классификация вычислительных систем
- •2. Оценка надежности и эффективности информационной системы по уровню обученности специалиста
- •Размещено на Allbest.Ru
2. Методы обеспечения надежности программных средств
Стало классическим утверждение, что ошибка в программе обходится тем дороже, чем позже она обнаружена. На самом же деле дорого обходится не ошибка, а опыт эксплуатации программы (т.е. общее количество ее запусков), независимо от того, проявились ошибки или нет. Перед пользователем программы, в которой проявились ошибки, возникает дилемма: продолжать ее эксплуатировать или установить модифицированную версию (разумеется, речь не идет о тех случаях, когда последствия ошибок могут быть катастрофическими). Следует еще раз подчеркнуть, что если программа подвергалась модификациям (в частности, в ней исправлялись ошибки), то при оценке надежности следует учитывать только запуски, выполненные с момента последней модификации: в результате модификации получается новая программа, с другим (возможно, худшим) показателем надежности, и вся прежняя статистика должна быть аннулирована. Этим частично объясняется тот факт, что пользователи порой предпочитают обновленным версиям программ старые, проверенные, эксплуатировавшиеся длительное время, даже если в них обнаружены погрешности: опыт эксплуатации стоит очень дорого, и даже если в программе выявлены ошибки, гораздо дешевле внести исправления и дополнения в инструкции к программе (если это, конечно, возможно), чем пожертвовать накопленным опытом.
Стремление разработчиков создавать бинарно совместимые семейства микропроцессоров находит дополнительное объяснение с позиций надежности программного обеспечения: если бы это удалось в полной мере, то опыт эксплуатации программ не приходилось бы аннулировать при переходе на новый тип процессора, что способствовало бы существенному повышению надежности использующихся программ.
Интересно сравнить характеристики надежности аппаратуры и компьютерной программы. Как известно, надежность физического устройства меняется со временем: в начале эксплуатации она растет (происходит "приработка" изделия), затем некоторое время остается постоянной и, наконец, начинает уменьшаться (эффект износа или "старения"). Говоря о надежности аппаратуры, имеют в виду именно среднюю фазу, на которой надежность постоянна. Всеми отмечается тот факт, что компьютерная программа не изнашивается, так что последней фазы для нее не существует, однако важно подчеркнуть, что первая фаза ("приработки" программы) тоже отсутствует: коррекция программы (независимо от причин, по которым она выполнялась) аналогична внесению изменений в конструкцию физического устройства, в результате чего получается новое устройство, с другим показателем надежности.
Рассмотрим теперь общие принципы обеспечения надежности ПС, что, является основным мотивом разработки ПС, задающим специфическую окраску всем технологическим процессам разработки ПС. Известны четыре подхода обеспечению надежности:
предупреждение ошибок;
обнаружение ошибок;
исправление ошибок;
обеспечение устойчивости к ошибкам.
3. Подход к обеспечению надежности №1 - Предупреждение ошибок
Целью подхода предупреждения ошибок - не допустить ошибок в готовых продуктах, в нашем случае - в ПС. Проведенное рассмотрение природы ошибок при разработке ПС позволяет для достижения этой цели сконцентрировать внимание на следующих вопросах:
борьба со сложностью,
обеспечение точности перевода,
преодоление барьера между пользователем и разработчиком,
обеспечение контроля принимаемых решений.
Этот подход связан с организацией процессов разработки ПС, т.е. с технологией программирования. И хотя, как мы уже отмечали, гарантировать отсутствие ошибок в ПС невозможно, но в рамках этого подхода можно достигнуть приемлемого уровня надежности ПС.
Методы борьбы со сложностью.
Сложность системы является одной из главных причин низкой надежности программного обеспечения. В общем случае, сложность объекта является функцией взаимодействия (количества связей) между его компонентами. Известны два общих метода борьбы со сложностью систем:
обеспечения независимости компонент системы;
использование в системах иерархических структур.
Обеспечение независимости компонент означает разбиение системы на такие части, между которыми должны остаться по возможности меньше связей. Одним из воплощений этого метода является модульное программирование.
Использование в системах иерархических структур позволяет локализовать связи между компонентами, допуская их лишь между компонентами, принадлежащими смежным уровням иерархии. Этот метод, по-существу, означает разбиение большой системы на подсистемы, образующих малую систему. Здесь существенно используется способность человека к абстрагированию.
Обеспечение точности перевода.
Обеспечение точности перевода направлено на достижение однозначности интерпретации документов различными разработчиками, а также пользователями ПС. Это требует придерживаться при переводе определенной дисциплины. Майерс предлагает использовать общую дисциплину решения задач, рассматривая перевод как решение задачи. Лучшим руководством по решению задач он считает книгу Пойа "Как решать задачу". В соответствии с этим весь процесс перевода можно разбить на следующие этапы:
Поймите задачу;
Составьте план (включая цели и методы решения);
Выполните план (проверяя правильность каждого шага);
Проанализируйте полученное решение.
Преодоление барьера между пользователем и разработчиком.
Как обеспечить, чтобы ПС выполняла то, что пользователю разумно ожидать от нее? Для этого необходимо правильно понять, во-первых, чего хочет пользователь, и, во-вторых, его уровень подготовки и окружающую его обстановку. Для преодоление барьера между пользователем и разработчиком при разработке ПС следует привлекать пользователя для участия в процессах принятия решений, а также тщательно освоить особенности его работы разработчику (лучше всего - побывать в его "шкуре").
Контроль принимаемых решений.
Обязательным шагом в каждом процессе (этапе) разработки ПС должна быть проверка правильности принятых решений. Это позволит обнаруживать и исправлять ошибки на самой ранней стадии после ее возникновения, что, во-первых, существенно снижает стоимость ее исправления и, во-вторых, повышает вероятность правильного ее устранения.
С учетом специфики разработки ПС необходимо применять везде, где это возможно смежный контроль, сочетание как статических, так и динамических методов контроля.
Смежный контроль означает, проверку полученного документа лицами, не участвующими в его разработке, с двух сторон: во-первых, со стороны автора исходного для контролируемого процесса документа, и, во-вторых, лицами, которые будут использовать полученный документ в качестве исходного в последующих технологических процессах. Такой контроль позволяет обеспечивать однозначность интерпретации полученного документа.
Сочетание статических и динамических методов контроля означает, что нужно не только контролировать документ как таковой, но и проверять, какой процесс обработки данных он описывает. Это отражает одну из специфических особенность ПС (статическая форма, динамическое содержание).
