автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Методическая и системная поддержка разработки пакетов прикладных программ

доктора физико-математических наук
Бежанова, Майя Михайловна
город
Новосибирск
год
1993
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Методическая и системная поддержка разработки пакетов прикладных программ»

Автореферат диссертации по теме "Методическая и системная поддержка разработки пакетов прикладных программ"

I и V (I

РОССИЙСКАЯ АКАДЕМИЯ НАУК СИБИРСКОЕ ОТДЕЛЕНИЕ ВЫЧИСЛИТЕЛЬНЫЙ ЦЕНТР

На правах рукописи

БЕЖАНОВА Майя Михайловна

Методическая и системная поддержка разработки пакетов прикладных программ

Специальность 05. 13. 11 - математическое и программное обеспечение вычислительных машин, комплексов, систем и сетей

Диссертация ка соискание ученой степени доктора физико-математических наук (в форме научного доклада)

Новосибирск 199

Работа выполнена в Вычислительном центре Сибирского отделения Российской академии наук

Официальные оппоненты:

доктор физико-математических наук Кярягин Ц.й. доктор физико-математических наук Евстигнеев В.А. доктор технических наук Рычков А. Д.

Ведущая организация:

Научно-исследовательский вычислительный центр <НИВЦ) ИГУ

в "¿1" часов на заседании Специализированного совета Д002.10.02 по адресу: 630090, Новосибирск-90, пр. ак. Лаврентьева, 6.

С.диссертацией можно ознакомиться в библиотеке ВЦ СО РАН (пр. Ларентьева, 6)

Защита диссертации состоится _

19_г.

Диссертационный доклад разослан

Ученый секретарь Специализированного совета Д002. 10.02, к. т.н. ;

Г.И.Забиняко

- 3 -СОДЕРЖАНИЕ

1. ВВКДКНИК................................................4

И. Окружения разработок.....................................7

3. Услоиин применения комплекса ТРАП и его

характерные черты......................................9

4. Поддержка этапа определения требований.................13

5. Поддержка этапа проектирования.........................13

5.1. Спецификация модуля................................14

Ь.2. Средства описания процедурных объектов.............16

ь.З. Подсистемы комплекса проектирования................17

5.4. Конфигурации комплекса проектирования..............20

6. Инструментальное окружение комплекса ТРАП..............21

6.1. Задание конфигураций...............................21

6.2. Управление конфигурациями..........................23

6.3. Адаптация функционального наполнения ППП...........24

6.4. Средства обеспечения надежности.........'...........26

б.Ь. Макетирование......................................27

6.6. Интерфейс с пользователем..........................29

6.7. Реализация инструментального окружения.............29

б.Ь. Инструментальные подсистемы........................30

6.9. Поддержка реализации ППП...........................33

7 . Заключение.............................................35

.8. Список .публикаций......................................38

- 4 -1. ВВЕДЕНИЕ

Начиная с 70-х годов в различных отечественных научных и производственных организациях стали активно разрабатываться пакеты прикладных программ (ППП). В связи с этим интенсивно исследовались разные аспекты и тенденции разработки ППП как программных систем. Многочисленны и широко известны различные направления исследований по тематике ППП, а также конкретные ППП и средства поддержки их разработки.

В ВЦ СО АН эта тематика была активно поддержана, поскольку ППП представлялись подходящим средством программной реализации алгоритмов и методов, наработанных в процессе исследований и вычислительных экспериментов.

В эти годы автором был выполнен и опубликован ряд работ по обзору, анализу, адаптации ГОШ и средств их поддержки [1-3,22]. Б частности были исследованы ППП встроенного типа: библиотеки, коллекции и более сложные конфигурации [9,10,26]. Их достоинства - расширяемость и возможность использования непосредственно из пользовательских программ и из других ППП.

В плане практической реализации систем встроенного типа были выполнены следующие работы:

Адаптирован к ЭВМ БЭСМ-6 и сдан в эксплуатацию в ВЦ СО АН известный пакет EISPACK (нахождение собственных значений и собственных векторов матриц). Совместно с Л.А. Москвиной спроектирована система СКАЛА (для решения задач линейной алгебры) и инструментальная система PACKAGE

i4,b,7,11,12,17,27,33,34,37].

Еторое направление исследований - изучение технологий и систем поддержки разработки программных систем и ППП в особенности. Стимулом к таким исследованиям послужила потребность в практической поддержке ППП, разрабатываемых в ВЦ СО АН. В 1980 году в ВЦ была создана группа, а затем лаборатория, перед которой была поставлена задача оказания практической помощи и поддержки разработки ППП коллективами разных лабораторий ВЦ.

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

Результаты этих исследований изложены в нескольких препринтах, статьях и отчетах [6, 8, 13-15, 18, 19, 21-24, 29, 32, 38, 39]. Их цель - предоставление

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

Другое направление информационной поддержки - систематизация знаний и разработок. С этой целью велись две картотеки с информацией о пакетах, родственных по тематике с ППП, разрабатываемыми в ВЦ СО АН. Информационная карта о ППП, входящая в первую из картотек, содержит около 20 характеристик, в картотеке около 100 таких карт. Эта информация предназначалась, в основном, пользователям ППП.

Другая картотека содержала систематизированную информацию о публикациях по ППП (более 1000 публикаций). Она предназначалась, в основном, разработчикам ППП. По материалам этой картотеки выпущены два библиографических указателя [20]. В целях автоматизации работы с информацией из этих картотек была разработана информационно-справочная система "Пакетный справочник", выполняющая ввод, хранение информации и получение ее по запросам.

Совместно с'авторами были подготовлены и разосланы по заинтересованным организациям два рекламных буклета, содержащие информацию о 60 пакетах, разработанных в ВЦ СО АН. В результате этого ряд ППП был продан или передан в другие организации. Также активно рассылались в другие организации.

Накопление и анализ информации о ППП позволили выявить новые проблемы и тенденции в разработке ППП. Особое внимание было обращено на особенности различных технологий разработки, систем их поддержки, использование на практике таких понятий, как языки спецификаций, абстрактные типы данных, состояния, новые аспекты модуляризации и другие. Был подготовлен ряд обзорных материалов [30, 32, 40, 43-45, 49, 52]. Эти вопросы стали затем принципиально важными в технологии ТРАП.

Одновременно с этим велась практическая и организационная работа, инициированная необходимостью поддержки первоочередных ППП, разрабатываемых в ВЦ СО АК по оазличным планам, программам и договорам. Оказывалась помощь в составлении технических заданий, эскизных и технических проектов, в подготовке программной документации и проведении приемо-сдаточных испытаний [31,55,56,58].

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

рекомендательного технологического стиля и факультативного использования инструментальных средств. В целом этот стиль и поддерживающие его средства составили технологический комплекс, получивший название ТРАП (Технология Разработки Пакетов) [28, 35, 36, 42, 63, 66, 83]. Его разработка была выполнена в рамках всесоюзной программы 0.80.01 по постановление ГКНТ и распоряжению президиума АН СССР.

Таким образом, цель работы - создание информационной, методической, системной и программной поддержки разработки ППП.

Актуальность работы - практическая потребность в обеспечении разработчиков ППП эффективными и разнообразными средствами, к которым можно легко адаптироваться и выборочно их использовать.'

Научная новизна выполненных работ и предложенных решений состоит в создании нетрадиционных инструментальных и технологических средств поддержки разработки пакетов прикладных программ.. Особенностями и достоинствами такой технологической поддержки являются:

создание такого окружения разработки, к которому можно адаптироваться достаточно легко и постепенно;

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

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

использование метода программного макетирования как основного способа определения инструментов;

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

Практическая значимость работы определяется тем, что с помощью комплекса ТРАП в ВЦ СО АН был разработан ряд ППП.

Результаты исследований и описание комплекса ТРАП опубликованы в 47 печатных работах, 14 отчетах, представлены в виде тезисов 8 докладов на

конференциях и в 5 оперативно-информационных материалах. Информация о 16 подсистемах комплекса, сданных в Фонд алгоритмов и программ, опубликована в информационных бюллетенях ВНТИцентра.

2. ОКРУЖЕНИЯ РАЗРАБОТОК

Каждая из технологий программирования обычно придерживается правил той или иной парадигмы, стиля программирования (модульной, структурной, надежной и т.п.). Однако не менее важно определить, какое окружение будет создавать технология.

