Загрузка...

Раздел 1. Основные факторы, определяющие надежность функционирования программных средств.


Курс лекций.

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

1.1. Качество программного обеспечения

Качество программного обеспечения (ПО) может быть описано большим количеством разнородных характеристик. Необходимо учесть совокупность всех характеристик, важных для всех заинтересованных сторон. Понятие качества ПО может быть выражено некоторой структурированной системой характеристик. Такая система характеристик называется моделью качества.
В 1991 году в качестве стандартной была принята модель качества программного обеспечения, определенная международным стандартом ISO 9126. В ней оценка качества ПО основана на трехуровневом рассмотрении:
1. характеристики,
2. подхарактеристики,
3. метрики.
Стандарт ISO 9126 определяет 6 характеристик качества ПО:
1. функциональность (functionality),
2. надежность (reliability),
3. практичность или удобство использования (usability),
4. эффективность (efficiency),
5. сопровождаемость (maintainability),
6. переносимость или мобильность (portability).
Функциональность – это способность программного продукта выполнять установленные функции при определенных условиях. Функциональность определяется следующими подхарактеристиками:
1. пригодность к определенной работе(suitability),
2. точность, правильность (accuracy),
3. способность к взаимодействию (interoperability),
4. защищенность (security),
5. соответствие стандартам и правилам (compliance).
Надежность – это свойство программного продукта сохранять работоспособность (т.е. выполнять заданные функции с параметрами, установленными технической документацией) в заданных условиях. Надежность определяется следующими подхарактеристиками:
1. зрелость, завершенность (обратна к частоте отказов) (maturity),
2. устойчивость к отказам (fault tolerance),
3. способность к восстановлению работоспособности при отказах (recoverability),
4. соответствие стандартам надежности (reliability compliance).
Практичность или применяемость – это способность программного продукта быть понятным, изучаемым, применимым и привлекательным для пользователя в заданных условиях. Практичность определяется следующими подхарактеристиками:
1. понятность (understandability),
2. удобство обучения (learnability),
3. работоспособность (operability),
4. привлекательность (attractiveness),
5. соответствие стандартам практичности (usability comp-liance).
Эффективность – это свойство ПО, характеризующее соответствие используемых программным продуктом ресурсов качеству выполнения своих функций при заданных условиях.
Подхарактеристики эффективности:
1. временные характеристики (time behaviour),
2. использование ресурсов (resource utilisation),
3. соответствие стандартам эффективности (efficiency comp-liance).
Сопровождаемость – это свойство программного продукта быть модифицированным. Сопровождаемость определяется следующими подхарактеристиками:
1. анализируемость (analyzability),
2. изменяемость, удобство внесения изменений (change-ability),
3. риск возникновения неожиданных эффектов при внесении изменений или стабильность (stability),
4. тестируемость, удобство проверки (testability),
5. соответствие стандартам сопровождаемости (maintaina-bility compliance).
Переносимость – способность программного продукта быть переносимым из одной среды в другую. Переносимость определяется следующими подхарактеристиками:
1. адаптируемость (adaptability),
2. устанавливаемость, удобство установки (installability),
3. способность к сосуществованию с другим ПО (coexistence),
4. удобство замены другого ПО данным (replaceability),
5. соответствие стандартам переносимости (portability compliance).
Принятые в 2001 году части 2 и 3 стандарта ISO 9126 определяют набор метрик качества ПО. В качестве примера таких метрик приведем следующие:
1. Полнота реализации функций. Используется для измерения пригодности.
2. Корректность реализации функций. Используется для измерения пригодности.
3. Отношение числа обнаруженных дефектов к прогнозируемому. Используется для определения зрелости.
4. Отношение числа проведенных тестов к общему их числу. Используется для определения зрелости.
5. Отношение числа доступных проектных документов к указанному в их списке. Используется для измерения анализируемости.
Заметим, что третья и четвертая метрики показывают, что качество ПО зависит не только от самого ПО как объекта материального мира, но и от его восприятия заинтересованными лицами: разработчиками, пользователями, заказчиками и др. Действительно, не изменяя самого ПО, можно повысить его качество только за счет проведения некоторых еще не проведенных тестов, поскольку значение четвертой метрики при этом увеличится.

