Файл: Практикум Под редакцией Б. В. Черникова Рекомендовано умо в области.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 341

Скачиваний: 55

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Б.В. Черников, Б.Е. Поклонов
ОЦЕНКА КАЧЕСТВА
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Практикум
Под редакцией Б.В. Черникова
Рекомендовано УМО в области
экономики, менеджмента, логистики и бизнес-информатики
в качестве учебного пособия для студентов
высших учебных заведений, обучающихся по направлению
080700 «Бизнес-информатика»
Москва
ИД «ФОРУМ» – ИНФРА-М
2012

УДК [681.3.068](075)
ББК 32.973
Ч49
РЕЦЕНЗЕНТЫ:
Кафедра «Архитектура программных систем»
Научно-исследовательского университета
«Высшая школа экономики»;
Кафедра «Информатика и программное обеспечение»
ГОУ ВПО «Московский государственный институт электронной техники (технический университет)»;
А.М. Карминский,
доктор технических наук, доктор экономических наук, профессор, профессор Научно-учебного комплекса
«Инженерный бизнес и менеджмент»
Московского государственного технического университета им. Н.Э. Баумана (технического университета)
Черников Б. В., Поклонов Б.Е.
Оценка качества программного обеспечения: Практикум: учебное пособие / Б.В. Черников, Б.Е. Поклонов / Под ред. Б.В. Чер- никова. – М.: ИД «ФОРУМ»: ИНФРА-М, 2012. – 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 (ИНФРА-М)
© Черников Б.В., Поклонов Б.Е., 2012
© ИД «ФОРУМ», 2012
Ч49


Оглавление
Предисловие ……………………………………………………………
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 предлагает проведение оценки программ на этапе сертификации, т. е. рассматривает процессы, протекающие уже после внедрения программных средств в работу информацион- ных систем.
Книга предназначена, в первую очередь, для студентов специаль- ностей «Программная инженерия» и «Бизнес-информатика» при изу- чении учебной дисциплины «Стандартизация, сертификация и управ- ление качеством программного обеспечения», для преподавателей при подготовке занятий, а также для разработчиков программного обеспе- чения, которые хотели бы более подробно изучить методы, применяе- мые при оценке качества программных средств. В то же время и сло- жившиеся специалисты, развивающие навыки или применяющие свои знания для разработки и внедрения программного обеспечения, также найдут полезные сведения как в практическом, так и методологиче- ском плане.