Оценка качества программного обеспечения: Практикум
Покупка
Основная коллекция
Тематика:
Прикладное программное обеспечение
Издательство:
Издательский Дом ФОРУМ
Год издания: 2022
Кол-во страниц: 400
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-8199-0516-6
ISBN-онлайн: 978-5-16-110116-2
Артикул: 186600.07.01
Рассмотрены вопросы опенки характеристик и измерения метрик программного обеспечения по наиболее известным методикам, охватывающим лексический анализ программ, оценку структурной сложности, процедурно- и объектно-ориентированные метрики, надежность программ, опенку характеристик при стандартизации и сертификации программного обеспечения. Приведены теоретические сведения, необходимые для решения задач, рекомендации по решению типовых задач при оценке качества программного обеспечения. Предложены наборы задач для самостоятельного решения.
Для студентов, преподавателей, разработчиков программного обеспечения, а также специалистов и менеджеров широкого профиля.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 38.03.05: Бизнес-информатика
- ВО - Магистратура
- 02.04.03: Математическое обеспечение и администрирование информационных систем
- 38.04.05: Бизнес-информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Б.В. Черников, Б.Е. Поклонов ОЦЕНКА КАЧЕСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Практикум Под редакцией Б.В. Черникова Рекомендовано УМО в области экономики, менеджмента, логистики и бизнес-информатики в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению «Бизнес-информатика» 38.03.05 ÌÎÑÊÂÀ ÈÄ «ÔÎÐÓÌ» — ÈÍÔÐÀ-Ì 2022
УДК [681.3.068](075) ББК 32.973 Ч49 РЕЦЕНЗЕНТЫ: Кафедра «Архитектура программных систем» Научно-исследовательского университета «Высшая школа экономики»; Кафедра «Информатика и программное обеспечение» ГОУ ВПО «Московский государственный институт электронной техники (технический университет)»; А.М. Карминский, доктор технических наук, доктор экономических наук, профессор, профессор Научно-учебного комплекса «Инженерный бизнес и менеджмент» Московского государственного технического университета им. Н.Э. Баумана (технического университета) Черников Б.В. Ч49 Оценка качества программного обеспечения: Практикум: учебное пособие / Б.В. Черников, Б.Е. Поклонов ; Под ред. Б.В. Черникова. - Москва: ИД «ФОРУМ»: ИНФРА-М, 2022. - 400 с: ил. - (Высшее образование). ISBN 978-5-8199-0516-6 (ИД «ФОРУМ») ISBN 978-5-16-005654-8 (ИНФРА-М) Рассмотрены вопросы оценки характеристик и измерения метрик программного обеспечения по наиболее известным методикам, охватывающим лексический анализ программ, оценку структурной сложности, процедурно- и объектно-ориентированные метрики, надежность программ, оценку характеристик при стандартизации и сертификации программного обеспечения. Приведены теоретические сведения, необходимые для решения задач, рекомендации по решению типовых задач при оценке качества программного обеспечения. Предложены наборы задач для самостоятельного решения. Для студентов, преподавателей, разработчиков программного обеспечения, а также специалистов и менеджеров широкого профиля. УДК [681.3.068](075) ББК 32.973 ISBN 978-5-8199-0516-6 (ИД «ФОРУМ») ISBN 978-5-16-005654-8 (ИНФРА-М) © Черников Б.В., Поклонов Б.Е., 2014 © ИД «ФОРУМ», 2014
Оглавление Предисловие …………………………………………………………… 9 Практическое занятие 1 ОЦЕНКА ХАРАКТЕРИСТИК ПРОГРАММ НА ОСНОВЕ ЛЕКСИЧЕСКОГО АНАЛИЗА ………………………….….……….. 11 1.1. Метрики Холстеда …………………………………..….……… 11 1.1.1. Теоретические сведения ………………………………... 11 Особенности формирования словаря программы ……… 11 Измеряемые свойства программ ………………………… 13 Оптимизация количества и длины модулей в программе ... 19 Оценка уровня языков программирования …………….. 20 Метрика числа ошибок в программе …………………… 23 1.1.2. Задача «Расчет значений функции» ……………….…… 25 Реализация программы ………………………………….. 25 Словарь программы ……………………………………… 26 Оценка характеристик программы ……………………… 32 1.1.3. Задача «Зеркальное число» ……………….……………. 34 Реализация программы ………………………………….. 34 Словарь программы ……………………………………… 35 Оценка характеристик программы ……………………… 37 1.1.4. Задача «Вычисление суммы элементов массива» …….. 38 Реализация программы …………………………………... 38 Словарь программы ……………………………………… 40 Оценка характеристик программы ……………………… 42 1.1.5. Задача «Замена строк таблицы» …… 43 Реализация программы …………………………………... 44 Словарь программы ……………………………………… 45 Оценка характеристик программы ……………………… 48 1.1.6. Задача «Заправка бака топливом» ……………….…...... 49 Реализация программы ………………………………….. 50 Словарь программы ……………………………………… 52 Оценка характеристик программы ……………………… 54 1.1.7. Задачи для самостоятельного решения ………………... 55 1.2. Метрики Джилба ………………………………………………. 58 1.2.1. Теоретические сведения ……………………………….. 58 1.2.2. Задача «Вычисление значений функции» ...…………… 59 Реализация программы ………………………………….. 60 Словарь программы ……………………………………… 61 Оценка характеристик программы ……………………… 62
Оглавление 4 1.2.3. Задача «Функция копирования элементов массива» …. 63 Реализация программы …………………………………... 63 Словарь программы ……………………………………… 65 Оценка характеристик программы ……………………… 67 1.2.4. Задача «Дополнение массива» …………………………. 68 Реализация программы ………………………………….. 68 Словарь программы ……………………………………… 70 Оценка характеристик программы ……………………… 71 1.2.5. Задача «Сложение элементов матриц» (вариант 1) …... 72 Реализация программы ………………………………….. 72 Словарь программы ……………………………………… 74 Оценка характеристик программы ……………………… 76 1.2.6. Задача «Сложение элементов матриц» (вариант 2) ….. 76 Реализация программы ………………………………….. 77 Словарь программы ……………………………………… 78 Оценка характеристик программы ……………………… 80 1.2.7. Задачи для самостоятельного решения ………………... 81 1.3. Метрика Чепина …………………………………………..……. 85 1.3.1. Теоретические сведения ………………………………... 85 1.3.2. Задача «Простые числа в матрице» ...………………….. 87 Реализация программы ………………………………….. 87 Оценка характеристик программы ……………………… 89 1.3.3. Задача «Сортировка строк в матрице» ………………… 90 Реализация программы ………………………………….. 91 Оценка характеристик программы ……………………… 93 1.3.4. Задача «Формирование вещественной матрицы» …….. 94 Реализация программы ………………………………….. 94 Оценка характеристик программы ……………………… 96 1.3.5. Задача «Заправка топливных баков» …………………... 97 Реализация программы ………………………………….. 98 Оценка характеристик программы ……………………… 99 1.3.6. Задача «Расчет платежей за электроэнергию» ………... 101 Реализация программы ………………………………….. 101 Оценка характеристик программы ……………………… 103 1.3.7. Задачи для самостоятельного решения ………………... 104 Практическое занятие 2 ОЦЕНКА СТРУКТУРНОЙ СЛОЖНОСТИ ПРОГРАММ …….... 110 2.1. Теоретические сведения ………………………………………. 110 2.1.1. Критерии структурной сложности программ …………. 110 Понятие структурной сложности программ …………… 110 Критерии выделения маршрутов ………………...……… 112
Оглавление 5 Критерий 1 ……………………………………………….. 113 Критерий 2 ……………………………………………….. 114 Критерий 3 ……………………………………………….. 117 Метрика Маккейба ……………………….……………… 118 2.1.2. Особенности построения управляющих графов ……… 121 Линейная последовательность операторов ………..…… 122 Простое ветвление (оператор if)………………...…..…... 123 Переключатель с множественным выбором …..……….. 124 Программы с операторами цикла ……………………….. 126 2.2. Задача «Расчет значений функции» …………………………... 134 Реализация решения ……………….…………………….. 135 Оценка алгоритмической сложности …………………… 136 2.3. Задача «Замена строк матрицы» …………………….………... 140 Реализация решения ……………….…………………….. 141 Оценка алгоритмической сложности …………………… 142 2.4. Задача «Объединение аргументов командной строки» ……... 148 Реализация решения ……………….…………………….. 149 Оценка алгоритмической сложности …………………… 150 2.5. Задача «Проверка простого числа» …………………………… 154 Реализация решения ……………….…………………….. 154 Оценка алгоритмической сложности …………………… 154 2.6. Задача «Сортировка массива» ………………………….……... 159 Реализация решения ……………….…………………….. 159 Оценка алгоритмической сложности …………………… 161 2.7. Задача «Поиск максимального числа» ……………………….. 165 Реализация решения ……………….…………………….. 165 Оценка алгоритмической сложности …………………… 166 2.8. Задачи для самостоятельного решения ………..……………... 169 2.8.1. Задачи с разработкой программы ……….……………... 169 2.8.2. Задачи по оценке алгоритмической сложности на основе управляющих графов ………………………... 171 Практическое занятие 3 ОЦЕНКА ХАРАКТЕРИСТИК ПРОГРАММ НА ОСНОВЕ ПРОЦЕДУРНО-ОРИЕНТИРОВАННЫХ МЕТРИК ……………... 175 3.1. Теоретические сведения ………………………………………. 175 3.1.1. Метрики на основе функциональных указателей …….. 175 3.1.2. Связность модулей ……………………………………… 179 3.1.3. Сцепление модулей ……………………………………... 185 3.2. Задача «Сортировка строк массива»…………..……………… 190 Реализация программы ………………………………….. 190 Оценка характеристик программы ……………………… 192
Оглавление 6 3.3. Задача «Заполнение массива в шахматном порядке» …..…… 196 Реализация программы ………………………………….. 197 Оценка характеристик программы ……………………… 198 3.4. Задача «Замена цифр на символ»……………………………… 202 Реализация программы ………………………………….. 202 Оценка характеристик программы ……………………… 203 3.5. Задачи для самостоятельного решения ………..……………... 206 Практическое занятие 4 ОЦЕНКА ХАРАКТЕРИСТИК ПРОГРАММ НА ОСНОВЕ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ МЕТРИК …………….…... 209 4.1. Метрики Мартина ……………………..………………………. 209 4.1.1. Теоретические сведения ………………………………... 209 4.1.2. Задача «Платеж за электроэнергию» ………………….. 211 Реализация программы …………………………………. 212 Оценка характеристик программы …………………...… 214 4.1.3. Задача «Геометрия окружности и прямоугольника» … 216 Реализация программы …………………………………. 217 Оценка характеристик программы ……………………… 219 4.1.4. Задачи для самостоятельного решения ………………... 221 4.2. Метрики Чидамбера и Кемерера ……………………………… 223 4.2.1. Теоретические сведения ………………………………... 223 4.2.2. Задача «Платеж за электроэнергию» ………………….. 227 Реализация программы …………………………………. 228 Оценка характеристик программы ……………………… 228 4.2.3. Задача «Геометрия окружности и прямоугольника» … 232 Реализация программы …………………………………. 232 Оценка характеристик программы …………………….. 233 4.2.4. Задачи для самостоятельного решения ……………….. 236 4.3. Метрики Лоренца и Кидда ……………………….…………… 239 4.3.1. Теоретические сведения ……………………………….. 239 4.3.2. Задача «Платеж за электроэнергию» ………………….. 243 Реализация программы ………………………………….. 244 Оценка характеристик программы ……………………… 244 4.3.3. Задача «Геометрия окружности и прямоугольника» … 250 Реализация программы ………………………………….. 251 Оценка характеристик программы ……………………… 251 4.3.4. Задачи для самостоятельного решения ………………... 258 4.4. Метрики Абреу …….…………………..………………………. 261 4.4.1. Теоретические сведения ………………………………... 261
Оглавление 7 4.4.2. Задача «Платеж за электроэнергию» ………………….. 267 Реализация программы …………………………………. 268 Оценка характеристик программы ……………………… 268 4.4.3. Задача «Геометрия окружности и прямоугольника» … 270 Реализация программы ………………………………….. 271 Оценка характеристик программы ……………………… 271 4.4.4. Задачи для самостоятельного решения ………………... 277 Практическое занятие 5 ОЦЕНКА НАДЕЖНОСТИ ПРОГРАММНЫХ СРЕДСТВ ……… 285 5.1. Модель Джелински – Моранды ………………………………. 285 5.1.1. Теоретические сведения ……………………………… 285 5.1.2. Задачи по применению модели Джелински – Моранды 287 Определение количества ошибок до начала тестирования ……………………………………………… 287 Определение количества ошибок в программе, не устраненных после проведения тестирования ……… 288 5.1.3. Задачи для самостоятельного решения ………………... 289 5.2. Статистическая модель Миллса ………………………………. 291 5.2.1. Теоретические сведения ………………………………... 291 5.2.2. Задачи по применению модели Миллса ………………. 292 Задача 1 …………………………………………………… 292 Задача 2 …………………………………………………… 293 Задача 3 …………………………………………………… 294 Задача 4 …………………………………………………… 295 Задача 5 …………………………………………………… 295 Задача 6 …………………………………………………… 297 5.2.3. Задачи для самостоятельного решения ………………... 300 5.3. Эвристическая модель …………………………….…………… 302 5.3.1. Теоретические сведения ………………………………... 302 5.3.2. Задачи по применению эвристической модели ……….. 302 Задача 1 …………………………………………………… 302 Задача 2 …………………………………………………… 303 Задача 3 …………………………………………………… 304 Задача 4 …………………………………………………… 304 5.3.3. Задачи для самостоятельного решения ………………... 305 5.4. Модель Нельсона ………………………………………………. 307 5.4.1. Теоретические сведения ………………………………... 307 5.4.2. Задачи по применению модели Нельсона ……….……. 309
Оглавление 8 Задача 1 …………………………………………………… 309 Задача 2 …………………………………………………… 310 Задача 3 …………………………………………………… 311 Задача 4 …………………………………………………… 311 5.4.3. Задачи для самостоятельного решения ………………... 312 Практическое занятие 6 СТАНДАРТИЗАЦИЯ ПРОГРАММНЫХ СРЕДСТВ ………...….. 317 6.1. Теоретические сведения ………………………………..……... 317 6.2. Задачи по определению показателей качества …..…………... 340 6.2.1. Задача по оценке надежности ………………………….. 340 6.2.2. Задача по оценке надежности и корректности ………... 345 6.2.3. Задача по оценке эффективности и универсальности ... 352 6.3. Задачи для самостоятельного решения …………..…………... 363 Практическое занятие 7 СЕРТИФИКАЦИЯ ПРОГРАММНЫХ СРЕДСТВ ……………….. 379 7.1. Теоретические сведения ………………………………..……... 379 7.2. Задачи по применению модели бесприоритетного обслуживания …………………………………………….......... 381 7.2.1. Задача 1 ……………………………………...................... 381 7.2.2. Задача 2 ……………………………………...................... 382 7.2.3. Задача 3 ……………………………………...................... 383 7.2.4. Задачи для самостоятельного решения ………………... 385 7.3. Задачи по применению модели обслуживания с относительными приоритетами ……………………………... 386 7.2.1. Задача 1 ……………………………………...................... 387 7.2.2. Задача 2 ……………………………………...................... 388 7.2.3. Задачи для самостоятельного решения ………………... 390 7.4. Задачи по применению модели обслуживания с абсолютными приоритетами ………………………………... 392 7.3.1. Задача 1 ……………………………………...................... 392 7.3.2. Задача 2 ……………………………………....................... 394 7.3.3. Задачи для самостоятельного решения ………………... 396 Рекомендуемая литература ………………..………………………… 399
Предисловие Разработка программного обеспечения представляет собой процесс, в который вовлечено множество разработчиков. Непрерывное повышение сложности функций, реализуемых программами в информационных системах, приводит к увеличению их объема и требует большей трудоемкости создания. Соответственно сложности программ возрастает количество выявляемых и остающихся в них дефектов и ошибок, что отражается на их качестве. Достаточно часто разрабатываются комплексы программ объемом в миллионы строк текста, которые принципиально не могут быть безошибочными. Поэтому проблема оценки качества созданных программных средств всегда была и остается очень важной задачей, решение которой позволяет на ранних стадиях жизненного цикла определить характеристики создаваемой программы. Ряд существующих методик направлены на оценку параметров будущих программ, что позволяет адекватно оценить трудозатраты и стоимость разработки. Многие ошибки, обусловленные неопределенностью или некорректностью технических заданий и спецификаций требований, могут и должны быть выявлены на ранних стадиях проектирования, что способствует его ускорению и повышению качества. Стратегической задачей в жизненном цикле современных информационных систем стало обеспечение качества программных средств и баз данных. Для решения такой задачи необходимо применение специализированных методик, разработанных в различное время. Разнообразие таких методик позволяет применять их на различных стадиях жизненного цикла программ – от начала разработки до сертификации программного обеспечения. Данное издание посвящено практической части процесса оценки качества программных средств, что актуально при изучении учебной дисциплины «Стандартизация, сертификация и управление качеством программного обеспечения». Разделы книги организованы по тематическому принципу таким образом, чтобы их было удобнее применять в процессе проведения практических занятий, продолжающих процесс изучения курса. В каждом разделе приведены краткие теоретические сведения, касающиеся той или иной методики, рассмотрены примеры решения типовых задач по каждой из них. Предложен набор задач, предназначенных для самостоятельного решения.
Предисловие 10 Практическое занятие 1 посвящено изучению оценки характеристик программных средств на основе лексического анализа текста программ. Рассматриваются задачи, основанные на применении методик Холстеда, Джилба и Чепина. В рамках практического занятия 2 рассматриваются приемы оценки структурной сложности программ на основе применения метрики Маккейба. Практическое занятие 3 позволяет освоить методы оценки характеристик программных средств на основе процедурно-ориентированных метрик, в частности – рассчитывать количество функциональных указателей, оценивать связность и сцепление модулей в программе. Оценка характеристик программ на основе применения объектноориентированных метрик осуществляется в материале практического занятия 4, где рассматриваются задачи на применение метрик Мартина, Чидамбера и Кемерера, Лоренца и Кидда, Абреу. Практическое занятие 5 посвящено освоению приемов оценки надежности программ на основе применения моделей Джелинского – Моранды, Миллса, Нельсона, эвристической модели. Материал практического занятия 6 предназначен для тренировки навыков при оценке качества программ на этапе стандартизации. Практическое занятие 7 предлагает проведение оценки программ на этапе сертификации, т. е. рассматривает процессы, протекающие уже после внедрения программных средств в работу информационных систем. Книга предназначена, в первую очередь, для студентов специальностей «Программная инженерия» и «Бизнес-информатика» при изучении учебной дисциплины «Стандартизация, сертификация и управление качеством программного обеспечения», для преподавателей при подготовке занятий, а также для разработчиков программного обеспечения, которые хотели бы более подробно изучить методы, применяемые при оценке качества программных средств. В то же время и сложившиеся специалисты, развивающие навыки или применяющие свои знания для разработки и внедрения программного обеспечения, также найдут полезные сведения как в практическом, так и методологическом плане.