Выбор и обоснование характеристик надежности ПО
Выбор, установление и утверждение характеристик оценки надежности и сопоставления с требованиями спецификаций связано с определенными этапами жизненного цикла программного средства. Под жизненным циклом ПС (software life cycle) понимают весь период его разработки и эксплуатации (использования), начиная от момента возникновения замысла ПС и кончая прекращением всех видов его использования. Жизненный цикл охватывает довольно сложный процесс создания и использования ПС (software process). Этот процесс может быть организован по-разному для разных классов ПС и в зависимости от особенностей коллектива разработчиков.
В простейшем варианте набор этапов жизненного цикла таков:
· системный анализ (анализ требований);
· проектирование (предварительное и детальное);
· кодирование и отладка ("программирование");
· тестирование;
· эксплуатация (хранение и внедрение) и сопровождение.
В ходе системного анализа и предпроектной подготовки определяются назначение и основные функциональные характеристики ПС, оценивается возможная эффективность применения, устанавливаются требования к надежности и формируется техническое задание на разработку. Основными факторами, определяющими появление ошибок при выработке требований к ПО и влияющими на надежность, являются:
1) масштабность и сложность заданий на ПО, многофункциональность, универсальность, большой объем обрабатываемой информации,.
2) сложность общения специалистов различных профессий, участвующих в выработке общих требований и их интерпретации в специальных требованиях к математическому, информационному и программному обеспечению.
Ошибки в выработке требований к ПО и выбор его структуры являются основными ошибками (причинами отказов) ПО, обладающих большой устойчивостью на всех этапах жизненного цикла и свойством в большой степени разрушать структуру ПО при попытке их устранения.
На этапе проектирование закладывается корректность программ и основными влияющими факторами являются:
1) технология разработки
2) структурная упорядоченность программ и данных, стандартизация структуры единиц ПО;
3) уровень автоматизации проектирования и испытаний
4) выбор способов и критериев отладки
5) создание инструментальной среды
На этапе эксплуатации ПО определяющими факторами надежности являются полнота и точность спецификаций; степень помехозащищенности программ; обнаружение, диагностирование и документирование отклонений в алгоритмах функционирования, характерных для реальных условий; безопасное реагирование ПС на отклонения в алгоритмах; полное документирование каждого изменения в программах; вызванного обнаруженными проектными ошибками.
На этапе сопровождения устраняют обнаруженные проектные ошибки, а также ошибки, внесенные при устранении первых, программы тиражируются и адаптируются к конфигурации технических средств и новых версий системного ПО, расширяется пользовательский интерфейс. Главным свойством надежности ПО является восстанавливаемость (приспособленность к модернизации).
Вопросы для самоконтроля.
1. Дайте определение надежности ПО.
2. Что понимается под отказом ПО?
3. Чем различается понятие отказа аппаратуры и ПО.
4. Какие свойства надежности, присущие аппаратуре не применимы к ПО?
5. Укажите внутренние и внешние факторы, влияющие на надежность ПО.
6. Перечислите основные свойства надежности программ.
7. Как спецификация программы влияет на выбор показателей надежности ПО при проектировании?