Это приводило к созданию для них простейших операционных систем и технологических средств для пользователей с очень ограниченными возможностями. Их разработчики не применяли регламентирующих, нормативных документов, вследствие чего жизненный цикл таких продуктов по структуре, содержанию, качеству и стоимости основных процессов «творчества» имел непредсказуемый характер. Многие авторы таких систем не стремились создать упорядоченные методы и средства массового проектирования и производства программных продуктов гарантированного качества.
Пеструю историю их создания и развития в 60-е годы трудно отразить системой методов и средств. Только в 70-е годы сформировались несколько базовых семейств ЭВМ, для которых были созданы операционные системы и технологические средства, обеспечивающие проектирование и производство больших прикладных комплексов программ. В 70-е годы начало меняться направление основных усилий разработчиков программ для ЭВМ, происходит переход от методов и процессов процедурного программирования небольших компонентов для решения частных задач к проектированию крупных комплексов программ для промышленных и административных систем реального времени. Увеличение ресурсов ЭВМ и их доступности стимулировало интенсивное расширение сфер применения и возрастание размеров создаваемых комплексов программ. Быстро увеличивались производительность, объем памяти и надежность ЭВМ, что позволяло повышать сложность выполняемых ими функций и решаемых с их помощью задач, расширять сферы их использования в науке, системах управления и в промышленности. Однако отсутствовали стимулы для объединения методов и средств создания и сопровождения программ и, как следствие, для формирования систематизированного набора положений «программной инженерии».
Второе направление с середины 60-х годов составляли крупные заказные (создаваемые по заказу государства) комплексы программ реального времени для сложных оборонных систем управления и обработки информации. Такие комплексы создавались большими коллективами специалистов, преимущественно в оборонной промышленности, оформлялись в виде программных продуктов с гарантированным качеством. Эти комплексы программ являлись компонентами систем, реализующими их основные функции и содержащими предпосылки для последующего развития и изменений. Методология управления проектами программных продуктов зависела от многих факторов: от персонала, технических, организационных, договорных требований и сложности функций. Организованная и контролируемая коллективная разработка при строгом учете и контроле каждого изменения являлась основой эффективного, поступательного развития каждой крупной вычислительной системы методами программной инженерии. Руководством страны особенно активно стимулировалось развитие таких комплексов программ для оборонных систем. В предлагаемой монографии внимание акцентируется на истории и крупных достижениях технологии программирования в оборонной промышленности страны, наименее известных современным специалистам.
В 1960-е – 80-е годы в оборонной сфере были сосредоточены огромные ресурсы науки и промышленности, работали сотни тысяч разработчиков сложных комплексов программ, в несколько раз больше, чем в гражданских отраслях. Концентрация специалистов, стимулирование их труда, естественно, давали результаты. Это, в частности, отражалось на активном ходе работ в области создания крупных интеллектуальных программных продуктов и технологических систем программной инженерии для повышения эффективности процессов разработки и оценки качества комплексов программ оборонных систем. Однако методологические и технологические достижения в этой области передовых предприятий оборонной промышленности оставались секретными, не отражались в открытых публикациях и зачастую были не известны специалистам даже близких по функциям и задачам предприятий.
Разработки комплексов программ для оборонных систем с самого начала отличались организованностью и тесным взаимодействием с заказчиками таких систем. При этом требования заказчиков к функциям и качеству программных продуктов хронически превышали возможности разработчиков и ресурсы доступных вычислительных машин. Очень быстро расширялись функции комплексов программ и, соответственно, потребности в размерах памяти и производительности ЭВМ, на которых они использовались. Это заставляло разработчиков программ создавать и использовать эффективные алгоритмы решения поставленных задач и методы программирования. Это стимулировало совершенствование тех и других, и необходимость формализации технологий применявшейся тогда программной инженерии. Расширение размеров и функций, создаваемых программных продуктов, а также уровень автоматизации их проектирования и программирования следовали непосредственно за увеличением доступных ресурсов вычислительных машин. Одновременно повышалась производительность труда специалистов и качество программного продукта.
Развитие вычислительной техники в 1960-ые годы происходило в Советском Союзе очень высокими темпами. Предприятия активно оснащались различными ЭВМ. Кульминационной точкой в истории отечественной вычислительной техники стало создание С.А. Лебедевым в 1967-ом году ЭВМ БЭСМ-6. Именно эта машина впервые поразила весь мир невероятной для того времени производительностью – один миллион операций в секунду. Машина БЭСМ-6 сильно опередила свое время, начав развитие второго поколения ЭВМ. Она вобрала в себя много оригинальных идей, подобного класса в мире тогда не было. Эта машина широко использовалась в системах автоматизации проектирования для моделирования сложнейших физических процессов и процессов управления как инструментальная машина для разработки крупных программных продуктов оборонных систем на базе различных мобильных и бортовых ЭВМ. Она оставалась востребованной рекордно долгое время, более тридцати лет – последний экземпляр БЭСМ-6 прекратили использовать только на рубеже 21-го века.
К середине 80-х годов в стране было создано около 300 типов и более десяти семейств оригинальных ЭВМ, в основном, для оборонной техники [10, 11]. Однако большое число проектов оставалось на уровне экспериментальных образцов. Они не определяли вычислительный потенциал страны и не отражены в данной книге. Последующее изложение ориентировано на ограниченное число типов ЭВМ, сыгравших наиболее важную роль в отечественной истории развития вычислительной техники и программной инженерии. Большинство из них были оснащены отечественными операционными системами, трансляторами и отладчиками. Инструментальные средства проектирования и производства программных продуктов, естественно, были ориентированы на определенные типы аппаратуры ЭВМ и в большинстве случаев определялись используемыми вычислительными ресурсами, функциями и областями их применения. Средства программной инженерии могли реализоваться только при достаточно больших ресурсах ЭВМ. Это определило их появление и активное применение, начиная с середины 60-х годов для оборонных систем.
В 1980-е годы начинает формироваться и систематизироваться программная инженерия для проектирования крупных комплексов программ административных, гражданских сфер народного хозяйства. В эти годы происходит переход к массовому производству сложных комплексов программ высокого качества и к подготовке специалистов для поддержки жизненного цикла таких программных продуктов. На многих предприятиях началась осваиваться методология программной инженерии. Завершалась эпоха самостоятельного развития ряда поколений отечественной вычислительной техники и операционных систем для широкого применения в народном хозяйстве. Оригинальные отечественные разработки в этой области сохранялись, в основном, в оборонных отраслях промышленности. В то же время проявилась тенденция к сокращению разнообразия архитектур, к унификации мобильных, бортовых и наземных ЭВМ оборонного назначения, к их сближению с архитектурами универсальных вычислительных машин.