Выбор и обоснование характеристик надежности ПО

Выбор, установление и утверждение характеристик оценки надежности и сопоставления с требованиями спецификаций связано с определенными этапами жизненного цикла программного средства. Под жизненным циклом ПС (software life cycle) понимают весь период его разработки и эксплуатации (использования), начиная от момента возникновения замысла ПС и кончая прекращением всех видов его использования. Жизненный цикл охватывает довольно сложный процесс создания и использования ПС (software process). Этот процесс может быть организован по-разному для разных классов ПС и в зависимости от особенностей коллектива разработчиков.

В простейшем варианте набор этапов жизненного цикла таков:

· системный анализ (анализ требований);

· проектирование (предварительное и детальное);

· кодирование и отладка ("программирование");

· тестирование;

· эксплуатация (хранение и внедрение) и сопровождение.

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

1) масштабность и сложность заданий на ПО, многофункциональность, универсальность, большой объем обрабатываемой информации,.

2) сложность общения специалистов различных профессий, участвующих в выработке общих требований и их интерпретации в специальных требованиях к математическому, информационному и программному обеспечению.

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

На этапе проектирование закладывается корректность программ и основными влияющими факторами являются:

1) технология разработки

2) структурная упорядоченность программ и данных, стандартизация структуры единиц ПО;

3) уровень автоматизации проектирования и испытаний

4) выбор способов и критериев отладки

5) создание инструментальной среды

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

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

Вопросы для самоконтроля.

1. Дайте определение надежности ПО.

2. Что понимается под отказом ПО?

3. Чем различается понятие отказа аппаратуры и ПО.

4. Какие свойства надежности, присущие аппаратуре не применимы к ПО?

5. Укажите внутренние и внешние факторы, влияющие на надежность ПО.

6. Перечислите основные свойства надежности программ.

7. Как спецификация программы влияет на выбор показателей надежности ПО при проектировании?