Главная страница
Навигация по странице:

  • Предметный указатель 864Предметный указатель

  • Предметный указатель 865О

  • Предметный указатель 867утверждение 184–189, 200Ф

  • Стив Макконнелл Совершенный код Мастеркласс Перевод с английского под общей редакцией В. Г. Вшивцева Главный редактор А. И. Козлов

  • Совершенный код. Совершенный код. Мастер-класс. Стив Макконнелл. Руководство по стилю программирования и конструированию по


    Скачать 5.88 Mb.
    НазваниеРуководство по стилю программирования и конструированию по
    АнкорСовершенный код
    Дата31.03.2023
    Размер5.88 Mb.
    Формат файлаpdf
    Имя файлаСовершенный код. Мастер-класс. Стив Макконнелл.pdf
    ТипРуководство
    #1028502
    страница106 из 106
    1   ...   98   99   100   101   102   103   104   105   106
    Библиография
    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

    Предметный указатель
    867
    утверждение 184–189, 200
    Ф
    форматирование 712
    — инструменты 720
    — классов 752
    — оператора 736
    — управляющих структур 728
    — явный блок 722
    функция 177
    — возврат значения 178
    Ц
    цикл 248, 359, 379
    — бесконечный 360
    — вложение 609
    — вход 365
    — граничная точка 374
    — длина 377
    — завершение 369
    — — досрочное 371
    — минимизация работы 606
    — объединение 603
    — переменная 374
    — постоянно вычисляемый 359
    — развертывание 604
    — размыкание 602
    — с выходом 361
    — с итератором 360
    — с подсчетом 359
    — с проверкой в конце 361
    — с проверкой в начале 361
    — сигнальные значения 607
    — снижение стоимости 609
    — создание 378
    Ч
    число 283
    — с плавающей запятой 286
    — целое 284
    Ш
    шаблон 697
    Э
    эвристика 11, 74, 84, 102–105

    868
    Благодарности
    Об авторе
    Стив Макконнелл — главный разработчик ПО в компа- нии Con st rux Software, где следит за применением мето- дик разработки. Кроме того, он возглавляет отделение
    Construction Know led ge Area проекта Soft ware Engineering
    Body of Know ledge (SWE BOK). Стив работал над про- граммными проектами в Microsoft, Boeing и других ком- паниях, расположенных около Сиэтла.
    Перу Стива принадлежат книги «Rapid Development»
    (1996), «Software Project Survival Guide» (1998) и «Profes#
    sional Soft ware Development» (2004). Его книги дважды были удостоены премии Jolt Excellence журнала «Software
    Develop ment» как лучшие книги года о разработке ПО.
    Стив также был ведущим разработчиком инструмента SPC Estimate Professional, получившего приз Software Development Produc tivity. В 1998 году читатели журнала
    «Software Development» признали Стива одним из трех наиболее влиятельных людей в отрасли разработки ПО наряду с Биллом Гейтсом и Линусом Торвальдсом.
    Стив получил степень бакалавра в колледже Уитмена и степень магистра по разра- ботке ПО в Сиэтлском университете. Живет он в городе Беллвью, штат Вашингтон.
    Если у вас возникнут какие#либо комментарии или вопросы по поводу этой кни- ги, свяжитесь со Стивом по адресу
    stevemcc@construx.com или посредством сайта
    www.stevemcconnell.com.
    CC2_ob_autor.indd 868 22.06.2010 13:47:05

    Стив Макконнелл
    Совершенный код
    Мастеркласс
    Перевод с английского под общей редакцией В. Г. Вшивцева
    Главный редактор А. И. Козлов
    Подготовлено к печати издательством «Русская редакция»
    125362, Москва, ул. Свободы д. 17, а/я 14
    тел.: (499) 197#04#22, e#mail: info@rusedit.com, http:www.rusedit.com
    Подписано в печать 21.07.2010 г. Дополнительный тираж 1 500 экз.
    Формат 70
    ×100/16. Физ. п. л. 56
    Отпечатано по технологии CtP в ОАО «Печатный двор» им. А. М. Горького
    197110, Санкт#Петербург, Чкаловский пр., 15
    CC2_Exit_2010.indd 1 22.06.2010 14:16:06
    1   ...   98   99   100   101   102   103   104   105   106


    написать администратору сайта