Модель анализа надежности программных средств
Рассмотрим основные факторы, влияющие на надежность ПО ИС [6.1], и покажем их взаимосвязь со всеми компонентами системы ( см. рис. 6.1).
Выделим компоненты программного обеспечения ИС (объекты уязвимости), которые могут быть искажены или разрушены при наличии ошибок и дефектов ПО. Объектами уязвимости являются: вычислительный процесс, информация баз данных, объектный код программы, информация для потребителей.
Перечислим основные группы ошибок и дефектов, которые вызывают отказы объектов уязвимости.
Внутренние отказы и дефекты:
· Ошибки проектирования при постановке задач;
· Ошибки алгоритмизации задач;
· Ошибки программирования;
· Недостаточное качество средств защиты.
· Внешние отказы и дефекты:
· Ошибки персонала при эксплуатации;
· Искажения информации в каналах связи;
· Сбои и отказы аппаратуры ИС;
· Изменения конфигурации системы.
Укажем основные методы предотвращенияошибок и дефектов ПО ИС:
· Использование CASE-технологий на всех стадиях жизненного цикла ПО;
· Систематическое тестирование;
· Обязательная сертификация.
Выделим оперативные методы повышения надежности ПО, которые способствуют выполнению ИС требуемых функций при наличии дефектов и отказов ПО:
· Временная избыточность;
· Информационная избыточность;
· Программная избыточность
Рис. 6.1. Модель анализа надежности ПО ИС
Статистика ошибок ПО ИС
Статистический анализ ошибок ПО [5.1], который исследовался многими авторами [6.1, 6.2, 6.3, 6.4], может помочь разработчикам ПО правильно распределить усилия при проектировании и отладке программ. Детальный анализ выявленных ошибок показывает их глубокую связь с методами системного проектирования и структурного построения программ, типом языка программирования, уровнем автоматизации технологии разработки и со многими другими факторами.
Регистрация, сбор и анализ ошибок ПО – сложный и трудоемкий процесс. Кроме того, разработчики программ не склонны обнажать свои погрешности и качество собственного труда, поэтому достаточно трудно составить объективную картину зависимости зафиксированных ошибок ПО от разнообразных факторов программирования.
Первичные ошибки в ПО в порядке усложнения их обнаружения и увеличения ресурсов, необходимых для их устранения, можно разделить на следующие типы:
· технологические ошибки подготовки машинных носителей и документации, а также ввода программ в память ЭВМ и вывода их на средства отображения;
· программные ошибки вследствие неправильной записи исходного текста на языке программирования и ошибок трансляции программ в объектный код;
· алгоритмические ошибки, связанные с неполным формированием необходимых условий решения и некорректной постановкой задач;
· системные ошибки, обусловленные отклонением функционирования ПО в реальной системе и характеристик внешних объектов от предполагавшихся при проектировании ПО.
При автономной и в начале комплексной отладки доля системных ошибок невелика (около 10%), но она существенно возрастает ( 35 – 40% ) на завершающих этапах комплексной отладки. В процессе сопровождения системные ошибки являются преобладающими (около 80% от всех ошибок). Следует отметить и большое число команд, корректируемых при исправлении каждой такой ошибки (около 25 строк текста на 1 ошибку).