1. Модели оценки показателей надежности программного обеспечения
Надежность и эксплуатация программного обеспечения.
Решение любой задачи АСОИиУ осуществляется при взаимодействии аппаратных средств и программного обеспечения (ПО), поэтому надежность работы АСОИиУ зависит не только от надежности оборудования, но также и от надежности ПО в равной степени.
Надежность ПО определяется его безотказностью и восстанавливаемостью. Безотказность характеризуется способностью выполнить все функции в процессе обработки информации. Восстанавливаемость характеризуется способностью восстановления работоспособности после отказов.
Основными показателями безотказности ПО является среднее время между отказами, вызванными ошибками в программе, а также интенсивность отказов. Причинами отказов ПО могут быть ошибки в программе, ошибки в вычислении, логические ошибки, ошибки ввода/вывода (
I/O), ошибки пользователей и т.д.Ошибки в программе. При создании сложных структурированных продуктов далеко не всегда удается обнаружить и устранить все ошибки на стадии отладки. Поэтому в эксплуатации могут послужить программы со скрещенными дефектами. Они проявляются при сочетании входных данных или режимов, непредусмотренных при отладке, т.к. все возможные комбинации практически невозможно предусмотреть. Именно скрытые ошибки в программе являются причиной отказа ПО.
Ошибки вычислений. К ним относятся неправильные кодировки форм, ошибки в знаках (арифметических), непрерывное преобразование и т.д. В результате ошибок вычислений появляется отказ в форме исправительного результата.
Логические ошибки. Неправильная передача управления, ошибки при формировании условия поиска и т.д. Логические ошибки приводят к искажению алгоритма обработки данных.
Ошибки
I/O. Недопустимые форматы данных, неправильное указание размещения на экране или бумаге, неверное задание числа разрядов и др.Ошибки пользователей. Неправильное понимание выводимых указаний, ввод недопустимых данных и т.д.
Основной характеристикой восстанавливаемости ПО является среднее время устранения ошибки. Оно состоит из времени поиска ошибки и времени ее устранения. Время восстановления работоспособности ПО зависит от многих факторов: сложности и объема программы, наличие ее объема комментариев, языка программирования, опыта и квалификации программиста.
Важной особенностью ПО по сравнению с аппаратурой является то, что с течением времени его надежность возрастает: в процессе функционирования программ ошибки устраняются.
Основным средством защиты от злоумышленных действий является ограничение доступа к аппаратуре и ПО. Для пользователей и обслуживающих специалистов устанавливается иерархическая схема доступа на приоритетной основе. Уровнями защиты могут быть: доступ к аппаратным средствам, доступ к отдельным полям, записям БД, доступ к файлам БД, доступ к ОС, доступ к сетевым средствам. необходимо также иметь возможность запоминать лиц, имеющих полномочия, к какой информации они были допущены, а также использованное машинное время. Доступ к программным средствам осуществляется на основе репутации пользователей, вход в систему осуществляется при помощи системы паролей. В зависимости от приоритета и полномочий пользователей он получает доступ от отдельных полей БД до ОС и выше.
Надежность программного обеспечения
Повышение эффективности функционирования предприятий невозможно без внедрения современных методов управления, базирующихся на автоматизированных информационных системах (АИС) управления предприятиями. Одними из самых серьезных проблем программного обеспечения (ПО) АИС является его дороговизна и низкая надежность. Многие специалисты считают первый из этих недостатков продолжением второго. Поскольку программное обеспечение по самой своей природе ненадежно, его тестирование и сопровождение требует постоянных существенных расходов
.Дадим определение основных понятий надежности ПО в соответствии с классической работой Г. Майерса [1]:
Из данных определений можно сделать важные выводы
:Основными причинами ошибок программного обеспечения являются:
Источниками ошибок (угрозами надежности) программного обеспечения являются [2]:
Методы проектирования надежного программного обеспечения можно разбить на следующие группы [1]:
Методы предупреждения ошибок концентрируются на отдельных этапах процесса проектирования программного обеспечения и включают в себя:
Сложность системы является одной из главных причин низкой надежности программного обеспечения. В общем случае, сложность объекта является функцией взаимодействия (количества связей) между его компонентами. В борьбе со сложностью ПО используются две концепции:
Это означает такую декомпозицию системы, чтобы её высокочастотная динамика была заключена в отдельных компонентах, а межкомпонентные взаимодействия (связи) описывали только низкочастотную динамику системы. Методы обнаружения ошибок базируются на введении в программное обеспечение системы различных видов избыточности:
Методы обеспечения устойчивости к ошибкам направлены на минимизацию ущерба, вызванного появлением ошибок, и включают в себя:
Важным этапом жизненного цикла программного обеспечения, определяющим качество и надёжность системы, является тестирование. Тестирование - процесс выполнения программ с намерением найти ошибки. Этапы тестирования:
Существуют две стратегии при проектировании тестов: тестирование по отношению к спецификациям (документации), не заботясь о тексте программы, и тестирование по отношению к тексту программы, не заботясь о спецификациях. Разумный компромисс лежит где-то посередине, смещаясь в ту или иную сторону в зависимости от функций, выполняемых конкретным модулем, комплексом или подсистемой.
Качество подготовки исходных данных для проведения тестирования серьёзно влияет на эффективность процесса в целом и включает в себя:
Однако, исчерпывающее тестирование всех веток алгоритма любой серьёзной программы для всех вариантов входных данных практически неосуществимо. Следовательно, продолжительность этапа тестирования является вопросом чисто экономическим. Учитывая, что реальные ресурсы любого проекта ограничены бюджетом и графиком, можно утверждать, что искусство тестирования заключается в отборе тестов с максимальной отдачей.
Ошибки в программах и данных могут проявиться на любой стадии тестирования, а также в период эксплуатации системы. Зарегистрированные и обработанные сведения должны использоваться для выявления отклонений от требований заказчика или технического задания. Для решения этой задачи используется система конфигурационного управления версиями программных компонент, база документирования тестов, результатов тестирования и выполненных корректировок программ. Средства накопления сообщений об отказах, ошибках, предложениях на изменения, выполненных корректировках и характеристиках версий являются основной для управления развитием и сопровождением комплекса ПО и состоят из журналов :
Рассмотрим применение описанных выше методов повышения надёжности программного обеспечения при разработке автоматизированной информационной системы комбината хлебопродуктов (АИС КХП) [3].
Предупреждение ошибок - лучший путь повышения надёжности программного обеспечения. Для его реализации была разработана методика проектирования систем управления предприятиями [4], соответствующая спиральной модели жизненного цикла ПО. Методика предусматривает последовательное понижение сложности на всех этапах анализа объекта. При декомпозиции АИС были выделены уровни управления системы, затем подсистемы, комплексы задач и так далее, вплоть до отдельных автоматизируемых функций и процедур. Методика базируется на методах структурно-функционального анализа (SADT), диаграммах потоков данных (DFD), диаграммах "сущность-связь" (ERD), методах объектно-ориентированного анализа (OOA) и проектирования (OOD).
На основании методов обнаружения ошибок были разработаны следующие средства повышения надёжности ПО.
Средства использующие временную избыточность: авторизация доступа пользователей к системе, анализ доступных пользователю ресурсов, выделение ресурсов согласно ролям и уровням подготовки пользователей, разграничение прав доступа пользователей к отдельным задачам, функциям управления, записям и полям баз данных.
Средства обеспечения надёжности, использующие информационную избыточность: ссылочная целостность баз данных обеспечивается за счёт системы внутренних уникальных ключей для всех информационных записей системы, открытая система кодирования, позволяющая пользователю в любой момент изменять коды любых объектов классификации, обеспечивает стыковку системы классификации АИС КХП с ПО других разработчиков, механизмы проверки значений контрольных сумм записей системы, обеспечивают выявление всех несанкционированных модификаций (ошибок, сбоев) информации, средства регистрации обеспечивают хранение информации о пользователе и времени последней модификации (ввода, редактирования, удаления) и утверждения каждой записи информационной системы, введение в структуры баз данных системы времени начала и окончания участия записи в расчётах позволяет ограничить объём обрабатываемой информации на любом заданном периоде, а также обеспечить механизмы блокировки информации для закрытых рабочих переводов, ведение служебных полей номеров версий баз данных и операционных признаков записей позволяет контролировать и предупреждать пользователей о конфликтах в случае несоответствия номеров версий модулей и структур баз, либо о нарушении технологических этапов обработки информации, средства автоматического резервного копирования и восстановления данных (в начале, конце сеанса работы или по запросу пользователей) обеспечивают создание на рабочей станции клиента актуальной копии сетевой базы данных, которая может быть использована в случае аварийного сбоя аппаратуры локальной и вычислительной сети и перехода на локальный режим работы и обратно.
Средства обеспечения надёжности, использующие программную избыточность: распределение реализации одноименных функций по разным модулям АИС КХП с использованием разных алгоритмов и системы накладываемых ограничений и возможностью сравнения полученных результатов; специальные алгоритмы пересчётов обеспечивают в ручном и автоматическом режимах переформирование групп документов, цепочек порождаемых документов и бухгалтерских проводок, что повышает эффективность и надёжность обработки информации; средства обнаружения и регистрации ошибок в сетевом и локальных протоколах; в программные модули системы встроены средства протоколирования процессов сложных расчётов с выдачей подробной диагностики ошибок; средства отладки и трассировки алгоритмов пользовательских бизнес-функций.
Средства обеспечивающие устойчивость системы к ошибкам: процедура обработки сбоев обеспечивает в автоматическом режиме несколько попыток повторного выполнения операций прежде, чем выдать пользователю сообщение об ошибке (например, для операций раздельного доступа к ресурсам, операций блокировки информации или обращения к внешним устройствам); средства динамического изменения конфигурации осуществляют контроль доступа к сетевым ресурсам, а в случае их недоступности или конфликта обеспечивают автоматический запуск системы по альтернативным путям доступа; средства контроля и обслуживания данных обеспечивают восстановление заголовков баз данных, восстановление индексных файлов, конвертацию модифицированных структур баз данных; средства слияния, копирования, архивирования и восстановления данных.
Для обеспечения качества программного обеспечения АИС КХП на этапе развития и сопровождения системы разработан комплекс программных средств обеспечивающий:
Использование рассмотренных в настоящей работе методов и средств обеспечения надёжности при проектировании и сопровождении автоматизированной информационной системы комбината хлебопродуктов обеспечило высокий уровень надёжности системы, необходимый для одновременной работы десятков пользователей производственной системы управления в реальном масштабе времени.
Модернизация программного обеспечения.
Модернизация программного обеспечения (ПО) – это мощное средство расширения его возможностей. К работам по модернизации ПО можно отнести: установку новой ОС или новой ее версии, установку драйверов вновь подключенных устройств, сжатие дисков дисковыми компрессорами, создание виртуальных дисков и т.д. Замена ОС делается, когда старая перестает удовлетворять пользователя. По соображениям использования памяти, применение новых программных продуктов, поддержка продвинутых технологий обработки данных и т.д. Новая ОС инсталлируется с загрузочных дискет – дистрибутива или с компакт – диска в соответствии с указаниями, которые выводятся на экран в процессе инсталляции. Инициализируется командой Setup. Установка программы требуется при подключении новых внешних устройств.
При работе в среде DOS новые драйверы помещаются в отведенных для них каталогах на жестком диске, а в файлы конфигурации , автозапуска записываются соответствующие команды, которые автоматически подключают драйвер при пуске компьютера. При работе в среде Win все необходимые драйверы хранятся в дистрибутиве ОС. Для их подключения можно воспользоваться утилитой
add new hard…., которая вызывается из главного меню: выбор установки + панель управления + добавить новое устройство.Для установки нового программного продукта под DOS надо вставить загрузочную дискету #1 дистрибутива в дисковод, ввести команду setup и далее следовать указаниям. Для установки Win программ это надо делать из Win 3.1, для этого требуется вставить диск #1 дистрибутива в дисковод, запустить
Win 3.1 выбрать в меню: file и run.В окне диалога
run надо ввести полную спецификацию команды setup (a:\setup.exe) или указать ее при помощи кнопки “обзор”.В среде
Win’95 для установки новой программы служит утилита - добавить новую программу, которая вызывается из главного меню выбором установки + панель управления.Сжатие дисков и кажущееся увеличение дискового пространства в 1,5 и 2 раза осуществляется при помощи дискового компрессора
drive space, а организация виртуального электронного диска делается командой run drive.