Учебник посвящен систематическому изложению принципов, моделей, методов и метрик, используемых в инженерном цикле разработки сложных программных продуктов. Изложены классические основы программной инженерии, показаны последние научные и практические достижения, характеризующие динамику развития этой области продемонстрирован комплексный подход к решению наиболее важных вопросов, возникающих в программных проектах. Допущено Министерством образования и науки Российской Федерации в качестве учебника для студентов высших учебных заведений, обучающихся по специальности «Программное обеспечение вычислительной техники и автоматизированных систем» направлений подготовки дипломированных специалистов «Информатика и вычислительная техника», может быть полезен преподавателям, разработчикам промышленного программного обеспечения, менеджерам программных проектов.
Author(s): Орлов С.А., Цилькер Б.Я.
Series: Стандарт тpeтьero поколения
Edition: 4-e изд.
Publisher: Питер
Year: 2012
Language: Russian
Pages: 609
Tags: Информатика и вычислительная техника;Технология программирования;
Предисловие к четвертому изданию ......Page 15
Введение ......Page 17
От издательства ......Page 21
Основные понятия программной инженерии ......Page 22
Основные процессы жизненного цикла ......Page 25
Вспомогательные процессы жизненного цикла ......Page 26
Базис процессов разработки ПО ......Page 27
Модель «классический жизненный цикл» ......Page 30
Макетирование ......Page 33
Инкрементная модель ......Page 35
Спиральная модель ......Page 36
Компонентно-ориентированная модель ......Page 38
Тяжеловесные и облегченные процессы ......Page 39
ХР-процесс ......Page 40
Модели качества процессов разработки ......Page 44
Контрольные вопросы и упражнения ......Page 46
Основные понятия руководства проектом ......Page 49
Измерения, меры и метрики ......Page 51
Трассировка и контроль ......Page 52
Планирование программного проекта ......Page 53
Структура плана управления программным проектом ......Page 54
Структура графика работ программного проекта ......Page 56
Идентификация риска ......Page 59
Анализ риска ......Page 60
Планирование управления риском ......Page 61
Разрешение и наблюдение риска ......Page 62
Подбор членов команды ......Page 63
Взаимодействия в команде ......Page 65
Состав группы ......Page 66
Стандарты и полнота документации ......Page 67
Согласованность документации ......Page 68
Управление конфигурацией ......Page 69
Идентификация объектов в конфигурации ПО ......Page 70
Контроль версий ......Page 71
План управления конфигурацией ......Page 72
Контрольные вопросы и упражнения ......Page 73
Размерно-ориентированные метрики ......Page 75
Функционально-ориентированные метрики ......Page 76
Выполнение оценки проекта на основе LOC- и FP-метрик ......Page 83
Конструктивная модель стоимости ......Page 85
Модель композиции приложения ......Page 86
Модель раннего этапа проектирования ......Page 88
Модель этапа пост-архитектуры ......Page 91
Предварительная оценка программного проекта ......Page 94
Анализ чувствительности программного проекта ......Page 98
Сценарий наращивания памяти ......Page 99
Сценарий уменьшения средств на завершение проекта ......Page 100
Контрольные вопросы и упражнения ......Page 102
Виды требований к программному обеспечению ......Page 104
Формирование требований ......Page 108
Анализ требований ......Page 110
Желаемые характеристики детального требования ......Page 114
Спецификация требований ......Page 117
Управление требованиями ......Page 119
Контрольные вопросы и упражнения ......Page 120
Диаграммы потоков данных ......Page 122
Описание потоков данных и процессов ......Page 123
Расширения для систем реального времени ......Page 124
Расширение возможностей управления ......Page 126
Модель системы регулирования давления космического корабля ......Page 127
Методы анализа, ориентированные на структуры данных ......Page 130
Методика Джексона ......Page 131
Шаг объект-структура ......Page 132
Шаг начального моделирования ......Page 134
Контрольные вопросы и упражнения ......Page 136
Особенности процесса синтеза программных систем ......Page 138
Особенности архитектурного этапа проектирования ......Page 140
Структурирование системы ......Page 142
Архитектура с хранилищем данных ......Page 145
Клиент-серверная архитектура ......Page 146
Многоуровневая архитектура ......Page 148
Архитектура канала и фильтра ......Page 150
Паттерны централизованного управления ......Page 152
Паттерны событийного управления ......Page 154
Декомпозиция подсистем на модули ......Page 156
Разделение понятий ......Page 157
Модульность ......Page 158
Связность модуля ......Page 159
Функциональная связность ......Page 161
Коммуникативная связность ......Page 162
Временная связность ......Page 163
Логическая связность ......Page 164
Определение связности модуля ......Page 165
Сцепление модулей ......Page 166
Сложность программной системы ......Page 167
Характеристики иерархической структуры программной системы ......Page 168
Пошаговая детализация ......Page 171
Рефакторинг ......Page 172
Контрольные вопросы и упражнения ......Page 173
Метод структурного проектирования ......Page 176
Типы информационных потоков ......Page 177
Проектирование для потока данных типа «преобразование» ......Page 178
Проектирование для потока данных типа «запрос» ......Page 180
Доопределение функций ......Page 182
Учет системного времени ......Page 185
Контрольные вопросы и упражнения ......Page 186
Принципы объектно-ориентированного представления программных систем ......Page 187
Абстрагирование ......Page 188
Инкапсуляция ......Page 189
Модульность ......Page 190
Иерархическая организация ......Page 191
Объекты ......Page 193
Общая характеристика объектов ......Page 194
Связи ......Page 196
Видимость объектов ......Page 199
Агрегация ......Page 200
Общая характеристика классов ......Page 201
Виды отношений между классами ......Page 202
Ассоциации классов ......Page 203
Наследование ......Page 205
Агрегация ......Page 207
Конкретизация ......Page 209
Унифицированный язык моделирования ......Page 211
Механизмы расширения в UML ......Page 213
Контрольные вопросы и упражнения ......Page 215
Актеры и элементы Use Case ......Page 218
Отношения в диаграммах Use Case ......Page 219
Работа с элементами Use Case ......Page 221
Спецификация элементов Use Case ......Page 222
Банкомат — пример диаграммы Use Case ......Page 224
Построение модели требований ......Page 228
Оценка программного проекта на основе диаграммы Use Case ......Page 233
Формирование требований с помощью диаграммы деятельности ......Page 239
Объекты и роли ......Page 243
Диаграммы взаимодействия ......Page 244
Диаграммы коммуникации ......Page 245
Диаграммы последовательности ......Page 249
Диаграмма конечного автомата ......Page 254
Действия в состояниях ......Page 256
Условные переходы ......Page 257
Композитные состояния ......Page 258
Псевдосостояния управления ......Page 260
Применение диаграмм конечных автоматов ......Page 263
Контрольные вопросы и упражнения ......Page 264
Архитектурное проектирование ......Page 267
Диаграммы пакетов ......Page 268
Диаграммы компонентов ......Page 272
Диаграммы классов ......Page 279
Основные принципы детального проектирования ......Page 292
Принципы упаковки классов в архитектурные подсистемы ......Page 295
Документирование процесса проектирования ......Page 296
Кооперации и паттерны ......Page 297
Паттерн Наблюдатель ......Page 300
Паттерн Компоновщик ......Page 303
Паттерн Команда ......Page 304
Мышление в терминах паттернов ......Page 307
Шаги паттерн-ориентированного проектирования ......Page 308
Проектирование пользовательского интерфейса ......Page 309
Сущностная эффективность ......Page 310
Согласованность задач ......Page 312
Наблюдаемость задач ......Page 313
Единообразие компоновки ......Page 316
Визуальная связность ......Page 318
Разделение понятий ......Page 319
Основные термины аспектов ......Page 321
Основы компонентной объектной модели ......Page 324
Организация интерфейса СОМ ......Page 326
IUnknown — базовый интерфейс СОМ ......Page 328
Серверы СОМ-объектов ......Page 329
Работа с СОМ-объектами ......Page 330
IDL-описание и библиотека типа ......Page 334
Артефакты ......Page 336
Узлы ......Page 337
Контрольные вопросы и упражнения ......Page 340
Метрические особенности объектно-ориентированных программных систем ......Page 344
Информационная закрытость ......Page 345
Связность объектов ......Page 346
Сцепление объектов ......Page 353
Набор метрик Чидамбера и Кемерера ......Page 355
Использование метрик Чидамбера—Кемерера ......Page 364
Метрики, ориентированные на классы ......Page 365
Операционно-ориентированные метрики ......Page 367
Метрики для ОО-проектов ......Page 368
Набор метрик Фернандо Абреу ......Page 369
Аспектно-ориентированные метрики ......Page 374
Метрики инкапсуляции ......Page 376
Метрики наследования ......Page 377
Контрольные вопросы и упражнения ......Page 378
Основные понятия унифицированного процесса разработки ......Page 381
Рабочие потоки процесса ......Page 383
Технические артефакты ......Page 384
Этап НАЧАЛО (Inception) ......Page 385
Этап РАЗВИТИЕ (Elaboration) ......Page 386
Этап КОНСТРУИРОВАНИЕ (Construction) ......Page 388
Оценка качества проектирования ......Page 389
Этап НАЧАЛО ......Page 390
Этап РАЗВИТИЕ ......Page 391
Этап КОНСТРУИРОВАНИЕ ......Page 401
Этап НАЧАЛО ......Page 409
Этап РАЗВИТИЕ ......Page 412
Этап КОНСТРУИРОВАНИЕ ......Page 419
Разработка в стиле экстремального программирования ......Page 424
ХР-реализация ......Page 425
ХР-итерация ......Page 426
Элемент ХР-разработки ......Page 427
Коллективное владение кодом ......Page 428
Стоимость изменения и проектирование ......Page 430
Спецификация заказчика ......Page 433
Формирование пользовательских историй ......Page 434
Планирование итерации ......Page 436
Scrum-процесс гибкой разработки ПО ......Page 437
Контрольные вопросы и упражнения ......Page 439
Основные понятия и принципы тестирования ПО ......Page 441
Тестирование «белого ящика» ......Page 443
Особенности тестирования «белого ящика» ......Page 444
Потоковый граф ......Page 445
Цикломатическая сложность ......Page 446
Шаги способа тестирования базового пути ......Page 448
Способы тестирования условий ......Page 454
Тестирование ветвей и операций отношений ......Page 456
Способ тестирования потоков данных ......Page 462
Простые циклы ......Page 467
Вложенные циклы ......Page 468
Неструктурированные циклы ......Page 469
Контрольные вопросы и упражнения ......Page 470
Особенности тестирования «черного ящика» ......Page 472
Способ разбиения по эквивалентности ......Page 473
Способ анализа граничных значений ......Page 475
Способ диаграмм причин-следствий ......Page 480
Контрольные вопросы и упражнения ......Page 486
Методика тестирования программных систем ......Page 488
Тестирование элементов ......Page 490
Нисходящее тестирование интеграции ......Page 493
Восходящее тестирование интеграции ......Page 495
Сравнение нисходящего и восходящего тестирования интеграции ......Page 496
Тестирование правильности ......Page 497
Системное тестирование ......Page 498
Стрессовое тестирование ......Page 499
Искусство отладки ......Page 500
Контрольные вопросы ......Page 502
Расширение области применения объектно-ориентированного тестирования ......Page 504
Особенности тестирования объектно-ориентированных «модулей» ......Page 506
Объектно-ориентированное тестирование правильности ......Page 507
Проектирование объектно-ориентированных тестовых вариантов ......Page 508
Тестирование, основанное на ошибках ......Page 509
Тестирование, основанное на сценариях ......Page 510
Стохастическое тестирование класса ......Page 512
Тестирование разбиений на уровне классов ......Page 513
Способы тестирования взаимодействия классов ......Page 514
Стохастическое тестирование ......Page 515
Тестирование на основе состояний ......Page 516
Предваряющее тестирование и рефакторинг при экстремальной разработке ......Page 518
Контрольные вопросы и упражнения ......Page 535
Определение качества программного обеспечения ......Page 536
Определение и цели обеспечения качества ПО ......Page 537
Факторы качества ПО ......Page 539
Деятельность по обеспечению качества ПО ......Page 543
Технические проверки и аудиты ......Page 545
Инспектирование ......Page 546
Верификация и валидация ......Page 548
План обеспечения качества ПО ......Page 551
Контрольные вопросы и упражнения ......Page 552
Общая характеристика системы IBM Rational Software Architect ......Page 554
Создание диаграммы Use Case ......Page 561
Создание диаграммы последовательности ......Page 566
Создание диаграммы классов ......Page 570
Генерация программного кода ......Page 579
Трансформация программного кода в модель UML ......Page 585
Заключение ......Page 587
Приложение А. Факторы затрат пост-архитектурной модели СОСОМО II ......Page 589
Список литературы ......Page 596
Алфавитный указатель ......Page 601