- •Раздел 5 планирование работ по созданию программных продуктов
- •Тема 5.1. Структура разделения работ по созданию программного продукта
- •Тема 5.1.2 Оценка объемов и сложности программного продукта
- •Тема 5.1.3 Оценка технических, нетехнических и финансовых ресурсов для выполнения программного проекта
- •Тема 5.1.4 Оценка возможных рисков при выполнении программного проекта
- •Тема 5.1.5 Составление временного графика выполнения программного проекта
- •Тема 5.2. Управление требованиями к программному продукту
- •Тема 5.2.1 Общие сведения об управлении требованиями
- •Тема 5.2.2 Составление спецификаций по требованиям заказчика
- •Тема 5.3 этап разработки программного продукта
- •1.Кодирование
- •Тема 5.3.1 тестирование программного продукта
- •1. Общая характеристика тестирования и его цикл
- •Тема 5.3.1обеспечение надежности программных продук-тов
- •Тема 5.3.2 Методы обеспечения надежности на различных этапах жизненного цикла разработки программного продукта
Тема 5.3.1обеспечение надежности программных продук-тов
Используемые термины
При определении надежности ПП пользуются следующим! принятыми терминами.
Надежность — состояние, позволяющее избежать повреждений в момент совершения ошибки. Ошибки ПП происходят в сш дефектов или ошибок проекта, кодирования, организационным ошибок, неадекватной отладки и ошибок тестирования (определения понятиям «ошибка» и «дефект» даны в подразд. 5.4.3).
Отказоустойчивость ПП — свойство ПП, заключающееся в возможности коррекции отдельных ошибок при сохранении воз-' можности продолжения выполнения программы.
Проблема — отклонение от заданных технических характеристик или ожидаемых результатов.
Ошибка при обработке — вывод некорректных результатов npi выполнении процесса обработки.
Процесс — ограниченный ряд взаимосвязанных действий, в ходе осуществления которых используются один или больше типов исходных продуктов, а затем с помощью одного или нескольких преобразований создается конечный продукт, который представляет ценность для заказчика.
Отказ при выполнении процесса — событие, посредством которого ошибка в исходном продукте, используемом в процессе, порождает ошибку на выходе, которая в конечном итоге становится явной.
Сбой при выполнении процесса — сбой, имеющий отношение к используемым в процессе некорректным входным данным и вызывающий неправильное состояние процессе или системы, к которой относится процесс.
Устойчивость — см. определение в подразд. 8.4.
13.2. Основные понятия о надежности программных продуктов и методах ее обеспечения
того, что этот показатель наиболее важен для конечного пользователя, а факторы качества, связанные с изменением ПГТ и разработкой его новых версий, имеют определяющее значение для разработчиков ПП и групп технической поддержки. Вряд ли кому понравится программа либо полностью неработоспособная, либо некорректно работающая.
На рис. 13.1 представлена топология факторов качества, предложенная Р. Макколом, Б. Ричардсом и С.Уолтерсом в 1977 г.
Издание «IEEE. Standart Glossary of Software Engineering Terms» («IEEE. Перечень стандартных терминов, используемых в программной инженерии») определяет надежность ПП как способность системы или ее компонента выполнять требуемые функции в заданных условиях на протяжении указанного периода времени. Степень надежности ПП непосредственно зависит от совершенства пропесса разработки. Основной показатель, влияющий на надежность ПП — сложность разрабатываемых программ.
Процесс создания падежного ПП в отличие от аппаратного обеспечения не зависит от времени, что демонстрируют модели надежности аппаратного обеспечения и ПП, имеющие вид традиционных U-образных кривых, представленных соответственно На рис. 13.1 представлена топология факторов качества, предложенная Р. Макколом, Б. Ричардсом и С.Уолтерсом в 1977 г.
Издание «IEEE. Standart Glossary of Software Engineering Terms» («IEEE. Перечень стандартных терминов, используемых в программной инженерии») определяет надежность ПП как способность системы или ее компонента выполнять требуемые функции в заданных условиях на протяжении указанного периода времени. Степень надежности ПП непосредственно зависит от совершенства пропесса разработки. Основной показатель, влияющий на надежность ПП — сложность разрабатываемых программ.
Процесс создания падежного ПП в отличие от аппаратного обеспечения не зависит от времени, что демонстрируют модели надежности аппаратного обеспечения и ПП, имеющие вид традиционных U-образных кривых, представленных соответственно на рис. 13.2 и 13.3, где к — планируемое число сбоев.
Рисунок. 27- Топология факторов качества программною продукта
Корректность Эффективность Целостность Надежность Применимость
Рисунок 28- U-образная кривая надежности аппаратного обеспечения
Методы оценки надежности ПП окончательно еще не разрабо- I таны, однако если не выполнять адекватную оценку данных о случившихся сбоях, невозможным становится и выполнение расширенных статических моделей, требующихся для анализа реальной степени надежности. До сих пор еще не был разработан ни одиь надежный количественный метод оценки надежности, не содержащий чрезмерное число ограничений.
Степень надежности ПП можно улучшать с помощью различных методов, тем не менее, трудно достичь нужного соотношения между временем разработки, ее бюджетной стоимостью и кажущейся высокой ценой, уплаченной за достигнутую надежность П П.
В отличие от аппаратного обеспечения ПП с течением времени не «изнашивается», просто выявляются все новые и новые его дефекты. Изображенная на рис. 13.3 U-образная кривая демонстрирует распределение сбоев на протяжении эксплуатации программы. Проявление сбоев в ПП отличается от характера сбоев аппаратуры, причем их вероятность всегда выше нуля.
Рисунок 29- U-образная кривая надежности программных продуктов
При определении размера требуемых инвестиций для обеспечения желаемой надежности ПП необходимо учитывать вопросы, связанные с риском появления ненадежных программ. Баланс между затратами и достигаемой надежностью при проектировании ПП определяется критерием уменьшения указанного риска. Если достигаемая надежность не позволяет значительно уменьшить риск, то на ее обеспечение не стоит тратить дополнительных средств.
Большинство проблем надежности ПП не являются жизненно важными. Основная масса проблем, связанных с достижением надежности, относится к тестированию ПП.
Остановимся на рассмотрении четырех методов, обеспечивающих создание высоконадежного ПП:
прогнозирование ошибок — создание моделей надежности, анализ исторических данных, сбор информации об ошибках, профилирование операционной среды;
предотвращение ошибок — использование формальных методов, повторное использование программ, применение инструментов конструирования программ;
устранение ошибок — формальное инспектирование, верификация и аттестация;
обеспечение отказоустойчивости — использование методов мониторинга, верификация решений, анализ избыточности, исключительных ситуаций.
