Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Методы обеспечения надежности программного обеспеченияОдними из самых серьезных проблем программного обеспечения является его дороговизна и низкая надежность. Многие специалисты считают первый из этих недостатков продолжением второго. Поскольку программное обеспечение по самой своей природе ненадежно, его тестирование и сопровождение требует постоянных существенных расходов. Дадим определение основных понятий надежности ПО в соответствии с классической работой Майерса Г. [85]. В программном обеспечении имеется ошибка, если оно не выполняет того, что пользователю разумно от него ожидать. Отказ программного обеспечения – это появление в нем ошибки. Надежность программного обеспечения – есть вероятность его работы без отказов в течение определенного периода времени, рассчитанного с учетом стоимости для пользователя каждого отказа. Из данных определений можно сделать важные выводы: · надежность программного обеспечения является не только внутренним свойством программы; · надежность программного обеспечения – это функция как самого ПО, так и ожиданий (действий) его пользователей. Основными причинами ошибок программного обеспечения являются: · большая сложность ПО, например, по сравнению с аппаратурой ЭВМ; · неправильный перевод информации из одного представления в другое на макроуровне и микроуровне. На макроуровне, уровне проекта, осуществляется передача и преобразование различных видов информации между организациями, подразделениями и конкретными исполнителями на всех этапах жизненного цикла ПО. На микроуровне, уровне исполнителя, производится преобразование информации по схеме: получить информацию – запомнить – выбрать из памяти (вспомнить) – воспроизвести информацию (передать). Источниками ошибок (угрозами надежности) программного обеспечения являются: · внутренние: ошибки проектирования, ошибки алгоритмизации, ошибки программирования, недостаточное качество средств защиты, ошибки в документации; · внешние: ошибки пользователей, сбои и отказы аппаратуры ЭВМ, искажение информации в каналах связи, изменения конфигурации системы. На основании анализа работ Майерса Г., Липаева В.В., Калбертсона Р., Брауна К., Бейзера Б. и других авторов [85, 73-75, 80, 41, 11, 1, 7, 153], посвященных вопросам обеспечения качества и надежности при разработке программных систем, проведена классификация методов проектирования надежного программного обеспечения [110, 119, 120], представленная на рис. 2.11. Эти методы в соответствии с их целями можно разбить на следующие группы: · предупреждение ошибок, методы позволяющие минимизировать или исключить появление ошибки; · обнаружение ошибок, методы направленные на разработку дополнительных функций ПО, помогающих выявить ошибки; · обеспечение устойчивости к ошибкам, дополнительные функции ПО, предназначенные для исправления ошибок и их последствий и обеспечивающие функционирование системы при наличии ошибок. Методы предупреждения ошибок концентрируются на отдельных этапах процесса проектирования программного обеспечения и включают в себя: · методы, позволяющие справиться со сложностью системы; · методы достижения большей точности при переводе информации; · методы улучшения обмена информацией; · методы немедленного обнаружения и устранения ошибок на каждом шаге (этапе) проектирования, не откладывая их на этап тестирования программы. Сложность системы является одной из главных причин низкой надежности программного обеспечения. В общем случае, сложность объекта является функцией взаимодействия (количества связей) между его компонентами. В борьбе со сложностью ПО используются две концепции: · Иерархическая структура. Иерархия позволяет разбить систему по уровням понимания (абстракции, управления). Концепция уровней позволяет анализировать систему, скрывая несущественные для данного уровня детали реализации других уровней. Иерархия позволяет понимать, проектировать и описывать сложные системы. · Независимость. В соответствии с этой концепцией, для минимизации сложности, необходимо максимально усилить независимость элементов системы. Это означает такую декомпозицию системы, чтобы её высокочастотная динамика была заключена в отдельных компонентах, а межкомпонентные взаимодействия (связи) описывали только низкочастотную динамику системы. Методы обнаружения ошибок базируются на введении в программное обеспечение системы различных видов избыточности: · Временная избыточность. Использование части производительности ЭВМ для контроля исполнения и восстановления работоспособности ПО после сбоя. · Информационная избыточность. Дублирование части данных информационной системы для обеспечения надёжности и контроля достоверности данных. · Программная избыточность включает в себя: взаимное недоверие – компоненты системы проектируются, исходя из предположения, что другие компоненты и исходные данные содержат ошибки, и должны пытаться их обнаружить; немедленное обнаружение и регистрацию ошибок; выполнение одинаковых функций разными модулями системы и сопоставление результатов обработки; контроль и восстановление данных с использованием других видов избыточности. Методы обеспечения устойчивости к ошибкам направлены на минимизацию ущерба, вызванного появлением ошибок, и включают в себя: · Методы динамической избыточности обеспечивают динамическое изменение конфигурации и повторное выполнения операций. · Методы отступления реализуют обработку ошибок и сокращенное обслуживание в случае отказа отдельных функций системы. · Методы изоляции ошибок обеспечивают: контроль действий пользователей; обработку сбоев аппаратуры; анализ корректности данных; копирование и восстановление данных. На основании перечисленных методов проектирования надежного ПО в составе автоматизированных систем управления предприятиями разрабатываются дополнительные средства повышения надёжности ПО.
|