Очерки истории отечественной программной инженерии в 1940 е 80 е годы - Владимир Липаев 5 стр.


После первых успехов в области создания трансляторов ТА-1, ТА-2 и Альфа в 1964-м – 65-м годах отечественные исследования в области автоматизации программирования продолжали сохранять высокий темп развития. Появление ЭВМ 2-го поколения (Минск 2, БЭСМ-4, М-220 и др.) в целом определило созревание концепции математического (программного) обеспечения и идентификацию системного программирования. Интенсивная работа над трансляторами с Алгола-60 привела к практическому исчезновению профессии вспомогательного программиста-кодировщика машинных кодов и замене ее на профессионального системного программиста. Все первые трансляторы писались в восьмеричном машинном коде с минимальными средствами автоматизации. Это привело к появлению первых языков системного программирования и к первой системе построения трансляторов, основанной на промежуточном универсальном машинно-ориентированном языке АЛМО. Пионерскими в области программирования были работы А.П. Ершова [1, 4] по компиляции с минимальной памятью и по теории программирования (схемы Янова – Ершова).

Параллельно работам по Алголу-60 развивались события, приведшие к организации ассоциации пользователей ЭВМ М-20. В середине 1961-го года решением Президиума Академии наук СССР ассоциация получила статут юридического лица и официальное название "Комиссия по эксплуатации вычислительных машин М-20". Деятельность Комиссии была важна не только созданием прецедента, за которым последовало создание аналогичных ассоциаций для БЭСМ-2, для семейства "Урал", а также для серии "Минск", но и ускорением разработки концепции математического (программного) обеспечения.

В 1964-м году началось проектирование первых программных операционных систем для пакетной обработки с использованием загрузчиков и трансляторов ассемблеров, работающих в автоматическом режиме с помощью языков управления заданиями. Большую роль в формировании современного взгляда на математическое обеспечение и архитектуру ЭВМ сыграл Конгресс ИФИП 1965-го года, когда концепции совместимых семейств машин, разделения времени, мини-ЭВМ стали объектом делового интереса советских специалистов. Начиная с 1964-го года, разработка математического (программного) обеспечения стала элементом государственной технической политики. Государственный комитет по науке и технике (ГКНТ) был назначен координатором работ по математическому обеспечению существующих машин и генеральным заказчиком для промышленности на математическое обеспечение вновь создаваемых ЭВМ. Ассоциации пользователей ЭВМ активно представляли научно-техническое общественное мнение и играли существенную роль в распространении новых программ. Апробация новых систем программирования, а впоследствии и операционных систем проводилась междуведомственной комиссией по математическому обеспечению под председательством академика А.А. Дородницына и целевыми комиссиями, осуществлявшими приемку новых компонентов математического обеспечения.

Первая докторская диссертация по программированию была защищена в Киеве Е.Л. Ющенко в 1966-м году по материалу разработки серии трансляторов на основе адресного языка. Л.Н. Королев стал в 1965-м году первым профессором – программистом [4]. Первое время все эти диссертации причислялись к существовавшим в то время родственным специальностям: вычислительной математике, счетно-решающим устройствам и т. д. В середине 60-х годов под влиянием серии работ по теоретическому программированию была образована новая специальность "математическая логика и программирование". А.П. Ершов был первым программистом, ставшим членом-корреспондентом АН СССР в 1970-м году, а в 1980-м году – ее действительным членом. Сознавая социальные последствия использования ЭВМ и культурное значение программирования (он называл его "второй грамотностью"), А.П. Ершов активно проповедовал его введение в школьную информатику и в курс "Основы вычислительной техники и обработки информации". Его желание компьютеризировать школу преследовало двойную цель: развить в молодых людях интеллектуальный дар программирования и обогатить их мощью информационной обработки.

А.П. Ершов активно поддерживал международный научный обмен и сотрудничество. Он постоянно участвовал в различных комитетах и конференциях IFIP, организовывал многочисленные международные конференции в Новосибирске и других регионах Советского Союза. А.П. Ершов инициировал (и часто редактировал) переводы западных книг по информатике. Установление и развитие личных и профессиональных связей между иностранными учеными и их советскими коллегами было целью, которой он посвятил значительную часть своей энергии.

Взгляды АП. Ершова на программирование, выраженные в серии очерков, начатой в 1972-м году, привлекли широкое внимание во всем мире. Описывая свою профессию поэтически, он утверждал [6]:

"…Программист должен обладать способностью первоклассного математика к абстракции и логическому мышлению в сочетании с эдиссоновским талантом сооружать все что угодно из нуля и единицы. Он должен сочетать аккуратность бухгалтера с проницательностью разведчика, фантазию автора детективных романов с трезвой практичностью экономиста. А, кроме того, программист должен иметь вкус к коллективной работе, понимать интересы пользователя и многое другое.

Машина, снабженная программой, ведет себя разумно. В этот кульминационный момент программист, по существу, представляет троицу. Он ощущает себя отцом – как создатель программы, сыном – как брат машины, выполняющей программу, и носителем святого духа – как тот, кто вложил жизнь в сочетание программы и машины".

Сильным тормозом в развитии и внедрении автоматизации программирования в 50-е годы было отсутствие буквенно-цифровых устройств ввода-вывода, которые стали общедоступными только с машинами 2-го поколения. Это затрудняло внедрение и ослабляло потребность в разработке комфортных средств отладки. Сужалась и даже становилась в значительной степени бесполезной методика символического кодирования и программирования. Более глубоким последствием стал недостаток внимания к текстовому представлению входных программ для первых трансляторов. Другим примером ограничительного влияния оборудования являлось довлевшее над большинством разработчиков трансляторов требование воссоздать средствами входных языков "любую" машинную программу.

1.3. Первые комплексы программ для оборонных систем в 1950-е – 60-е годы

Большое число крупных оригинальных, специализированных исследований и производственных работ по программированию, которые были связаны с созданием оборонной техники для авиации, космических, ракетных, морских и наземных систем, долгое время оставались секретными. Они охватывали множество сложнейших вычислительных задач, а также специфические задачи управления и обработки информации в динамических оборонных системах реального времени. Этот класс задач был не актуальным и недоступным для индивидуальных программистов в вузах и научных учреждениях, практически не упоминался в открытой печати, однако в 60-е годы и в дальнейшем ими были заняты в стране сотни тысяч специалистов, связанных с созданием сложных программ для ЭВМ.

Сергей Алексеевич Лебедев являлся инициатором внедрения электронной вы числительной техники в оборонные системы: в радиолокацию, ракетостроение и системы передачи данных. По его инициативе впервые в СССР, а возможно и в мире, проведены работы по фиксированию данных с радиолокационных станций сопровождения целей в цифровом виде и по передаче управляющей информации для наведения самолета или ракеты на цель. Преимущества вычислительной техники в системах военного применения были впервые продемонстрированы под руководством С.А. Лебедева в "Системе А" – экспериментальной системе противоракетной обороны (ПРО). Данный комплекс управлял радиолокационной станцией дальнего обнаружения и сопровождения цели и точного наведения противоракеты на баллистическую ракету противника [8, 9]. Были разработаны принципы построения вычислительных средств противоракетной обороны и создан высокопроизводительный вычислительный комплекс для решения задач высококачественного автоматического управления сложными, разнесенными в пространстве объектами, работающими в реальном масштабе времени. В его состав входили ЭВМ М-40, радиолокаторы обнаружения и сопровождения цели, радиорелейные линии передачи данных в замкнутой системе точного наведения ракеты, система контрольно-измерительной аппаратуры. ЭВМ М-40 начала выполнять сложные боевые задачи в 1957-м году. Впервые были предложены принципы распараллеливания вычислительного процесса за счет аппаратных средств. В марте 1961 года на этом комплексе впервые в мире была ликвидирована боевая часть баллистической ракеты осколочным зарядом противоракеты. За эти работы коллектив ведущих разработчиков комплекса, в том числе С.А. Лебедев и В.С. Бурцев, был удостоен Ленинской премии. ЭВМ М-50, введенная в строй в 1959 году, и явилась модификацией ЭВМ М-40, обеспечивающей выполнение операций с плавающей запятой и рассчитанной на применение в качестве универсальной ЭВМ. На базе М-40 и М-50 был создан двухмашинный комплекс.

