Введение к работе
Актуальность темы. Разработка методов алгоритмизации предметных областей, позволяющих прикладному специалисту решать на компьютере типовые задачи, не прибегая каждый раз к дополнительному трудоемкому программированию на языках программирования общего назначения, всегда являлась и является в настоящее время одной их важнейших задач информатики.
Традиционные, и до сих пор распространенные методы алгоритмизации заключаются в том, что объекты предметной области представляются средствами систем управления базами данных (СУБД), операции программируются на языках программирования общего назначения в форме пакетов прикладных программ (ППП), а методы решения типовых задач, частично остаются в форме математических моделей вне компьютера, а частично встраиваются в СУБД и ППП. Традиционные методы алгоритмизации хороши тем, что опираются на универсальные средства, и могут быть применены в любом случае, в котором алгоритмизация вообще возможна. Недостатки традиционных методов также давно известны: процесс алгоритмизации является трудоемким, дорогим и не способствует повторному использованию результатов.
Наряду с традиционными методами, распространение получили методы алгоритмизации, основанные на применении проблемно-ориентированных языков (ПОЯ) и моделей предметных областей (МПО).
Наблюдения автора и других исследователей показывают, что реализация ПОЯ и программное представление МПО, при выполнении определенных условий, дает выигрыш в степени алгоритмизации конкретных предметных областей, по сравнению с традиционными методами. Таким образом, разработка методов определения, реализации и применения ПОЯ и МПО для алгоритмизации предметных областей, выбор критериев целесообразности применения ПОЯ и МПО, выявление факторов выигрыша при алгоритмизации, является актуальной и востребованной задачей.
Предмет исследований. Областью диссертационных исследований являются методы и технологии разработки прикладного программного обеспечения в конкретных предметных областях. Отправной точкой исследований являются следующие положения.
Алгоритмизацией предметной области называется разработка методов и программ, которые позволяют прикладным специалистам решать на компьютере все или большинство типовых задач данной предметной области. Алгоритмизация предметной области включает три аспекта: 1) определение предметно-ориентированных структур данных, представляющих объекты предметной области; 2) реализацию программных процедур обработки этих структур — действий, или операций предметной области; 3) разработку методов и алгоритмов решения типовых задач предметной области — последовательностей действий, доставляющих значимый для пользователя результат. Считается, что предметная область достаточно четко очерчена, а множества объектов, операций и типовых задач надежно идентифицированы. При этом степень алгоритмизации может быть различной. Чем больше типовых задач можно решить, и чем меньше затраты на их решение, тем выше степень алгоритмизации.
Таким образом, предметом диссертационного исследования являются методы алгоритмизации предметных областей. Предлагаемые методы развивались постепенно, с конца 70-х годов, в результате анализа опыта выполнения работ по алгоритмизации конкретных предметных областей, сначала под руководством члена-корреспондента АН СССР С. С. Лаврова, а позже под руководством автора. Различные аспекты и элементы методов испытывались и постепенно совершенствовались в практических применениях, перечисленных в диссертации. К настоящему времени сложилась целостная методология, допускающая распространение на различные классы предметных областей.
Цель работы состоит в построении, теоретическом обосновании и практическом подтверждении применимости методов алгоритмизации предметных областей на основе определения ПОЯ и МПО. Для достижения поставленной цели в диссертации исследованы следующие три проблемы и предложены подходы к их решению.
Проблема сбалансированной предметной ориентации, состоящая в выборе способов представления объектов и операций предметной области в ПОЯ и МПО. Представление должно быть по возможности специфичным, чтобы обеспечить необходимую эффективность, но, в тоже время, представление должно быть достаточно общим, чтобы учесть разнообразие типовых задач в данной предметной области.
Проблема унифицированного определения языков, состоящая в выборе способов задания абстрактного синтаксиса, контекстных условий, конкретного синтаксиса и операционной семантики. С одной стороны, определение языка должно быть полным и точным, с другой стороны, должно обеспечивать приемлемую трудоемкость реализации языка.
Проблема выразительной силы моделей, состоящая в выборе способов представления знаний предметной области. Языковые средства должны быть достаточны для декларативной постановки типовых задач при условии сохранения алгоритмической разрешимости.
Методы исследования. В диссертации используются методы дискретной математики: теории множеств, теории автоматов, математической логики, теории графов, теории формальных грамматик, а также терминологический и понятийный аппарат технологии программирования. В качестве основного средства формального представления применяется унифицированный язык моделирования UML.
Научная новизна полученных результатов определяется следующими результатами, выносимыми на защиту.
Таблично-ориентированный метод алгоритмизации предметных областей, интегрирующий средства работы с базами данных и пакетами прикладных программ. Метод обеспечивает сбалансированную предметную ориентацию в предметных областях, в которых решение любой типовой задачи сводится к регулярному и независимому решению последовательности однородных элементарных задач. Реализовано и внедрено семейство таблично-ориентированных языков в областях, связанных с обработкой экспериментальных данных.
Автоматный метод реализации проблемно-ориентированных языков, в том числе визуальных, позволяющий определить все аспекты языка — структуру, внешнее представление, контекстные условия и операционную семантику. Полное определение языка автоматным методом является реализацией языка. В основу метода положена модель взаимодействующих автоматных объектов, обобщающая возможности автоматных моделей, предложенных ранее.
Язык исполняемых программных спецификаций, позволяющий описывать модели предметных областей, в том числе графически, ставить на них вычислительные задачи и автоматически синтезировать программы решения этих задач. Язык обладает выразительной силой, в точности соответствующей эффективно разрешимой теории структурного синтеза программ.
Практическая значимость. Предлагаемая в диссертации методология многократно применялась автором на практике для определения и реализации разнообразных ПОЯ и МПО (всего 17 случаев) в следующих предметных областях: 1) инструментальные средства разработки программного обеспечения; 2) эфемеридные расчеты в астрономии; 3) компьютерная верстка табличных изданий; 4) описание графического интерфейса пользователя; 5) автоматизация бизнес-процессов в системах менеджмента качества. При этом достигнуты и подтверждены положительные результаты алгоритмизации, то есть разработанное программное обеспечение используется прикладными специалистами для решения типовых задач регулярно и в течение продолжительного времени в разных организациях (табл. 2).
Апробация диссертации. Различные аспекты результатов работы докладывались на многих семинарах и форумах, в том числе, на следующих конференциях: Всесоюзная конференция «Методы математической логики в проблемах искусственного интеллекта и систематическое программирование», Вильнюс, 1980; III конференция «Применение методов математической логики», Таллин, 1983; III Всесоюзная конференция «Автоматизация производства пакетов прикладных программ и трансляторов», Таллин, 1983; III Всесоюзная конференция «Автоматизация производства систем программирования», Таллин, 1986; IAU Colloquium 109, Gaithersburg, 1988; Всесоюзное совещание «Эфемеридная астрономия и позиционные наблюдения», Л., 1991; IX научная школа по ППП «Программное обеспечение математического моделирования, управления и искусственного интеллекта», Адлер, 1991; Всероссийское совещание с международным участием «Компьютерные методы небесной механики», СПб., 1992, 1995, 1997; Международная конференция «Современные проблемы теоретической астрономии», СПб., 1994; Colloquium «International cooperation in dissemination of the astronomical data», St. Petersburg, 1996; Фестиваль Microsoft в Санкт-Петербурге, 1998; International Computer Science Symposium in Russia CSR 2006, СПб, 2006; Международная научная конференция «Космос, астрономия и программирование» (Лавровские чтения), СПб., 2008; Научно-практическая конференция «Научные исследования и инновационная деятельность», СПбГПУ, 2009; Семинар Института программных систем РАН, 2009; International conference «Asteroid-Comet Hazard – 2009», St. Petersburg, 2009; Семинар Института прикладной астрономии РАН, 2010; Семинар Санкт-Петербургского института информатики и автоматизации РАН, 2011; Семинар компании Jet Brains, 2011; Семинар компании Scite, 2011.
Публикации. По материалам диссертации опубликовано 55 работ, из которых 13 — статьи в журналах из списка ВАК, и 7 — многотиражные монографии, выпущенные издательствами «Питер», «БХВ-Санкт-Петербург» и «Наука и Техника». Основные работы, в которых содержатся результаты, выносимые на защиту, перечислены в конце автореферата. В работах, выполненных в соавторстве, личный вклад автора во всех случаях в равных долях с соавторами.
Структура диссертации. Диссертация изложена на 175 страницах. Список литературы содержит 120 наименований. Работа иллюстрирована 45 диаграммами.