Author(s): Коплиен Дж.
Year: 2005
Содержание ......Page 7
Предисловие ......Page 12
Структура книги ......Page 16
От издательства ......Page 17
1.1. Инженерия предметной области и несколько парадигм ......Page 18
1.2. Проектирование, анализ, семейства, предметные области: определения ......Page 20
1.2.1. Анализ ......Page 21
1.2.3. Архитектура ......Page 22
1.2.5. Семейства и анализ общности ......Page 23
1.2.7. Точность абстракции ......Page 24
1.2.8. Проектирование и реализация ......Page 25
1.3. За пределы объектов ......Page 26
1.5. Семейства программ ......Page 27
1.6.1. Язык: С++ ......Page 29
1.6.2. Сложные семейства ......Page 30
1.6.3. Включение паттернов ......Page 31
1.7.1. Прикладные языки в FAST ......Page 32
1.7.2. Анализ предметной области и язык С++ ......Page 34
1.8. Анализ общности: иная перспектива ......Page 35
1.8.2. Изменчивость во времени и в пространстве ......Page 36
1.8.3. Динамическое связывание ......Page 37
1.9. Резюме ......Page 38
2.1. Общность: суть абстрагирования ......Page 40
2.1.1. Дедуктивная и индуктивная общность ......Page 41
2.1.2. Семейства программ ......Page 43
2.2. Подготовка анализа: словарь предметной области ......Page 44
2.2.1. Словарь предметной области ......Page 45
2.2.2. Команда разработчиков словаря ......Page 46
2.3. Измерения и категории общности ......Page 48
2.3.1. Структура (данных) ......Page 51
2.3.2. Имя и поведение ......Page 55
2.3.3. Алгоритм ......Page 58
2.4.1. Структура ......Page 59
2.4.2. Имя и поведение ......Page 60
2.4.3. Алгоритм ......Page 62
2.5. Пересмотр результатов ......Page 63
2.6. Общность и развитие ......Page 64
2.7. Резюме ......Page 65
3.1. Изменчивость: вкус жизни ......Page 66
3.2. Общая основа ......Page 67
3.3.1. Положительная изменчивость ......Page 68
3.3.2. Отрицательная изменчивость ......Page 69
3.4. Предметная область и диапазон изменчивости ......Page 70
3.4.1. Пример с буферами редактирования текста ......Page 71
3.5.1. Время связывания и гибкость ......Page 72
3.5.4. Варианты связывания ......Page 73
3.5.5. Пример ......Page 74
3.6. Значения по умолчанию ......Page 75
3.7. Таблицы изменчивости ......Page 76
3.8. Некоторые особенности изменчивости ......Page 77
3.10. Графы зависимости изменчивости ......Page 78
3.11.Резюме ......Page 79
4.1. Анализ, анализ предметной области и большее ......Page 80
4.1.2. Семейства систем: анализ предметной области ......Page 81
4.1.4. Действия в анализе предметной области ......Page 86
4.2. Подобласти в предметном анализе ......Page 88
4.2.1. Предметный анализ и многократное использование ......Page 90
4.2.2. Модульная организация подобластей ......Page 91
4.2.3. Повторение и иерархия ......Page 92
4.3. Структура подобласти ......Page 93
4.3.1. Каркас как вариант реализации подобластей ......Page 95
4.3.2. Действия в анализе подобластей ......Page 96
4.4. Анализ: общая картина ......Page 97
4.5. Резюме ......Page 99
5.1.1. Классы и объекты ......Page 100
5.1.3. Виртуальные функции ......Page 101
5.1.4. Объектно-ориентированный: еще одно определение ......Page 103
5.1.5. Применимость объектно-ориентированного проектирования ......Page 105
5.2. Объектно-ориентированный анализ общности ......Page 106
5.2.2. Анализ изменчивости ......Page 108
5.З. Резюме ......Page 109
6.1. «Другая» предметная область ......Page 110
6.2. Область решений С++: обзор ......Page 111
6.4. Перегрузка ......Page 112
6.5. Шаблоны классов ......Page 113
6.6. Шаблоны функций ......Page 114
6.7. Наследование ......Page 115
6.7.1. Сопоставление предметных областей ......Page 116
6.8. Виртуальные функции ......Page 120
6.9. Анализ общности и полиморфизм ......Page 121
6.10. Директивы препроцессора ......Page 122
6.11.1. Когда использовать отрицательную изменчивость ......Page 123
6.11.2. Отрицательная изменчивость или разделение предметной области ......Page 131
6.11.3. Отрицательная изменчивость: резюме ......Page 133
6.12. Область решении С++: резюме ......Page 135
7.1.1. Под одну гребенку все не подстричь ......Page 136
7.1.2. Степени сложности ......Page 139
7.2. Операции мультипарадигменного проектирования ......Page 143
7.3.1. Разбиение на подобласти ......Page 148
7.3.2. Определение подходящей парадигмы внутри подобласти ......Page 150
7.3.3. Реализация проекта ......Page 157
7.4.1. Анализ, архитектура или проектирование? ......Page 158
7.5. Другой пример: автоматическое дифференцирование ......Page 159
7.5.1. Предметная область Основных операции ......Page 161
7.5.3. Предметная область Величины ......Page 162
7.5.4. Развитие проекта ......Page 165
7.6. «Забортные» (внешние) парадигмы ......Page 166
7.7.1. «Бритва Оккама»: не усложняем ......Page 167
7.7.2. Разделяй и властвуй ......Page 168
7.7.3. За пределами С++ ......Page 170
7.8. Резюме ......Page 171
8.1. Методика и проектирование ......Page 172
8.2. Анализ общности: каким является измерение общности? ......Page 173
8.3. Несколько измерений изменчивости при едином наборе общих характеристик ......Page 174
8.3.1. Анализ изменчивости ......Page 175
8.3.2. Выражение общности и изменчивости на С++ ......Page 176
8.4. Взаимозависимые предметные области ......Page 179
8.4.1. Случай первый: связывание при компиляции ......Page 184
8.4.2. Случай второй: тип буфера определяется типом носителя во время выполнения; тип носителя определяется типом буфера при компиляции ......Page 186
8.4.3. Случай третий: тип буфера определяется носителем во время выполнения; тип носителя определяется типом буфера во время выполнения ......Page 191
8.5. Проект и структура ......Page 193
8.5.1. Пара слов о моменте связывания ......Page 196
8.6. Другой пример: конечный автомат ......Page 197
8.7. Решения, основанные на паптернах ......Page 202
8.8. Резюме ......Page 203
9.1. Значение идиом и патгернов ......Page 204
9.1.1. Паттерны вне языка ......Page 205
9.1.2. Паттерны и мультипарадигменное проектирование ......Page 206
9.1.4. Конструкции более высокого уровня, чем в языках программирования ......Page 207
9.1.5. Отрицательная изменчивость ......Page 208
9.2.1. Паттерны вне методов инженерии предметной области ......Page 210
9.2.3. Паттерн Метод шаблонов ......Page 211
9.2.4. Паттерн Стратегия ......Page 212
9.2.6. Паттерн Унификация ......Page 214
9.2.7. Паттерн Одиночка ......Page 215
9.3.1. Паттерн Мост ......Page 216
9.3.3. Другие паггерны ......Page 218
9.5. Резюме ......Page 219
Список литературы ......Page 220
Алфавитный указатель ......Page 224