А. А. Штрик
РУЗА-СИСТЕМА
АВТОМАТИЗАЦИИ РАЗРАБОТКИ
ПРОГРАММ
ДЛЯ УПРАВЛЯЮЩИХ И МИКРОЭВМ
Система автоматизации разработки программного
обеспечения (САРПО) РУЗА применяется при проекти-
ровании комплексов программ объемом десятки и сот-
ни тысяч команд для работы в реальном масштабе
времени.
Широкое распространение микропроцессоров и мик-
роЭВМ обостряет проблему производства программного
обеспе чения (ПО) для микроЭВМ.
Основные особенности программирования для мик-
роЭВМ вкратце могут быть сведены к следующему [1]:
— вследствие большого количества разнообразных
микропроцессорных устройств, ориентированных на пре-
имущественное использование в конкретных областях
применения, необходимо унифицировать технологию со-
здания программ и широко использовать кросс-системы
разработки ПО;
— ограниченные ресурсы микроЭВМ усложняют их
использование в качестве инструментальных для функ-
ционирования кросс-систем;
— методы и средства определения требований к про-
ектируемому ПО и его компонентам диктуются широ-
кой областью применения (существующие трудности не
зависят от особенностей микроЭВМ);
— проблемы проектирования, кодирования, отладки,
тестирования и документирования программ мало от-
личаются от проблем разработки ПО традиционных
ЭВМ и решаются сходными методами и средствами;
— технологические средства микроЭВМ, как и обыч-
ных ЭВМ, специализируют по областям создаваемого
ПО (для решения инженерных и научных, управляющих
и информационно-поисковых задач).
Учитывая общность подходов к решению проблем,
ниже используется термин специализированная ЭВМ
(СЭВМ), подразумевающий как ЭВМ, построенные на
базе микропроцессоров, так и традиционные специали-
зированные и управляющие ЭВМ. Разработка программ
на микропрограммном уровне не рассматривается.
Основные принципы САРПО РУЗА
Назначение. Система автоматизации разработки
программного обеспечения (САРПО) РУЗА для СЭВМ
предназначена унифицировать технологию проектиро-
вания и автоматизировать разработку крупных комп-
лексов программ (КП), а также повысить производи-
тельность труда программистов и улучшить качество
программ. САРПО РУЗА комплексно автоматизирует
наиболее трудоемкие этапы создания программ и вы-
пуска документации и применяется для проектирования
КП (объемом десятки и сотни тысяч команд), работаю-
щих в реальном масштабе времени и непрерывно
функционирующих. Сокращение сроков разработки и
повышение качества программ достигается за счет:
— создания единой технологии разработки программ
для разных типов СЭВМ и разных классов задач;
— использования разрабатываемыми программами
всех ресурсов памяти и производительности СЭВМ;
— стандартизации структуры комплексов программ
и максимального использования Унифицированных ком-
понент;
— автоматизированного контроля за ходом разра-
ботки программ на основе объективных сведений, полу-
чаемых из базы данных инструментальной системы.
Область применения САРПО РУЗА.
Высокая производительность и эффективность исполь-
зования памяти, надежность программ и обеспечение
их сопровождения в течение всего цикла жизни — ос-
новные требования к ПО СЭВМ, используемых в сос-
таве управляющих вычислительных комплексов (УВК).
Класс СЭВМ, входящих в УВК, разнообразен по типам
машин, особенно мини- и микроЭВМ, отличается недо-
статочно развитой ОС и ограниченным составом пери-
ферийных устройств. Поэтому основная техническая
база проектирования таких программ — многофункци-
ональные кросс-системы, реализованные на мощных
ЭВМ универсального типа, позволяющие обеспечить вы-
сокую производительность труда большого коллектива
разработчиков. Широкое распространение ЕС ЭВМ, на-
личие развитой сети периферийных устройств, высокая
производительность и большие объемы оперативной па-
мяти позволяют выбрать эти машины в качестве техно-
логических для размещения на них кросс-систем авто-
матизации проектирования ПО для СЭВМ.
Типы машин, для которых может быть применена
САРПО РУЗА, различаются архитектурой, системами
команд, типами адресации, а также видами и объемами
памяти. В частности, команды могут быть одно-, двух-
и трехадресными, способы адресации — непосредствен-
ная, прямая, косвенная, относительная, стековая (без-
адресная), регистровая и т. д.
САРПО РУЗА работает на технологических ЭВМ
старших моделей ЕС-1033, ЕС-1045, ЕС-1060 под уп-
равлением ОС ЕС версии 6.1 и более поздних изданий.
Для функционирования САРПО РУЗА без учета ре-
сурсов для работы ОС ЕС необходимо не меньше
256 Кбайт основной памяти и два накопителя на дис-
ках типа ЕС-5061.
Входные данные САРПО РУЗА — это спецификации
требований, тексты программ на принятых языках прог-
раммирования (автокод и макроязык РУЗА), а также
тестовые задания на отладку проектируемых программ.
Выходные данные —программы для СЭВМ, представ-
ленные на носителях данных (перфоленты, перфокар-
ты, магнитные ленты).
Требования к САРПО РУЗА определяют-
ся целевым назначением: создать высокопроизводитель-
ную унифицированную технологию проектирования ПО
УВК. В число требований входят следующие:
— максимально автоматизировать проектирование
ПО УВК и обеспечить единство процесса разработки по
этапам технологии;
— обеспечить высокую эффективность проектируемых
ПО УВК по памяти и производительности;
— автоматизировать настройку САРПО РУЗА на
различные типы УВК и характеристики разрабатывае-
мых комплексов программ;
— обеспечить работу с САРПО РУЗА в диалоговом
режиме на многих терминалах программиста;
— создать централизованную базу данных проекти-
рования, содержащую необходимую информацию о про-
ектируемых программах;
— использовать унифицированный язык проектирова-
ния ПО, обеспечивающий простое и удобное управле-
ние, настройку, отладку и общение с САРПО РУЗА, а
также проектирование программ;
— обеспечить процессы отчуждения, передачи, соп-
ровождения и эксплуатации САРПО РУЗА, а также
простоту и гибкость наращивания функциональных воз-
можностей, расширения состава компонент и возмож-
ность внесения изменений.
Функции САРПО РУЗА. При разработке ПО
для УВК САРПО РУЗА выполняет [2]:
— трансляцию с языков программирования различ-
ных уровней (автокода и макроязыка) на машинный
язык, эффективно используя производительность и па-
мять СЭВМ;
— автоматизированный контроль сопряжения прог-
рамм по информации и управлению на основе специфи-
каций программ и текстов программ, контроль исполь-
зования оперативной памяти, а также информирование
по запросу пользователя о реальных связях программ
в КП;
—■ автоматизированный контроль структурной орга-
низации программ и использования различных типов па-
— контроль отлаженности программ, планирование
автономной отладки и ее проведение методом детерми-
нированного тестирования с интерпретацией исполнения
команд в кодах СЭВМ;
— автоматизированный расчет длительностей испол-
нения программ и их групп;
— контроль распределения ресурсов производитель-
ности, анализ динамики функционирования комплекса
программ и оценку эффективности вычислительного
процесса;
— автоматический выпуск эксплуатационной доку-
ментации (текстовые и табличные документы, машин-
ные носители, схемы программ) на отдельные програм-
мы и весь КП с учетом требований единой системы
программной документации (ЕСПД), а также коррек-
тировку и тиражирование документации в процессе раз-
работки и модернизации КП;
— автоматизированный сбор и обобщение результа-
тов разработки КП.
Перечисленные функции САРПО РУЗА стандарти-
зируют проектирование ПО, правила оформления струк-
туры программ, принципы их информационного и логи-
ческого взаимодействия, средства работы с памятью
СЭВМ и т. д.
Инструментальная система САРПО
РУЗА включает в себя языковые средства, програм-
мное обеспечение и эксплуатационную документацию.
Языковые средства предназначены для взаимодейст-
вия программиста с САРПО РУЗА. При формировании
системы языков учитывались конструктивные и функци-
ональные особенности комплексов программ СЭВМ, а
также технологический процесс разработки про-
грамм [3]. В основу положена концепция взаимосвязан-
ное! и всех языков проектирования по изобразительным
средствам, отдельным конструкциям, структуре програм-
мных компонент. К языковым средствам САРПО РУ-
ЗА относятся следующие языки: настройки САРПО
РУЗА на конкретный тип СЭВМ и характеристики про-
ектируемого комплекса программ; управления и диало-
гового взаимодействия пользователя с САРПО РУЗА
и технологической ЭВМ; спецификаций программ; про-
граммирования различных уровней; отладки программ.
Программное обеспечение САРПО РУЗА размещено
■ нё магнитных носителях. Объем минимальной комплек-
тации — 250 тыс. команд. ПО содержит также конт-
рольные тесты для проверки работоспособности эталон-
ной версии, предназначенной для эксплуатации и на-
стройки.
Функционально САРПО РУЗА делится на пять час-
тей (рис.- 1): организующая для настройки на условия
конкретных применений и управления работой в соот-
ветствии с заданием пользователя; информационная со
средствами централизованного управления базой дан-
ных проектирования, информацией о проектируемом
комплексе программ и средствами взаимодействия с
ней пользователя; трансляционная со средствами кон-
троля исходных текстов программ, перевода на машин-
ный язык, ввода их в память СЭВМ, которая модели-
руется в базе данных проектирования на технологичес-
кой ЕС ЭВМ; отладочная для автономной отладки про-
грамм СЭВМ методом интерпретации их исполнения на
ЕС ЭВМ в соответствии с отладочным заданием поль-
зователя; сервисно-информационная с программами
вывода данных.
Документация САРПО РУЗА содержит инструктив-
но-методические материалы по унифицированной тех-
нологии проектирования КП УВК, по эксплуатации и
настройке САРПО РУЗА, а также описание языковых
средств и ПО системы и выполнена в соответствии с
требованиями ЕСПД. В комплект входит документация,
поставляемая пользователю с тиражируемой версией
системы, а также разрабатываемая пользователем для
конкретной СЭВМ.
Принципы построения, подготовки к
работе и эксплуатации. Высокий уровень ав-
томатизации проектирования программ и широкие
функциональные возможности САРПО РУЗА усложни-
ли ее программное обеспечение. Поэтому структурная
организация САРПО РУЗА основана на принципах
структурного проектирования комплексов программ:
—специализация и структуризация компонент по
функциональному признаку, определяющие функцию и
место каждой компоненты в системе;
— модульное построение программ и иерархия их
взаимодействия, обеспечивающие заданную последова-
тельность реализации выполняемых функций;
— единые правила оформления и использования ком-
понент;
— использование централизованной базы данных
проектирования (БДП), обеспечивающее единство бза-
имодействия пользователя с проектируемым комплек-
сом программ.
Программное обеспечение САРПО РУЗА состоит из
подсистем (рис. 2). Наличие типовых интерфейсов [4]
монитор-диспетчер, диспетчер—подсистема и подсисте-
ма—БДП позволяет просто и гибко развивать САРПО
РУЗА, создавая законченные версии. По мере ввода
функций увеличивается число подсистем и версий. При
этом реализованные в предыдущих версиях функции
остаются без изменения, т. е. выполняется принцип сов-
местимости снизу вверх. Программные и информацион-
ные модули объединяются в подсистемы, каждая из
которых управляется собственным типовым диспетче-
ром. Для подсистем установлены допустимые размеры
и правила их оформления. Подсистема выполняет од-
ну или несколько функций, реализующих определенную
операцию в технологическом цикле проектирования
программ. Подсистемы управляются централизованно
монитором САРПО РУЗА, а обслуживаются информа-
цией через базу данных проектирования.
Используя САРПО РУЗА, программы разрабаты-
вают в три этапа: постановка САРПО РУЗА на техно-
логической ЕС ЭВМ пользователя; настройка САРПО
РУЗА на характеристики СЭВМ и проектируемого ком-
плекса программ; разработка программ с помощью
САРПО РУЗА.
Постановка включает изучение документации, за-
пись на магнитный диск эталонных системы и базы
данных и проверку работоспособности полученной вер-
сии. Затем формируется- рабочая версия САРПО
РУЗА: готовится информация, характеризующая
СЭВМ и проектируемый комплекс программ, настраи-
ваются машинозависимые компоненты системы транс-
ляции и выпуска носителей данных и документации
средствами САРПО РУЗА, готовится интерпретатор
систем автономной отладки, разрабатывается тестовый
пример для программ СЭВМ. Рабочая версия испыты-
вается с помощью этого теста.
САРПО РУЗА настраивают на конкретную СЭВМ,
выделяя машинозависимые компоненты — информацион-
ные модули (таблицы) и сменные программные моду-
ли [5]. Формируют информационные модули и включа-
ют их в САРПО РУЗА автоматизирование средствами
системы, описав параметры и структуры СЭВМ и ее си-
стемы команд на языке описания настройки. Сменные
программные модули включаются в систему средствами
ОС ЕС с инициализацией их от системы РУЗА.
Структурные и статистические характеристики
САРПО РУЗА
К структурным характеристикам относятся данные
по количеству модулей, информационных массивов и
оверлейных сегментов, а также данные по использова-
нию библиотек и взаимозависимости подсистем. Струк-
турно все ПО системы РУЗА состоит из 454 програм-
мных и 235 информационных модулей. Среднее количе-
ство программных модулей в подсистемах око-
ло 36; 75% модулей разработано на языке ПЛ/1;
ассемблер использован для связи с ОС ЕС, либо для
отдельных высокоэффективных программ.
Все компоненты системы РУЗА объединены в
65 оверлейных сегментов, в среднем по 8—10 програм-
мных модулей в каждом; необходимость в оверлейных
сегментах следует из ограниченности объема оператив-
ной памяти, отводимой для работы подсистемы.
Из входящих в первую очередь РУЗА—А 13 подсис-
тем — 6 машинозависимы; при этом перепрограмми-
руются около 30 программных модулей с учетом разра-
ботки интерпретатора и автоматизированного изменения
31 информационного модуля, что в сумме составляет
примерно 10% от общего объема системы РУЗА.
К характеристикам сложности компонент относятся
коли ественные оценки информационных и логических
связей в системе и данные по структурному построению
модулей — количество передач управления и меток, ко-
личество циклов, глубина вложенности.
Характеристики сложности взаимодействия: каждая
подсистема в среднем использует 1 библиотеку на
запись и 2—3 —на считывание (число библиотек—15).
Среднее количество вызываемых программ не пре-
вышает 5—6, что связано с высокой степенью центра-
лизации управления посредством типового диспетчера
и свидетельствует о его гибкости и настраиваемости.
Среднее колн-ество программных модулей, выполняю-
щих одну директиву,—11, что показывает достаточно
высокий уровень стандартизации в сочетании с универ-
сальностью по выполненным функциям. Каждый про-
граммный модуль обращается в среднем к 2—3 инфор-
мационным зонам. В свою очередь каждый информа-
ционный модуль обслуживает 3—4 программных моду-
ля. Это говорит о глубокой информационной связи
компонент в пределах подсистемы.
Усредненные показатели программного модуля: об-
щее число операторов — 150, передач управления — 10,
количество циклов —2, число меток — 8.
Опыт проектирования инструментальной
кросс-системы РУЗА
Работа над созданием первой очереди САРПО
РУЗА—А, содержащей 13 подсистем объемом около
250 тыс. машинных команд, продолжалась 4,5 года.
Этот период начался с разработки технического зада-
ния и технического проекта и завершился испытаниями.
Наряду с научно-техническими большое внимание уде-
лялось методологическим и организационным задачам.
Методологические задачи — выбор и детализация
процесса проектирования, выделение этапов разработки
и уточнение операций на этапах, определение необходи-
мых ресурсов и т. д. Результатом этих работ'явилась
типовая технологическая схема и детальный перечень
операций по созданию САРПО РУЗА.
Организационные задачи — организация
комплексного и технологического подразделений и опре-
деление их статуса, прав и обязанностей; распределение i
работ среди коллективов разработчиков и организа-
ций-исполнителей; определение необходимого переч-
ня, написание, согласование комплекта инструкций и
методик по организации и ведению разработки; обу-
чение специалистов-разработчиков работе на ЕС ЭВМ,
ОС ЕС, программированию на языках ПЛ/1 и ассемблер.
Технические задачи — обеспечение работы в
диалоговом режиме, создание необходимых библиотек
и их сопровождение; внедрение стандартных и унифи-
цированных пакетов запуска заданий и организация
каталогизированных процедур работы и системы авто-
матизированного контроля за использованием машинно-
го времени и работой ЕС ЭВМ; создание условий для
автономной отладки программ, максимально приближен-
ных к реальной работе в составе системы.
Разработанное общее техническое задание и техни-
ческий проект САРПО РУЗА послужили основой для
последующего выделения по функциональному признаку
подсистем. Они в свою очередь были структурированы
на программные и информационные модули с соблюде'
нием иерархии всех компонент. Связи каждой компо-
ненты с другими были закреплены спецификациями (по
установленной форме), согласованными с разработчи-
ками, имеющими отношение к данной компоненте. По-
шаговая детализация сверху вниз позволила создать
подробную структурную схему всей системы, учиты-
вающую все логические и информационные связи.
После написания программ и автономной отладки
компоненты и подсистемы были комплексированы в си-
стему, с одной стороны, созданием специальных макро-
команд, обеспечивающих стыковку программных моду-
УПРАВЛЯЮЩИЙ БИОТЕХНОЛОГИЧЕСКИЙ
КОМПЛЕКС «АЛЬФА-60»
(К ст. Г. F. Громова, Н. В. Ширшикова, Л. А. Литвиненко)
Информационное ядро комплекса
«Альфа-60» представляет собой гиб-
ко перестраиваемый контроллер на
базе функционально связанных
микроЭВМ «Электроника 60». Связь
с контролируемым объектом — в ре-
жиме прерываний: фоновые про-
граммы диалоговой обработки дан-
ных и управления технологическим
процессом, написанные на языке
Бейсик, по запросам измерительных
устройств отдают управление про-
граммам реального времени на язы-
ке ассемблер. Это позволяет вести
диалоговую отладку и модификацию
программ управления, не прерывая
процесса сбора данных.
Все программное обеспечение
хранится в электрически перепро-
граммируемой постоянной памяти,
мя рестарта после возникновения
нештатных ситуаций (например, от-
ключения сетевого питания) и повы-
сить долговременную надежность
комплекса. Комплекс обеспечивает
автоматизированный сбор данных
па 30 каналам измерения от раз-
личных датчиков (рН, рО,, темпера-
туры и т. д.), а также диалоговый
ввод в ЭВМ текстовых данных и хи-
мических формул (для использова-
ния в алгоритме управления резуль-
татов независимо выполняемых ана-
лизов проб).
Программное управление техно-
логическим процессом возможно по
8 непрерывным (от ЦАП) и 16 дис-
кретным (релейным) каналам связи
микроЭВМ с исполнительными уст-
ройствами.
МЕТАЛЛООБРАБОТКА'84
С 27 марта по 5 апреля 1984 г.
в Москве была проведена между-
народная специализированная вы-
ставка «Металлообработка'84»
Светолучевой станок с программным
управлением 4Р222Ф (СССР) — фото
Гибкая производственная система
«Талка-500» (СССР) — фото внизу
МИКРОКОМПЬЮТЕРНЫЕ
СИСТЕМЫ
УПРАВЛЕНИЯ
ФЕРМЕНТАЦИЕЙ
лей разных языков, с другой стороны, согласно струк-
турно-иерархической схеме САРПО РУЗА, созданием
унифицированных, компонент, реализующих централизо-
ванную иерархическую схему. В роли унифицированных
компонент выступают монитор САРПО РУЗА и типовой
диспетчер, настраиваемый на работу с каждой конкрет-
ной подсистемой. На основе стандартизации операций
работы с базой данных САРПО РУЗА созданы центра-
лизованные средства управления базой данных.
Гибкость централизованно-иерархической схемы
САРПО РУЗА достаточно высокая; для подключения
подсистемы к диспетчеру требуется 12—15 челове-
ко-дней, а к монитору — 5—7 человеко-дней.
Включение подсистемы в САРПО РУЗА и проверка
логических связей в подсистеме и между взаимодейст-
вующими подсистемами завершается приемо-сдаточны-
ми испытаниями, цель которых — проверить выполнение
предписанных функций подсистемы и определить сте-
пень ее готовности к работе в составе всей системы.
Подсистема, прошедшая испытания, переписывается
на магнитный диск; у разработчика остаются два ва-
рианта подсистемы: один — точная копия находящегося
на системном носителе, а другой —для автономных ра-
бот по развитию..подсистемы. Система комплексно от-
лаживалась и проверялась тестовой задачей — доста-
точно представительной группой программ, отобранных
из реальных программных комплексов; последнее поз-
волило уменьшить трудоемкость создания теста, коли-
чество ошибок в тексте и ошибок связей.
Последовательность наращивания системы опреде-
ляется функциональным назначением подсистем, сте-
пенью их отлаженное™ и готовности. ГТо каждой выяв-
ленной ошибке (или несоответствию) в журнале дела-
лась запись, которая визировалась разработчиком и
здесь, же оформлялось решение по ее исправлению. Сро-
ки определялись степенью влияния ошибки на возмож-
ность продолжения комплексных работ. Разработчик
подсистемы устранял ошибки на личных копиях про-
грамм, используя централизованную базу данных с ко-
пией тестовой задачи и под управлением монитора и
диалоговых средств системы. Скорректированный ис-
ходный текст передавался на системный диск.
САРПО РУЗА комплексно отлажена и проверена
на тестовой задаче, содержащей около 90 программ
разных типов и связанных' между собой по управлению
и информации. При этом количество корректированных
модулей — 30—40% от общего их числа в подсистеме;
среднее количество корректировок одного модуля из об-
щего числа корректировавшихся модулей подсистемы —
1,5—2 раза; среднее время корректировки одного типа
ошибок — 2—5 дней.
ЛИТЕРАТУРА
1. Ра уд Р. К-, Тамм Б. Г. Состояние в обла-'
сти программирования для микроЭВМ: обзор. — Про-
граммирование, 1982, № 5, с. 31—43.
2. Ш т р и к А. А. Автоматизация разработки про-
грамм специализированных ЭВМ в технологической
системе РУЗА. — В кн.: Программное обеспечение АСУ:
Тез. докл. Всесоюз. конф. — Калинин, Центропрограмм-
систем, 1983, с. 89—90.
3. Серебро в с кий Л. А., Липа ев В. В. Алго-
ритмические языки для специализированных мини- и
микроЭВМ. — Программирование, 1981, № 6, с. 64—71.
4. Месс их И. Г., Штрик А. А., Эпштейн
Ю. М. Унифицированные средства управления система-
ми автоматизации разработки ПО. — В кн.: Автомати-
зация проектирования и конструирования: Тез. докл.
Всесоюз. конф. Ленинград. — М.: ИПУ АН СССР, 1983.
5. Л и паев В. В., Каганов Ф. А. Система авто-
матизации технологии разработки комплексов управ-
ляющих программ для микропроцессоров и микроЭВМ
(ТЕМП). Управляющие системы и машины, 1980, № 1.
Статья поступила 1 декабря 1983 г.
УДК 681.3.068