12.9 Главную библиотеку программ нужно разделить на: 1) набор индивидуальных "игровых площадок", 2) подбиблиотеку системной интеграции, проходящую системное тестирование и 3) версию-релиз. Формальное разделение и перемещение обеспечивают контроль.
12.10 Инструмент, обеспечивающий наибольшую экономию труда в программном проекте, - это, наверное, система редактирования текстов.
12.11 Объемистость системной документации создает новый тип непостижимости (см., например Unix), но это значительно предпочтительнее, чем более распространенный крайний недостаток документации.
12.12 Создайте эмулятор производительности снаружи внутрь, сверху вниз. Начните работу с ним как можно раньше. Прислушайтесь к тому, что он вам скажет.
Языки высокого уровня
12.13 Только лень и инертность препятствуют повсеместному применению языков высокого уровня и интерактивного программирования. (Но сегодня они приняты повсеместно.)
12.14 Язык высокого уровня способствует не только увеличению производительности, но и отладке. Меньше ошибок и легче поиск.
12.15 Прежние возражения, связанные с функциональностью, размером и скоростью результирующей программы устарели благодаря развитию языков и технологии компиляции.
12.16 Сегодня единственный подходящий кандидат для системного программирования - PL/I. (Больше не соответствует действительности.)
Интерактивное программирование
12.17 В некоторых приложениях пакетные системы никогда не будут вытеснены интерактивными системами. (По-прежнему верно.)
12.18 Отладка - это тяжелая и долгая часть системного программирования, и медленная оборачиваемость является проклятием отладки.
12.19 Есть свидетельства тому, что интерактивное программирование по крайней мере удваивает скорость системного программирования.
Глава 13. Целое и части
13.1 Детальная и старательная проработка архитектуры согласно главам 4, 5 и 6 не только упрощает использование продукта, но также облегчает его разработку и делает менее подверженным ошибкам.
13.2 Высоцкий говорит, что "очень многие неудачи связаны именно с теми аспектами, которые были не вполне специфицированы".
13.3 Задолго до всякого написания программы спецификация должна быть передана сторонней группе тестирования для тщательного рассмотрения полноты и ясности. Сами разработчики сделать это не могут.
13.4 "Нисходящее проектирование Вирта (с пошаговым уточнением) является самой важной новой формализацией программирования за десятилетие (1965- 1975)."
13.5 Вирт проповедует использование на каждом шаге нотации возможно более высокого порядка.
13.6 Хорошее нисходящее проектирование помогает избегать ошибок благодаря четырем обстоятельствам.
13.7 Иногда приходится возвращаться назад, отбрасывать самый верхний уровень и начинать все сначала.
13.8 Структурное программирование, т.е. разработка программ, управляющие структуры которых состоят только из заданного набора операторов, воздействующих на блоки кода (в противоположность беспорядочным переходам), дает верный способ избежать ошибок и представляет собой правильный способ мышления.