КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Ошибки ПО. Факторы, влияющие на надежность ПО
Факторы, влияющие на надежность ПО К числу основных факторов, влияющих на надежность ПО отнесены: - взаимодействие ПО с внешней средой (программно-аппаратная средства, трансляторы, ОС). Этот фактор вносит наименьший вклад в надежность ПО при современном уровне надежности аппаратуры, ОС и компиляторов; - взаимодействие с человеком (разработчиком и пользователем) (см. например метрику Холстеда); - организация ПО (проектирование, постановка задачи и способы их достижения и реализации) и качество его разработки. Этот фактор вносит наибольший вклад в надежность; - тестирование.
В борьбе со сложностью ПО используются две концепции: Иерархическая структура. Иерархия позволяет разбить систему по уровням понимания (абстракции, управления). Концепция уровней позволяет анализировать систему, скрывая несущественные для данного уровня детали реализации других уровней. Иерархия позволяет понимать, проектировать и описывать сложные системы. Независимость. В соответствии с этой концепцией, для минимизации сложности, необходимо максимально усилить независимость элементов системы. Это означает такую декомпозицию системы, чтобы её высокочастотная динамика была заключена в отдельных компонентах, а межкомпонентные взаимодействия (связи) описывали только низкочастотную динамику системы. Методы обнаружения ошибок, которые базируются на введении в ПО системы различных видов избыточности: Временная избыточность. Использование части производительности ЭВМ для контроля исполнения и восстановления работоспособности ПО после сбоя. Информационная избыточность. Дублирование части данных информационной системы для обеспечения надёжности и контроля достоверности данных. Программная избыточность включает в себя: взаимное недоверие - компоненты системы проектируются, исходя из предположения, что другие компоненты и исходные данные содержат ошибки, и должны пытаться их обнаружить; немедленное обнаружение и регистрацию ошибок; выполнение одинаковых функций разными модулями системы и сопоставление результатов обработки; контроль и восстановление данных с использованием других видов избыточности. Задача обеспечения ПО устойчивости к ошибкам направлены на применение методов минимизации ущерба, вызванного появлением ошибок, и включают в себя: - обработку сбоев аппаратуры; - повторное выполнение операций; - динамическое изменение конфигурации; - сокращенное обслуживание в случае отказа отдельных функций системы; - копирование и восстановление данных; - изоляцию ошибок.
Дается 4 группы принципов обеспечения надежности: - предупреждение ошибок; - обнаружение ошибок; - исправление ошибок; - обеспечение устойчивости к ошибкам. Действия, направленные на минимизацию ошибок и сбоев: - предотвращение ошибок за счет структурного программирования; - сокрытие информации или дозированный доступ к данным со стороны программных средств и объектов в объектно-ориентированном программировании; - отладка; - устойчивость к сбоям; - обработка исключительных ситуаций (перехват ошибок, например, деление на ноль) и локализация ошибок и сбоев; - восстановление программы после сбоя
В соответствии с ГОСТ 19.004-80 различают следующие виды работ, направленные на устранение ошибок в ПО: проверка, отладка и испытание программы. Чем интенсивнее использование программного изделия (ПИ), тем быстрее выявляются в нем ошибки. На рисунке приведена зависимость числа обнаруженных ошибок от числа использующих ПИ пользователей: где K – число пользователей, K1 > K2 > K3. Рис. 1 Интенсивность обнаружения ошибок от интенсивности использования
Процентные частоты появления ошибок в ПО по типам ошибок представлены в таблице 1.
Таблица 1 – Процентные частоты появления ошибок в ПО
Как видно из таблицы 1 основное количество ошибок делается из-за неверной спецификации или ТЗ. Эти ошибки, в свою очередь, могут быть разделены на следующие категории:
Таблица 2 – Категории ошибок в ПО
Из этих таблиц, кстати, следует, на что нужно обращать особое внимание при проведении валидации и верификации ПО (верификация отвечает на вопрос, правильно ли и качественно ли создана программа, а валидация (или аттестация) - на вопрос правильно ли работает программа).
1.4. Средства и способы повышения надёжности ПО
На основании методов обнаружения ошибок были разработаны следующие средства повышения надёжности ПО. Средства, использующие временную избыточность: авторизация доступа пользователей к системе, анализ доступных пользователю ресурсов, выделение ресурсов согласно ролям и уровням подготовки пользователей, разграничение прав доступа пользователей к отдельным задачам, функциям управления, записям и полям баз данных. Средства обеспечения надёжности, использующие информационную избыточность: ссылочная целостность баз данных обеспечивается за счёт системы внутренних уникальных ключей для всех информационных записей системы, открытая система кодирования, позволяющая пользователю в любой момент изменять коды любых объектов классификации, обеспечивает стыковку системы классификации АИС делопроизводство с ПО других разработчиков, механизмы проверки значений контрольных сумм записей системы, обеспечивают выявление всех несанкционированных модификаций (ошибок, сбоев) информации.
Способы обеспечения и повышения надежности ПО: - усовершенствование технологии программирования (например, формальное описание этапов программирования при помощи языка UML); - выбор алгоритмов, не чувствительных к различного рода нарушениям вычислительного процесса (использование алгоритмической избыточности); - резервирование программ - N -версионное программирование; - верификация и валидация программ с последующей коррекцией.
Дата добавления: 2015-04-30; Просмотров: 1774; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |