Очерки истории отечественной программной инженерии в 1940-е – 80-е годы - Владимир Липаев
Шрифт:
Интервал:
Закладка:
В 1980-м году был закончен третий этап разработки ППП «КАМА>, в результате в него вошли локальный и удаленный комплексы терминалов ЕС 7920 со средствами форматирования сообщений и было обеспечено функционирование ППП «КАМА» под управлением ОС 6.1 в режиме SVS. Пакет прикладных программ для построения информационно-справочных систем представлял собой универсальный монитор телеобработки данных с развитыми средствами управления данными. Пакет был предназначен для использования при создании систем оперативного сбора и ввода данных, систем удаленной пакетной обработки данных, различного рода информационно-поисковых и информационно-справочных систем, работающих в режиме одновременного обслуживания широкой сети терминалов, обеспечивающих коллективный доступ и обновление общих массивов информации, интерактивных систем обучения.
Развитие операционных систем ЕС ЭВМ было ориентировано на возможность создания крупных комплексов программ большими коллективами специалистов предприятий, для автоматизации административных, финансовых, организационных, штабных и иных функций. Это способствовало освоению и массовому переходу в стране специалистов от программирования «в малом» к программированию «в большом» крупных программных продуктов. Стоимость прикладного математического обеспечения, имеющегося у пользователей для разных типов машин к этому времени должна, была составить уже 8 – 10 млрд. рублей. Широкий набор средств программирования и унификация программного инструментария в операционных системах ЕС ЭВМ позволяли в значительной степени автоматизировано переносить имеющийся задел прикладных программ на ЕС ЭВМ. Таким образом, мог быстро расширяться накопленный состав готовых прикладных программных продуктов [24].
Однако некоторые важнейшие концептуальные положения и функции программной инженерии не вошли в состав методов и средств операционных систем ЕС ЭВМ, даже последних версий. В них практически полностью отсутствуют средства автоматизации менеджмента и управления качеством крупных проектов программных средств, поддержка формирования и верификации спецификации требований к программным компонентам. Не уделено внимания методологии и поддержке координации и взаимодействия специалистов, совместно работающих над сложными комплексами программ, их сопровождению в процессе развития и модернизации с контролем и гарантированием качества. Тем не менее, стратегическое решение о развитии ЕС ЭВМ на основе IBM-360, позволило сконцентрировать ресурсы страны на промышленном создании необходимой номенклатуры аппаратуры вычислительной техники и инструментальных операционных систем для массовой эффективной разработки программных продуктов и систем автоматизации в различных отраслях народного хозяйства.
3.4. История технологической программной системы
ЭВМ М-10 и М-13
Технологическое программное обеспечение машины М-10 включало (1970-е годы): операционную систему, обеспечивающую разделение времени и оборудования, диалоговый режим одновременной отладки до 8 независимых программ и мультипрограммный режим автоматического прохождения до 8 независимых задач. Система автоматизации программирования, включала машинно-ориентированный язык – Автокод и проблемно-ориентированный язык – Алгол-60, соответствующие трансляторы и средства отладки; библиотеку типовых и стандартных программ; диагностические программы; программы контроля функционирования (тесты).
Сразу после установки ЭВМ, до завершения испытаний, проводилась отладка новых боевых программ [9, 11]. Долгое время не удавалось добиться устойчивой работы вычислительного комплекса с новой боевой программой. Каждые два – четыре часа происходили сбои ЭВМ с обнулением информации. Наработка на отказ составляла 10–15 часов. Причины сбоев разработчики боевой программы объясняли неустойчивой работой ЭВМ, а разработчики ЭВМ – ошибками в боевой программе. Несмотря на все усилия разработчиков, устойчивость функционирования ЭВМ повышалась медленно. Хотя наработка на отказ увеличилась до 40–50 часов, она, все же была значительно меньше той, что задавалась техническими требованиями. При грамотной эксплуатации и отработанной боевой программе количество отказов было впоследствии снижено в несколько раз по сравнению с данными, полученными на испытаниях.
На стадии программирования начались дискуссии между сторонниками единой, монолитной программы и ее модульного построения (в начале 70-х годов это было удивительно!?) [9]. Сначала победили представители первой школы. Но возникли большие трудности отладки при неустойчивой работе ЭВМ. Поэтому программу все же разбили на модули с простыми принципами передачи управления от модуля к модулю. Позже, при вводе КП СПРН, специалисты НИИВК сравнительно быстро повысили надежность ЭВМ М-10 до приемлемого уровня. На стадии комплексной отладки между алгоритмистами и программистами, работающими в разных подразделениях, возникали трения. Один из разработчиков, войдя в роль неформального лидера, взял на себя управление отладкой, и доработкой алгоритма в процессе отладки.
Еще одна трудность заключалась в том, что отлаживать программу до ввода ЭВМ на объекте было негде – изготавливаемые ЭВМ, шли с завода прямо на объекты. Поэтому монтаж аппаратуры и отладка программ велись последовательно, хотя выполнялись разными коллективами, которые могли бы работать параллельно. К тому же, качество изготовления и степень отладки аппаратуры были низкими, фактически доводка ЭВМ происходила одновременно с отладкой программ. Время разработки программ составляло от трети до половины времени создания всего объекта.
3.5. История технологии программирования для специализированных ЭВМ реального времени на БЭСМ-6 в 1970-е годы
В 70-е годы технологическая программная инженерия оказалась наиболее востребованной для решения крупных задач в оборонной технике и для государственных административных систем. Массовое прикладное программирование в академических организациях, промышленных институтах и в вузах оставалось на уровне индивидуального создания небольших программ и обычно не требовало применения мощных методов программной инженерии. Опыт предприятий оборонной промышленности, накопленный в 60-е годы, позволил обобщить особенности и проблемы развития программной инженерии для эффективного создания наиболее сложных комплексов программ военного применения, базирующихся на специализированных ЭВМ.
Быстрый рост сложности функциональных задач и потребных ресурсов ЭВМ для их решения в 60-е годы, не могли быть удовлетворены при доступной в то время технической и элементной базе вычислительных машин. Эту проблему разработчики систем стремились решать путем адаптации архитектуры ЭВМ к особенностям и характеристикам сложных функциональных задач (см. п. 1.3). Наиболее сильно эта тенденция проявилась при необходимости применять вычислительную технику в мобильных системах оборонного назначения. Поэтому во многих организациях оборонной промышленности еще в конце 50-х годов начали разрабатываться многочисленные специализированные ЭВМ. При создании требований к таким объектным ЭВМ военного назначения для эффективного использования их ограниченных вычислительных ресурсов, необходим был детальный анализ алгоритмов и программ, предназначенных для функционирования в реальном времени.
В конце 60-х годов в МНИИПА (Московский НИИ приборной автоматики – НИИ-5 – директор Анатолий Леонидович Лившиц, а затем Владимир Алексеевич Шабалин) был выделен небольшой коллектив для разработки системы автоматизации программирования. Принципиально возможности открылись в начале 70-х годов в связи с появлением в институте ЭВМ БЭСМ-6. Началось создание системы автоматизации разработки и отладки программного обеспечения (САРПО) ЯУЗА-6 (под руководством Владимира Васильевича Липаева и Льва Александровича Серебровского). Эти работы были активно поддержаны со стороны руководства института и министерства. Министерством радиопромышленности СССР было открыто достаточное финансирование работ и последовательно значительно увеличен коллектив специалистов. Были сформулированы следующие основные концептуальные особенности САРПО ЯУЗА-6:
возможность автоматизированной настройки системы на структуру команд различных мобильных и бортовых, специализированных ЭВМ;