Окружение (среда, обстановка! создается коллекцией предоставляемых программных и аппаратных средств. Известны такие виды окружений как яэыково-ориентированное (объектно-ориентированное), структурно-ориентированное, методо-ориентированное я инструментальное'.

Язжово-ориентированное окружение строится вокруг одного языка, который выступает одновременно и как язык спецификаций и как язык программирования (Ада, Smalltalk, Lisp). В состав окружения входит множество инструментов, специально созданных для поддержки этого языка. В языково-ориентированных окружениях хорошо развиты приемы контроля и управления версиями модулей, создания конфигураций. Однако программирование на языке высокого уровня не адекватно поддержке всей деятельности, выполняемой при конструировании больших систем.

Структурно-ориентированное окружение объединяет приемы, которые позволяют пользователю манипулировать непосредственно структурами объектов. Языковая независимость приемов приводит к понятию генераторов окружений. Структурно-ориентированное окружение первоначально предназначалось для того, чтобы дать пользователю инструмент, синтаксически ориентированный редактор, для ввода программ в терминах языковых конструкций. Такой редактор, кроме того, обеспечивает программное окружение, поддерживающее интерактивный семантический анализ, выполнение программ и отладку. Этот подход был распространен на программирование в большой и для поддержки системных структур (журнал ».тори« работ и изменений, списки контроля доступа и т.п.). Конструируя свою программу совместно с таким редактором, пользователь акцентирует свое внимание более на алгоритме, чей на его синтаксически правильном описания.

4 D«rt в.«., EIMM, ft.J., F*11*T Г.М., Н«Ь*г»*лп М. «в«М*« Ди«1|>ЧИ ЬиЧ Ш l»if / ClwpwW. v.20. И II. 147.

Методо-ориентированное окружение поддерживает широкий круг действий в процессе разработки программных систем, включая такие, как бригадная работа и управление проектом. Выделяются методы разработки на разных этапах жизненного цикла ПО и методы управления процессом разработки. Методы разработки включают в себя методы спецификации, детального проектирования, верификации и т.п. Методы обладают различной степенью формализации, могут быть неформальными (при текстуальном описании), полуформальными (при текстуальном и графическом описании с ограниченной проверкой" допустимости) или формальными (с лежащей в основе теоретической моделью, чье описание можно верифицировать). Примеры полуформальных методов SDL2, SADT3, PSL/PSA* и др. Примеры формальных описаний - сети Петри, языки спецификаций VDM* и др.

Методо-ориентированные окружения в большей мере нацелены на операционные аспекты процесса разработки: задачи программиста описываются, в основном, в терминах действий, для которых упрятывание информации и зависимость данных играют не главную роль. Менее активно в этих окружениях развиваются механизмы декомпозиции (модуляризация, инкапсуляция, проверка интерфейсов и другие) и механизмы управления (контроль версий, конфигурации и другие).

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

Рассматриваемый технологический комплекс ТРАП состоит из двух "Частей: системы поддержки проектирования ППП и коллекции инструментальных средств." Первая из них является средством создания нетодо-ориентированного окружения на этапе детального проектирования, а вторая - средством создания инструментального окружения при программировании, сборке и исполнении ППП.

2 Ntlgo О.* iMMoto К., FuJiOeyeeM в* * eoft«ere doelgn Syetee beeed en е leiified Ол1рп Methodology. - 4. lnforeetlon proceeeing, IW, vol. 3, КЗ, p.ige-m.

Roo» D.T., ktwHn R.E. Structured Analyole for Hequirwwnte Definition, - If££ Trono. Seftuero Eng., 1977, vol. tC*I, N1, 0.4-13.

Tolchroe* D., I lor oho» C.4. NL/PUi A ceeguter - eided tectmigue (or structured docuevttetion end enelreie of inforoetlon processing eyetoe*. - IEEE Treno, floftaerw Eng., 1*77, vol. flE-3. N1, p.41-H.

■Jomer 0. The VDM Principle* of eoftuero specification Prograo Oeelgn. - Lect. Note* Coeputer Ici., 197*, vol. 4*, p.44-7«. . - . ■ í

3. УСЛОВИЯ ПРИМЕНЕНИЯ КОМПЛЕКСА ТРАП И ЕГО ХАРАКТЕРНЫЕ ЧЕРТЫ

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

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

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

Пакеты прикладных программ, которые разрабатывались в технологии ТРАП, предназначены для решения различных '_<адзч математической физики. Дл: характерными являются:

достаточно простой способ Формулировки -<адач,

наличие сравнительно небольшого набега программ функиксн^л[ н:-го напол!;ния, соответствующих алгоритмам решения задач, М-.с.оВь.р..антный характер задания информации о задаче, . возможность выполнения содержательного анал.г.'п :»и?.тг»а»г ■'зч входе, так и в процессе вычислений, полностью автоматический характер решения зидг;

Технология разработки программных систем .^л'-дкеч-тся из тгсх о компонент:

•'.•..'• - 10 -

-методики, то. есть системы регламентов и .рекомендаций, устанавливающих . некоторую дисциплину разработки; .

- языков для описания системы на различных этапах разработки;

- программных средств поддержки разработки. ...

Комплекс ТРАП не рассматривается как единая■технология разработки. Он состоит из ряда компонент,/ каждая из "которых предоставляет некоторый набор методических, . языковых и программных средств. Хотя все компоненты . и поддерживают определенный стиль• разработки, но не исключается возможность использования других средств. При создании комплекса ТРАП, в частности, ставились цели:

- показать, как можно использовать языковые и инструментальные средства для увеличения надежности прикладных, программных-систем, повышения скорости и технологичности их разработки;

- оставить возможность работать в привычной, традиционной манере, используя лишь некоторые из средств комплекса.

Целевые технология [18,32], в отличие от технологий общего назначения, характеризуются, в основном, не принципиально новыми подходами и типовыми средствами, а определяются спецификой разрабатываемых систем и особенностями их функционирования. Обеспечивая пользователя необходимым набором средств и подходящим стилем работы, целевые технологии обычно преследуют цель более эффективного функционирования программных систем.

Примером целевой технологии является разработанная в рамках комплекса ТРАП технология ТЕМП [57], ориентированная на построение восходящим методом многоверсионных программных моделей для задач рассматриваемого класса и на конкретное программное окружение.

Термин коллекция понимается в смысле систематизированной коллекции4, т.е. набора согласующихся программ, нацеленных на решение класса родственных проблем и имеющих свойства: надежность, корректность, структурированность, легкость использования. Коллекциями являются некоторые подсистемы комплекса ТРАП.

Создание прикладного программного обеспечения осуществляется путем перехода от модели предметной области к прикладной модели, а затем к программной модели. Програннная модель [50] является алгоритмизированным и выраженным на языке программирования представлением прикладной модели. Создание программной модели проходит этапы проектирования и программирования.

Арумняи 0.6. О проекта МАГВ <Сий) // Лшрииа VI Вс«с«п. г■ ■ ■ ирл по «ам>мяслм програии мт. «мзикм. - Новосибирск,

ИТПИ СО АН СССР, 1990.

- и -

На этапе проектирования выделяются объекты модели и их связи, создается структура модели как модульной системы.

Термин объект понимается как синоним понятия абстрактный объект. Последний, являясь одним из базовых понятий структурного программирования, означает абстрагирование от функционального назначения и представления объекта.

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

Одним из важных и полезных методологических понятий технологии ТРАП является понятие работы. Оно подразумевает некоторую завершенную совокупность действий, преследующих цель создания, модификации или исполнения программных объектов в заданном окружении. Некоторые из работ выполняются ЭВИ в автоматическом режиме, а другие определяются в виде "технологических" работ (предписаний, инструкций). Работа, выполняемая автоматически, описывается конфигурацией программных объектов, инициируемой каким-либо образом в заданном программном окружении. Внешние представления таких конфигураций различны: процедура на языке спецификаций или алгоритмическом языке, задание на языке управления, командный файл. Технологическая работа в комплексе ТРАП специфицируется на языке проектирования и служит программой действий для разработчика, пользователя, оператора. Она может быть реализована человеко-машинной процедурой, дополненной помощью разного вида (инструкции, подсказки, примеры, контроль и т.п.).

Понятие "работа" продуктивно для описания действий разного сорта: спецификации программных моделей на этапе проектирования, описании самого процесса проектировании ППП (план-график), задания конфигураций, создаваемых из функциональных и инструментальных средств ГШП при решении задач.

При проектировании комплекса ТРАП и конструируемых с егс помощью ППП использован метод декомпозиции, основывающийся на традиционных принципах модульно ;тг\ зерсионности и построения конфигураций.

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

Этап Проектные

определения спецификации

требований ППП

Этап проектирования

Комплекс поддержки проектирования

Этап программирования

Этап исполнения

Коллекция СИНАПС

Комплекс ДИНА

Коллекция ПРИНС

Подсистема ДИВПАК

Система МЕНЮ

Технология

ТЕМП

Этап знакомства и обучения

Рис. 1. Средства поддержки комплексом ТРАП этапов разработки и функционирования ППП.

Подсистема ИНФОРМАТОР

остаются предоставляемые ЭВМ базовые средства их решения - операционные системы, системы программирования, организации данных и т.п. В силу этого многие из приемов и механизмов, предложенных в технологии ТРАП, могут быть перенесены в операционные среды ПЭВМ.

Рассмотрим далее средства комплекса ТРАП (см. рис. 1) в соответствии с порядком этапов разработки программных систем.

- 13 -

4. ПОДДЕРЖКА ЭТАПА ОПРЕДЕЛЕНИЯ ТРЕБОВАНИЯ

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

Ь рамках технологии ТРАП был сформулирован [16,25] набор характеристик (спецификаций), с помощью которых формулируются требования. В соответствии с этими характеристиками были оформлены все технические задания на ППП, разработанные в ВЦ СО АН в период 1982-1990 гг., а также ряд технических и эскизных проектов. Все характеристики образуют четырехуровневую иерархическую структуру, характеристики нижнего уровня конкретизируют, уточняют характеристики предыдущего уровня. Выделено восемь характеристик первого уровня, например, такие как специфика, среда Функционирования, пользовательские аспекты, состав, входная, выходная информация, обеспечение разработки, средства модификации и т.п. Для каждой из характеристик нижнего уровня выписан ряд возможных значений (который можно расширять в том же стиле). Требования к конкретному проекту формулируются в виде набора значений характеристик, структурированного в соответствии с указанной иерархией.

5. ПОДДЕРЖКА ЭТАПА ПРОЕКТИРОВАНИЯ

Результатом завершения этапа проектирования программной системы является ее проектная модель (внутренний проект), содержащая описание структуры, объектов и взаимосвязей. Поддержке этого этапа в технологии ТРАП уделялось особое вчкчсш <е

Преследовалась цель предложить простой и легко усваиваемый стиль описания проекта, внося в него по возможности современные и важные аспекты модуляризации, типов данных (в том числе абстрактных типов данных) и другие понятия системного программирования. Разработанный язык проектирования САТРАП (Спецификация Алгоритмов ТРАП) является языхом с русской лексикой, на котором

программная система описывается как некоторая конфигурация из модулей с заданным интерфейсом и определенными в них объектами.

Модуль может иметь иного версий. Многоверсионность полезна как средство фиксации изменений в модуле по мере его разработки и как средство определения одних и тех же понятий различными способами. Формально все версии модуля объединяет лишь общее имя модуля.

В соответствии с общей концепцией модульности модуль на языке САТРАП может иметь несколько представлений: формальная спецификация, функциональная спецификация, реализация. Первая из них определяет интерфейс модуля и специфицирует определяемые им объекты. Вторая описывает инкапсулируемую (скрытую) структуру объектов и алгоритмы объектов процедурного вида. Язык САТРАП служит для описания этих представлений и распадается на дае части -

язык формальных спецификаций и язык функциональных спецификаций. •

5.1. Спецификация модуля

Модуль - базовая конструкция языка [60], он является средством выделения и описания одного или нескольких понятий, объединяемых в модуль на основе либо их смысловой (функциональной, проблемной) общности, либо единства их использования, либо других характеристик. Средством декомпозиции понятий, описываемых модулем являются объекты модуля. Некоторая совокупность определяемых модулем объектов может предоставляться другим модулям (экспорт модуля). В свою очередь модуль может использовать (импортировать) объекты, определяемые другими модулями.

Проектная модель [60] программной системы представляется совокупностью модулей, связанных друг с другом отношениями "использует" (импортирует) и "доступно" (экспортирует). Контекстом модуля называется совокупность понятий, определяемых с помощью объектов данного модуля и объектов, импортируемых им. На языке САТРАП спецификация модуля представляется в виде: СПЕЦИФИКАЦИЯ имя_модуля [параметры_додуля] [спецификация_интерфейса] {спецификация_объекта> КОНЕЦ_СПЕЦИФИКАЦИИ [имя_модуля]

Имя_модуля является составным: вторым задается имя версии этого модуля. Спецификация интерфейса задает эхспорт модуля в виде перечня определяемых модулем объектов и, возможно, их подобъехтов, например,

ДОСТУПНО анкета,

таблица_имен(чтение_ти,запись_ти)

Может быть указан "направленный" экспорт, перечисляющий модули (и возможно их объекты), которым предназначены экспортируемые объекты, например ДЛЯ база_модулей. 01_06_87(база(зап_верс,зап_предст))

Спецификация интерфейса задает также импорт модуля в виде перечней импортируемых модулей, а также, возможно, их объектов и подобъектов, например, ИСПОЛЬЗУЕТ базовые_типы.01_01_86 (слово), список_с_очзредным_злем

Спецификация объекта [41, 46] модуля представляет собой спецификацию одного из допустимых видов объектов, а именно: константа, декларативный тип, декларативное данное, операционный тип, операционное данное, функция, процедура.

Декларативный тип определяет тип данных с помощью конструктора типа. Конструктор типа задает структуру данных, определяет множество его значений и доступ к его компонентам. Конструкторы типов ■ аналогичны - традиционным конструкторам языков программирования: предопределенные типы, их отрезки, массивы, структуры и другие, например ТИП слово = МАССИВ(20):буква

ТИП предложение(к : целый) = МАССИВ(к) : слово

Декларативные типы используются для описания данных, декларативное данное - данное с типом, заданным в виде конструктора.

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

Язык САТРАП содержит конструкцию, соответствующую такому способу определе* и; . ига и называемую операционным типон данных (ОТИ), можно также определять операционные данные (ОД), как некоторые уникальные данные, описываемые набором определенных для них операций. Спецификации операций ОТД и ОД подобны спецификациям функций или процедур.

ОТД и ОД являются составными объектами, их подобъектами являются их операции. Аналогично модулю ОТД. и ОД содержит описание импорта и экспорта (доступных извне операций), представление операционного типа скрыто.

Для ППП по вычислительной математике и математической.физике характерен способ описания моделей и преобразований в виде алгоритмов, определенных довольно детально в целях повышения их эффективности и уточнения их специфики. Поэтому в языке САТРАП приняты адекватные такому, способу (и традиционные для языков программирования) средства декомпозиции модулей, операций и средства управления. ' Формальная спецификация процедурных объектов модуля также традиционна: "заголовки" Функции или процедур со спецификацией типов параметров и способов их передачи (аргумент, результат, аргумент/результат). В дополнение к спецификации типа значения, вырабатываемого функцией, рекомендуется определить все множество значений, вырабатываемых этой функцией. Такое определение обязательно при описании так называемых "контролирующих Функций" (см. далее).

5.2. Средства описания процедурных объектов

Объекты структурного типа (функции, процедуры и операции) могут иметь внутреннюю (функциональную) спецификацию, выполненную на так называемом языке управления. Рассмотрим несколько его характерных черт.

Следуя стилю структурного программирования, язык САТРАП определяет несколько видов композиционных структур управления, называемых группами управления. Имеются группы повторения, выбора, выполнения, условные и др. Каждая группа управления имеет по одному входу и выходу и имя, которое можно использовать как для содержательной идентификации шагов алгоритма, так и для установления соответствия между началом группы и завершающими ее операторами.

Наряду с традиционными завершающими действиями (останов, возврат, конец) в языке управления имеется ряд дополнительных, расширяющих возможности управляющих структур. К ним относятся: структурный выход из группы (ЗАВЕРШИТЬ), продолжение перебора вариантов (ПРОДОЛЖИТЬ), возобновление исполнения группы с начала (ВОЗОБНОВИТЬ).

При введении в язык групп перебора, выбора и выполнения был учтен опыт описания вычислительных алгоритмов и планирования вычислительного эксперимента. Первая из этих групп управления описывает механизм последовательного перебора альтернатив (возможно с заданием внутри альтернатив операторов ЗАВЕРШИТЬ и ВОЗОБНОВИТЬ). Группа выбора схожа с оператором варианта языка АДА. Группа выполнения служит для запуска процедуры и анализа вариантов ее завершения: каждому из выходов вызываемой процедуры в группе выполнения сопоставляются последующие действия. Необходимость описания этих действий

требует более тщательного продумывания возможных вариантов и служит тем самым одним из средств повышения надежности программ.

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

Возвращаемое контролирующей функцией значение не является, как правило, основным результатом описываемого ею алгоритма, а лишь сигналом (состоянием, сообщением) о характере (правильности) его исполнения. Это возвращаемое значение может быть любого подходящего типа (числового, логического, строкового). Результаты алгоритма могут передаваться через параметры функции (со спецификацией РЕЗ или АРГРЕЗ) или через внешние данные. При любом вызове контролирующей функции пользователь вынужден проверять правильность ее исполнения прежде, чем он сможет использовать ее основные результаты.

Соответственно при описании функциональной спецификации контролирующей Функции необходимо включить операторы содержательного анализа и контроля [61] как ее входных данных, так и результатов вычислений других функций, процедур, информации из БД и т. п. С помощью контролирующей Функции реализуется по существу механизм состояний [40], обеспечивающий надежность проектирования и вычислений.

Ь.З. Подсистемы комплекса проектирования

Комплекс проектирования состоит из подсистем, каждая из которых ориентирована на выполнение работ с тем или иным видом информации. Реализованы следующие подсистемы: ВЗАИМОДЕЙСТВИЕ, СПЕЦИФИКАЦИЯ, СТРУЮ 'РА, ФиРйИРоЗпНИЕ, - ■'• БАЗАЛОДУЛЕИ, КОНТЕКСТ.

На рис. 2 приведена схема информационных связей в комплексе поддержки проектирования.

С

С

Протокол работы системы

С

Запросы и модули

С

Сообщения

Подсистема ВЗАИМОДЕЙСТВИЕ

С

Описание модуля на языке САТРАП

Подсистема СПЕЦИФИКАЦИЯ

Подсистема ФОРМИРОВАНИЕ

Подсистема _ БАЗА МОДУЛЕЙ

База модулей

Подсистема КОНТЕКСТ

Подсистема СТРУКТУРА

Рис 2. Схема информационных связей в комплексе поддержки проектирования

Подсистема ВЗАИМОДЕЙСТВИЕ [72,81] выполняет интерфейс комплекса с пользователем в пакетном и диалоговом режимах с помощью языка взаимодействия. Последний является языком директивного типа. На нем задаются действия, которые пользователь хочет выполнить с доступными ему модулями проектируемого ППП: ввод, хранение, анализ контекста, уничтожение, печать, копирование, а также выдачу различных сведений справочного характера о содержании и состоянии базы модулей.

При работе в пакетном режиме задание имеет вид пакета директив, в диалоге они выполняются поиагово, может вестись протокол сеанса.

Подсистема СПЕЦИФИКАЦИЯ [73] включает в себя язык САТРАП [41, 46, 54, 55, 60] и его синтаксический анализатор. Синтаксис языка задается в виде совокупности диаграмм перехода. Ядром анализатора является сканер. В процессе анализа могут запускаться соответствующие семантические программы (вынесенные в подсистему ФОРМИРОВАНИЕ), строящие внутреннее представление модуля.

Подсистема СТРУКТУРА, [71] описывает внутреннее представление модуля в виде трех его составляющих: таблица символов, структура модуля и функциональная схема. Наиболее сложной и интересной является структура модуля, отражающая формальную спецификацию модуля и его объектов. Структура модуля описывается в виде операционного типа данных [54], эффективность представления достигается благодаря описанию его как списочной структуры, элементами которой являются списки и структуры нескольких видов (в том числе вариантные).

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

Подсистема ФОРМИРОВАНИЕ [67] строит внутреннее представление спецификации модуля. Она представляет собой по существу совокупность семантических программ, соответствующих синтаксическим понятиям языка САТРАП. При исполнении каждой из этих программ проверяется семантическая правильность Фраз языка и строится его внутреннее представление.

Подсистема БАЗА_ЖШУЛЕЙ [47, 70] предназначена для выполнения работ по хранению модулей. База модулей определена в виде операционного типа данных. Структура базы описывается иерархией, уровни которой соответствуют модулям, их версиям, представлениям, сегментам и записям. Каждому модулю соответствует список его версий. Набор представлений фиксирован: текстовое (на языке САТРАП), три части внутреннего (таблица имен, структура модуля, функциональная схема), г.одоюе (например, на языке программирования). Специфика каждой из компонент < гр> с1 /ры базы обусловила особенности их реализации: списки версий, сегменты памлти разного размера для компонент разных уровней, механизм переиспользования дисковой памяти с помощью шкал занятого пространства. Подсистема реализована в виде нескольких файлов прямого доступа и двух программных модулей, предоставляющих их пользователю большой набор операций: поиск, идентификацию, чтение, запись, удаление компонент разных уровней.

База модулей обеспечивает минимальную защиту модулей и разные права доступа к ним. Характеристиками модуля являются шифр и пароль владельца модуля, а также статус (общий или индивидуальный).

Подсистема КОНТЕКСТ [69] предназначена для выполнения работ по построению и проверке контекста (окружения) заданного модуля. При проверке правильности контекста контролируется, определены ли все используемые модулей обьекты, единственно ли это определение и т.п. Эти проверки выясняют также степень завершенности проектируемой модели и служат одним из доказательств ее правильности. По требованию может быть построено и размещено в базе модулей внутреннее представление контекстного модуля, содержащее все обьекты контекста.

5.4. Конфигурации комплекса проектирования

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

Выделены следующие конфигурации: СИНТАКТОР, ТРАНСЛЯТОР, •КОНТЕКСТ, КАТАЛОГ, СИСТЕМА.

Конфигурация СИНТАКТОР используется для выполнения синтаксического анализа модуля на языке САТРАП, в базу модуль не заносится.

Конфигурация ТРАНСЛЯТОР выполняет синтаксический анализ и, если ошибки не найдены, записывает текстовое и внутреннее представление модуля в базу модулей.

Конфигурация КОНТЕКСТ выполняет построение контекста и проверку его полноты для модуля, указанного в базе модулей. На уровне внутреннего представления создается контекстный модуль, содержащий описания всех объектов, используемых в указанном модуле.

Конфигурация КАТАЛОГ реализует действия пользователя по получению сводной информации о доступной ему части базы модулей, а также действия по некоторой ее корректировке. Можно вывести модуль на устройство ввода, запретить или разрешить доступ к нему других пользователей, уничтожить модуль или какую-либо из его версий.

Конфигурация СИСТЕМА служит для выполнения работ, реализуемых всеми выше указанными конфигурациями. Конфигурация содержит все подсистемы комплекса.

6. ИНСТРУМЕНТАЛЬНОЕ ОКРУЖЕНИЕ КОМПЛЕКСА ТРАП

Поддержка этапа программирования а технологий ТРАП реализуется в виде инструментального окружения. Оно обеспечивает пользователя коллекцией небольших по объему инструментов. Вообще инструментальное окружение начинается с операционной системы и наращивается путем добавления средств поддержки программирования в иалой (компиляторы, редакторы, отладчики и др.), а также средств программирования в большой (контроль версий, управление конфигурациями и др.). Инструментальное окружение ТРАП включает в себя средства штатного программного обеспечения ОС ЕС (для поддержки программирования в малом) и пополняет его средствами для программирования . в большом. Выбор инструментального типа окружения мотивирован, в частности, потребностью языковой независимости при программировании в большом, которая характерна для ШП.

Инструментальная система характеризуется набором инструментальных средств, ориентированных на выполнение работ определенного вида или стиля. Современные инструментальные системы представляют собой наращиваемую совокупность базовых средств для конструирования различных удобных пользовательских интерфейсов.

Инструментальное окружение технологии ТРАП состоит из средств разного вида: коллекций программ и макетов, программных подсистем, целевых технологий [183, методик. С помощью этих средств поддерживается стиль надежного программировала, модуляризация, создание конфигураций, обеспечение проблемно-ориентированно!^ интерфейса. Набор инструментальных средств расширяется при необходимости создания новых интерфейсов, способов организации ППП и др.

6.1, Задание конфигураций

Одной из существенных я характерных функций, реализуемых пакетами прикладных программ является функция конструирования программы решения из

объектов, предоставляемых ППП и задаваемых пользователями. Эту функцию обычно называют функцией планирования вычислений. Разработано множество различных алгоритмов и механизмов планирования [32].

Специфика - рассматриваемого класса ППП обусловила выбор механизма планирования, который принято называть конфигурационным.'

Коротко укажем особенности реализации конфигурационного механизма в пакетах, конструируемых в рассматриваемой технологии.

Модули. Каждый ППП представлен совокупностью модулей Функционального и системного наполнений, образующей контекст пакета. Системное наполнение образуют необходимые этому ППП модули, созданные в инструментальном окружении ТРАП, а также используемые в них модули инструментальной среды (ОС ЕС).

Каждый из этих модулей представляет некоторый объект проблемного или инструментального окружения. Фэрмы задания объектов могут быть различны: программы на языках программирования, тексты макросов, объектные модули, предписания к сборке, перечни параметров и другие. • ^

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

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

Некоторые из объектных модулей, входящих в цепочки не являются готовыми модулями. Они являются результатом исполнения других модулей или работ этой же или другой конфигурационной цепочки. Такой их статус объясняется тем, что исходный модуль является варьируемым и задается в виде управляющей структуры, называемой обычно каркасной конфигурацией с вариантными гнездами. Каркас представляет некоторую постоянную часть модуля (например, алгоритм расчета), гнезда - переменную часть модуля. Каждому из гнезд может ставиться в соответствие объекты той или иной природы (формулы, значения, геометрические конструкции и т.п.), называемые сменными объектами (модулями).

В качестве примера такого (конфигурационного) объектного модуля можно указать конфигурацию, называемую программной моделью задачи (пакет МОДИП). Она представляет собой набор основных модулей модели, задаваемых в виде каркасных

' Горбумм-пвсмйа И.И. Ксч»«-ур»»ч протрма,.- И.» Наука, 19П.

конфигураций, а сменные модули (называемые функциональными) задают различные Функции для вычисления разных характеристик модели. Последние могут либо указываться пользователем из предлагаемого пакетом набора, либо задаваться им самостоятельно.

6.2. Управление конфигурациями

Формулировка задачи, определяемая пользователем, явно или неявно задает работы, которые должны быть выполнены, и их пользовательский контекст (в виде наборов данных). Контекст задает для сменных модулей соответствия ИМЯ_ГНЕЗДА -ИМЯЛОДУЛЯ и, возможно, сами сменные модули. Если для какого-либо гнезда соответствие не задано или не определен модуль, то они выбираются по умолчанию (если это допускается), определяемому контекстом пакета.

Вопросы конфигураций модулей рассматриваются в нескольких подсистемах комплекса ТРАП. В подсистеме СИНАПС описано несколько конфигураций заданий, типичных для ППП и использующих типовые модули пакета (транслятор Формулировки задачи, монитор задачи и т.п.) и модули штатного ПО ОС ЕС (препроцессоры, компиляторы, утилиты, редактор связей). Там же рассмотрены различные способы задания соответствий (имен гнезд и модулей) и источников модулей при сборке объектных модулей.

В подсистеме ТЕМП [57, 90] предложены макеты более сложных заданий, выделены работы, используемые в ППП. Предложена методика описания конфигурации "работа" в виде системной процедуры (на языке <}СЬ) и способы задания для нее пользовательского контекста. Задание на решение задач пакетом описывает по существу управление конфигурациями, указывает контекст пользователя для каждой из работ и цепочку их выполнения. Задание описывается в виде задания на языке ЛСЬ ОС ЕС. Для каждого ППП, разработанного в рамках технологии ТРАП, составлен некоторый набор таких заданий, в соответствии с решаемыми им задачами.

Они могут быть непосредственно запущены пользователем после определения им требуемых наборов данных, задающих пользовательский контекст. Однако, как правило, пользователь работает в диалоговом режиме с подсистемой ДИВПАК, которая '.в-^,.'тически конструирует задание, запрашивая у пользователя всю необходимую информацию.

Исполнение задания производится в два этапа. На первой планировщик заданий ОС ЕС с помощью механизма макровызова ЛЬ-процедур производит генерацию задания путем адаптации конфигураций работ к пользовательскому контексту. Это задание фактически представляет собой граф решения.

На следующем этапе (исполнение задания) производится выбор и исполнение пути в графе с помощью механизма условного исполнения шага задания в зависимости от результатов (кодов возврата) предыдущих шагов задания.

Некоторые из работ рассматриваемых ППП выполняются в интерактивном режиме. Основной из таких работ является диалоговый ввод пакетных заданий. Задания на исполнение таких работ аналогичны пакетным. В качестве базовой интерактивной среды была использована среда системы коллективного доступа ПРИМУС, но аналогично используются и другие среды.

Для каждого ППП конфигурация его интерактивной работы описывается процедурой на языке системы ПРИМУС, содержащей вызов диалоговой программы (как правило это подсистема типа ДИВПАК). В процедуре задается пакетный контекст для исполнения этой программы - используемые в ней файлы ППП. Задание пользователя имеет вид команды, запускающей эту процедуру, а пользовательский контекст (значения и наборы данных) задается с помощью параметров этой команды.

6.3. Адаптация функционального наполнения ППП

При конструировании ППП восходящим методом их функциональное наполнение формируется, как правило, из готовых программ, разработанных в процессе вычислительного эксперимента по апробации разрабатываемых алгоритмов. Для рассматриваемых ППП - это обычно небольшое число крупных, плохо структурированных программ. При создании пакета необходима хотя бы минимальная реструктуризация, модуляризация этих программ. Ее цель - не только экономия ресурсов при решении задач, но, прежде всего, возможность создания конфигураций программных модулей для решения нноговариантных задач. Отметим несколько приемов такой реструктуризации Функционального■наполнения, которые были применены при разработке ППП в рамках рассматриваемой технологии.

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

Укажем еще один прием [57] реструктуризации большой функциональной программы. Предполагается, что в программе отдельные алгоритмы описаны в виде Функций и процедур или их легко можно выделить. Рассортируем их на несколько групп. К первой отнесем так называемые основные модули (подпрограммы), реализующие базовые алгоритмы расчета. Некоторый набор версий этих модулей

образует программную модель задачи. Модель характеризуется также тем, что ей соотносится перечень ее исходных данных (параметров модели), а также модуль ввода, выполняющий содержательный анализ параметров и задание их по умолчанию. Кроме того выполняется анализ и унификация общих блоков (наборов) данных для подпрограмм модели. Основные модули разрабатываются в процессе вычислительного ■эксперимента и составляют базовое наполнение ГШП.

К группе модулей, называемых функциональными, отнесем модули, описывающие "смен-ие" объекты, чья замена соответствует разным вариантам решения задачи. Эти модули фактически задают обьекты контекста решения задачи, их подключение означает преобразование программной модели в программу решения конкретной задачи. Несколько таких "контекстов" могут быть заготовлены разработчиком и храниться в наборах данных ГШП. Но пользователям 11Г1П предоставляется возможность задавать свои контексты, полностью или частично переопределяя обьекты.

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

Несколько схожий прием был предложен, например в языке LEGOS": для некоторого (базового) модуля можно определить так называемые интерфейсные модули, чье назначение - частичное "сокрытие" интерфейса базового модуля для разных контекстов.

В инструментальном окружении ТРАП выделено и реализовано несколько таких пре- и постпроцессорных модулей, отличающихся их функциями: транслятор формулировки задачи, модуль-перекодировщик, модуль-компоновщик, модуль ввода, модуль визуализации.

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

и

L* Sv'iM* LtfiOSi Environment do RroQr**a«t>c ы,г П'О |ГЬ. И >1 . ,90o, N 21-2?, ц. I •>;.

LEOOSt I*, Lanq»^« htjOu Uir,/ Muclvnt, J ,1.. , loyvr 1. .PruvWr Г.. Ьсдпц J.С. - ' • 'i'-• t ¡"»'Л, Io1*!, n

l.JOp.

Но дули-верекодирошцики выполняют лишь функцию преобразования информации одного вида к некоторому представлению, удобному для последующей обработки. Так в подсистемах НЕРПА и МИРТА (разработанных в рамках комплекса ТРАП) реализовано несколько таких модулей (для описания уравнений, геометрической модели, суперэлементов). Модули перекодируют внешнее представление к виду, удобному для макропроцессирования.

Модули-компоновщики предназначены для сбора (из разных источников) информации и подготовки ее в нужном виде, порядке и формате. Независимая реализация таких модулей позволяет легко ориентировать ППП на задание входных данных в разной форме и с разных носителей.

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

Модуль ввода реализован в виде модуля, настраиваемого для каждой модели по описанию ее параметров. Он выполняет ключевой ввод значений параметров модели, на которую он настроен.

Нодуль визуализации является постпроцессорным. Его назначение построение на экране схематического графического изображения результирующих объектов. Визуализация выполняется в целях контроля "правдоподобности" результатов. Она необходима тогда, когда либо требуется выполнение специальных работ по графическому изображению результатов (например, на специальных устройствах), либо с ее помощью контролируются некоторые промежуточные результаты.

6.4. " Средства обеспечения надежности

Стиль надежного программирования' впитал в себя, по существу, все идеи модульного и структурного подходов, акцентировав внимание на некоторых специфических аспектах.

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

ГИСЕ I. Румиктм па

- И, 1 #ММНСМ И СГ4ГИСУМ1«, 14В2.

качества. Качественная программа не только надежна, но и компактна, совместима с другими программами, эффективна, удобна в сопровождении, портативна и вполне понятна.

Целями обеспечения корректности программ, разрабатываемых в технологии ТРАП, служит язык САТРАП и система его поддержки.

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

Обычно устойчивость программного средства обеспечивается применением ряда подходов, приемов и средств, их поддерживающих. Главными из них в инструментальной части технологии ТРАП являются:

подход к разработке программ, называемый макетированием [52];

приемы тестирования (макеты тестирующего модуля и модуля выдачи

сообщений) [52, 58];

механизм, называемый контролирующей функцией и служащий эффективным средством контроля межмодульного интерфейса [53, 61]; активное внедрение (в макетах программ на языке ПЛ/1) механизма ситуаций и реакций на них как средства контроля процесса обработки [40, 51, 52];

исследование языковых средств программирования, выработка и внедрение надежного (технологичного) стиля программирования [54].

6.5. Макетирование

Используемый в технологии ТРАП инструментальный подход, называемый макетированием, имеет некоторое ^сходство с методом, получившим название "прототипирование"10, хотя и отличается от него довольно существенно. Прототипом называется быстро и грубо сделанная программа, удовлетворяющая главным требованиям проекта, работающая и доступная для оценки. Ее назначение - служить (вйешней) спецификацией проектируемой программы. Анализируя ее работу разработчик и пользователь активно проверяют и окончательно формулируют требования. Прототип может использоваться для верификации, служить гарантом ее активного использования в данной проблемной области.

Понятие "макет" в технологии ТРАП более разнопланово. Главное его отличие от прототипа состоит в том, что макет с самого начала разрабатывается'

Грамм Г.З. Ининммм ресурс«,, Прдемнм принятия пня »«сяутчич. - И., Нрукр, |9вЭ.

очень тщательно, эффективно. В качестве критериев этой эффективности выбираются в первую очередь не экономное использование таких ресурсов, как время и память, а такие характеристики как структурность, наглядность, контролируемость, целью которых . является экономия времени разработки макетируемой программы, обеспечение ее надежности. Макет должен быть хорошо документирован. Он более ориентирован на описание структуры программы, использование в ней таких средств, которые обеспечивают контроль правильности исполнения. Немаловажным в рассматриваемом понимании макетирования является то, что базовыми инструментами разработки программ является инструменты широкого назначения (язык, препроцессор и компилятор ПЛ/1, язык управления заданиями, каталогизированные процедуры, утилиты и редактор связей ОС ЕС). Все они обладают большими наборами разнообразных средств. Прикладному программисту очень трудно досконально изучить их и выбрать те, которые наилучшим образом описывают необходимые объекты и их обработку. С помощью макета в технологии 'ГРАИ описаны некоторые понятия, структуры данных, работа, механизмы контроля, управления и др.

С точки зрений использования все разработанные макеты можно разделить на несколько групп. К первой относятся макеты, представляемые в виде схем, примеров, методик реализации тех или иных понятий программирования. Таковы, например, практически все макеты инструментальной подсистемы ПРИНС (описание декларативного и операционного типов данных на ПЛ/1, контролирующие функции и др.), модуль факультативного ввода в пакете МОДИЛ и ряд других.

Вторую группу составляют макеты, представляющие собой готовые к исподкении модули и подпрограммы, реализующие объекты системного наполнения и надежные способы работы с ними. Их можно использовать как непосредственно (выбирая из библиотек текстовых и готовых модулей), так и кодифицировать, адаптируя их к нужному окружению. Таков, например, макет процедуры, выполняющей полный контроль при работе с записе-ориентированными Файлами в 1111/1, модули работы с динамическими типами данных коллекции ДИНА и другие.

К третьей группе относятся макеты, описывающие некоторые типичные модели работ и функций системного наполнения в том или ином окружении. Таковы макеты системных модулей коллекции СИНАПС, процедуры работ в технологии ТЕМП, макет модуля-исполнителя подсистемы ДИВПАК.

Все макеты описаны на языках САТРАП, ПЛ/1, и редактора связей ОС ЕС.

- 29 -

6.6. Интерфейс с пользователей

Создание дружественного интерфейса для ППП особенно важно. Помимо учета общеизвестных требований к манере общения", особое внимание при реализации интерфейса в инструментальном окружении ТРАП уделено'следующим вопросам:

совмещение функции информатора о возможностях ППП с функцией ввода сведений о задаче (для работы с ППП не требуется никакой инструкции); ведение пассивного диалога в таком стиле, чтобы сведения запрашивались в порядке, естественном для предметной области и круга пользователей; разная степень подробности задания информации;

возможность задания значений данных путем редактирования ранее заданного варианта.

Основным. инструментом ведения диалога при вводе заданий к ППП в технологии ТРАП является система МЕНЮ [89]. К контекстам разных ППП она адаптируется путем подключения к ней необходимого файла меню и, возможно, модуля-исполнителя (рабочего процессора). В файле меню представлен граф ведения диалога. Пути в графе соответствуют разным последовательностям меню, предъявляемых пользователям.

Среди них есть как информативные (пользователь должен только выбрать пункт меню), так и запросные (в пункты меню включены окна диалога для ввода данных, возможно факультативного). Использование или изменение ранее введенных данных возможно благодаря восстановлению в окнах диалога данных из указываемого набора данных.

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

Изменение терминологии, последовательности запроса и объема информации, которыми обмениваются ППП и пользователь в процессе диалога, возможно как путем "закрытия" некоторых вершин графа, добавления путей, так и благодаря описанию некоторых модифицированных графов (файлов) для одного и того же ППП.

6.7. Реализация инструментального окружения

Инструментальные средства технологии ТРАП работают в среде ОС ЕС (версий 4.1 и выше). Использовались следующие компоненты этой среда: язык управления заданиями <)С1<, планировщик заданий, утилиты, редактор связей (различные его

11 Ког*с В., . И. »иогиис, "»дем>-кам>»,гта?-.-

операторы и механизмы сборки), Фортран-компиляторы, ПЛ/1-компилятор (версий К и 0) и его препроцессор, файловая система, система коллективного доступа ПРИМУС. Эти средства оказались вполне достаточными и удобными для создания рассматриваемого инструментального окружения, а следовательно, и для разработки и эксплуатации рассматриваемого класса ППП. Однако следует заметить, что для эффективного их использования потребовалось довольно скрупулезное их изучение и выполнение экспериментов. Результаты этого изучения и экспериментов могут иметь самостоятельное значение, они представлены в ряде публикаций [48,50,51,53.56,58,61].

6.8. Инструментальные подсистемы

В состав инструментального окружения ТРАП входит шесть подсистем:

- коллекция макетов реализации основных понятий программирования (ПРИНС);

- комплекс динамических агрегатных типов данных (НИНА);

- коллекция макетов системного наполнения простых прикладных систем (СИНАПС);

- технология разработки многоверсионных программных моделей (ТЕМП);

- система ведения проблемно-ориентированного диалога (МЕНЮ);

- подсистема диалогового ввода и формирования пакетных заданий (ДИВПАК).

- информационно-справочная подсистема (ИНФОРМАТОР).

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

Следует отметить, что использование каждой из подсистем не ограничивается комплексом ТРАП, любая из них может быть применена независимо.

В коллекцию ПРИНС [59, 78] включен ряд понятий современного программирования. Их использование повышает уровень программирования, ско'рость разработки и надежность программ. Ввиду их многовариантности понятия представлены макетами (готовые программы, схемы программ с комментариями, примеры, программные фрагменты и макроопределения, спецификации). Язык реализации - Ш1/1. В коллекции собраны как базовые понятия, так и частные и прикладные. Состав коллекции формировался из тех понятий, потребность в которых возникала при разработке самого комплекса ТРАП и его ППП. Вот некоторые из них:

модули разного типа (транслятор формулировки задачи, монитор задачи, модуль определения данных, модуль выдачи сообщений, тестирующий

модуль);

описание декларативного типа данных (средствами ГШ/1-препроцессора); структура определения операционного типа данных (ОТД); механизм контролирующих функций;

оператор выбора; •

процедуры, отслеживающие все ситуации при работе с файлами; средства содержательного анализа проблемных объектов; ключевой многовариантный ввод параметров.

Комплекс ДИНА [79, 82] содержит несколько унифицированных модулей, описывающих динамические агрегатные типы данных: список, очередь, последовательность. Каждый из них определяется в виде операционного типа данных (представление и операции).

Коллекция СИНАПС [54, 56, 76] предлагает несколько макетов конфигураций для решения задач. Макеты используют типовые модули (представленные в коллекции ПРИНС) и модули инструментального окружения. Макеты просты и предназначены для прикладных пользователей, конструирующим ППП с простейшими системными функциями. Конфигурации различаются способами задания формулировок задач, Формой представления сменных модулей, средствами для указания занимаемых модулями мест в конфигурациях (гнезд).

Технология ТЕМП [57, 65] предлагает способы и инструменты для описания работ в виде конфигураций модулей и пакетных заданий на исполнение этих работ. Задание определяет процесс решения одной или нескольких задач ППП. Инструменты представлены макетами конфигураций типичных работ, заданий и используемых ими наборов данных.

Макеты специфицированы на языке САТРАП и реализованы на языках ЛСЬ, редактора связей, ПЛ/1 и его препроцессора. Важную часть технологии составляют инструкции и рекомендации к применению, модификации и построению таких инструментов. Их использование обеспечивает реализацию основных понятий и механизмов, обычно обеспечиваемых системными программами пакетов прикладных программ, таких как:

задание конфигураций (типовые процедуры, пре- и постпроцессорные модули);

модификация конфигураций (макрогенерация);

поддержка многоверсионности (подготовке наборов данных для Формируемого и автоматического вызова модулей);

поддержка многовариантности (параметризация, применение умолчаний и Факультативное задание параметров, условное выполнение конфигураций);

задание пользовательского контекста (подключение пользовательских наборов данных, переименование параметров).

В скобках указаны базовые средства, использование которых позволяет реализовать названные механизмы.

Инструменты и рекомендации технологии ТЕМП были использованы при ■ создании всех ППП, так или иначе поддержанных инструментальным окружением 1'РАП.

Система МЕНЮ [62, 80, 88, 89] выполняет интерфейс с пользователем в Форме меню. Она может быть адаптирована к нужному проблемно-ориентированному контексту путем присоединения соответствующего файла меню. Основная компонента, диалоговый монитор, выполняет движение по графу меню (представленному Файлом меню) и обслуживание каждого меню. В зависимости от назначения пользователь может либо получать только кванты структурированной информации, либо подвергаться опросу. В первом случае (режим информатора) система работает как информационно-справочная. В конфигурации с программой, называемой модулем-исполнителем, обход графа меню сопровождается запросом данных и вычислениями, реализуемыми в зтом модуле. Данные пользователь задает или корректирует в окнах диалога (включенных в пункты меню). Значения данных могут также "предъявляться" в окнах модулем-исполнителем по умолчанию или после чтения с файла. Весь файл меню и тексты пунктов могут быть заданы с необходимой степенью подробности (в расчете на различных пользователей). Однако опыт использования системы в ППП показал, что ее полезно рассматривать не только как средство ввода данных, но и как средство погружения пользователя в проблемную область. Для этого при построении графа меню разработчиком ППП должен выполняться более тщательный анализ предметной области, постановок задач и возможного круга пользователей.

Технически ввод, редактирование, документирование и просмотр дерева меню не вызывает затруднений, т.к. поддерживается специальными модулями системы. Система. МЕНЮ реализована как диалоговая программа в среде коллективного доступа ПРИМУС, но все операции взаимодействия с ней реализованы в отдельном модуле. Этим заложена возможность сиены среды. Предусмотрен ряд параметрически настраиваемых вариантов работы системы, обеспечивающих ее гибкое использование.

Подсистема ДИВПАК [57, 77, 86] разработана по технологии ТЕМП и использует инструментальные сродства коллекции СИНАПС и систему МЕНЮ. Для рассматриваемого кла'^а ППП типичной является такая манера исполнения задач, которая требует довольно обширной и разнообразной входной информации, а само

решение затем выполняется в автоматическом режиме и потребляет довольно большие ресурсы (память и время). Рассматриваемая подсистема выполняет диалоговый ввод пакетных заданий. Осжн ой составной частью подсистемы является модуль-исполнитель (системы МЕНЮ), имеющий определенную структуру и набор операций, работающих с диалоговыми окнами и формирующих результат работы подсистемы. Назначение модуля-исполнителя - идентификация формируемых пользователем работ, ввод данных и их содержательный анализ. На основе этой информации выбирается соответствующие работам конфигурации (заданные в виде ¿СЬ-процедур) и формирование задания на их исполнение. Подсистема ПИБПАК была использована с соответствующей настройкой и модификацией практически во всех ППП, разработанных в ТРАП.

Подсистема ИНФОРНАТОР [68] выполняет функции информационно-справочной

(

службы. Она реализуется как конфигурация системы МЕНЮ с тем или иным файлом меню. При создании файла меню справочную информацию нужно иерархически структурировать, представив в виде дерева, тогда каждая из вершин этого дерева, несущая квант информации, выдается на экран терминала в виде меню. Движение по дереву информации пользователь задает, выбирая те или иные пункты меню. Были реализованы две конфигурации: информатор для знакомства с возможностями и инструментальными средствами комплекса ТРАП и справочник по штатному программному обеспечению ЕС ЭВМ.

6.9. Поддержка реализации ППП

Рассмотренные средства комплекса ТРАП были использованы при разработке в ВЦ СО АН следующих пакетов прикладных программ:

РАМЗЕС - ППП для расчета электромагнитных и магнитостатических конструкций.

МОДИП - ППП для решения задач диффузии примесей в турбулентных средах методом Монте-Карло.

НЕКТОН-1 - ППП для решения краевых задач теории пластин и трехмерных задач теории потенциала методом блуждания по сферам для областей со сложной геометрией и уравнений в детерминированной и стохастической постановке.

МИРАЖ- ППП для расчета радиационного теплообмена между поверхностями тел, находящихся в вакууме.

ГЕОС - ППП для моделирования сейсмических полей в двумерно-неоднородной елоисто-блоковой среде дифракционно-лучевым методом.

Вообще процесс наработки инструментальных средств шел параллельно с разработкой ППП. Системное наполнение этих ППП имеет много общего. Все они

могут работать как полностью в пакетном режиме, так и в среде системы МЕНЮ и подсистемы ДИВПАК. Модули-исполнители этой подсистемы индивидуальны для каждого 11Ш1, но построены по общей схеме, содержат общие процедуры, типы, переменные. Системные средства, описывающие конфигурации работ и поддерживающие их исполнение, все различны и отражают специфику работ, системных и проблемных обьектов и способов задания контекста. Однако они также построены по общему принципу, типовым макетам, с использованием общих базовых инструментальных средств.

Степень "погружения" этих ППП. в инструментальную среду ТРАП различно, 'Гак например, функциональное наполнение ППП РАМЗЕС вообще не подвергалось никакой модификации. Был лишь ■ добавлен ввод формулировки задачи путем построения небольшого файла меню и адаптации подсистемы ДИВПАК.

Создание ППП МОДИП в известном смысле уникально. Это первый из ППП, при разработке которого собственно и формировались технология ТЕМП и система МЕНЮ. Ьго системное наполнение - подсистема ДИВПАК, послужила затем макетом при создании системного наполнения других ППП. Для этого пакета были проработаны вопросы пост-модуляризации -функционального наполнения, создания интерфейсного модуля ввода,' такие ' понятия, как работа,, программная модель, основные и функциональные (сменные) модули и др.

Специфика разработки пакетов НЕКТОН-1. и МИРАЖ- связана с наличием специального языка формулировки задач: длц описания уравнений, краевых условий, геометрии области и др. Геометрические конструкции, например, описываются с помощью примитивов и операций конструирования (операций задания размеров, . поворота, "сдвига, сопряжения). Простыми языковыми средствами описываются также другие функциональные объекты (уравнения, краевые условия и др.). Текстовые описания этих обьектов и получаемые автоматически их программные реализации являются сменными функциональными модулями ППП. Типичные объекта (в том или другом представлении) могут накапливаться, разовые (экспериментальные) вводятся при решении пользовательских задач. Таким образом эти средства достаточно удобны для проведения вычислительного эксперимента с вариантными объектами. '

В инструментальной среде ТРАП были разработаны подсистемы НЕРПА [64, 74, йЬ] и МИРТА [75, 84], выполняющие.'роль системного,наполнения пакетов НЕКТОН-1 и МИРАЖ. В них включены традиционные Для всех ППП средства: система МЕНЮ с соответствующим каждому пакету файлом и подсистема типа ДИВПАК с довольно оолыиин набором работ (конфигураций). Среди них работы по вводу, конструированию и программному представлению обьектов задач. Для выполнения

этих работ помимо соответствующих конфигураций разработан довольно больной набор лрепроцессорных модулей (модулей-перекодировщиков).

При разработке ПШ1 ГЕОС модификация модулей функционального наполнения была сделана совместно с. его разработчиками. Большой,объем разнохарактерной исходной информации и разнообразие вариантов задач потребовали довольно тщательной структуризации диалога при создании Файла меню и модуля исполнителя (граф меню содержит более 100 вершин).

Для обеспечения многовариантности решения задач существенно использован рассмотренный выше механизм управления конфигурациями.

Специфичной для этого ППП является наличие базы данных и работ по вводу, модификации и контролю ее, выполняемых в диалоге модулем-исполнителем. Погружение функционального наполнения в пользовательские окружения (БД) разной структуры выполнено путем создания разных модулей-компоновщиков. Их назначение - выборка необходимых данных из баз данных и компоновка из них входных файлов, требуемых модулями функционального наполнения. Для контроля ввода и редактирования границ разрезов реализованы работы, выполняемые как в интерактивном, так и в пакетном режимах. Они выполняют структурную распечатку и "рисование" границ. Последняя работа позволяет на алфавитно-цифровом дисплее в разном масштабе рассматривать множество кривых, представленные кусочно-линейно с помощью различных символов, их выход за пределы области, контролировать взаимное расположение кривых и т.п. Кривые можно отрисовать на печатающей устройстве [87].

Указанные ППП разработаны в рамках инструментального окружения ТБАП. На языке САТРАП, кроме того, были описаны проекты ряда ППП, например, КЕДР [33 3 и ЛУЧ12. В соответствии с проектными спецификациями, предлагаемыми в ТРАП, были сформулированы технические задания значительной части ППП, разработанных в ВЦ СО АН СССР, Иркутском ВЦ СО АН и в ряде других организаций. Рекомендации по составлению программной документации были использованы во многих ППЛ.

7. ЗАКЛЮЧЕНИЕ

Основным результатом рассматриваемых работ автора является разработка методологии построения ППП определенного класса. Характерной особенностью подхода является постепенное внедрение методик и инструментов, применение которых нацелено на ускорение- процесса разработки, повышение его уровня и

1*яо,«хоа л.С., Коспмм И.И. Спммямкммя лрсФяяте-опмампфмшмом систамм ЯУЧ ср»лсгв»«и смс,««* >-оде»г'"." прм«тмровм*м ТРЙП. - Нмо^Ачк,, 1«в4 - 22 с. - <Пр»«р./ ВЦ СО АН СССР, М 6391

надежности, внедрение в практику прикладного программирования современных понятий и механизмов.

Получены следующие результаты:

1. Предложен набор характеристик для описания проекта ППП на этапе определения требований.

'¿. Определен язык проектирования ППП, предназначенный для модуляризации проекта, характеристики объектов проблемной области, вычислений, представлений объектов и их взаимозависимостей. Язык ориентирован на прикладных программистов, но содержит ряд средств, используемых в современных языках спецификаций.

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

4. Предложена инструментальная технология5- (ТЕМП) для разработки ППП на основе готовых функциональных программ. Она предлагает типовые приемы их модуляризации и построения конфигураций модулей, набор необходимых системных компонент, методику их адаптации к требованиям пользователя и эффективному использованию ресурсов.

Ь. Во всех частях комплекса реализован "обучающий" стиль предоставления инструментальных средств, предусматривающий возможность и необходимость их изучения, развития и пополнения: спецификации, макеты на разных языках, типовые модули и объекты, адаптируемые системы и модули, информационные и методические пособия.

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

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

Рассматриваемые исследования и практические работы выполнялись автором на протяжении нескольких лет, в течение которых автор была руководителем группы, а затем лаборатории ВЦ СО АН, сотрудники которой так или иначе

ра&отали по тематике разработки ППП. Поэтому имеет смысл выделить личный вклад автора в части рассматриваемых здесь работ.

Автором самостоятельно выполнены: анализ и обзор ППП и систем поддержки, Формулировка спецификаций на этапе определения требований и разработка языка проектирования САТРАП.

Разработка комплекса ТРАП велась при участии студентов Новосибирского университета и сотрудников лаборатории системного и технологического обеспечения ППП ВЦ СО АН. Автор была научным руководителем, проектировщиком и основным разработчиком комплекса.

Аатором полностью или в основном были разработаны подсистемы СТРУКТУРА, ФОРМИРОВАНИЕ, КОНТЕКСТ, СИНАПС, ПРИНС, МЕНЮ, ТЕМП, информационные и методические материалы. Другие подсистемы разрабатывались в соавторстве с сотрудниками лаборатории.

Результаты докладывались на ряде конференций, семинаров и ¡якол: Сибирская школа молодых ученых по технологии разработки пакетов прикладных программ (Иркутск, 1980), комиссия по системному математическому обеспечению координационного комитета АН СССР по вычислительной технике (Москва, 1981!, VII Всесоюзный семинар по комплексам программ математической физики (Горький, 1381), Всесоюзное совещание по интерактивным системам прсгракмисгазнкя (Москва, 1981), республиканский научный семинар института математики и кибернетики АН Литовской ССР (Вильнюс, 1982), II Всесоюзная конференция 1 Автоматизация программирования пакетов прикладных программ и трансляторов" (Таллинн, 1983), Всесоюзный семинар "Промышленная технология создания и применения программных средств в организационном управлении и НИОКР' (Свердловск, 1984), Всесоюзный научно-технический семинар "Экономика, организация и технология разработки и сопровождения программных средств" (Калинин, 1986), Республиканский семинар "Общие вопросы технологии создания программного обеспечения" (Вильнюс, 1988), VIII Сибирская школа по пакетам прикладных программ (Иркутск, 1989), IX Научная школа по ППП (Адлер. 15S1!. а также на семинарах в институте математики и механики УрО АН СССР (Свердловск), в Иркутском ВЦ СО АН, в институте атомных реакторов (Димитровград), EÜ СО АН (Новосибирск).

Результаты работы вошли в читавшиеся в Новосибирском университете курсы "Математическое обеспечение ЭВМ", "Методы программирования" и спецкурсы "Язчк:: программирования" и "Пакеты прикладных программ".

- 38 -

8. СПИСОК ПУБЛИКАЦИИ

1. Бежанова М. М. Основные аспекты опытно-конструкторской разработки систем программирования. // Системное и теоретическое программирование. -Новосибирск: ВЦ СО АН СССР, - 1974. - с.59-67.

2. Бежанова М.М. и др. Система автоматического документирования (САЛ). // Системное программирование. - Новосибирск: ВЦ СО АН СССР, - 1973. - с.188-202.

3. Бежанова М.М. Анализирующая система решения задач на ЭВМ // Некоторые проблемы вычислительной и прикладной математики. - Новосибирск: "Наука", -1975. - с.263-272.

4. Бежанова U.M. и др. Система СКАЛА. Эскизный проект: Отчет НФ ИТМ и ВТ N АТИ-П160/01.00, - 1976.

5. Бежанова М. М. и др. Система СКАЛА. Технический проект: Отчет НФ ИТМ и ВТ N АТИ-П191/05.00, - 1977.

6. Бежанова М.М и др. Исследования в области теоретического и системного программирования и их применение в автоматизации программирования и разработке математического обеспечения // Фундаментальные исследования (физико-иатем. и технич. науки). -. Новосибирск: "Наука", - 1977.

7. Бежанова М.М. , Москвина Л.А. Входной язык пакета программ по линейной алгебре. /7 Тезисы конф. молодых ученых и специалистов. - М.: ИТМ и ВТ АН СССР, '1978.

8. Бежанова М.М. и др. Эскизный проект пакетов прикладных программ: Отчет НФ ИТМ и ВТ N АТИ-П225/09.00, - 1978.

9. Бежанова М.М. Входные языки пакетов прикладных программ. Новосибирск, 1979. - 30 с. - (Препр. / ВЦ СО АН СССР; N 168).

10. Бежанова М.М. Встроенные проблемно-ориентированные системы. Новосибирск, 1979. - 30 с. - (Препр. I ВЦ СО АН СССР; N 205).

И. Бежанова K.M. и др. Система PACKAGE. Технический проект: Отчет НФ ИТМ и ВТ N АТИ-М244/19.00, - 1979.

12. Бежанова М.М. и др. Пакет программ EISPACK. Руководство программиста: Отчет НФ ИТМ и ВТ Н АТИ-М267/37.00, - 1979.

13. Бежанова М.М. Технический проект пакетов прикладных программ: Отчет НФ ИТМ и ВТ N АТИ-П255/21.00, - 1979.

14. Бежанова М.М. , Гололобова С. П. Методология разработки, документирования и параллельного внедрения больших комплексов для систем автоматизированного проектирования: Отчет ВЦ СО АН СССР, - 1980.

15. Бежанова М.М., Жуков H.H. Универсальный макропроцессор для ЕС ЭВМ. II Прикладные методы информатики. - Новосибирск: ВЦ СО АН СССР, - 1980.

16. Бежанова М.М. Проектные спецификации пакетов прикладных программ. -Новосибирск, 1980. - 46 с. - Шрепр. / ВЦ СО АН СССР; N 225).

17. Бежанова М.И. Москвина Л.А. Система построения .и функционирования пакетов прикладных программ. - Новосибирск, 1980. - 27 с. - (Препр. / ВЦ СО АН СССР; N 244).

18. Бежанова М.М. Автоматизация разработки пакетов прикладных программ.

- Новосибирск, 1980. - 30 с. - (Препр. / ВЦ СО АН СССР; Н 269).

19. Бежанова М.М. Спецификации и системы поддержки разработки прикладных программных систем: Отчет ВЦ СО АН СССР N 81041847, - 1981.

20. Беканова М.М. Пакеты прикладных программ (библиографический указатель литературы), вып. 1. - Новосибирск: ВЦ СО АН СССР, 1981. - 94 с.

21. Бежанова М.М., Ильин В. П. Методология разработки программного обеспечения САПР. П Тезисы докл. Всесогоз. совещ. по интерактивным системам проектирования. - М. 1981.

22. Бежанова М.М., Ильин В.П., Котов В.Е. Задачи разработки пакетов прикладных программ в ВЦ СО АН СССР. // Бюллетень Н 7 Координационного комитета АН СССР по выч'исл. технике. - М. 1981. .

23. Бежанова М.М., Чилингарова Т.П. Базы данных и их использование при разработке и функционировании пакетов прикладных программ: Отчет ВЦ СО АН СССР К 0026652, - 1982.

24. Бежанова М.М. Методологии и системы поддержки разработки ППП. // Комплексы программ математической физики. - Новосибирск: ИТПМ СО АН СССР, -1982. - с.52-56.

25. Бежанова М.М. Характеристики пакета прикладных программ на стадии технического проектирования II Разработка пакетов прикладных программ. Новосибирск: "Наука", - 1982. - с.196-238.

26. Бежанова М.М. Анализ и систематизации встроенных проблемно-ориентированных систем. И Управляющие системы и машины. - 1982. - Н 4. - с. 113-118.

27. Бежанова М.М. Москвина Л.А. Система построения и функционирования пакетов прикладных программ. // Программирование. - 1982. - N 2. - с.59-63.

28. Бежанова М.М. Спецификация модели проблемно-ориентированной системы.

- Новосибирск, 1982 - 27 с. -(Препр. / ВЦ СО АН СССР; N 361).

29. Бежанова M.K., Москвина Л. А. Инструментальные системы для построения пакетов прикладных программ. - Новосибирск, 1982. - 38 с. - (Препр. / ВЦ СО АН

° СССР; N 360).

30. Бежанова М.М. , Чилингарова Т.П. Модуляризация в современных языках программирования. - Новосибирск, 1983. - 45 с. - (Препр. / ВЦ СО АН СССР;

453).

31. Бежанова М. М. , Колкер Н.И. Подготовка и проведение приемо-сдаточных испытаний (методические рекомендации). - Новосибирск: ВЦ СО АН СССР, 1983. -lib с.

32. Бежанова М.М. Пакеты прикладных программ. Учебное пособие. Новосибирск: Ш'У, 1983. - 73 с.

33. Бежанова М.М., Головяшкина Л. В, Москвина Л. А. Пакет программ для расчета ядерных реакторов с нестандартной геометрией методом Монте-Карло // ¡¡рименение метода Монте-Карло в задачах переноса частиц в веществе. Алка-Ата, 1983.

34. Бежанова М.М., Москвина Л. А. Технология разработки и использования пакетов в системе PACKAGE // Пакеты прикладных программ. Технология разработки. - Новосибирск: "Наука", - 1983.

35. Бежанова М.М., Чилингарова Т.П. Язык проектирования пакетов прикладных программ: Отчет EU СО АН СССР N 0284.0058301, - 1983.

36. Бежанова М.М. и др. Проект системы поддержки проектирования ППП: Отчет ВЦ СО АН СССР N 0285.0026751, - 1984.

37. Бежанова М.М., Москвина Л. А. Инструментальные средства для нисходящего и восходящего конструирования ППП // Промышленная технология создания и применения программных средств в организационном управлении и «йОКР. - Свердловск, 1984. - с. 43-44.

38. Бежанова М.М., Москвина Л.А. Пользовательский анализ инструментальных систем построения ППП // Промышленная технология создания и применения программных средств в организационном управлении и НИОКР. Свердловск, 1984. - с.45-46.

39. ьеж.анова М.М. Требования к языку спецификаций пакетов прикладных программ. И пакеты прикладных программ. Системное наполнение. - Новосибирск:

паука , - 1J.-14. - с. 3-12.

■К). Бежанова d.M. Ситуации и средства их описания в языке проектирования 'jJujmho -ориентированных систем. // Проблемы системного и теоретического ракмировани«. - Новосибирск: НГУ, - 1984. с. 89-99.

41. Вежанова М.М. Спецификация типов данных в языке проектирования. // Пакеты программ для задач математической физики. Системное наполнение. Новосибирск.- ВЦ СО АН СССР, - 1985. с. 3-14.

42. Вежанова М.М." и др. Технический проект системы поддержки проектирования ППП: Отчет ВЦ СО АН СССР N гр. 81041847, - 1985.

43. Беканова М.М. и др. Разработка научных основ и создание инструментальных средств ППП: Отчет ВЦ СО АН СССР N 0286.005426, - 1985.

44. Вежанова М.М. , Ильин В. П. Некоторые вопросы технологии разработки ППП. // Алгоритмы - и алгоритмические языки. Пакеты прикладных программ. Функциональное наполнение. - М: "Наука", - 1986. с.99-110.

45. Вежанова U.M. Технологические аспекты проектирования и реализации проблемно-ориентированных систем. // Опыт создания и применения технологии разработки программных систем. -Калинин, - 1986. - с.22-24.

48. Вежанова U.M. Средства описания компонент обработки в языке проектирования ППП. // Пакеты прикладных программ. - Новосибирск: ВЦ СО АН СССР, - 1986. - с.9-18.

47. Вежанова Ü.M., Квашнин Г. А. Модель базы модулей в системе поддержки проектирования ППП. // Пакеты прикладных программ. - Новосибирск: ВЦ СО АН СССР, - 1986. - с.19-31.

48. Вежанова М.М. Приемы работы с данными в технологии разработки ППП. II Автоматизация построения алгоритмов для задач математической физики. -Новосибирск: ВЦ СО АН СССР, - 1987. с.3-19.

49. Вежанова М.М. , Колкер H.H. Оформление, содержание, порядок согласования и утверждения технических заданий (оперативно-информационный материал). - Новосибирск: ВЦ СО АН СССР, 1986. - 34 с.

50. Вежанова М.М., Поттосин И.В. Средства разработки прикладного программного обеспечения с точки зрения современных требований и возможностей. II Алгоритмы и алгоритмические языки. Пакеты прикладных программ. Программное обеспечение вычислительного эксперимента. - М: "Наука", - 1987. - с.82-99.

51. Вежанова М.М., Квашнин Г. А. Структурирование программ и использование средств управления в технологии разработки ППП. - Новосибирск, 1987 - 22 с. - Шрепр. / ВЦ СО АН СССР; N 702).

52» Вежанова М.М., Квашнин Г.А. Приемы тестирования и отладки в технологии разработки ППП. - Новосибирск, 1987 - 25 с. - (Препр. / ВЦ СО АН СССР; N 703).

53. Вежанова М.М., Поттосин И.В. Математическое обеспечение ЭВМ: языковые и технологические средства. - Новосибирск, НГУ. - 1987. - 93 с.

54. Бежанова M. M. Принципа и средства разработки прикладных программных систем. - Новосибирск: ВЦ СО АН СССР, - 1987. - 84 с.

55. Бежанова H.H. Квашнин Г.А. Технологические комплекс проектирования пакетов прикладных программ на основе языка проектирования и проблемно-ориентированных банков модулей. Технический проект: Отчет ВЦ СО АН СССР , -1987.

56. Бежанова М.И., Колкер Н. И. Рекомендации по организации ППП на базе ОС ЕС (оперативно-информационный материал). - Новосибирск: ВЦ СО АН СССР, 1987. - с.89.

57. Бежанова И.И., Кузьминов Т.В. Конструирование многоверсионных прикладных программных систем из готовых программных модулей на основе базовых средств ОС ЕС. - Новосибирск, 1988 - (Препр. / ВЦ СО АН СССР; H 823). - 48 с.

58. Бежанова H.H. , Квашнин Г.А., Колкер Н.И. Технологические аспекты тестирования программных систем (оперативно-информационный материал). Новосибирск: ВЦ СО АН СССР, 1988. - 103 с.

59. Ьежансва Н.И., Кузьминов Т.В., Чеснокова И.Б. Типы данных и их реализация в системе ПЛ/1. // Технология вычислительного эксперимента. -Новосибирск, ВЦ СО АН СССР, 1988. - с.3-21.

60. Бежанова K.M. Модуль в языке проектирования ППП, его назначение и средства описания. // Теория и практика систем информатики и программирования.

- Новосибирск, НГУ, 1988. - с.20-30.

61. Бежанова М.М. Содержательный анализ проблемных объектов в проблемно-ориентированных системах. // Технология моделирования задач математической Физики. - Новосибирск, ВЦ СО АН СССР, 1989. - с.3-13.

62. Бежанова M.М., Рапацкая T.X., Яковенко Г.Т. Адаптируемая система ведения проблемно-ориентированного диалога в форме меню. // Технология моделирования задач математической физики. - Новосибирск, ВЦ СО АН СССР, 1989.

- с.14-26.

63. Бежанова M.М. Система поддержки разработки пакетов прикладных программ ТРАП. // Программное обеспечение ЭЕН новых поколений. - Иркутск, 1989. с.36-37.

64. Бежанова H.М., Москвина Л.А., Трепаков C.B. Технология разработки семейства пакетов моделирования геометрически сложных объектов методом Монте-Карло. // Программное обеспечение ЭВМ новых поколений. - Иркутск, 1989. с.35-36.

65. Бежанова М.М, и др. Технология разработки иноговерсионных программных моделей (ТЕЙП). Н Инф. бюллетень Алгоритмы и программы. - И.: ВНТИцентр. - 1990. -N9,8 50900000444.

66. Бежанова М. М. и др. Технологический комплекс проектирования пакетов прикладная програня на основа языка проектирования и проблемно-орентированных банков модулей (ТРАП). П Инф. бюллетень Алгоритмы и программы. - М.: ВНТИцентр. - 1990. - N 12, N 50900000906.

6?. Бежанова М.И. и др. Технологический комплекс проектирования пакетов прикладных программ на основе языка проектирования и проблемно-ориентированных банков модулей (ТРАП). Подсистема ФОРМИРОВАНИЕ. // Инф. бюллетень Алгоритмы и программы. - И.: ВНТИцентр. - 1990. - N 12, N 50900000902.

68. Бежанова М.М. и др. Технологический комплекс проектирования пакетов прикладных программ на основе языка проектирования в проблемно-ориентированных банков модулей (ТРАП). Подсистема ИНФОРМАТОР. // Инф. бюллетень Алгоритмы и программы. - М.: ВНТИцентр. - 1990. - N 12, Я 50900000898.

69. Бежанова М.М. и др. Технологический комплекс проектирования пакетов прикладных программ на основе языка проектирования и проблемно-ориентированных банков модулей (ТРАП). Подсистема КОНТЕКСТ. // Инф. бюллетень Алгоритмы и программы. - М.: ВНТИцентр. - 1990. - 8 12, N 50900000892.

70. Бежанова М.М. а др. Технологический комплекс проектирования пакетов прикладных программ на основе языка проектирования и проблемно-ориентированных банков модулей (ТРАП). Подсистема БАЗА МОДУЛЕЙ. // Инф. бюллетень Алгоритмы и программы. - М.: ВНТИцентр. - 1990. - Н 12, 8 50900000899.

71. Бежанбва М.М. и др. Технологический комплекс проектирования пакетов прикладных програнм на основе языка проектирования и проблемно-ориентированных банков модулей (ТРАП). Подсистема СТРУКТУРА. // Инф. бюллетень Алгоритмы и программы. - М.: ВНТИцентр. - 1990. - N 12, N 50900000895.

72. Бежанова И. М. и др. Технологический комплекс проектирования пакетов прикладных программ на основе языка проектирования и проблемно-ориентированных банков модулей (ТРАПУ. Подсистема ВЗАИМОДЕЙСТВИЕ. II Инф. бюллетень Алгоритмы и программы. - М.: ВНТИцентр. - 1990. - К 12, N 50900000905.

73. Бежанова М.М. и др. Технологический комплекс проектирования пакетов прикладных программ на основе языка проектирования и проблемно-ориентированных банков модулей (ТРАП). Подсистема СПЕЦИФИКАЦИЯ. // Инф. бюллетень Алгоритмы и программы. - М.: ВНТИцентр. - 1990. - N 12, N 50900000901^

74. Вежанова М.М. и др. Комплекс системных и интерфейсных компонент пакета НЕКТОН-1 (НЕРПА). // Инф. бюллетень Алгоритмы и программы. - М. : ВНТИцентр. - 1990. - N 12, N 50900000894.

75. Вежанова М.М. и др. Комплекс системных и интерфейсных компонент построения геометрической модели пакета МИРАЖ (МИРТА). // Инф. бюллетень Алгоритмы и программы. - М.: ВНТИцентр. - 1990. - К 12, К 50900000893.

76. Еежанова М.М. и др. Коллекция макетов системного наполнении простых прикладных систем (СИНАПС). // Инф. бюллетень Алгоритмы и программы. - М. : ВНТИцентр. - 1990. - N И, N 50900000576.

77. Вежанова М.М. и др. Подсистема диалогового ввода и формирования пакетных заданий (ДЙВПАК). // Инф. бюллетень Алгоритмы и программы. - М. : ВНТИцентр. - 1990. - N 10, N 50900000554.

78. Вежанова K.M. и др. Коллекция макетов реализации основных понятий современного программирования (ПРИНС). // Инф. бюллетень -Алгоритмы и программы. - М.: ВНТИцентр. - 1990. - N 9, N 50900000455.

79. Вежанова М.М. и др. Комплекс динамических типов данных (ДИНА). // Инф. бюллетень Алгоритмы и программы. - М. : ВНТИцентр. - 1990. - N 9, N 50900000454.

80. Вежанова М.М. и др. Система ведения проблемно-ориентированного диалога (МЕНЮ). // Инф. бюллетень Алгоритмы и программы. - М. : ВНТИцентр. -1990. - N 9, N 50900000445.

81. Вежанова М.М., Квашнин Г. А. Синтаксический анализатор языка САТРАП. // Вычислительный эксперимент в задачах математической Физики. - Новосибирск: ВЦ СО АН СССР, - 1990. с.3-10.

82. Вежанова М.М., Кузьминов Т.В., Москвина Л.А. Использование ПЛ/1 -препроцессора. // Вычислительный эксперимент в задачах математической физики. - Новосибирск: ВЦ СО АН СССР, - 1990. с. 11-23.

83. Вежанова М.М., Квашнин Г.А., Шкуропат Е.Л. Система поддержки разработки пакетов прикладных программ ТРАП. // Пакеты прикладных программ моделирования, прогнозирования и управления в региональных и производственных системах. - Иркутск, 1991.

84. Вежанова М.М. ( Москвина Л.А. Автоматизация решения задачи, радиационного теплообмена в пакете МИРАХ. // Пакеты прикладных программ моделирования, прогнозирования и управления в региональных и производственных системах. - Иркутск, 1991.

, - 45ч-

85. Бежанова М. М. , Москвина Л. А. Автоматизация решения краевых задач теории потенциала и упругости в ППП Нектон-1 // Теория и приложения статистического моделирования. - Новосибирск, ВЦ СО АН, - 1991. - с.131-143.

86. Бежанова М.М., Квашнин Г.А. , Москвина Л. А. технология обеспечения диалогового взаимодействия с ППП // Программное обеспечение математического моделирования, управления и искусственного интеллекта. Тезисы XI школы ППП-91. - Иркутск, ИВЦ. 1991.

87. Бежанова М.М. Технологоя сканирования двумерных объектов большого размера на алфавитно-цифровом дисплее. // Вычислительный эксперимент в задачах математической Физики. - Новосибирск: ВЦ СО АН СССР, - 1991.

88. Бежанова М.М. Квашнин Г.А., Москвина Л.А. Обеспечение диалогового взаимодействия с проблемно-ориентированными системами в технологии ТРАП. // Вычислительный эксперимент в задачах математической физики. - Новосибирск: ВЦ СО АН СССР, - 1991.

89. Бежанова М.М., Квашнин Г.А. Системная оболочка проблемно-ориентированных систем на ЕС ЭВМ. // Вычислительные методы и технология решения задач математической физики. - Новосибирск: ВЦ СО АН СССР, - 1993.

90. Бежанова М.М. , Планирование вычислений в проблемно-ориентированных системах средствами технологии ТРАП. // Вычислительные методы и технология решения задач математической физики. - Новосибирск: ВЦ СО АН СССР, - 1993.