В докладе на ХХУ1 съезде партии (I) особо отмечалось дальнейшее «совершенствование вычислительной техники, ее элементной базы и математического обеспечения, средств и систем сбора, передачи и обработки информации» .
Важное значение, как было подчеркнуто на съезде, имеет также разработка и ускоренное внедрение различных форм и методов автоматизации для облегчения ручного и умственного труда во всех сферах производства и народного хозяйства. Эта задача, особенно на сегодняшний момент, имеет первостепенное значение в связи с тем, что доля математического обеспечения в общем объеме стоимости средств вычислительной техники продолжает непрерывно возрастать. Так по данным американской фирмы (2,3), в 1955 году доля математического обеспечения (МО) в стоимости вычислительных систем составляла 15 $, в 1975 году — 75 $, а по прогнозам на 1985 год она должна превысить 90 $.
В последние годы получило значительное развитие направление применения вычислительной техники в автоматизированных системах проектирования программ. Наиболее остро этот вопрос возникает при создании относительно недорогого МО для специализированных цифровых вычислительных машин (ЦВМ), входящих в состав авиационных комплексов.
Увеличение скорости, дальности, высоты полета, необходимость учета многочисленных внешних факторов, возросшие требования к точности решения радиолокационных и специальных задач требуют осуществления широкой автоматизации процессов обработки информации, управления и контроля, достигаемых средствами бортовой радиоэлектронной аппаратуры.
Решению задачи расширения функциональных возможностей бортовой радиоэлектронной аппаратуры при одновременном уменьшении веса и габаритов входящих в ее состав устройств, способствовало широкое использование на борту самолета не одной ЦВМ, а расширенной сети бортовых вычислительных средств сбора и обработки информации"
Эти вычислительные комплексы, создаваемые на основе специализированных мини-ЭВМ, выполняют роль универсальных преобразователей вводимой информации и являются основным связующим звеном
— с системами, обеспечивающими обнаружение и опознавание различных объектов;
— с системой управления самолетом;
— с системами навигации;
— с системами индикации и пультами управления.
В настоящее время развитие авиационных систем в части вычислительных средств идет по следующим направлениям:
— расширение круга задач, решаемых вычислительной системой, включая задачи оптимизации различных парамотров;
— решение задач, связанных с максимальной автоматизацией управления летательным аппаратом,
В связи с разгрузкой летчика резко возрастает при различных ситуациях функциональная загруженность управляющей мини-ЭВМ, что влечет за собой появление большого количества алгоритмов, а следовательно, значительного увеличения объема математического обеспечения бортовых вычислительных систем.
Из приведенного круга задач следует, что цифровые вычислительные системы (ЦВС) представляют сейчас одно из наиболее мощных и экономичных средств решения задач управления летательным аппаратом и обработки данных в реальном масштабе времени. Однако, методы использования этих средств и, особенно, методы разработки МО в настоящее время требуют значительного усовершенствования, так как большинство систем математического обеспечения состоит, в основном, из взаимонезаменяемых компонентов, разрабатываемых ценой больших затрат, причем эти системы часто оказываются ненадежными, неудобными в эксплуатации и сложными в освоении.
Одним из наиболее эффективных средств преодоления этого кризиса в области разработки программного обеспечения бортовых специализированных мини-ЭВМ является создание комплексной системы автоматизации проектирования (САПР) МО (5),(2).
Исходя из вышесказанного, можно сделать вывод, что автоматизация проектирования, выступая как мощное средство повышения эффективности т. е. повышение качества, сокращение сроков и стоимости разработки программных средств имеет большую актуальность.
Презде чем приступить к рассмотрению этого вопроса необходимо вкратце остановиться на ряде уже разработанных систем автоматизации процесса программирования. Хотя эти системы не приспособлены для работы с данным классом машин, общие принципы, которые легли в основу их построения, имеют много общих сторон с САПР МО бортовых специализированных машин.
Поскольку в создании комплекса программ дагя самолетных систем, как показала практика, участвует от 80 до 100 человек и полный объем математического обеспечения исчисляется десятками тысяч команд, его можно отнести к большим проектам (104),(16).
При разработке таких систем основным критерием является обеспечение заданных показателей надежности, стоимости, а также удовлетворение соответствующих тактико-технических требований.
К основным особенностям больших проектов разработки программных средств можно отнести следующие:
— большой коллектив программистов для реализации МО, что усложняет процесс управления разработкой всего программного комплекса;
— разработка, как правило, реализуется не гладко и имеет довольно много неожиданностей, обусловленных нечеткими исходными требованиями и заданиями, а также дефектами самого процесса разработки программ;
— документация не всегда удовлетворяет требованиям эксплуатации и контроля, что обычно связано с постепенным введением многочисленных поправок и «заплат» в программы, которые не всегда находят отражение в документации;
— разработчики выполняют большой объем работы вручную, подготавливая контрольные тесты, сравнивая текущие и выходные результаты с эталонами и т. д.
Все вышеперечисленные особенности в конечном итоге приводят к существенному возрастанию стоимости и времени разработки больших программных проектов.
Следовательно, основная проблема автоматизации разработки состоит в создании методов и технических средств для облегчения работы программистов на всех этапах отладки, сопровождения и дальнейшей эксплуатации системы. Это может быть достигнуто только путем создания комплексной САПР МО.
В ранее разработанных системах предусмотрены изолированные между собой средства внесения изменений в программы, программы-редакторы и интерпритаторы. В более совершенных системах автоматизации разработки программ включаются средства корректировки описания системы на языках близких к языкам высокого уровня, руководств по использованию системы и ее частей, средств проверки совместимости между модулями и другие вспомогательные программы, обеспечивающие разработку, редактирование, отладку и проверку системы и ее составных частей.
В настоящее время создано достаточно большое количество различного рода автоматизированных систем для более эффективной разработки программоного обеспечения. Так, в частности, разработана простая система ARCHIVES (5), которая позволяет оперировать с множеством программных модулей и их модификацией на основе иерархической системы обозначений. Структура системы автоматизации разработки программ включает: базу данных, средства разработки программ, средства описания и средства реализации. Описанная структура системы автоматизации является довольно общей и представляет широкие возможности включения в нее различных средств разработки. Однако сама по себе система ARC И IVES является достаточно частной и предназначена только для внутреннего пользования на фирме. Одним из существенных недостатков этой системы является наличие «привязанного» компилятора только к конкретной микро-ЭВМ.
На сегодняшний момент эти проблемы решаются более радикальными средствами. Так, например, в Европе для современных микропроцессоров разработан общий язык ассемблерного типа (6),(7), который содержит широкий спектр команд типичных современных микропроцессоров. Обычно указанный язык используется как общая мнемоника и всякий раз требуется с помощью таблиц преобразований осуществлять переход к конкретному микропроцессору и его системе команд, однако в большинстве случаев это является неудобным для пользователей.
К середине 60-х годов большинство квалифицированных специалистов по программированию занималось поисками единого языка, который решал бы все проблемы. Однако, вскоре стало совершенно очевидным бесплодность таких попыток. В настоящее время сложилось мнение, что необходимы как универсальные, так и разнообразные специальные языки программирования. Для такого изменения точки зрения существуют объективные причины: сфера применения ЭВМ существенно расшириласьструктура ЭВМ не только изменилась, но и развилась в различных направлениях. Семидесятые годы показали, что один язык и один компилятор не могут ликвидировать проблему программного обеспечения. Разработка как прикладного, так и системного программного обеспечения для различных машин в рамках одного проекта особенно необходима в области систем реального времени и вычислительных сетях мини-ЭВМ.
В 1975 году фирмой SCS для ЭВМ IBM/370 был разработан язык программирования в реальном масштабе времени P0LVP (8). По своей структуре язык POLYP сходен с языком алгол-60. Правда, его семантика в некоторых случаях достаточно сильно отличается от семантики этого языка. Существенным преимуществом системы POLYP является то, что в ней воедино связаны следующие компоненты: инструментальный язык, макроязык, кросс компилятор, средства отладки на уровне переходного языка и система отладки. Разработанный комплекс программ является удобным для использования его в качестве базиса для построения специальных языков, однако данная система жестко привязана к IBM/370, что делает ее немобильной.
Цифровые вычислительные машины, предназначенные для управления динамическими объектами УЦВМ, как правило, не имеют ресурсов по памяти и по производительности, необходимых для размещения и функционирования системы автоматизации программирования и отладки (САЛО). Поэтому средства САЛО размещаются на достаточно мощных технологических ЭВМ, пригодных для автоматизации всего технологического цикла разработки управляющих программ. Основные требования к созданию подобных систем были частично реализованы на системах ЯУЗА-1 и ЯУЗА-2 (9,10) и в более полной мере нашли свое отражение в системе ЯУЗА-6 (II), построенной на технологической ЭВМ БЭСМ-6.
Система автоматизации программного обеспечения САЛО ЯУЗА-6 делится на три части: организующую систему, систему автоматизации программирования и систему автоматизации отладки. Эти три подсистемы используют развитую информационную систему архивов и библиотек, которая включает архив символьной информации исходных текстов программ, библиотеку паспортов подпрограмм и адресную библиотеку оттранслированных программ в машинных кодах.
Основным недостатком систем семейства ЯУЗА является нерешенность в достаточной мере вопросов масштабирования, автоматического построения блок-схем алгоритмов программ, отсутствие языка манипуляции данными для работы с библиотеками, отриентации самой системы автоматизации только на ЭВМ-220 и БЭСМ-6, наличие пакетного режима работы пользователей.
В последнее время делаются попытки создания САПР Ж) для специализированных мини-ЭВМ на базе языка программирования АДА. Однако, количество публикаций по этому вопросу недостаточно, чтобы судить об эффективности разрабатываемой системы.
Следующей системой, которая была создана для автоматизации программирования управляющих специализированных ЦВМ, является система САПАР (12). Она была реализована на технологической ЭВМ БЭСМ-6. Для автоматизации процесса написания программ в системе был разработан специальный язык, который занимает промежуточную ступень между автокодом и языком высокого уровня. Общие положения, которые легли в основу построения САПАР схожи с положениями, заложенными при реализации ЯУЗА-6. Однако система в целом получилась недостаточно эффективной в практическом внедрении в силу ее жесткой привязки только к одной специализированной машине, полного отсутствия какой-либо базы данных для хранения всего комплекса МО, а также длительного и трудоемкого процесса ее адаптации на другие типы технологических ЭВМ.
Прежде чем перейти к рассмотрению комплексной САПР МО для специализированных ЦВМ (36), которая и является предметом разработки, необходимо кратко остановиться на их особенностях.
Все современные управляющие специализированные ЦВМ — вычислительные машины параллельного действия, использующие представление чисел с фиксированной запятой. Машины данного класса работают как с одноадресными и двухадресными командами, так и с командами переменной адресности (22). В качестве элементной базы применяются элементы 2-ой и 3-ей степени интеграции. В структурном отношении эти машины используют различные принципы вычислительного процесса: наряду с однопроцессорными ЦВС имеют место многопроцессорные, которые работают в мультипрограммном режиме и в режиме реального масштаба времени. Надежность работы обеспечивается высокой надежностью элементной базы, функциональным резервированием, применением аппаратных и программных средств контроля. Емкость памяти большинства современных управляющих ЦВМ составляет 32К с возможностью наращивания до 64К. В качестве ЗУ используются магнитные сердечники и ППЗУ. Число команд в этих ЭВМ составляет 40+150- быстродействие — 50+800 тыс. коротких операций в секунду, разрядность чисел и команд — 16+32 бит.
Таким образом, современные управляющие ЦВМ предназначены для решения достаточно узкого класса задач, оснащены небольшим числом аппаратных средств, способны выполнить лишь ограниченное число операций и автоматизация выступает как одно из наиболее эффективных средств снижения стоимости, уменьшения времени и повышения эффективности разработки их программного обеспечения (14),(15), (16). В настоящее время на борту самолета используются специализированные ЦВМ, близкие по своим характеристикам с мини-ЭВМ, однако уже наметилась тенденция к переходу на 8−16-ти разрядные микропроце ссоры.
Общую схему разработки САПР (34), начиная от постановки задачи и кончая готовым продуктом в виде программоносителей и документации, можно представить в виде, изображенном на рис. 1. Из данного представления видно, что весь процесс проектирования такой системы разбивается на два этапа:
— этап разработки автоматизированной системы анализа и выбора средств реализации (АСАР);
— этап создания автоматизированной системы проектирования программ дяя выбранной архитектуры ЦВС.
Система АСАР наряду с разработкой математического аппарата и логикой функционирования поставленной задачи, включает оценку вычислительной мощности всего комплекса и выбор на основе этого архитектуры управляющей ЦВС. Совершенно очевидно, что ряд этапов, описанных в данной схеме, не поддается полной автоматизации. К ним можно отнести постановку задачи, разработку математического аппарата и логику функционирования. Однако анализ и выбор средств реализации, этапы моделирования, рекомендации по выбору, вычислительной мощности, целесообразно осуществлять на технологической ЭВМ, что наряду с сокращением времени разработки позволит в значительной мере избежать различных толкований технических требований к комплексу, которые, как правило, возникают при создании сложных программных систем. .
Под анализом и выбором средств реализации понимается всесторонний разбор поставленной задачи и оценка возможности реализации отдельных частей системы с помощью программных или аппаратных средств. Важность этого момента продиктована практикой создания комплексных систем управления, работающих в реальном масштабе времени и от качества его решения во многом зависят сроки разработки, эффективность работы системы и выполнение тактико-технических требований.
На втором этапе при создании автоматизированной системы разработки программного обеспечения необходимо остановиться на трех наиболее важных моментах:
— разработка языка взаимодействия проектировщика МО и системы;
— создание системы отладки;
— быстрое и эффективное получение документации и программоносителей.
Каждый из этих трех этапов имеет определенные особенности, связанные не только с конкретными управляющими мини-ЭВМ, но и с методами и способами отладки, эксплуатации и модернизации всего программного обеспечения. Работа с САПР МО является более эффективной в том случае, когда для пользователя-проектировщика МО в системе существует диалоговый режим, позволяющий не только быстро обучить программиста работе с определенными частями системы, но и сократить время на организацию всего рабочего процесса.
Для современного этапа развития средств вычислительной техники характерно наличие широкого класса терминальных систем, как универсальных, так и специализированных (19+21). Развитие терминалов, аппаратного и математического обеспечения ЭВМ позволило размещать терминалы пользователя на большом расстоянии от ЭВМ и стимулировало интерес к системам с разделением времени (4). В таких системах возможности сравнительно большой вычислительной машины распределяются между отдельными пользователями, каждый из которых взаимодействует с ЭВМ посредством своего собственного терминала. Возможность хранения больших банков данных, обеспечение доступа нескольких пользователей делает терминальные комплексы наиболее перспективными при использовании в автоматизированных системах проектирования программного обеспечения, создаваемых для специализированных управляющих мини-ЭВМ.
Целесообразно в качестве технологических ЭВМ на настоящий момент для целей создания САПР МО использовать типовые вычислительные комплексы ряда СМ-ЭВМ. Особенностями этого класса машин являются: магистральная структура интефейса с аппаратной реализацией большинства системных функций ввода-вывода, простая реализация многопроцессорных и многомашинных систем, высокая скорость обработки прерываний, возможность работы с форматами различной длины, подключение до 16 терминалов в ОС РВ, возможность совместной работы УВК СМ-3, СМ-4 с ЭВМ единой серии. Эти особенности дают определение преимущества для создания систем автоматизации обработки информации в различных сферах применений (17,18).
Как уже было отмечено выше, управляющие специализированные ЦВМ, используемые в контуре управления авиационных систем, способны выполнять лишь ограниченное число операций или допускают использование одного языка программирования, находящегося на уровне не выше автокода. Решение любой практической задачи на таких машинах можно разбить на пять составных частей:
— разработка и построение блок-схемы алгоритма;
— масштабирование вычислительных операций;
— разработка и расчет контрольных вариантов для всесторонней проверки логики работы алгоритма;
— распределение памяти ОЗУ и ДЗУ;
— получение программоносителей и документации.
Каждый из этих пяти этапов наряду со специфическими особенностями имеет трудоемкие участки, как правило, состоящие из типовых операций, не требующие творческого подхода при каждой реализации. Кроме того, программирование для таких ЦВМ на автокоде, а тем более на языке машинных команд требует весьма значительных затрат и времени разработки.
Для того, чтобы автоматизировать эти процессы, необходимо, как было сказано выше, создать САПР МО. Для достижения этой цели потребовалось:
— создание инженерно-ориентированного системного языка (ИОСЯ)взаимодействия проектировщика МО и системы;
— реализация компилятора с ИОСЯ на язык специализированных ЦВМ с нормированной и ненормированной длиной команды;
— разработка автоматизированных подсистем построения блок-схем алгоритмов программ и масштабирование вычислительных операций;
— автоматическая стыковка программ по глобальным переменным;
— распределение памяти ОЗУ и ДЗУ;
— создание базы данных для хранения МО и языка манипулирования базой;
— автоматизация процесса получения документации и программоносителей;
— разработка комплекса программ для обучения пользователей работе с системой на основе интерактивного режима работы.
В основу работы был положен системный подход к проблеме создания САПР МО для описанного класса машин, который включает: анализ и сопоставление языковых средств автоматизированных систем, технологий разработки и схем отладки программ реального времени, направленных на повышение надежности программного продукта, анализ методов повышения качества программ, имеющих целью сокращение стоимости и поднятие эффективности как на этапе отладки, так и на этапе дальнейшей эксплуатации. В работе. использовался аппарат теории графов, теории формальных грамматик, методы математического моделирования, методы построения систем реального времени, технология программирования «из середины», впервые разработанная автором, а также основные принципы создания и организации баз данных в вычислительных системах.
В первой главе диссертации описана версия языка взаимодействия программиста-разработчика и системы, по характеру близкого к языку высокого уровня. По своей структуре он является языком инженерно-ориентированного типа и представляет собой-исходный инструмент автоматизированной системы проектирования МО для управляющих специализированных мини-ЭВМ и позволяет осуществлять автоматизацию всех процессов решения задач бортовых машин. Принцип построения семантики и синтаксиса ИОСЯ был основан на представлении всех операторов с использованием подпрограмм-функций, что не имеет аналогов в известных разработках для систем данного класса. Бесприоритетная форма записи выражений, а также логика построения условных операторов и операторов цикла обеспечивает независимую структуризацию программ. В этой же главе обосновывается выбор структуры и построения компилятора с ИОСЯ на машкод специализированных мини-ЭВМ с нормированной и ненормированной длиной команды. В определенной мере созданный компилятор можно отнести к классу «самоподстраивающихся», что в практической реализации является новым.
Во второй главе описаны результаты исследований и разработки трансляторов масштабирования и построения блок-схем алгоритмов программ как на уровне инженерно-ориентированного языка, так и с локализацией до одной машинной команды.
Алгоритмы масштабирования полностью отвязаны от разрядности и системы счисления данной ЦВМ, что позволяет их использовать практически для любых вычислительных машин с дробной арифметикой. Автоматизированное построение функциональных схем программ основано на представлении исходного текста в виде схем Ляпунова-Янова с введением групповых символьных ключей, что в части реализации осуществлено впервые. Здесь же описана методика, которая позволяет проектировщикам МО эффективно работать с режимами масштабирование и формирование блок-схем и обсуждаются пути развития этих процедур.
В третьей главе диссертации описана автоматизированная система получения документации и программоносителей, сервисные режимы, позволяющие значительно упростить процесс отладки и верификации программ пользователей. Здесь же приводится структура специализированной базы данных, созданной для хранения различных версий МО, анализируется язык управления базой с иллюстрацией различных режимов работы. В этой же главе рассматриваются вопросы качества программного обеспечения, технология программирования «из середины», впервые сформулированная и обоснованная автором.
Созданная система автоматизации МО реализована на БЭСМ-6 и СМ-4. Реализация на этих машинах обусловлена тем, что основное ядро системных программ написано на мобильном фортране, что позволяет легко адаптировать САПР МО на любые типы ЭВМ, имеющие транслятор с одного из диалектов этого языка программирования.
Хочется также отметить, что состав и возможности САПР МО постоянно расширяются. Ведутся работы, связанные с вопросами самодокументирования для облегчения динамической отладки программ с реальной аппаратурой. Происходит адаптация автоматизированной системы в операционные среды ДОС/ЕС и ОС/ЕС.
ЗАКЛЮЧЕНИЕ
1. На основе всестороннего анализа языковых средств автоматизированных систем предложена версия языка взаимодействия проектировщика МО и системы, по характеру близкого к языку высокого уровня. По своей структуре он является системным языком инженерно-ориентированного типа (ИОСЯ) и представляет собой исходный инструмент САПР МО для управляющих специализированных мини-ЭВМ, позволяющий осуществить автоматизацию всех процессов решения задач бортовых ЦВМ. Принцип построения семантики и синтаксиса языка ИОСЯ был основан на представлении всех операторов с использованием подпрограмм-функций. Бесприоритетная форма записи выражений, а также логика построения условных операторов и операторов цикла обеспечивает независимую структуаризацию программ.
2. Предложена структура и. разработан компилятор с ИОСЯ на машкод специализированных мини-ЭВМ с нормированной и ненормированной длиной команды. В определенной мере созданный компилятор можно отнести к классу «самонастраивающихся». Настройка осуществляется на основе принципа функциональных «заглушек», которые автоматически заполняются в процессе эксплуатации системы и введения новых специализированных ЦВМ.
3. Сформулирована и решена комплексная задача автоматизации процесса масштабирования вычислительных операций для бортовых мини-ЭВМ. Алгоритмы масштабирования реализованы полностью независимыми от разрядности и системы счисления данной ЦВМ, что позволяет их использовать практически для любых вычислительных машин с дробной арифметикой. Предложенна формализованная структура получения масштабированных коэффициентов и множителей, на основе которой в рамках САПР МО создан транслятор масштабирования основных вычислительных операций и тригонометрических функций.
4. Разработана и практически реализована автоматизированная система построения блок-схем алгоритмов программ как на уровне инженерно-ориентированного языка Р0ТАЬ2 так и с локализацией до одной машинной команды. Автоматизированное построение функциональных схем основано на представлении исходного текста программы пользователя в виде модифицированных схем Ляпунова-Янова. Модификация заключается в введении групповых символьных ключей, которые позволяют не только упростить формализацию алгоритма, но и в более компактной форме представить листинги функциональных схем. Получение алгоритмов с детализацией до одной машинной команды на уровне машкода, позволяет значительно облегчить процесс стыковки программ с реальной аппаратурой и на объеме МО в размере около полумиллиона команд сэкономить до нескольких человека лет рабочего времени.
5. В рамках САПР МО создана автоматизированная система получения документации и программоносителей (АСЦЦ), позволяющая значительно ускорить и упростить процесс отладки и верификации программ проектировщиков МО. Специализированная база Данных, разработанная в АСЦЦ, позволяет с максимальной наглядностью для пользователя осуществлять надежное хранение, закрытие и защиту данных, диалоговое редактирование и удобную связь с САПР МО. На базе архива данных создана автоматизированная подсистема распределения ОЗУ и ДЗУ бортовых ЦВМ. В системе АСПД реализован также большой набор сервисных программ для проведения исследований различных характеристик качества программного продукта.
6. Разработан и теоретически обоснован метод программирования «из середины», заключающийся в выделении из иерархической структуры какой-то конкретной задачи логического уровня, который обычно расположен внутри самой структуры и программирование начинать именно с него, а после этого двигаться как вверх, так и вниз по иерархической лестнице. При таком подходе число итераций разработки сводится к минимуму, т. е. практически отсутствует перепрограммирование отдельных частей системы, которое, как правило, возникает из-за неполного определения и понимания логики на высших уровнях иерархии.
7. Созданная система автоматизации разработки МО реализована на БЭСМ-6 и УВК ряда СМ-ЭВМ. Реализация на этих машинах обусловлена тем, что основное ядро системных программ написано на мобильном ФОРТРАНе, что позволяет легко адаптировать САПР МО на любые типы ЭВМ, имеющие транслятор с одного из диалектов этого языка программирования.