К середине 80-х годов в стране было создано около 300 типов и более десяти семейств оригинальных ЭВМ, в основном, для оборонной техники [10, 11]. Однако большое число проектов оставалось на уровне экспериментальных образцов. Они не определяли вычислительный потенциал страны и не отражены в данной книге. Последующее изложение ориентировано на ограниченное число типов ЭВМ, сыгравших наиболее важную роль в отечественной истории развития вычислительной техники и программной инженерии. Большинство из них были оснащены отечественными операционными системами, трансляторами и отладчиками. Инструментальные средства проектирования и производства программных продуктов, естественно, были ориентированы на определенные типы аппаратуры ЭВМ и в большинстве случаев определялись используемыми вычислительными ресурсами, функциями и областями их применения. Средства программной инженерии могли реализоваться только при достаточно больших ресурсах ЭВМ. Это определило их появление и активное применение, начиная с середины 60-х годов для оборонных систем.
В 1980-е годы начинает формироваться и систематизироваться программная инженерия для проектирования крупных комплексов программ административных, гражданских сфер народного хозяйства. В эти годы происходит переход к массовому производству сложных комплексов программ высокого качества и к подготовке специалистов для поддержки жизненного цикла таких программных продуктов. На многих предприятиях началась осваиваться методология программной инженерии. Завершалась эпоха самостоятельного развития ряда поколений отечественной вычислительной техники и операционных систем для широкого применения в народном хозяйстве. Оригинальные отечественные разработки в этой области сохранялись, в основном, в оборонных отраслях промышленности. В то же время проявилась тенденция к сокращению разнообразия архитектур, к унификации мобильных, бортовых и наземных ЭВМ оборонного назначения, к их сближению с архитектурами универсальных вычислительных машин.
Этап оригинального развития вычислительной техники в СССР пошел на спад в конце 1970-х годов, когда было принято решение о переходе к производству и использованию ЭВМ, которые являлись прототипами моделей западных образцов – IBM 360 и PDP. Руководители высшего управленческого уровня не понимали уже освоенных в стране методов и технологий программной инженерии, направленных на создание сложных комплексов программ. Они видели, что на Западе имеется программный продукт, который ".без особого трудя" можно нелегально копировать и использовать, если наладить производство аппаратуры ЭВМ с соответствующей архитектурой. В угоду приоритету ЕС ЭВМ были оборваны и прекратили существование отечественные линии проектирования и производства семейств универсальных вычислительных машин, в частности, БЭСМ-6 и "Урал". Освоение зарубежных операционных систем, СУБД, прикладных и технологических программ для этих типов машин подорвало оригинальную, отечественную школу программирования и сориентировало ее на заимствование и адаптацию готовых, как правило, неизвестного качества, зарубежных программ. Такая тенденция стала в то время доминирующей. Проектирование и производство оригинальных советских ЭВМ – это успехи прошлого нашей страны. Вместе с тем, это свидетельство широких возможностей наших ученых и специалистов, которые, к сожалению, почти утрачены в настоящее время.
Однако для ряда специальных, критических сфер применения оборонных систем (например, мобильных, бортовых в авиационной, ракетной и космической технике), сохранили актуальность разработка и использование унаследованных архитектур специализированных ЭВМ реального времени на новой элементной базе. К ним предъявлялись особенно высокие требования к качеству, надежности, габаритам, климатическим характеристикам. Это обусловливало значительные особенности их архитектур и систем команд, в том числе для сохранения и модернизации ранее разработанных и эксплуатируемых крупных функциональных программных продуктов оборонных систем.
В конце 80-х годов началась очередная смена поколения вычислительной техники и активное освоение различных зарубежных персональных ЭВМ и серверов с резким увеличением доступных пользователям ресурсов. Эти годы стали переломными для истории оригинального развития отечественной вычислительной техники и программирования. Широкий поток в страну зарубежных персональных ЭВМ драматически отразился на создании отечественных средств автоматизации программирования и программной инженерии. Изобилие разнообразных программных продуктов для персональных ЭВМ переориентировало отечественных специалистов на их освоение и применение. Только в некоторых направлениях инструментальных средств программной инженерии (например, тестирование, компиляторы) продолжались исследования и создавались отдельные, принципиально новые технологические средства высокого качества.
Изменение акцентов в деятельности многих отечественных специалистов, связанных с переходом от индивидуального программирования небольших компонентов к коллективному созданию и применению методов и технологий программной инженерии, происходило в 1960-е – 80-е годы. В различных, (в основном, оборонных) областях применения программных продуктов появилась потребность в обеспечении экономической эффективности процессов проектирования и производства крупных комплексов программ. Для этого начали использоваться наиболее совершенные методы управления проектами, системная автоматизация процессов на всех этапах жизненного цикла комплексов программ для повышения производительности и качества результатов труда участвующих в этих процессах специалистов. Управленческие и технические проверки, анализ качества результатов выполнения промежуточных работ и созданных компонентов, проверки корректности их взаимодействия должны были обеспечивать заказчикам, руководителям и всем разработчикам более высокую степень уверенности в достижении требуемого конечного результата, и гарантии качества программного продукта.
Программные продукты, созданные для оборонных систем, стали интеллектуальной их основой, от качества которой зависят выполняемые ими функции и последствия их применении. К сожалению, руководители предприятий и исполнители проектов до сих пор должным образом не осознают того факта, что многие дефекты, нештатные ситуации и катастрофы сложных критических систем являются следствием низкого качества поддерживающих их функционирование программных продуктов, напрямую зависят от недостатков при применении методов и средств программной инженерии.
Публикации по истории отечественной программной инженерии в последнее время рассекречены, многие из них представлены в Интернете. Однако они не отличаются систематичностью изложения и разнообразием. Для устранения этих недостатков целесообразно привлекать, прежде всего, тех специалистов, которые в те далекие годы, непосредственно участвовали в проектах и исследованиях, в том числе работая в многочисленных закрытых учреждениях. Большинство таких специалистов предпочитали заниматься основной, профессиональной деятельностью в ущерб анализу истории и особенностей, протекающих в те или иные годы процессов. Основные публикации по истории отечественной вычислительной техники сосредоточены на особенностях и характеристиках аппаратуры ЭВМ и только немного внимания, и очень неравномерно, уделяют созданию комплексов функциональных программ, инструментальным средствам и особенностям автоматизации программирования, в которых изредка упоминаются некоторые компоненты программной инженерии. Это определялось отсутствием необходимости создания крупных комплексов программ в различных гражданских отраслях народного хозяйства.
При подготовке монографии активно использовались доступные публикации, среди которых наибольшее влияние на ее содержание оказали, прежде всего, работы некоторых ведущих отечественных специалистов, представленные в списке литературы [1 – 8], а также материалы в Интернете [11] и Компьютерном музее [10]. Материалы по развитию программной инженерии при создании систем контроля космического пространства представили Генеральный конструктор ЦНИИ Комета, доктор технических наук, профессор Виктор Порфирьевич Мисник и доктор технических наук, профессор Владимир Федорович Гребенкин, за что автор им весьма благодарен. В предлагаемой монографии, естественно, отразились профессиональные интересы, опыт и публикации автора [16–22], более 30 лет работавшего в оборонной промышленности над крупными проектами комплексов программ.
Глава 1. История появления в стране вычислительной техники и программирования в 1940-е – 60-е годы
1.1. Начало истории отечественной вычислительной техники в 1940-е – 60-е годы
Развитием промышленности по производству средств вычислительной техники правительство и руководящие органы СССР начали серьезно заниматься практически сразу же после окончания Великой Отечественной войны, считая эту задачу одной из основных для народного хозяйства [1, 2, 3]. Поручение правительства по подготовке мероприятий, связанных с развитием вычислительной техники, было дано в период острой необходимости в капитальных вложениях для подъема, разрушенного войной народного хозяйства, одновременно с философской полемикой в печати о роли "буржуазной лженауки" кибернетики. Работы, имевшие для страны большое значение, как это было принято, поручались сразу нескольким организациям. Результатом выполнения этих поручений было постановление правительства 1948-го года, предусматривавшее создание Института точной механики и вычислительной техники (ИТМ и ВТ) АН СССР и двух отраслевых организаций: НИИсчетмаш и СКБ-245, а также расширение существующей производственной базы и выделение необходимых для этого средств. Кроме того, в ряде организаций АН СССР и различных ведомств: в лаборатории электросистем Энергетического института им. Г.М. Кржижановского в Москве; в лаборатории вычислительной техники Института математики АН УССР в Киеве (позже ВЦ АН УССР); в Ереванском институте математических машин; в
Пензенском институте управляющих вычислительных машин, активно развивалась теория и началась разработка вычислительных машин. Однако к началу 50 – х годов в стране имелись только небольшие производственные мощности по выпуску счетных и счетно-перфорационных машин, электронная вычислительная техника только зарождалась, а производственные мощности по элементной базе для нее были близки к нулю.
Послевоенные годы стали отправной точкой в истории создания первых советских ЭВМ. В 1948 – 1951-е годы в Киеве в лаборатории моделирования и вычислительной техники Института электротехники АН УССР под руководством Сергея Алексеевича Лебедева была создана первая советская малая электронная счетная машина (МЭСМ) – прототип современных ЭВМ. Созданием МЭСМ в кельях бывшего монастыря "Феофания" было положено начало развитию отечественной вычислительной техники. К концу 1950 года монтаж действующего макета первой отечественной ЭВМ был завершен, и началась его проверка путем решения тестовых и ряда простейших народно-хозяйственных задач. А уже через два года в Москве, в Институте Точной Механики и вычислительном центре АН СССР, директором которого стал С.А. Лебедев, на базе разработанной в Киеве модели создается БЭСМ – большая электронная счетная машина. Машины данной серии становятся одними из лучших в США и Европе! Сегодня в это сложно поверить, однако быстродействие БЭСМ, а также возможность выполнить сложные математические операции подтверждало высокий уровень развития науки и технологий в Советском Союзе и открывало широкие перспективы для новых открытий и достижений.
Параллельно с С.А. Лебедевым по постановлению правительства над созданием электронно-вычислительных машин проводили работы и другие ученые – с 1948-го года в конструкторском бюро № 245, возглавляемом М.А. Лесечко, шла разработка цифровой вычислительной машины, получившей название "Стрела". Скорость ее работы составила две тысячи операций в секунду, что в пять раз уступает быстродействию БЭСМ. "Стрела" впервые стала выпускаться серийно.
Важнейшим звеном в истории советской вычислительной техники стали созданные группой инженеров под руководством И.С. Брука машины "М1". Данная машина отличалась невысоким быстродействием, но ее важным преимуществом были небольшие габаритные размеры, что делало ее применение удобным в любых помещениях. Впоследствии разработки И.С. Брука были усовершенствованы, и в 1953-ем году машина "М2", скорость работы которой составляла уже 2 тысячи операций с минуту, сочетала в себе все преимущества советских ЭВМ.
Три электронно-вычислительные машины на лампах – БЭСМ, "Стрела" и "М2" относятся к советским ЭВМ первого поколения (рис. 1).
Рис. 1.
Все эти разработки имели существенные недостатки – высокая степень энергопотребления и небольшая оперативная память требовали совершенствования, но и западные машины того времени не превосходили советские ЭВМ по своим эксплуатационным характеристикам.
В середине 40-х годов в США был опубликован документ под названием "Архитектура, фон Неймана". В нем великий физик и математик Джон фон Нейман (John von Neumann) описал вычислительную систему, в которой процессорный модуль отделен от устройства хранения данных. Вскоре был создан, а затем и усовершенствован первый американский компьютер ENIAC. Его установили в Университете штата Пенсильвания, США, и начали использовать для решения научных задач. Тогда же в Англии появились первые управляемые программами ЭВМ. Ученым уже было известно, что американские и британские коллеги достигли определенных успехов, но "холодная война" наложила ограничения – исследования заморских умов нашим конструкторам были недоступны.
При создании проекта МЭСМ в 1947-м году С.А. Лебедевым были независимо от работ Дж. фон Неймана сформулированы аналогичные основные принципы построения архитектуры электронных вы числительных машин:
• в состав ЭВМ должны входить арифметическое устройство, память, устройство управления и устройство ввода-вывода;
• программа в машинных кодах должна храниться в той же памяти, что и числа;
• для представления чисел и команд должна применяться двоичная система счисления;
• вычисления должны выполняться автоматически в соответствии с программой, хранящейся в памяти;
• логические операции должны выполняться наряду с арифметическими операциями;
• память машины должна быть организована по иерархическому принципу.
Основой высокой эффективности деятельности С.А. Лебедева являлось понимание основополагающих принципов развития столь сложного направления человеческой деятельности, как электронная вычислительная техника, глубокий теоретический анализ выполняемых проектов [2]. Отсюда чрезвычайно высокие требования к главному конструктору и разработчикам выполняемого проекта. С.А. Лебедев тщательно обдумывал все аспекты проблемы и в результате не имел практически ни одного проекта "в корзину". Все его разработки – более полутора десятков проектов ЭВМ, были внедрены в серийное производство, из которых две трети для задач обороны страны.
С.А. Лебедев очень точно определил направление развития вычислительной техники. Ее передовым фронтом он считал высокопроизводительные вычислительные системы. Сергей Алексеевич отстоял основное направление работы ИТМ и ВТ – высокопроизводительные вычислительные системы, несмотря на то, что впоследствии Институту предлагали главную роль в стране по разработке вычислительной техники на базе прототипов ЕС ЭВМ. Он считал, что развитие вычислительной техники определяют сверхвысокопроизводительные системы и страна должна иметь самостоятельное направление в этой области.
С 1953-го года в стране был налажен серийный выпуск вычислительных машин. Первой в серию пошла ЭВМ "Стрела", созданная в СКБ-245 под руководством Ю.Я. Базилевского. Основные характеристики ЭВМ "Стрела":
• ЭВМ была разработана на обычных для того времени радиолампах общим количеством ~ 6000 штук;
• быстродействие 2000 операций в секунду, тактовая частота 50КГц, команды трехадресные;
• оперативная память содержала 2048 ячеек, ячейка, в которой размещались трехадресная команда или число, содержала 43 двоичных разряда, оперативная память была выполнена на электронно-лучевых трубках (ЭЛТ), каждый разряд запоминался на отдельной трубке;
• общая потребляемая мощность составляла ~ 150 кВт, что создавало значительные проблемы с теплоотводом;
• оперативным средством связи пользователей являлся центральный пункт управления. Он содержал по 3 ряда тумблеров и индикаторов (по 43 неоновых лампочек каждый) и ряд индикаторов адреса выполняемой команды.
Несмотря на обилие радиоламп с ограниченным гарантийным сроком службы (до 500 часов) конструктивная реализация ЭВМ позволила довести среднее полезное время работы до 20 часов в сутки, но машина все равно с трудом справлялась с потоком задач. Из-за периодических сбоев при работе ЭВМ задачи считались с "двойным просчётом" и со сравнением контрольных сумм результатов.
Первыми программистами были выпускники ведущих вузов с физико-математической специализацией.
Они, в большинстве случаев, получив начальную постановку задачи и исходные данные, участвовали в её формализации, в разработке и отладке алгоритма и программы, зачастую выполняли функции операторов в организации вычислений.