Введение к работе
Объектно-ориентированный подход (ООП), получивший широкое распространение как мощная программная технология, составляет в настоящее время весомую альтернативу традиционным процедурным методам. Популярность ООП во многом обусловлена концептуальной целостностью и более сильной формой структуризации программного обеспечения (ПО), разрабатываемого нз его основе. В конечном итоге использование ООП выражается в более быстрой и надежной разработке программ, а также в широких эволюционных возможностях разрабатываемого ПО при создании новых приложений. Данные обстоятельства оказываются решающими в условиях динамично развивающихся отраслей программирования.
С конца 1960-х - начала 1970-х годов ведутся достаточно интенсивные исследования в области создания объектно-ориентированных операционных систем, баз данных, графических интерфейсов. В значительно меньшей мере внимания уделяется вопросам применения объектных технологий к математическому и прикладному ПО, предназначенному для решения задач вычислительного характера.
До сих пор наиболее употребительным языком для вычислительных
приложений считается Фортран. Значимое многообразие
высокоинтеллектуальных математических библиотек, созданных на этом языке в течение трех последних десятилетий, а также несомненные традиции прикладной пакетной деятельности являются существенными факторами, сдерживающей широкое внедрение объектных технологий в данную область.
Настоящая диссертационная работа посвящена научным и практическим аспектам создания численного математического и прикладного ПО на основе объектно-ориентированной технологии. Работа носит многоплановый характер и охватывает как теоретические методологические вопросы создания математического обеспечения (МО), так ,и практические результаты разработки конкретных программных систем: математической объектно-ориентированной библиотеки общего назначения и инструментальной объектно-ориентированной среды для построения систем автоматизированного проектирования и моделирования (CAD/САМ) в различных предметных областях науки и техники.
Целью диссертационной работы является выработка общей
объектно- ориентированной методологии программирования
вычислительных задач и методов их решения, а также апробация методологии при построении конкретных функционально законченных вычислительных интерактивных графических приложений. В определенном смысле работа представляет собой попытку развития ООП на широкие и практически важные классы численного математического и прикладного ПО.
Актуальность работы определяется прежде всего возрастающими потребностями системных и прикладных программистов в современном МО, которое наряду с общепринятыми требованиями функциональности, эффективности, мобильности удовлетворяло бы также условиям множественного использования, обеспечивающим его широкие эволюционные возможности. Данный аспект является принципиальным для МО, которое обычно претерпевает значительные изменения в ходе своего развития и уже на стадии проектирования должно предусматривать необходимые инструментальные возможности, которые бы позволили в дальнейшем относительно прост расширять проблемный и алгоритмический репертуар, модифицировать и адаптировать его к новым задачам и предметным областям, легко интегрировать математические средства между собой и с другими программами при создании функционально законченных приложений.
Распространенные в настоящее время математические библиотеки и пакеты прикладных программ представляют собой в основном результат проігодурно-орігентироваїїной технологии, которая в значительней степени способствовала их узкой специализации — специализации как по видам задач и методам их решения, так и по типам данных, используемых при постановке и решении задач.
Подобная специализация существенно затрудняет дальнейшее развитие этих программ, а главное — использование программ в прикладных системах. Переход к более общим универсальным библиотекам, подобным NAG или IMSL, также не решает эту проблему. Ввиду чрезвычайно широкого многообразия прикладных задач и алгоритмических вариантов их решения, развитие и использование таких библиотек путем включения в них все новых и новых процедурных модулей являются нереалистичными и тупиковыми.
Решение проблемы универсальности в данном случае мы связываем с привлечением идей ООП и обеспечением широких инструментальных возможностей МО. Инструментапьность рассматривается нами как важнейший принцип построения МО, претендующего на эффективное множественное применение.
Анализ возможностей применения ООП к МО и выработка общей
объектно-ориентированной методологии программирования,
охватывающей такую развитую фундаментальную научную область, какой является вычислительная математика, позволила бы придать проводимым в настоящее время многочисленным исследовательским и коммерческим проектам систематизированный характер и обеспечить их необходимой методологической основой.
Разработанные с использованием предложенной методологии математическая библиотека и инструментальная среда моделирования также отражают наметившуюся в последнее время тенденцию создания ПО на основе выделения и использования базовых объектно-ориентированных средств, оформлешшх в виде систем или библиотек классов и допускающих унифицированную разработку разнообразных программных приложений на единой концептуальной и инструментальной основе.
Полученные в работе результаты связаны главным образом с обобщением, систематизацией и комплексным использованием ООП применительно к численному математическому и прикладному ПО. К наиболее значимым новым научным результатам следует отнести следующие:
предложена и формализована общая объектно-ориентированная методология эволюционной разработки численного МО, которая основывается на оригинальной объектной модели рассматриваемой предметной области и связанной с ней выделенной системой методик программирования,
проведен объектный анализ типовых задач вычислительной
математики, для которых предложена и разработана единая объектная
классификация, служащая систематизированным представлением
рассмотренных разделов математики и являющаяся конструктивной
основой для реализации разнообразного МО,
« спроектирована и разработана математическая библиотека общего назначения с объектной архитектурой, сочетающей естественность организации, должный уровень эффективности и мобильности, а также широкие инструментальные возможности,
на основе предложенной обобщенной объектной концепции численного моделирования, применимой к широкому спектру физических явлений и технических систем, спроектирована и разработана объектно-ориентированная инструментальная среда для создания CAD/CAM приложений в различных предметных областях науки и техники,
предложенная методология, разработанное МО апробированы при создаїши рабочих прототипов CAD/CAM систем с открытой объектной архитектурой для параметрического геометрического проектирования и моделирования течении в трубопропроводных сетях,
проанализированы проблемы, намечены пути исследований и развития разработанного МО как в направлении расширения его проблемного и методического репертуара, так и в направлении создания новых программных приложений.
Практическая значимость работы состоит в возможности использования предложенной методологии, а также разработанного на ее основе МО при создании разнообразных вычислительных приложений, включая научные и промышленные CAD/САМ системы. Принцип множественного использования, превалирующий в работе, существенно расширяет круг потенциальных практически значимых приложений, допускающих унифицированную разработку на основе предложенной методологии программирования. Особое значение имеют также доступность разработанного МО вместе с исходными текстами и документацией.
Апробация работы и публикации. Предложенная методология была успешно апробирована при реализации проектов Российского фонда фундаментальных исследований и федеральной целевой научно-технической программы "Информатизация России". Результаты диссертационной работы опубликованы в научной печати и докладывались на различных конференциях и семинарах: международной конференции "САПР" (г. Гурзуф, 1995), международной конференции "Новые информационные технологии в науке, образовании и бизнесе" (г. Гурзуф, 1996), семинарах Института системного программирования РАН, Института автоматизации проектирования РАН, Института прикладной математики РАН. Материалы диссертации использовались в учебных курсах, прочитанных автором в Московском государственном институте радиотехники, электроники и автоматики.
Структура и объем диссертации. Диссертация состоит из введения, трех глав, заключения и двух приложений. Работа изложена на 246 стр. и содержит 47 рисунков. Список литературы включает 142 наименования.