1.2. Основные способы удостоверения качества и надежности программных средств

Процессы верификации, валидации и сертификации программных средств служат для удостоверения и подтверждения их качества и надежности.
Верификация – это процесс определения того, что программное средство разработано в соответствии со всеми требованиями к нему, или что результаты очередного этапа разработки соответствуют ограничениям, сформулированным на предшествующих этапах.
Верификация является неотъемлемой частью работ при коллективной разработке ПС. При этом в задачи верификации включается контроль результатов одних разработчиков при передаче их в качестве исходных данных другим разработчикам.
Валидация — это проверка того, что сам программный продукт правилен, т.е. подтверждение того, что он действительно удовлетворяет потребностям и ожиданиям пользователей, заказчиков и других заинтересованных сторон.
Согласно стандарту IЕЕЕ 1012-1986, верификация представляет собой процесс оценивания системы или компонента с целью определить, удовлетворяют ли результаты некой фазы условиям, наложенным в начале данной фазы. Валидация в этом же стандарте определяется, как процесс оценивания системы или компонента во время или по окончании процесса разработки с целью определить, удовлетворяет ли она указанным требованиям.
Международный стандарт ISO/IEEE 0002 определяет сертификацию соответствия как действие 3-й стороны, доказывающее, что обеспечивается необходимая уверенность в том, что продукция, процесс или услуга соответствует конкретному стандарту или другому нормативному документу.
В процессе определения надежности ПС применяются следующие понятия:
Отказ – это событие, которое заключается в прекращении выполнения программным средством требуемых функций с учетом заданных ограничений. Причиной отказа, как правило, является проявление дефектов, оставшихся невыявленными.
Дефект – это программная аномалия, некорректное определение операций, процесса, данных в программе или программной спецификации.
Неисправность – это состояние, в котором программа не способна выполнять требуемые функции. Состояние неисправности возникает после возникновения отказа.
Ошибка – это действие человека, в результате которого в программное обеспечение вносится дефект.
Измерение – это процесс определения количественного или качественно значения атрибутов объекта оценки.
Показатель – это абсолютное значение атрибутов программы или процесса разработки, т. е. количественная оценка степени, в которой ПС или процесс обладает заданным свойством.
Метрика – это качественная или количественная характеристика ПО или процесса его разработки. При определении метрик важную роль играет шкала и метод измерения. Метрики позволяют оценить уровень качества и надежности программных продуктов и процессов и выявить имеющиеся проблемы.
1.3. Теория надежности программных средств

Неравномерность распределения и нестабильность появления ошибок при применении сложных программных комплексов не позволяет рассчитывать их надежность классическими методами теории надежности технических систем. Работоспособность сложных программ в реальном времени является предметом изучения теории надежности программных средств. Ее основные задачи:
1. Формулирование основных понятий, используемых при исследовании и применении показателей надежности программных средств.
2. Выявление и исследование основных факторов, определяющих характеристики надежности сложных ПС.
3. Выбор и обоснование критериев надежности для комплексов программ различного типа и назначения.
4. Исследование дефектов и ошибок, а также динамики их изменения при отладке и сопровождении.
5. Исследование и разработка методов структурного построения сложных ПС, обеспечивающих им необходимую надежность.
6. Исследование методов и средств контроля и защиты от искажения программ, вычислительного процесса и данных путем использования различных видов избыточности.
7. Разработка методов и средств определения и прогнозирования характеристик надежности в жизненном цикле комплексов программ, с учетом их функционального назначения, сложности и технологии разработки.
Результаты решения этих задач являются основой для создания современных сложных ПС с заданными показателями надежности.

Загрузка...