- •Качество и надежность программного обеспечения
- •Лекция 1. Введение. Основные стандарты и термины по качеству программного обеспечения. Метрики и критерии качества программных продуктов. Составляющие качества программных продуктов.
- •Общие термины
- •Лекция 2. Классификация видов сложности программных продуктов. Метрические характеристики программ по м.Холстеду
- •Оценивание качества разработки программ на основе метрик Холстеда. Измеримые свойства алгоритмов
- •Длина программы
- •4. Объем программы
- •Потенциальный объем V*
- •Лекция 3. Уровень программ. Интеллектуальное содержание программы.
- •1. Уровень программы
- •2. Вывод уравнения уровня программы
- •3. Определение интеллектуального содержания программ
- •Лекция 4. Работа в программировании. Уровни языков программирования. Метрика числа ошибок в программе.
- •5 S 20 в сек
- •Значение уровня языка
- •Лекция 5. Метрики структурной сложности программ.
- •Где pi – количество вершин ветвления в I-том маршруте без учета последней вершины
- •M5 1 – 3 – 4 – 6 – 8 – 14 независимые
- •Лекция 6. Методы и средства измерения характеристик программ. Аппаратные измерительные мониторы.
- •Лекция 7. Программные измерительные мониторы.
- •Лекция 8. Понятие корректности программ.
- •II. Эталоны и методы проверки корректности.
- •Лекция 9. Аналитическая проверка корректности программ. Верификация программ.
- •Invk (x1, … , xn),
- •Invt1 (x1, … , xn): p ; invt2 (x1, … , xn): q ; invt3 (x1, … , xn) ; … ,
- •U: invr(x1, … , xn) u0
- •Лекция 10. Тестирование программных продуктов
- •1. Основные понятия процесса тестирования
- •2. Объекты тестирования
- •3. Категории тестов для различных объектов тестирования
- •Лекция 11. Виды, критерии и методы тестирования. Методы структурного тестирования программ
- •1. Тестирование на основе потока управления
- •2. Тестирование на основе потока данных
- •Лекция 12. Методы функционального тестирование программных продуктов
- •1. Метод эквивалентного разбиения
- •1.1. Выделение классов эквивалентности
- •1.2. Построение теста
- •2. Анализ граничных значений
- •3. Метод функциональных диаграмм
- •4. Метод, основанный на предположении об ошибке
- •Лекция 13. Основные показатели надежности программного обеспечения (по). Математические модели оценки надежности по.
- •13.1. Основные показатели надежности программного обеспечения (по).
- •13.2. Математические модели оценки надежности по.
- •Модель Джелинского-Моранды.
- •Модель Шика-Уолвертона.
- •Лекция 14. Модели, основанные на методе "посева" и разметки ошибок, и модели на основе учета структуры входных данных
- •Модель Нельсона. Применение последовательного анализа Вальда для снижения количества прогонов программы.
- •Лекция 15. Методы повышения надежности программ и оценка эффективности их применения.
- •15.1 Влияние избыточности на повышение надежности программ
- •Эффективность применения избыточности для повышения надежности комплексов программ
- •Влияние оперативного контроля и восстановления на производительность эвм.
- •Методы программного восстановления
- •Методы обеспечения надежности комплексов программ при сопровождении
- •Литература
Министерство образования Российской Федерации
Санкт-Петербургский государственный электротехнический
университет “ЛЭТИ”
Кафедра математического обеспечение и применения ЭВМ
КОНСПЕКТ ЛЕКЦИЙ
по дисциплине
Качество и надежность программного обеспечения
(для программы UPROG подготовки магистров для фирмы «Моторола»)
Авторы к.т.н., доцент В.А.Кирьянчиков
к.т.н., доцент Э.А.Опалева
Санкт-Петербург
2002
Содержание
Лекция 1. Введение. Основные стандарты и термины по качеству программного обеспечения. Метрики и критерии качества программных продуктов. Составляющие качества программных продуктов. 3
Лекция 2. Классификация видов сложности программных продуктов. Метрические характеристики программ по М.Холстеду 8
Лекция 3. Уровень программ. Интеллектуальное содержание программы. 14
Лекция 4. Работа в программировании. Уровни языков программирования. Метрика числа ошибок в программе. 17
Лекция 5. Метрики структурной сложности программ. 22
Лекция 6. Методы и средства измерения характеристик программ. Аппаратные измерительные мониторы. 29
Лекция 7. Программные измерительные мониторы. 36
Лекция 8. Понятие корректности программ. 42
Лекция 9. Аналитическая проверка корректности программ. Верификация программ. 45
Лекция 10. Тестирование программных продуктов 53
Лекция 11. Виды, критерии и методы тестирования. Методы структурного тестирования программ 57
Лекция 12. Методы функционального тестирование программных продуктов 62
Лекция 13. Основные показатели надежности программного обеспечения (ПО). Математические модели оценки надежности ПО. 68
Лекция 14. Модели, основанные на методе "посева" и разметки ошибок, и модели на основе учета структуры входных данных 76
Лекция 15. Методы повышения надежности программ и оценка эффективности их применения. 80
ЛИТЕРАТУРА 85
Лекция 1. Введение. Основные стандарты и термины по качеству программного обеспечения. Метрики и критерии качества программных продуктов. Составляющие качества программных продуктов.
Цели и задачи курса, его связь с другими дисциплинами учебного плана.
Сегодня одну и ту же задачу на ЭВМ можно решить, используя различные алгоритмы, языки программирования, степень структурированности данных и самой программы, наконец, различные архитектуры программных систем и технологии их разработки. При этом возникают программы, отличающиеся качественными показателями (объемом, сложностью, достоверностью результатов, надежностью, быстродействием и др.) и появляется возможность их выбора. Отсюда возникает необходимость в оценке и сравнении качества различных программ. Формализация показателей качества, введение для них метрических оценок способствует объективному сравнению и обеспечивают основу промышленного использования программных изделий (ПИ).
Расширение областей применения ПИ и возрастание значимости результатов их работы в сферах управления и обработки информации повысило интерес пользователей и разработчиков к анализу качества создаваемых и эксплуатируемых программ. Отчуждение программ от их первичных создателей и необходимость сопровождения в процессе эксплуатации привели к формированию понятия программного продукта (ПП), предусматривающего требования по удобству использования и модифицируемости.
В результате от подхода "лишь бы программа работала" к настоящему времени выполнен переход к подходу "с какими характеристиками качества создается и функционирует программа и при каких затратах достигаются результаты".
Дисциплина “Software quality, testing and verification” или в русскоязычном варианте «Качество и надежность программного обеспечения» как раз и предназначена для обучения будущих инженеров–программистов методам и средствам оценки характеристик качества и надежности ПП как при выборе готовых программных средств, так и при их разработке. Дисциплина базируется на знаниях полученных при изучении математики, основ программирования, формальных моделей программ, архитектур программных систем и технологий разработки ПП.
ГОСТы . Основные понятия и ключевые слова по качеству и надежности ПП.
Основными ГОСТами, регламентирующими в нашей стране использование термино-логии по качеству ПП являются:
ГОСТ 28806—90 «КАЧЕСТВО ПРОГРАММНЫХ СРЕДСТВ. Термины и определения (Software quality. Terms and definitions)»;
ГОСТ 28195-89 «ОЦЕНКА КАЧЕСТВА ПРОГРАММНЫХ СРЕДСТВ. Общие положения (Quality control of software systems. General principles)».
В соответствии с ГОСТ 28806—90 основные термины, используемые в настоящем курсе могут быть определены следующим образом.