С 1953-го года Михаил Романович Шура-Бура работал в Отделении прикладной математики Математического института им. В.А. Стеклова, созданном М.В. Келдышем в 1953-м году и преобразованном затем в Институт прикладной математики АН СССР (ныне ИПМ РАН им. М.В. Келдыша). В эти годы главной задачей и организационным успехом М.Р. Шуры-Буры как руководителя отдела программирования в ИПМ было формирование отдела [11]. Первым результатом работы отдела в 1953-м – 1955-м годах было применение программ для расчета энергии взрывов при моделировании ядерного оружия на ЭВМ "Стрела". Постановки задач и методы расчетов для этих программ готовили отделы математиков (А.Н. Тихонов, А.А. Самарский, И.М. Гельфанд). Программирование задач такой сложности в машинных кодах на ЭВМ, имевшей оперативную память емкостью всего 1000 ячеек, неработающий накопитель на магнитной ленте и частые сбои в арифметике и управлении, требовало от программистов виртуозного умения и оригинальных находок в организации отладки программ и счета. В 1954 – м году М.Р. Шура-Бура защитил диссертацию на соискание ученой степени доктора физико-математических наук.

В середине 50-х годов отдел программирования был привлечен М.В. Келдышем к расчетам траекторий искусственных спутников Земли (ИСЗ). Программы, разработанные сотрудниками отдела, возглавляемого Михаилом Романовичем, для ЭВМ "Стрела", а затем М-20, должны были обеспечивать круглосуточный режим обработки измерений траекторий ИСЗ. Они использовались, начиная с 1957-го года при запуске первых и последующих ИСЗ, при полете Ю.А. Гагарина в 1961-м году и затем в течение последующих 10 лет. Значение этих работ трудно переоценить, потому что результаты траекторных расчетов, производимых в разных организациях, иногда не совпадали, что для управления космическими полетами было недопустимо.

Весьма значительным было влияние ИПМ и лично М.Р. Шуры-Буры на выбор архитектуры отечественных универсальных компьютеров. В 1955-м году на начальной стадии проекта ЭВМ первого поколения М-20 в разработке участвовали три человека: С. А. Лебедев (общие характеристики и структура машины), М.Р. Шура-Бура (система команд), П.П. Головистиков (схемотехника). Основные архитектурные решения М-20, предложил М.Р. Шура-Бура. Эти архитектурные решения М-20 были сохранены в ЭВМ М-220, М222, построенных на основе полупроводниковой элементной базы. Эти машины стали "рабочими лошадками" для выполнения научных и инженерных расчетов во многих исследовательских, проектных и оборонных организациях страны. Это была одна из немногих моделей ЭВМ, при создании которой объединились проектанты, конструкторы и математики, представленные ИТМ и ВТ, конструкторским бюро, создавшим машину "Стрела".

Эта солидная основа возлагала большую ответственность на разработчиков, поскольку ее архитектуре предстояло воплотиться в нескольких крупных сериях ЭВМ (М-20, БЭСМ-4, М-220). Для машин типа М-20 – БЭСМ-4, которая также относилась к семейству машин С.А. Лебедева, было разработано, по крайней мере, три системы технологических программ в ИПМ АН СССР, в МГУ, в СО АН СССР. Эти системы отличались мнемоникой задания кодов операций, методами кодирования адресных полей машинных команд и методами настройки программ при размещении их в памяти. В это же время велись интенсивные работы по созданию систем библиотечных программ, отличавшихся друг от друга по правилам размещения их в оперативной памяти и по механизмам обращения к ним. В автокодах учитывалась необходимость размещения библиотечных программ в любом месте оперативной памяти, и были разработаны механизмы настройки подпрограмм по адресам размещения. При проектировании архитектуры машин предусматривалась аппаратная поддержка механизмов обращения к подпрограммам (процедурам) и методов передачи параметров.

