М.М. ГОРБУНОВ-ПОСАДОВ - Системное обеспечение пакетов прикладных программ (1184225), страница 2
Текст из файла (страница 2)
Здесь потребовалось создатьразвитые операционные системы, организующие обслуживание задач,обеспечивающее эффективное использование оборудования, программ иданных. Период интенсификации работ в этом направлении связан с появлением машин с новой архитектурой и приходится на 1965-1975 годы.Что же касается задачи повышения уровня тематической квалификациивычислительных машин, то хотя на начальной стадии системноепрограммирование почерпнуло из этой области постановки таких своихфундаментальных проблем, как трансляция, отладка и т.п., в дальнейшем оноослабило свой интерес к непосредственному решению вопросов, связанных собеспечением «вычислительных услуг».
Повышение уровня тематическойквалификации вычислительных систем осуществлялось главным образомколлективами прикладного программирования, создававшими алгоритмы ипрограммы для решения задач в различных приложениях.В течение ряда лет недостаточное внимание со стороны системногопрограммирования к задаче повышения уровня тематической квалификациивычислительных систем серьезно не сказывалось на эффективностипроведения вычислительных работ. Это объясняется тем, что одна из главныхзадач системного программирования - создание развитых средствформального описания алгоритмов решения задач и аппарата перевода такихописаний на язык машины - была с самого начала поставлена в связи снеобходимостью программирования прикладных задач. Как мы ужеотмечали, аналогичное происхождение имеет и ряд других задач системногопрограммирования.
Такой изначальный учет основных потребностейпрактики способствовал тому, что, несмотря на ограниченность связей междуработами, выполняемыми прикладными и системными программистами, атакже общецелевой характер штатных средств системного обеспечения, этисредства в достаточной мере удовлетворяли все системные запросыпрограммистов-прикладников. В тех же случаях, когда оказывалось, чтоимеющихся системных средств недостаточно для какой-то прикладнойразработки, соответствующие системные возможности реализовывалисьприкладниками самостоятельно, причем, как правило, дело сводилось кмодификации (в той или иной степени) наличных системных средств.В середине семидесятых годов эта ситуация претерпела существенныеизменения.
Штатное системное обеспечение вычислительных машиннастолько усложнилось, что дажеквалифицированное использование всех предоставляемых им возможностей,а тем более работы по его модификации или развитию потребовали отпользователей весьма высокого уровня профессиональных знаний.Оказалось, однако, что общецелевые средства системного обеспечения невсегда адекватны тем новым формам ведения вычислительных работ итенденциям их развития, которые наметились в большинстве приложений.Эти негативные обстоятельства, затормозившие использованиевычислительной техники во многих важных приложениях, явилисьследствием недостаточно согласованного подхода со стороны прикладного исистемного программирования к тематическому аспекту проблемы общениячеловека с машиной.В связи с этим на современном этапе развития средств организацииобщения человека с машиной особое внимание уделяется новым, болеесовершенным чем прежде формам решения задачи повышения уровнятематической квалификации вычислительных систем.
Конкретно этоозначает, что одной из важных целей программирования стала разработка«дружественных» средств, обеспечивающих пользователям более удобныйдоступ к «вычислительным услугам», предоставляемым машиной, итребующих от них минимальной профессионально-программистскойподготовки.Повышение уровня тематической квалификации вычислительных системосуществляется путем создания специализированных компонентовпрограммного обеспечения, ориентированных на отдельные приложения [111]. При этом полнота и эффективность решения задачи повышенияквалификации системы достигается за счет учета специфики прикладнойдеятельности, для которой предназначен разрабатываемый компонентпрограммного обеспечения.
Принципиальным моментом в организацииработ над такими специализированными компонентами программногообеспечения является совместное участие прикладных и системныхпрограммистов на всех этапах разработки. Такой подход позволяет не толькоэффективно реализовать базирующиеся на системных средствах«вычислительные услуги», но и существенно повысить тематическуюквалификацию вычислительной машины за счет согласованногопрофессионального решения возникающих в ходе разработки прикладных исистемных проблем.Одной из основных форм специализированного программногообеспечения являются пакеты прикладных программ.Пакет прикладных программ - это комплекс взаимосвязанныхприкладных программ и средств системного обеспе-чения (программных и языковых), предназначенный для автоматизациирешения определенного класса задач [12].Будем в дальнейшем весь круг работ, связанных с разработкойалгоритмов и программ решения задач, а также с подготовкой ипроведением расчетов, называть автоматизацией прикладной деятельности.Отметим, что всякая конкретная автоматизируемая прикладнаядеятельность характеризуется двумя факторами.
Во-первых, предметнойобластью, т.е. совокупностью решаемых прикладных задач и используемыхпри этом численных методов, и, во-вторых, дисциплиной работы, т.е.системой правил, соглашений, технологических подходов и приемов,принятых при разработке, отладке и эксплуатации программ, в том числе ипри проведении расчетов.В структуре пакета прикладных программ можно выделить триосновных компонента: функциональное наполнение, язык заданий исистемное наполнение (рис.1) [13].Рис.1. Структура пакета прикладных программФункциональное наполнение отражает специфику предметной областипакета и представляет собой совокупность модулей.
Под модулем здесьпонимается конструктивный элемент, используемый на различных стадияхфункционирования пакета. Формальное определение модуля, устанавливающее допустимые типы модулей, формы их представления, отношениямежду модулями, способы хранения и использования модулей, а такжеформы их сопряжения, будет даваться только в применении к конкретномупакету, на основе учета специфики его языка заданий и системногонаполнения. Язык (языки), на котором записываются модули функционального наполнения, будем называть базовым языкомпакета.
Состав функционального наполнения пакета, его мощность, илиполнота охвата («покрытия») им предметной области отражает объемприкладных знаний, заложенных в пакет, т.е. потенциальный уровеньтематической квалификации пакета.Язык заданий пакета является средством общения пользователя спакетом. Он позволяет описывать последовательность выполненияразличных операций, обеспечивающую решение задачи, или постановкузадачи, по которой эта последовательность строится автоматически. Крометого, язык заданий дает возможность формулировать запросы, касающиесядругих видов работ, выполняемых в рамках прикладной деятельности,охватываемой пакетом.
Допустимый набор операций, лексика и синтаксисязыка заданий определяются предметной областью, обслуживаемой пакетом,иреализуемойимдисциплинойработы.Архитектура(т.е.представляющийся пользователю внешний вид) системы определяется тем,какие задачи система может решать и какие возможности она даетпользователю. Ясно, что язык заданий отражает основные архитектурныерешения, принятые разработчиками пакета, стремившимися повыситьуровень квалификации вычислительной системы в определенной прикладной области. Именно через язык заданий пользователь воспринимает иоценивает, каковы «вычислительные услуги» и насколько удобно ихиспользование, т.е., другими словами, каков фактический уровеньтематической квалификации вычислительной системы.Системное наполнение представляет собой совокупность программ,которые обеспечивают выполнение заданий и взаимодействие пользователяс пакетом, адекватное дисциплине работы в данной прикладнойдеятельности.
Можно говорить, что системное наполнение организуетиспользование потенциала знаний, заложенных в функциональноенаполнение, в соответствии с возможностями, предусмотренными в языкезаданий пакета. Реализация функций системного наполнения осуществляетсяна основе согласованного использования а) штатных общецелевых средствсистемного обеспечения, б) средств системного наполнения, расширяющих исопрягающих возможности компонентов штатного обеспечения, и в)специальных средств системного наполнения, выполняющих управляющие,архивные и обрабатывающие процедуры с учетом специфики прикладнойдеятельности, охватываемой пакетом. Язык (языки), на котором пишутсяпрограммы системного наполнения, будем называть инструментальнымязыком пакета.Итак, из проведенного краткого рассмотрения структуры пакета видно,что пакет сочетает в себе знания о вычислениях, проводимых в конкретнойприкладной деятельности, с системными средствами, предоставляющимиразнообразные формы расширения и использования этих знаний вразличных рабочих контекстах.Эти качества пакета выглядят особенно привлекательно при разработкепрограммного обеспечения, соответствующего тем потребностям в новыхформах ведения вычислительных работ, которые прослеживаются вбольшинстве современных приложений.