| 1. Программы операционной системы | Стандартное разделение программного обеспечение |
| 2. Программы системы управления базой данных | |
| 3. Программное обеспечение системы связи | |
| 4. Программы ввода/вывода | |
| 5. Программы работы с дисплеями | |
| 6. Программы информационной системы | |
| 7. Использование управления конфигурацией | |
| 8. Обеспечение необходимого качества | |
| 9. Документация, описывающая функцию программы по подпрограммам | |
| 10. Диаграммы, отображающие взаимоотношения оборудования и программ, с обозначением внутренних и внешних потоков данных | |
| 11. Языки высокого уровня | |
| 12. Использование анализа и оценок необходимых ресурсов (ЦП, память) | |
| 13. Использование структурного программирования | |
| 14. Размеры модулей небольшие; функциональное разграничение ярко выраженное, обязательное упрятывание информации | |
| 15. Список ограничений, возникших при проектировании, и принципов построения проекта | |
| 16. Частый сквозной контроль | |
| 17. Использование библиотекарей | |
| 18. Внесение исправлений в рабочие и исходные программы | |
| 19. Использование средств автоматизации сопровождения | |
| 20. Проектирование высокой производительности системы | |
| а) функциональной: доля удовлетворенных требований | |
| б) технической: точность, методология, проверка алгоритмов | |
| в) операционной: восстанавливаемость после сбоев | |
| г) удовлетворение временных ограничений на производительность | |
Важнейшей причиной применения системы управления базой данных должно быть стремление автоматизировать процесс внесения исправлений и сэкономить силы программистов.
Из-за того что мы настойчиво придерживаемся стандартов, фаза разработки программного обеспечения может потребовать больше времени и будет стоить немного (а может быть, и значительно) дороже. На фазе использования могут произойти подобные вещи. Мы будем вынуждены тратить время на выполнение дополнительных команд, вставленных нами в программу для обеспечения модульности и лучшей читаемости. Нам потребуется несколько больше памяти. Зачем нам это все надо? Для фазы продолжающейся разработки. В этой фазе мы сэкономим столько, что оправдаем все расходы на предыдущих двух.
Наша отрасль еще столь молода, что все новейшие фантазии воспринимаются в качестве новых великолепнейших методов, способных решить множество проблем. Возможно, этому способствуют средства массовой информации, стремящиеся повысить тиражи журналов и поднимающие шумиху вокруг
Вероятно, действуют все эти причины. Но мудрый руководитель помнит, какая участь ожидает первопроходцев, и ждет, пока очередное новшество не будет опробовано кем-то другим и зарекомендует себя, и только потом начинает применять новинку на практике.
Репутацию фирмы-производителя нельзя считать мерой надежности. Сколько пользователей пострадало, когда фирма IBM испортила первую версию системы ОС/360? Системы реального времени для модели 67? Программное обеспечение для Series 1?
Сети вычислительных машин, универсальные компиляторы и распределенная обработка данных — вот лишь немногое из списка фантастических замыслов, прорвавшихся в промышленное производство.