- •Содержание
- •Введение
- •Раздел 1 общие положения о стандартах Тема 1 Основные понятия
- •Нормативные документы по стандартизации и виды стандартов
- •1.2 Схема классификации стандартов в области информационных технологий
- •1.3 Стандарты в области программного обеспечения
- •1.4 Стандарты комплекса гост 34 на создание и развитие автоматизированных систем
- •1.5 Сертификация
- •Тема 2 Организации, разрабатывающие стандарты
- •2.2 Международные организации, разрабатывающие стандарты
- •2.3 Закрепление интеллектуальной собственности в Республике Беларусь
- •2.4 Внутрифирменные (внутрикорпоративные) стандарты
- •Раздел 2 жизненный цикл программного обеспечения Тема 3 Систематизация процессов жизненного цикла
- •3.1 Жизненный цикл программного обеспечения и его стандартизация
- •3.2 Систематизация процессов жизненного цикла программного средства
- •3.3 Основные процессы жизненного цикла программного средства
- •3.4 Вспомогательные и организационные процессы жизненного цикла программного средства
- •Тема 4 Основные модели жизненного цикла
- •4.1 Классический жизненный цикл программных средств
- •4.2 Макетирование
- •4.3 Стратегии конструирования программных средств
- •4.4 Спиральная модель жизненного цикла программных средств
- •4.5 Компонентно–ориентированная модель
- •Раздел 3 стандарты документирования программных средств Тема 5 Общая характеристика проблем и задач документирования программного обеспечения
- •5.1 Проблемы и задачи создания программной документации
- •5.2 Общая характеристика состояния в области документирования программных средств
- •5.3 Основные недостатки еспд
- •Тема 6 Единая система программной документации
- •6.1 Общая характеристика Единой системы программной документации
- •6.2 Виды программ и программных документов (гост 19.101–77 еспд)
- •6.3 Стадии разработки (гост 19.102–77 еспд)
- •6.4. Краткая характеристика некоторых госТов по программной документации
- •Раздел 4 надежность и качество программного обеспечения Тема 7 Основные понятия и показатели надежности программного обеспечения
- •7.1 Проблема обеспечения надежности сложных информационных систем
- •7.2 Пути обеспечения надежности сложных информационных систем
- •7.3 Особенности применения основных понятий теории надежности сложных систем к жизненному циклу и оценке качества программного обеспечения
- •7.4 Показатели качества и надежности программных средств
- •Тема 8 Дестабилизирующие факторы и методы обеспечения надежности функционирования программных средств
- •8.1 Модель факторов, определяющих надежность программных средств
- •8.2 Методы обеспечения надежности программных средств
- •8.3 Систематизация принципов и методов обеспечения надежности в соответствии с их целью
- •8.4 Обработка сбоев аппаратуры
- •Тема 9 Модели надежности программного обеспечения
- •9.1 Классификация моделей надежности программного обеспечения
- •9.2 Аналитические модели надежности
- •9.3 Эмпирические модели надежности
- •9.4 Сертификация комплексов программ
- •Тема 10 Обеспечение качества и надежности в процессе разработки сложных программных средств
- •10.1 Концепции повышения надежности в процессе разработки сложных программных средств
- •10.2 Схема проектирования разработки программного обеспечения
- •10.3 Требования к технологии и средствам автоматизации разработки сложных программных средств
- •10.4 Качество программного обеспечения
- •Раздел 5 тестирование программного обеспечения Тема 11 Основные понятия
- •11.1 Проблематика тестирования программного обеспечения
- •11.2 Основные определения
- •11.3 Экономика тестирования
- •11.4 Аксиомы (принципы) тестирования
- •Тема 12 Тестирование надежности программного обеспечения
- •12.1 Философия тестирования
- •12.2 Тестирование модулей
- •12.3 Комплексное тестирование
- •12.4 Организация и этапы тестирования при испытаниях надежности сложных программных средств
- •Тема 13 Тестирование программного обеспечения
- •13.1 Тестирование программного обеспечения
- •13.2 Место и цель этапа тестирования программного обеспечения
- •13.3 Виды тестирования
- •13.4 Передовые технологии в тестировании (автоматизация тестирования)
- •Тема 14 Виды тестирования программного обеспечения
- •14.1 Функциональные виды тестирования
- •14.2 Нефункциональные виды тестирования. Тестирование производительности
- •14.3 Связанные с изменениями виды тестирования
- •14.4 Тестирование удобства пользования
- •14.5 Тестирование на отказ и восстановление
- •14.6 Конфигурационное тестирование
- •Раздел 6 case – инструментарий автоматизации анализа, проектирования и разработки программного обеспечения Тема 15 Классификация case – инструментария
- •15.1 Классификация по типам
- •15.2 Классификация по категориям
- •15.3 Классификация по уровням
- •15.4 Эволюция case – инструментария
- •Тема 16 Концептуальные основы case – технологий
- •16.2 Состав и структура и функциональные особенности case–инструментария
- •16.3 Поддержка графических моделей
- •16.4 Поддержка процесса проектирования и разработки
- •Литература
- •246019, Г. Гомель, ул. Советская, 104.
9.3 Эмпирические модели надежности
Эмпирические модели в основном базируются на анализе структурных особенностей программного средства (или программы). Как указывалось ранее, эмпирические модели часто не дают конечных результатов показателей надежности, однако их использование на этапе проектирования ПС полезно для прогнозирования требующихся ресурсов тестирования, уточнения плановых сроков завершения проекта и т.д.
Модель сложности. В учебном пособии Благодатских В.А. «Стандартизация разработки программных средств» указывается, что есть тесная взаимосвязь между сложностью и надежностью ПС [1, стр. 172]. Если придерживаться упрощенного понимания сложности ПС, то она может быть описана такими характеристиками, как размер ПС (количество программных модулей), количество и сложность межмодульных интерфейсов.
Под программным модулем в данном случае следует понимать программную единицу, выполняющую определенную функцию (ввод, вывод, вычисление и т.д.) и взаимосвязанную с другими модулями ПС. Сложность модуля ПС может быть описана, если рассматривать структуру программы.
В качестве структурных характеристик модуля ПС используются:
отношение действительного числа дуг к максимально возможному числу дуг, получаемому искусственным соединением каждого узла с любым другим узлом дугой;
отношение числа узлов к числу дуг;
отношение числа петель к общему числу дуг.
Для сложных модулей и для больших многомодульных программ составляется имитационная модель, программа которой «засоряется» ошибками и тестируется по случайным входам. Оценка надежности осуществляется по модели Миллса.
При проведении тестирования известна структура программы, имитирующей действия основной, но не известен конкретный путь, который будет выполняться при вводе определенного тестового входа. Кроме того, выбор очередного тестового набора из множества тест–входов случаен, т.е. в процессе тестирования не обосновывается выбор очередного тестового входа. Эти условия вполне соответствуют реальным условиям тестирования больших программ.
Полученные данные анализируются, проводится расчет показателей надежности по модели Миллса (или любой другой из описанных выше), и считается, что реальное ПС, выполняющее аналогичные функции, с подобными характеристиками и в реальных условиях должно вести себя аналогичным или похожим образом.
Преимущества оценки показателей надежности по имитационной модели, создаваемой на основе анализа структуры будущего реального ПС, заключаются в следующем:
модель позволяет на этапе проектирования ПС принимать оптимальные проектные решения, опираясь на характеристики ошибок, оцениваемые с помощью имитационной модели;
модель позволяет прогнозировать требуемые ресурсы тестирования;
модель дает возможность определить меру сложности программ и предсказать возможное число ошибок и т.д.
К недостаткам можно отнести высокую стоимость метода, так как он требует дополнительных затрат на составление имитационной модели, и приблизительный характер получаемых показателей.
Модель, определяющая время доводки программ. Эта модель используется для ПС, которые имеют иерархическую структуру, т.е. ПС как система может содержать подсистемы, которые состоят из компонентов, а те, в свою очередь, состоят из W модулей. Таким образом, ПС может иметь W различных уровней композиции. На любом уровне иерархии возможна взаимная зависимость между любыми парами объектов системы. Все взаимозависимости рассматриваются в терминах зависимости между парами модулей.
Анализ модульных связей строится на том, что каждая пара модулей имеет конечную (возможно, нулевую) вероятность, изменения в одном модуле вызовут изменения в другом модуле.
Данная модель позволяет на этапе тестирования, а точнее при тестовой сборке системы, определять возможное число необходимых исправлений и время, необходимое для доведения ПС до рабочего состояния.
Основываясь на описанной процедуре оценки общего числа изменений, требуемых для доводки ПС, можно построить две различные стратегии корректировки ошибок:
фиксировать все ошибки в одном выбранном модуле и устранить все побочные эффекты, вызванные изменениями этого модуля, отрабатывая таким образом последовательно все модули;
фиксировать все ошибки нулевого порядка в каждом модуле, затем фиксировать все ошибки первого порядка и т.д.
Исследование этих стратегий доказывает, что время корректировки ошибок на каждом шаге тестирования определяется максимальным числом изменений, вносимых в ПС на этом шаге, а общее время – суммой максимальных времен на каждом шаге. Это подтверждает известный факт, что тестирование обычно является последовательным процессом и обладает значительными возможностями для параллельного исправления ошибок, что часто приводит к превышению затрачиваемых на него ресурсов над запланированными.