В сферу научных исследований и разработок в начале 60 – х годов в Советском Союзе (почти одновременно в несколько ином виде в США) вошел и был апробирован новый широкий класс вычислительных систем и телекоммуникационных сетей реального времени – первый советский прототип современных информационных глобальных сетей и Интернета. В нем основными компонентами и источниками информации являлись траектории воздушных объектов, характеризующиеся их назначением, координатами и обобщенными параметрами движения, определяющие требования к функциям сложных комплексов программ управления в системе противовоздушной обороны (ПВО) [12]. Телекоммуникационные сети ЭВМ обеспечили обмен и обобщение информации от радиолокационных узлов на большой территории страны для непрерывного обнаружения и сопровождения воздушных объектов. К таким системам заказчиком предъявлялись высокие требования к качеству функционирования и гарантированного решения задач.

Примером оригинальных (в то время секретных) работ в НИИ-5 (МНИИПА) являлось создание программ реального времени и телекоммуникационной сети системы ПВО страны и радиолокационного узла (РЛУ) "Межа" (главный конструктор Владимир Алексеевич Шабалин, заместитель – Анатолий Николаевич Коротоношко). Программный комплекс обработки радиолокационной информации в 1962-м – 68-м годах на ЭВМ 5Э89 был создан под руководством Владимира Васильевича Липаева (докторская диссертация – 1967-й год по специальности радиолокация). При этом был разработан в 1962-м году принципиально новый тип операционной системы реального времени на ЭВМ для автоматической синхронизации и управления динамическим решением разнородных задач о движущихся воздушных объектах при случайных потоках информации из внешней среды и случайной длительности обработки каждого сообщения. Операционная система обеспечивала функционирование комплекса программ телекоммуникационные сети для транспортировки и обработки информации на ЭВМ между несколькими соседними РЛУ о траекториях движения динамических объектов и для обобщения характеристик их траекторий.

В эти годы генерирование динамических тестов от внешних объектов на специализированных мобильных ЭВМ было невозможно вследствие ограниченности их вычислительных ресурсов. В 1965-м году для имитации тестов от движущихся объектов внешней среды в реальном времени были разработаны программы формирования магнитофильмов на универсальной ЭВМ М-20. На этой машине предварительно формировались и записывались на специализированных магнитофонах наборы динамических тестов о разнообразных ситуациях воздушной обстановки и движения объектов с регистрацией значений реального времени сообщений и их координат с точностью до секунды. Имитации внешней среды и динамических тестов в реальном времени, впоследствии стало широко применяться при разработке комплексов программ оборонных систем для испытаний и гарантирования их качества.

Возрастание сложности и ответственности оборонных зада ч, которые решаются крупными системами, а также увеличение возможного ущерба от недостаточного качества комплексов программ, значительно повысило актуальность освоения методов стандартизированного описания требований, а также оценивания характеристик качества на различных этапах жизненного цикла сложных комплексов программ. Широкое многообразие классов и видов программ, обусловленное различными функциями оборонных систем, предопределяло формальные трудности, связанные с методами и процедурами доказательства соответствия программного продукта условиям контрактов, требованиям заказчиков и потребителей. По мере расширения сферы применения и увеличения сложности выделились области, в которых ошибки или недостаточное качество программ или данных могли нанести ущерб, значительно превышающий положительный эффект от их использования.

Для создания безопасных систем и программных продуктов, прежде всего, необходимо было формализовать их назначение, функции и основные характеристики. На этой основе должны разрабатываться требования к безопасности и другим характеристикам качества, к обработанной информации для потребителей, адекватной назначению и функциям систем. Требования к функциям систем и программным продуктам, а также к безопасности их функционирования должны были соответствовать доступным ресурсам для их реализации с учетом допустимого ущерба – рисков при неполном выполнении требований. Основными источниками отказовых ситуаций были некорректные исходные требования, сбои и отказы в аппаратуре, дефекты или ошибки в программах и данных функциональных задач, проявляющиеся при их исполнении в соответствии с назначением. Стратегической задачей в жизненном цикле оборонных систем стало обеспечение требуемого качества программных продуктов при реальных ограничениях на использование вычислительных и иных ресурсов, выделяемых для их разработки и применения.

Назад Дальше