В сферу научных исследований и разработок в начале 60 – х годов в Советском Союзе (почти одновременно в несколько ином виде в США) вошел и был апробирован новый широкий класс вычислительных систем и телекоммуникационных сетей реального времени – первый советский прототип современных информационных глобальных сетей и Интернета. В нем основными компонентами и источниками информации являлись траектории воздушных объектов, характеризующиеся их назначением, координатами и обобщенными параметрами движения, определяющие требования к функциям сложных комплексов программ управления в системе противовоздушной обороны (ПВО) [12]. Телекоммуникационные сети ЭВМ обеспечили обмен и обобщение информации от радиолокационных узлов на большой территории страны для непрерывного обнаружения и сопровождения воздушных объектов. К таким системам заказчиком предъявлялись высокие требования к качеству функционирования и гарантированного решения задач.
Примером оригинальных (в то время секретных) работ в НИИ-5 (МНИИПА) являлось создание программ реального времени и телекоммуникационной сети системы ПВО страны и радиолокационного узла (РЛУ) «Межа» (главный конструктор Владимир Алексеевич Шабалин, заместитель – Анатолий Николаевич Коротоношко). Программный комплекс обработки радиолокационной информации в 1962-м – 68-м годах на ЭВМ 5Э89 был создан под руководством Владимира Васильевича Липаева (докторская диссертация – 1967-й год по специальности радиолокация). При этом был разработан в 1962-м году принципиально новый тип операционной системы реального времени на ЭВМ для автоматической синхронизации и управления динамическим решением разнородных задач о движущихся воздушных объектах при случайных потоках информации из внешней среды и случайной длительности обработки каждого сообщения. Операционная система обеспечивала функционирование комплекса программ телекоммуникационные сети для транспортировки и обработки информации на ЭВМ между несколькими соседними РЛУ о траекториях движения динамических объектов и для обобщения характеристик их траекторий.
В эти годы генерирование динамических тестов от внешних объектов на специализированных мобильных ЭВМ было невозможно вследствие ограниченности их вычислительных ресурсов. В 1965-м году для имитации тестов от движущихся объектов внешней среды в реальном времени были разработаны программы формирования магнитофильмов на универсальной ЭВМ М-20. На этой машине предварительно формировались и записывались на специализированных магнитофонах наборы динамических тестов о разнообразных ситуациях воздушной обстановки и движения объектов с регистрацией значений реального времени сообщений и их координат с точностью до секунды. Имитации внешней среды и динамических тестов в реальном времени, впоследствии стало широко применяться при разработке комплексов программ оборонных систем для испытаний и гарантирования их качества.
Возрастание сложности и ответственности оборонных зада ч, которые решаются крупными системами, а также увеличение возможного ущерба от недостаточного качества комплексов программ, значительно повысило актуальность освоения методов стандартизированного описания требований, а также оценивания характеристик качества на различных этапах жизненного цикла сложных комплексов программ. Широкое многообразие классов и видов программ, обусловленное различными функциями оборонных систем, предопределяло формальные трудности, связанные с методами и процедурами доказательства соответствия программного продукта условиям контрактов, требованиям заказчиков и потребителей. По мере расширения сферы применения и увеличения сложности выделились области, в которых ошибки или недостаточное качество программ или данных могли нанести ущерб, значительно превышающий положительный эффект от их использования.
Для создания безопасных систем и программных продуктов, прежде всего, необходимо было формализовать их назначение, функции и основные характеристики. На этой основе должны разрабатываться требования к безопасности и другим характеристикам качества, к обработанной информации для потребителей, адекватной назначению и функциям систем. Требования к функциям систем и программным продуктам, а также к безопасности их функционирования должны были соответствовать доступным ресурсам для их реализации с учетом допустимого ущерба – рисков при неполном выполнении требований. Основными источниками отказовых ситуаций были некорректные исходные требования, сбои и отказы в аппаратуре, дефекты или ошибки в программах и данных функциональных задач, проявляющиеся при их исполнении в соответствии с назначением. Стратегической задачей в жизненном цикле оборонных систем стало обеспечение требуемого качества программных продуктов при реальных ограничениях на использование вычислительных и иных ресурсов, выделяемых для их разработки и применения.
1.4. Организация подготовки первых программистов в 1950-е – 60-е годы
В Московском, Ленинградском и Киевском университетах в 1950-е годы началась подготовка специалистов по вычислительной математике, в технических высших учебных заведениях появились курсы по вычислительной технике, и стали открываться кафедры вычислительных машин [1, 4, 11]. Министерство высшего образования и Высшая аттестационная комиссия ввели формальный список таких специальностей. Эти списки в системе образования и научной аттестации играли в СССР важную роль, т. к. служили средством идентификации и формального признания квалификации специалистов. В частности, каждая образовательная специальность получала право иметь самостоятельный учебный план от первого до выпускного года обучения. Учебный план в своей основной части являлся обязательным для каждого вуза и утверждался министерством. Имелось, однако, некоторое количество курсов и семинаров по выбору, которые использовались для более конкретной специализации студентов в рамках данной специальности.
В 1952-м году в нескольких университетах была открыта в дополнение к существовавшей специальности «математика» новая специальность «вычислительная математика», предназначенная для подготовки специалистов, использующих вычислительную технику. Первый учебный курс программирования в СССР был прочитан А.А.Ляпуновым в 1952-м – 53-м учебном году. Структура курса складывалась на глазах у студентов. В перерыве между первым и вторым семестрами у лектора начали складываться основные подходы к «операторному методу». Вся вторая половина курса – это была по существу совместная работа профессора и студентов по созданию и уточнению символики операторов, используемых при составлении схем программ. Курс читался и воспринимался с большим энтузиазмом, и неслучайно почти половина слушателей, математиков-вычислителей, стали после выпуска профессиональными программистами. В 1955-м году в Московском университете при кафедре вычислительной математики работал семинар по смежным вопросам кибернетики и физиологии, который с 1956-го года принял название «семинар по кибернетике».
В 1955-м году чтение курса программирования в МГУ продолжил М.Р. Шура-Бура [1, 4]. Первой книгой об ЭВМ, рассчитанной на массового читателя, была книга А.И. Китова «Электронные цифровые машины», вышедшая в середине 1956-го года. Хорошим качеством книги была убедительная и увлекающая свежего читателя демонстрация новизны, вносимой ЭВМ в практику человеческой деятельности. Ее развитием стал учебник А.И. Китова и Н.А. Криницкого «Электронные цифровые машины и программирование» [5]. Это была первая книга, официально рекомендованная министерством высшего образования в качестве учебного пособия, весьма солидного объема (572 стр.), и изданная большим тиражом (25 тыс. экземпляров). Первым учебником, специально посвященным программированию, была книга киевских авторов Б.В. Гнеденко, А.С. Королюка и Е.Л. Ющенко «Элементы программирования». Они использовали для изложения условную ЭВМ и дидактику курса А.А. Ляпунова. Отдельная глава была посвящена символике адресного программирования. Первой попыткой создать солидный университетский курс программирования, базировавшийся на Алголе-60, была книга Е.А. Жоголева и Н.П.Трифонова «Курс программирования», основанная на опыте чтения лекций по программированию в МГУ.