856
1 ... 96 97 98 99 100 101 102 103 104
Библиография
861
Weinberg, Gerald M. 1998. The Psychology of Computer Programming: Silver Anniversary Edition.
New York, NY: Dorset House.
Weinberg, Gerald M., and Edward L. Schulman. 1974. «Goals and Performance in Computer
Programming.»
Human Factors 16, no. 1 (February): 70–77.
Weinberg, Gerald. 1988.
Rethinking Systems Analysis and Design. New York, NY: Dorset House.
Weisfeld, Matt. 2004.
The Object-Oriented Thought Process, 2d ed. SAMS, 2004.
Weiss, David M. 1975. «Evaluating Software Development by Error Analysis: The Data from the
Architecture Research Facility.»
Journal of Systems and Software 1, no. 2 (June): 57–70.
Weiss, Eric A. 1972. «Review of
The Psychology of Computer Programming, by Gerald M. Weinberg.»
ACM Computing Reviews 13, no. 4 (April): 175–76.
Wheeler, David, Bill Brykczynski, and Reginald Meeson. 1996.
Software Inspection: An Industry
Best Practice. Los Alamitos, CA: IEEE Computer Society Press.
Whittaker, James A. 2000 «What Is Software Testing? And Why Is It So Hard?»
IEEE Software, January
2000, 70–79.
Whittaker, James A. 2002.
How to Break Software: A Practical Guide to Testing. Boston, MA: Addison-
Wesley.
Whorf, Benjamin. 1956.
Language, Thought and Reality. Cambridge, MA: MIT Press.
Wiegers, Karl. 2002.
Peer Reviews in Software: A Practical Guide. Boston, MA: Addison-Wesley.
Wiegers, Karl. 2003.
Software Requirements, 2d ed. Redmond, WA: Microsoft Press.
Williams, Laurie, and Robert Kessler. 2002.
Pair Programming Illuminated. Boston, MA: Addison-
Wesley.
Willis, Ron R., et al. 1998. «Hughes Aircraft’s Widespread Deployment of a Continuously Improving
Software Process,» Software Engineering Institute/Carnegie Mellon University, CMU/SEI-98-TR-
006, May 1998.
Wilson, Steve, and Jeff Kesselman. 2000.
Java Platform Performance: Strategies and Tactics. Boston,
MA: Addison-Wesley.
Wirth, Niklaus. 1995. «A Plea for Lean Software,»
IEEE Computer, February 1995.
Wirth, Niklaus. 1971. «Program Development by Stepwise Refinement.»
Communications of the
ACM 14, no. 4 (April): 221–27.
Wirth, Niklaus. 1986.
Algorithms and Data Structures. Englewood Cliffs, NJ: Prentice Hall.
Woodcock, Jim, and Martin Loomes. 1988.
Software Engineering Mathematics. Reading, MA: Addison-
Wesley.
Woodfield, S. N., H. E. Dunsmore, and V. Y. Shen. 1981. «The Effect of Modularization and Comments on Program Comprehension.»
Proceedings of the Fifth International Conference on Software
Engineering, March 1981, 215–23.
Wulf, W. A. 1972. «A Case Against the GOTO.»
Proceedings of the 25th National ACM Conference,
August 1972, 791–97.
Youngs, Edward A. 1974. «Human Errors in Programming.»
International Journal of Man-Machine
Studies 6: 361–76.
Yourdon, Edward, and Larry L. Constantine. 1979.
Structured Design: Fundamentals of a Discipline
of Computer Program and Systems Design. Englewood Cliffs, NJ: Yourdon Press.
Yourdon, Edward, ed. 1979.
Classics in Software Engineering. Englewood Cliffs, NJ: Yourdon Press.
Yourdon, Edward, ed. 1982. Writings of the Revolution: Selected Readings on Software Engineering.
New York, NY: Yourdon Press.
862
Библиография
Yourdon, Edward. 1986a. Managing the Structured Techniques: Strategies for Software Development in the 1990s, 3d ed. New York, NY: Yourdon Press.
Yourdon, Edward. 1986b.
Nations at Risk. New York, NY: Yourdon Press.
Yourdon, Edward. 1988. «The 63 Greatest Software Books.»
American Programmer, September.
Yourdon, Edward. 1989a.
Modern Structured Analysis. New York, NY: Yourdon Press.
Yourdon, Edward. 1989b.
Structured Walk-Throughs, 4th ed. New York, NY: Yourdon Press.
Yourdon, Edward. 1992.
Decline & Fall of the American Programmer. Englewood Cliffs, NJ: Yourdon
Press.
Zachary, Pascal. 1994.
Showstopper! The Free Press.
Zahniser, Richard A. 1992. «A Massively Parallel Software Development Approach.»
American
Programmer, January, 34–41.
G
GUI 44
I
IDE 695
P
Pseudocode Programming Process
См. ППП
U
UDT 272
UML (Unified Modeling Language) 115
А
абстрактный тип данных
См. АТД
абстракция 86, 135, 149, 160
аккреция 14
алгоритм 11
архитектура 41
— безопасность 45
— бизнес-правила 44
— ввод-вывод 46
— взаимодействие с другими системами 45
— возможность реализации 48
— избыточная функциональность 48
— интернационализация/локализация 46
— масштабируемость 45
— обработка ошибок 46
— общее качество 50
— организация данных 43
— организация программы 42
— основные классы 43
— отказоустойчивость 47
— повторное использование 49
— пользовательский интерфейс 44
— производительность 45
— стратегия изменений 49
— управление ресурсами 44
АТД (абстрактный тип данных) 122, 123, 125,
126, 127, 128, 129, 132
атрибут 84
Б
баррикада 198, 200
см. также изоляция по- вреждений блок 436,
см. также оператор, составной
— границы 725
— эмуляция 723
— явный 722
В
время связывания 104
Г
глобальные данные 326, 327, 328, 329, 330, 334
Д
диаграмма 104
директива 11
З
заглушка 203
И
иерархия
102
изоляция повреждений 198
см. также бар- рикада индекс
— длины строки 613
— цикла 257, 258
инкапсуляция 87, 135
инкрементное улучшение 108
инспекция 477
интеграция 3, 4, 673
— инкрементная 676, 678
— — восходящая 681
— — нисходящая 678
— — риск-ориентированная 683
Предметный указатель
864
Предметный указатель
— — сэндвич-подход 682
— — Т-образная 685
— — функционально-ориентирован- ная 684
— непрерывная 690
— поэтапная 675
интегрированные среды разработки
См. IDE
интеллектуальный инструментарий 19
интерфейс 129–137, 170, 697, 752
исключение 193–198
итерация 107, 590
К
класс 86, 121, 145–152
— включение 139
— данные-члены 146
— конструирование всех методов 210
— конструктор 147
— контракт 103
— метод-член 146
— наследование 140
— — множественное 145
— оценка 210
— пакет 153
— проект 575
— создание общей структуры 210
— тестирование 210
— форматирование 752
ключевое слово 152
код
— библиотека 701
— инструменты для сборки 701
— компилятор 700
— компиляция 575
— компоновщик 700
— мастер для генерации 702
— оптимизация 574, 576, 581, 582, 595, 704
— создание 700
— транслятор 699
кодирование 2, 3, 4
комментарий 220, 221, 222, 747, 764
конвенции программирования 63
конвенция именования 263, 264, 266, 267, 268,
269, 270, 271
константа 263
— именованная 299
конструирование 3, 4, 5, 22, 70
— график 655
— методика 66
— план 2, 4
— подготовка 23
— совместное 472, 487
кэширование 614
Л
литерал 289
логические выражения 424, 428, 430, 435
М
массив 301, 379, 611
метафора 8, 9, 10, 11, 12, 14, 15, 19
метод 133, 138, 143, 157, 158, 160, 162, 163, 165
— встраиваемый 178, 180
— встраивание 625
— доступа 331, 332, 333
— заголовок 217
— имя 167, 168, 215
— интерфейс 170, 175, 219, 224
— кодирование 218
— комментирование 787
— компиляция 223
— макрос 178–186
— множественные возвраты 382
— наследование 161
— объем 169
— параметр 170–177
— проверка кода 223
— проект 575
— проектирование 214
— псевдокод 217
— размещение 750
— рекурсия 385
— связанность 163
— создание 211
— табличный 405
— тестирование 224
методология 23
моделирование 8
модель 9
модульность проекта системы 104
Предметный указатель
865
О
обработка ошибок 189–198, 215, 393
объект 84
оператор 338
—
case 353
—
if 346
—
switch 353
— порядок выполнения 342
— пустой 437
— составно
См. также блок
— составной 436
— форматирование 736
оптимизация 573
отладка 2, 3, 4, 5, 200, 201, 202, 203, 204, 524
оценка 659
П
переменная 230
— булева 261
— временная 260
— время жизни 239, 241
— время связывания 246
— единственность цели 249
— имя 253, 254, 257, 274, 275, 277, 279
— — длина 255
— инициализация 233, 234, 235, 236
— логическая 292
— область видимости 238, 239, 242, 244,
255
— обращение 238
— объявление 232, 236
— — неявное 232, 233
— персистентность 245
— статуса 258, 259
— указатель 318
— цикла 374
перечисление 262
портируемость 161
построение 15
ППП (процесс программирования с псевдоко- дом) 209, 214, 225
префикс 272–273
приращение 14
программирование
— парное 475
— структурное 448
— — выбор 449
— — итерация 450
— — последовательность 448
проект
— анализ 484
— измерение 661
— презентация 487
— размер 5, 635
— чтение кода 486
проектирование 70, 71, 72, 73, 74, 84
— восходящее 108, 109, 110
— высокоуровневое 2
— детальное 2, 3, 4
— инструмент 695
— метод 163
— методика 107
— нисходящее 108, 110
— программная система 79
— методов 83
— разделение
— — классов на методы 83
— — подсистем на классы 82
— — системы на подсистемы или паке- ты 79
— регистрация
114
— связность 102
— совместное 112
— управление сложностью 74, 75
— характеристики проекта
— — возможность повторного использо- вания 78
— — высокий коэффициент объедине- ния по входу 78
— — минимальная сложность 77
— — минимальная, но полная функцио- нальность 78
— — низкий или средний коэффициент разветвления по выходу 78
— — портируемость 78
— — простота сопровождения 77
— — расширяемость 77
— — слабое сопряжение 77
— — соответствие стандартным методи кам 78
— — стратификация 78
866
Предметный указатель
— характеристики проекта 77
— часто используемые подсистемы
— — подсистема бизнес-правил 82
— — подсистема доступа к БД 82
— — подсистема изоляции зависимостей от ОС 82
— — подсистема пользовательского ин- терфейса 82
— часто используемые подсистемы 82
— шаблон 99, 100, 101
прототипирование 110, 111
процедура 177
процесс программирования с псевдоко- дом
См. ППП
псевдокод 211, 212, 213, 216, 219
Р
рефакторинг 108, 553
— безопасный 566
— интерфейсов классов 562
— исходного кода 699
— на уровне данных 559
— на уровне отдельных методов 561
— на уровне отдельных операторов 560
— на уровне системы 563
— реализации классов 562
— стратегия 568
С
связанность 163
связность 135
— временная 165
— коммуникационная 164
— логическая 166
— последовательная 164
— процедурная 165
— случайная 166
— функциональная 164
селективные данные 248
символ 289
словарь данных 700
сокрытие информации 89, 90, 91, 92, 93
сопровождение корректирующее 3
сопряжение 96, 98, 102, 139, 164
спецификатор вычисляемых значений 256
стандарты 646, 795
строка 289, 290
структура 310, 313
Т
тестирование 22, 492
— автоматизированное 519
— блочное 3, 4, 5, 490
— инструменты 513
— — возмущения состояния систе- мы 517
— — генераторы тестовых данных 515
— — леса 513
— — мониторы покрытия кода теста- ми 516
— — регистраторы данных 516
— — символические отладчики
517
— — сравнения файлов 515
— интеграционное 3, 4, 5, 491
— компонента 490
— неполное 497
— оптимизация 518
— основанное на потоках данных 500
— планирование 518
— прием 496
— протокол 520
— регрессивное 491, 515, 518
— системы 3, 5, 491
— структурированное базисное 497
тип данных 247, 257, 282
— изменение 611
— перечислимый 294, 330
— создание 303
тип проекта 28
точка управления 104
требование 2, 36–39, 650
У
указатель 61, 314, 316, 323, 324, 325, 326
— инициализация 316
— область памяти 314
— переменная 318
унифицированный язык моделирования
См. UML
управление конфигурацией 649
управляющая структура 247