Модель анализа надежности программных средств

Рассмотрим основные факторы, влияющие на надежность ПО ИС [6.1], и покажем их взаимосвязь со всеми компонентами системы ( см. рис. 6.1).

Выделим компоненты программного обеспечения ИС (объекты уязвимости), которые могут быть искажены или разрушены при наличии ошибок и дефектов ПО. Объектами уязвимости являются: вычислительный процесс, информация баз данных, объектный код программы, информация для потребителей.

Перечислим основные группы ошибок и дефектов, которые вызывают отказы объектов уязвимости.

Внутренние отказы и дефекты:

· Ошибки проектирования при постановке задач;

· Ошибки алгоритмизации задач;

· Ошибки программирования;

· Недостаточное качество средств защиты.

· Внешние отказы и дефекты:

· Ошибки персонала при эксплуатации;

· Искажения информации в каналах связи;

· Сбои и отказы аппаратуры ИС;

· Изменения конфигурации системы.

Укажем основные методы предотвращенияошибок и дефектов ПО ИС:

· Использование CASE-технологий на всех стадиях жизненного цикла ПО;

· Систематическое тестирование;

· Обязательная сертификация.

Выделим оперативные методы повышения надежности ПО, которые способствуют выполнению ИС требуемых функций при наличии дефектов и отказов ПО:

· Временная избыточность;

· Информационная избыточность;

· Программная избыточность

 

Рис. 6.1. Модель анализа надежности ПО ИС

Статистика ошибок ПО ИС

Статистический анализ ошибок ПО [5.1], который исследовался многими авторами [6.1, 6.2, 6.3, 6.4], может помочь разработчикам ПО правильно распределить усилия при проектировании и отладке программ. Детальный анализ выявленных ошибок показывает их глубокую связь с методами системного проектирования и структурного построения программ, типом языка программирования, уровнем автоматизации технологии разработки и со многими другими факторами.

Регистрация, сбор и анализ ошибок ПО – сложный и трудоемкий процесс. Кроме того, разработчики программ не склонны обнажать свои погрешности и качество собственного труда, поэтому достаточно трудно составить объективную картину зависимости зафиксированных ошибок ПО от разнообразных факторов программирования.

Первичные ошибки в ПО в порядке усложнения их обнаружения и увеличения ресурсов, необходимых для их устранения, можно разделить на следующие типы:

· технологические ошибки подготовки машинных носителей и документации, а также ввода программ в память ЭВМ и вывода их на средства отображения;

· программные ошибки вследствие неправильной записи исходного текста на языке программирования и ошибок трансляции программ в объектный код;

· алгоритмические ошибки, связанные с неполным формированием необходимых условий решения и некорректной постановкой задач;

· системные ошибки, обусловленные отклонением функционирования ПО в реальной системе и характеристик внешних объектов от предполагавшихся при проектировании ПО.

При автономной и в начале комплексной отладки доля системных ошибок невелика (около 10%), но она существенно возрастает ( 35 – 40% ) на завершающих этапах комплексной отладки. В процессе сопровождения системные ошибки являются преобладающими (около 80% от всех ошибок). Следует отметить и большое число команд, корректируемых при исправлении каждой такой ошибки (около 25 строк текста на 1 ошибку).