М.М. ГОРБУНОВ-ПОСАДОВ - Системное обеспечение пакетов прикладных программ (1184225), страница 5
Текст из файла (страница 5)
Действительно, и библиотекаподпрограмм, и тематический набор прикладных программ, полностью илидаже с запасом охватывающие некоторую предметную область,сопоставимы всего лишь с функциональным наполнением пакета ивозлагают на пользователя всю работу по организации совместноговыполнения подпрограмм и программ в различных комбинациях прирешении каждой конкретной задачи. С другой стороны, любойуниверсальный язык программирования и его реализация, выполненные внеанализа конкретной прикладной деятельности, не смогут служитьадекватным средством автоматизации вычислений в данной области.
Вопервых, в таком языке не найдут свое отражение привычные дляспециалистовданнойприкладнойдеятельностиспецифическиетерминология и технологические приемы ведения вычислений. Во-вторых,такой подход требует, вообще говоря, чтобы для решения каждой задачиразрабатывались соответствующие вычислительные процедуры. Особенносущественно, что оба этих односторонних подхода требуют от пользователявысокой профессиональной программистской подготовки.Пакетная проблематика переживает период экстенсивного развития.Увеличивается как число вычислительных организаций, в деятельностикоторых пакетная тематика занимает одно из ведущих мест, так и кругприложений, для которых разработаны, создаются или проектируютсяпакеты программ.
Одновременно с этим происходит и интенсивное развитиепакетов, выражающееся прежде всего в создании более эффективных инадежных алгоритмов и прикладных программ, а также в разработкеразнообразных методов и форм организации системного наполнения.В этой книге систематизируются задачи, стоящие перед пакетамиприкладных программ, и исследуются пути их решения. Изложениебазируется на рассмотрении ряда конкретных производственных пакетов.Предметными областями для описываемых пакетов являются, как правило,различные классы задач вычислительной физики, однако использованные вних системные решения могут быть применены при других разнообразныхпредметных ориентациях пакетов.При изложении материала особое внимание уделяется следующимвопросам:- классификации языковых и программных средств системногообеспечения пакетов программ и выявлению основных функций пакета,определяющих архитектуру (внешние функциональные возможности) егосистемного наполнения;- анализу влияния прикладной деятельности на архитектуру пакета вцелом и связей между конкретными характеристиками прикладнойдеятельности и формами реализации той или иной системной функциипакета;- исследованию (главным образом в сфере приложений вычислительнойфизики) возможности эффективной реализации различных комбинацийвыделенных системных функций пакетов и практической реализациипроизводственных пакетов программ.Книга состоит из шести глав.В гл.1 рассматривается архитектура системного обеспечения пакетовприкладных программ.
Вводятся основные понятия, используемые приразработкесистемногообеспечения:языкзаданий,регламентмодуляризации функционального наполнения, планирование вычислений,операционныевозможности,информационноеобслуживание.Анализируются характерные формы реализации этих понятий в пакетах,решающих инженерно-физические задачи.Последующие главы посвящены описанию ряда производственныхпакетов, разработанных в ИПМ имени М.В.Келдыша АН СССР дляразличных классов задач математической физики. Главная особенностьрассматриваемых пакетов - многообразие решаемых ими задач, повлекшееза собой применение широкого спектра различных системных решений.Среди этих решений нашли свое отражение многочисленные формы реализации каждого из основных понятий, выделенных в гл.1.
Единственнаясущественная функция, не реализованная в производственных пакетахИПМ, - планирование вычислений, для исследования которогопотребовалось специально разработать методический пакет, описываемый вконце гл.6.Авторы надеются, что рассмотренные в книге методы и средстваокажутся полезными при выборе архитектуры и реализации системногообеспечения новых пакетов прикладных программ.Авторы выражают признательность В.Я.Карпову, одному изинициаторов и постоянных участников проведенного цикла работ попакетам программ. Авторы благодарят всех своих коллег - разработчиков ипользователей конкретных пакетов - и в первую очередь А.И.Горлина,В.И.Кротова, Э. С.
Луховицкую и М.П.Матекина, ознакомившихся ссодержанием отдельных разделов книги и сделавших ряд важныхзамечаний.Глава 1 АРХИТЕКТУРА ПАКЕТА ПРИКЛАДНЫХ ПРОГРАММ1.1. Системные характеристики пакетаКак отмечалось во введении, пакеты прикладных программ служатсредством повышения эффективности общения человека с вычислительноймашиной при решении прикладных задач.
В основе успеха разработкикаждого конкретного пакета лежит всесторонний учет спецификиавтоматизируемой прикладной деятельности.Многообразие приложений (предметных областей и дисциплин работ)закономерно влечет за собой и многообразие пакетов. Следует однакоразличать две составляющие такого многообразия, связанные сфункциональным и системным наполнениями пакета.Многообразие функциональных наполнений пакетов вытекает изприроды обслуживаемых ими предметных областей. Здесь попыткасистематизации (если даже ограничиться областью физико-техническихприложений) вывела бы нас далеко за рамки задач настоящей книги.Напротив, многообразие системных методов и средств, применяемыхпри построении пакетов, на сегодняшний день не столь велико.
В настоящейглаве анализируются основные системные проблемы, с которымисталкиваются разработчики пакетов. Вводимые в ней понятия итерминология позволяют оценить с единых позиций системные решения,принятые в ряде описываемых в последующих главах конкретныхпроизводственных пакетов.К числу наиболее важных понятий, реализация которых в пакетеопределяет его системные характеристики, отяосятся:- язык заданий (средство общения пользователя с пакетом);- регламент модуляризации функционального наполнения (методыдекомпозиции программного материала, правила оформления включаемых впакет прикладных программ);- планирование вычислений (способ построения расчетной цепочки, т.е.последовательностифункциональныхисистемныхмодулей,обеспечивающей выполнение задания пользователя);- операционные возможности (способ исполнения расчетной цепочки,интерфейс со штатным программным обеспечением, организациямежмодульного интерфейса, управление вычислительным процессом,хранение программного материала и расчетных данных, интерактивноевзаимодействие пользователя с пакетом, системные услуги);- информационное обслуживание (удовлетворение информационныхзапросов, поступающих от пользователей или от программных компонентовпакета).В последующих разделах рассматриваются различные подходы креализации этих понятий в пакетах, ориентированных на физикотехнические приложения.1.2.
Язык заданийОбщая структура и стиль языка заданий пакета в значительной степенизависят от дисциплины работы, принятой в обслуживаемой пакетомпредметной области. Можно выделить две основные (в определенномсмысле противоположные) дисциплины проведения вычислений:- активную дисциплину, предусматривающую при создании конкретныхрасчетных программ модификацию и настройку имеющихся модулейфункционального наполнения, а также разработку новых модулей;- пассивную дисциплину, предусматривающую проведение вычисленийбез модификации функционального наполнения пакета.Активная дисциплина работы свойственна деятельности прикладныхматематиков, владеющих методами решения задач из соответствующейпредметной области и создающих программное обеспечение для решенияэтих задач.Пассивная дисциплина характерна для деятельности так называемыхконечных пользователей, т.е.
специалистов, которые не обязательно имеютвысокий уровень подготовки в области вычислительной техники ииспользуют машину в качестве высококвалифицированного вычислителя,обладающего навыками решения специфических прикладных задач.Такое выделение двух дисциплин работы достаточно условно (можносчитать, что они соответствуют краям спектра реально существующихдисциплин) и преследует цель подчеркнуть контрастность системныхподходов, ис-пользуемых при автоматизации приложений с различными стилями ведениявычислительных работ.Так,характернойособенностьюязыковзаданийпакетов,обслуживающих проведение вычислительных работ в режиме активнойдисциплины, является их направленность на описание схем программрешения прикладных задач.
Причем центральное место в таких языках (мыбудем называть их языками сборки) занимают не средства описания данныхи манипулирования ими, что свойственно универсальным процедурноориентированным языкам программирования, а средства:- конструирования схем программ, в которых указывается порядоквыполнения и взаимодействия модулей при решении определенной задачи;- развития или модификации функционального наполнения;- управления процессами генерации и исполнения расчетнойпрограммы, реализующей задание пользователя.Языки сборки, предоставляющие возможность применения стольразноплановых средств в рамках одного задания, как правило, требуют,чтобыпользователиимелидостаточнуюпрофессиональнуюпрограммистскую подготовку.