Методы алгоритмизации предметных областей тема диссертации и автореферата по ВАК РФ 05.13.11, доктор технических наук Новиков, Фёдор Александрович

  • Новиков, Фёдор Александрович
  • доктор технических наукдоктор технических наук
  • 2011, Санкт-Петербург
  • Специальность ВАК РФ05.13.11
  • Количество страниц 196
Новиков, Фёдор Александрович. Методы алгоритмизации предметных областей: дис. доктор технических наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Санкт-Петербург. 2011. 196 с.

Оглавление диссертации доктор технических наук Новиков, Фёдор Александрович

ВВЕДЕНИЕ.

Исходные положения и предмет исследований.

Актуальность темы диссертации.

Решаемые проблемы и постановка задачи.

Практическая значимость и накопленный опыт.

Структура диссертации и используемые обозначения.

1. НАЗНАЧЕНИЕ И ОБЛАСТЬ ПРИМЕНЕНИЯ МЕТОДОВ АЛГОРИТМИЗАЦИИ.

1.1. Технология разработки прикладного программного обеспечения.

1.1.1. Технология прикладного программирования.

1.1.2. Модель процесса разработки.

1.1.3. Циклы повышения продуктивности.

1.2. Средства алгоритмизации предметных областей.

1.2.1. Три задачи алгоритмизации.

1.2.2. Доверительный программный фонд.

1.2.3. Модель предметной области.

1.2.4. Сильный пользователь.

1.3. Порядок алгоритмизации предметной области.

1.3.1. Шаги алгоритмизации предметной области.

1.3.2. Классификация предметно-ориентированных языков.

1.3.3. Классификация моделей предметных областей.

1.3.4. Классификация методов алгоритмизации.

Выводы по главе 1.

2. ПРЕДМЕТНО-ОРИЕТИРОВАННЫЕ МЕТОДЫ АЛГОРИТМИЗАЦИИ.

2.1. Командные предметно-ориентированные языки.

2.1.1. Явное и неявное программирование.

2.1.2. Графический интерфейс пользователя как командный предметно-ориентированный язык.

2.1.3. Язык описания пошаговых процедур.

2.2. Визуальные императивные языки.

2.2.1. Визуальное конструирование программ.

2.2.2. Язык описания диаграмм.

2.2.3. Документооборот «живых» документов.

2.3. Проблемно-ориентированные парадигмы.

2.3.1. Специализация как средство алгоритмизации.

2.3.2. Таблично-ориентированное программирование.

Выводы по главе 2.

3. ЯЗЫКОВО ОРИЕНТИРОВАННЫЕ МЕТОДЫ АЛГОРИТМИЗАЦИИ.

3.1. Автоматный метод определения языков.

3.1.1. Назначение и область применения автоматного метода.

3.1.2. Задание абстрактного синтаксиса.

3.1.3. Методика преобразования грамматики в абстрактный синтаксис.

3.1.4. Задание контекстных условий.

3.2. Парадигма автоматного программирования.

3.2.1. Роль автоматного программирования в определении языка.

3.2.2. Взаимодействие автоматных объектов.

3.2.3. Методика задания конкретного синтаксиса исходя из метамодели языка.

3.2.4. Методика преобразования синтаксических диаграмм Вирта в систему автоматов конкретного синтаксиса.

3.2.5. Классификация способов использования операционной семантики языка.

3.2.6. Методика компиляции для системы параллельных автоматов операционной семантики.

3.3. Конкурентные преимущества и открытые вопросы автоматного метода.

3.3.1. Варианты использования автоматного метода.

3.3.2. Достоинства и недостатки автоматного метода.

3.3.3. Самодостаточность и гибкость автоматного метода.

Выводы по главе 3.

4. МОДЕЛЬНО-ОРИЕНТИРОВАННЫЕ МЕТОДЫ АЛГОРИТМИЗАЦИИ.

4.1. Язык исполняемых программных спецификаций.

4.1.1. История структурного синтеза программ.

4.1.2. Принципы организации и область применения языка Т.

4.1.2. Метамодель языка

4.1.3. Графическая нотация языка ¥.

4.1.4. Текстовый синтаксис языка ¥.

4.2. Исчисление структурного синтеза программ.

4.2.1. Сигнатура исчисления структурного синтеза программ.

4.2.2. Аксиомы и правила вывода.

4.2.3. Семантические свойства формальной теории.

4.3. Алгоритмы структурного синтеза программ.

4.3.1. Волновой алгоритм синтеза.

4.3.2. Предобработка модели предметной области.

4.3.3. Линейный алгоритм синтеза.

Выводы по главе 4.

ГЛАВА 5. ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ МЕТОДОВ АЛГОРИТМИЗАЦИИ.

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

5.1.1. Система автоматического синтеза программ по декларативным спецификациям

5.1.2. Табличный подход к обработке данных.

5.1.3. Автоматическая компьютерная вёрстка табличных изданий.

5.1.4. Электронная версия ежегодника «Эфемериды малых Планет».

5.1.5. Структурный синтез программ.

5.2. Внедрение методов алгоритмизации в промышленности.

5.2.1. Модель процесса разработки прикладного программного обеспечения.

5.2.2. Промышленное автоматное программирование.

5.2.3. Автоматизация бизнес-процессов.

5.3. Применение концепций алгоритмизации в учебном процессе и подготовке кадров.

5.3.1. Дискретная математика для программистов.

5.3.2. Моделирование на UML.

5.3.3. Системы представления знаний.

5.3.4. Подготовка кадров.

Выводы по главе 5.

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Методы алгоритмизации предметных областей»

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

Исходные положения и предмет исследований

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

Алгоритмизацией предметной области называется разработка методов и программ, которые позволяют прикладным специалистам решать на компьютере все или большинство типовых задач данной предметной области.1 Предметная область — специфическая область человеческой деятельности — в диссертации трактуется как предмет алгоритмизации: история, социальная значимость предметной области и тому подобное— всё остаётся «за кадром». Алгоритмизация предметной области— очень широкое понятие, включающее различные процессы и принимающее разнообразные формы. Объектно-ориентированные анализ и проектирование [121], моделирование и построение баз данных [106], технология разработки прикладного программного обеспечения [110] — всё это и многое другое, относится к алгоритмизации предметных областей. Таким образом, предмет диссертации — методы алгоритмизации предметных областей— практически необозрим в своих частных проявлениях, поэтому необходимо конкретизировать предмет исследования.

1 Чарнецки и Айзенекер [114] используют термин «инженерия предметной области» (domain engineering).

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

1) определение предметно-ориентированных структур данных, представляющих объекты предметной области;

2) реализация программных процедур обработки этих структур — действий, или операций предметной области;

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

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

Например, в предметной области «бухгалтерия»: часто используемый объект — «счёт», операция — «проводка», типовая задача — «начисление зарплаты». В предметной области «астрономия»: объект—«орбита», операция — «вычисление эфемериды», типовая задача — «уточнение параметров орбиты из наблюдений».

Степень алгоритмизации может быть различной. Чем больше типовых задач можно решить, и чем меньше затраты на их решение, тем выше степень алгоритмизации.

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

2 Эфемерида (от древнегреческого єфгщєро^ — годный на один день)— в астрономии предвычислениое положение небесного тела на определенный момент времени. по алгоритмизации конкретных предметных областей, сначала под руководством члена-корреспондента РАН С. С. Лаврова, а позже под руководством автора. Различные аспекты и элементы методов испытывались и постепенно совершенствовались в практических применениях, перечисленных в диссертации. К настоящему времени сложилась целостная методология, допускающая распространение на различные классы предметных областей.

Актуальность темы.диссертации

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

Традиционные методы алгоритмизации, до сих пор достаточно распространенные, состоят в том, что объекты предметной области представляются средствами систем управления базами данных (СУБД), операции программируются на языках программирования общего назначения в форме пакетов прикладных программ (111111), а методы решения типовых задач, частично остаются в форме математических моделей вне компьютера, а частично встраиваются в СУБД и 111111. Традиционные методы алгоритмизации хороши тем, что опираются на универсальные средства, и могут быть применены в любом случае, в котором алгоритмизация вообще возможна. Недостатки традиционных методов также давно известны: процесс алгоритмизации является трудоемким, дорогим и результаты алгоритмизации трудно использовать повторно в других предметных областях.

В настоящее время, наряду с традиционными методами, распространение получили и другие методы алгоритмизации, и, прежде всего, методы, основанные на применении предметно- и проблемно-ориентированных

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

Широко известны, например, такие проблемно-ориентированные языки, как TgX — язык компьютерной вёрстки [47], SQL — язык запросов к реляционным базам данных [106]. В этой работе проблемно-ориентированные языки противопоставляются языкам программирования общего назначения по следующему признаку. Языки общего назначения алгоритмически полны, то есть универсальны, область их применения не ограничена, и в силу своей универсальности такие языки не используют абстракции, характерные для предметных областей и далекие от машинной реализации.4 Специфические понятия предметных областей должны быть выражены в языке программирования общего назначения, то есть запрограммированы. От ПОЯ, напротив, не требуется универсальности, поэтому в них применяются абстракции высокого уровня, прямо соответствующие понятиям предметной области, и затраты на программирование сокращаются, хотя, возможно, возрастают затраты на реализацию ПОЯ. В то же время выбранные абстракции конкретного ПОЯ, разработанного для одной предметной области, могут оказаться неприменимыми в другой предметной области. Поэтому область применения каждого конкретного ПОЯ ограничена.

Известны различные подходы к представлению знаний о предметной области в форме МПО. Например, диаграммы «сущность-связь» в СУБД [106] или онтологии [141] в приложениях Интернета. Важно подчеркнуть, что

3 Терминологическое замечание: предметно-ориентированный язык ориентирован на данные конкретной предметной области; а проблемно-ориентированный язык ориентирован на методы обработки данных в ряде предметных областей. Аббревиатура «ПОЯ» нивелирует это различие, которое в большинстве случаев несущественно.

4 К языкам программирования общего назначения относятся, например, Си, Паскаль, Ада [52]. Абсолютно жесткой границы между проблемно-ориентированными языками и языками общего назначения провести невозможно, да это и не нужно. при использовании любого формализма МПО является абстракцией, которая используется для решения задач алгоритмизации, но не может претендовать на исчерпывающее описание самой предметной области.

Наблюдения автора и других исследователей [19, 24, 63, 114] показывают, что реализация ПОЯ и программное представление МПО, при выполнении определенных условий, дает выигрыш в степени алгоритмизации конкретных предметных областей по сравнению с традиционными методами. Таким образом, исследование методов определения, реализации и применения ПОЯ и МПО для алгоритмизации предметных областей, выбор критериев целесообразности применения ПОЯ и МПО, выявление факторов выигрыша,при алгоритмизации, является актуальной и весьма востребованной задачей.

Решаемые проблемы и постановка задачи

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

1) Проблема сбалансированной предметной ориентации, состоящая в выборе способов представления объектов и операций предметной области в ПОЯ и МПО. Представление должно быть по возможности специфичным, чтобы обеспечить необходимую эффективность, но, в тоже время, представление должно быть достаточно общим, чтобы учесть разнообразие типовых задач в данной предметной области.

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

3) Проблема выразительной силы моделей, состоящая в выборе способов представления знаний предметной области. Языковые средства должны быть достаточны для декларативной постановки типовых задач при условии сохранения алгоритмической разрешимости. Заметим, что поставленные проблемы заведомо имеют тривиальные, но неудовлетворительные решения. Предметную ориентацию можно-выполнять индивидуально для каждой типовой задачи, но это очень неэффективно. Языки можно определять с помощью порождающих грамматик [5], но грамматики не позволяют задать контекстные условия и операционную семантику. Задачи на модели можно ставить на языке исчисления предикатов, но задача синтеза программ по пред- и постусловиям, выраженным в языке первого порядка, в общем случае сводится к задаче автоматического доказательства теорем [2] и не может быть решена эффективно. Следовательно, необходим критерий для сравнения методов алгоритмизации с точки зрения решения указанных проблем.

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

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

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

7 Качество: степень соответствия совокупности присущих характеристик требованиям. Определение стандарта ГОСТ Р ИСО 9000-2008, пункт 3.1.1. ции называется степенью алгоритмизации. Степень алгоритмизации — это общая мера, позволяющая сравнивать различные методы алгоритмизации. Предлагается определить степень алгоритмизации М как среднее геометрическое двух показателей: доля решаемых типовых задач Т (отношение числа типовых задач, которые можно решить средствами оцениваемой алгоритмизации, к числу всех идентифицированных типовых задач), и относительное снижение трудозатрат <5 (отношение средних трудозатрат на решение типовых задач после оцениваемой алгоритмизации, к средним трудозатратам на решение той же совокупности задач до алгоритмизации): М = л/Т(1 - 5).

Проблема состоит в том, что «лобовой» подход — идентифицировать все типовые задачи и последовательно запрограммировать их на языке программирования общего назначения — оказывается слишком затратным и не подходит для большинства достаточно развитых предметных областей. Цена алгоритмизации оказывается слишком высокой, а степень алгоритмизации — слишком низкой. Необходимо применять более эффективные подходы.

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

Практическая значимость и накопленный опыт

Работа носит практический характер. Предлагаемая в диссертации методология многократно применялась автором на практике для определения и реализации разнообразных ПОЯ и МПО (всего 17 случаев) в следующих предметных областях: 1) инструментальные средства разработки программного обеспечения; 2) эфемеридные расчеты в астрономии; 3) компьютерная верстка табличных изданий; 4) описание графического интерфейса пользователя; 5) автоматизация бизнес-процессов в системах менеджмента качества.

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

Автор участвовал в создании, реализации и использовании следующих язы-8 ков.

I. FP/FPG (Fortran Preprocessor / Fortran Program Generator) — язык для описания расширения фортрана проблемно-ориентированными типами данных, 1979, [14], совместно с И. О. Бабаевым. Язык был использован в ряде специализированных пакетов аналитических вычислений (систем компьютерной алгебры) для решения астрономических задач. Регулярно использовался в Институте теоретической астрономии АН СССР в течение, примерно, пяти лет.

II. STEREOL (STEpwise REfinement Oriented Language) — язык для составления программ методов пошагового уточнения, 1979, [15]. На основе языка было последовательно реализовано три инструментальных средства, которые регулярно использовались для разработки в Институте теоретической астрономии и в Институте прикладной астрономии АН СССР в течение, примерно, семи лет.

III. Декарт (DESCARTES — DESCribe your Area, Realize the Target and Extract the Solution) — язык описания моделей предметных областей, баз данных и пакетов прикладных программ, ориентированный на автоматический синтез программ (система СПОРА), 1980, [18 — 20, 22, 27 - 29, 37], совместно с И. О. Бабаевым, С. С. Лавровым, Т. И. Петру

8 Языки перенумерованы римскими цифрами. Эти номера используются для ссылок, подтверждающих те или иные наблюдения, сделанные в следующих главах. шиной и другими. Реализация языка была зарегистрирована в Государственном фонде алгоритмов и программ [И. Р. Агамирзян, И. О. Бабаев и др. Система программных средств автоматического синтеза программ СПОРА. ГосФАП СССР, №50860000399, 1986].

IV. CJIOH (СЛежение и Обработка Наблюдений) — язык для решения задач эфемеридной астрономии, основанный на табличном подходе к обработке данных (система ЭРА — Эфемеридные расчеты в астрономии), 1986, [40, 41, 53-55, 122], совместно с Г. А. Красинским и В. И. Скрипниченко. Язык постоянно используется уже более четверти века в Институте теоретической астрономии и в Институте прикладной астрономии РАН для решения сложных задач эфмеридной астрономии, в том числе для построения численных теорий движения планет и Луны, имеющих большое значение для системы ГЛОНАСС и других важных приложений. Язык был реализован на трех программно-аппаратных платформах (БЭСМ-6, MS DOS, MS Windows) и продолжает развиваться.

V. CPDS (Clipper Program Development System) — система программирования для разработки приложений баз данных на языке Clipper, 1989 [не опубликовано], совместно с А. А. Игнатовичем. Система основана на интерпретации описания пользовательского интерфейса и правил обработки данных в базе данных (метаданных), причем метаданные хранятся в таком же формате и обрабатываются теми же средствами, что и основные данные. На основе этой системы было реализовано, внедрено и долгое время эксплуатировалось в различных организациях несколько вариантов системы КРАБ (Компьютерная Регулярная Автоматизированная Бухгалтерия).

VI. Improvement — входной язык пакета прикладных программ для улучшения параметров математических моделей из наблюдений методом наименьших квадратов, 1990 [56, 57, 60-62], совместно с

Т. В. Ивановой и Е. Ю. Парийской. Язык был реализован дважды и использовался совместно с системой ЭРА в течение ряда лет, а затем был интегрирован в эту систему и прекратил самостоятельное развитие.

VII. AstroTOP (Astro Table Oriented Programming) — предметно-ориентируемый язык, основанный на табличном подходе к обработке данных, 1991, [58, 59, 64-66, 70, 72, 73, 77], совместно с С. В. Крашенинниковым, А. А. Назаровым и В. И. Скрипниченко. Язык был задуман и дважды реализован как независимое от предметной области обобщение языка СЛОН. Вторая реализация выполнена как проект по гранту РФФИ № 94-02-05296 «Технология сбора, хранения и обработки астрономической информации» под руководством автора.

VIII. GUIDL (GUI Description Language) — язык публикаций, позволяющий описывать алгоритмы работы пользователя графического интерфейса, 1995, [67, 78, 81, 99], совместно с А. Д. Яценко. Язык был использован автором диссертации и последователями для описания пошаговых процедур действий пользователя популярных офисных пакетов, в частности Microsoft Office. Язык использовался как язык публикаций в целом ряде монографий в период с 1995 по 2004 год.

IX. СВИТА (Система Вёрстки ИТА) — входной язык системы вёрстки табличных изданий, 1998, [74, 75], совместно с Г. А. Нецветаевой и Е. Ю. Парийской. Язык постоянно применяется с 1995 года для подготовки и вёрстки наукоемких табличных изданий (астрономических ежегодников и альманахов) в Институте теоретической астрономии, а теперь в Институте прикладной астрономии РАН.

X. GUIDE - декларативный язык описания графического интерфейса пользователя и связи интерфейса с пакетом прикладных программ,

2003, [98], совместно с Г. А. Нецветаевой, Е. Ю. Парийской и В. И. Скрипниченко. Самостоятельного применения не получил.

XI. DELTA (DELphi + TAble) — язык для решения задач эфемеридной астрономии, основанный на табличном подходе к обработке данных и встроенный в язык Паскаль как включающий язык, 2006, [122] совместно с В.Д. Михеевой и В.И. Скрипниченко. Язык реализован как средство расширения возможностей применения системы ЭРА и регулярно используется для выпуска системы PersAY — электронной версии Астрономического ежегодника в Институте прикладной астрономии РАН.

XII. ТАВР (Textual Automata Based Programming) — текстовый язык автоматного программирования, 2006, [не опубликовано], совместно с Е. А. Цимбалюком. Язык был реализован, и с его помощью выполнено несколько демонстрационных примеров, но дальнейшего развития не получил.

XIII. DiaDel (DIAgram DEfinition Language) — язык описания графических языков, использующих нотацию графоподобных диаграмм, 2007, [124, 125], совместно с К. Б. Степаняном. Язык реализован и применяется в настоящее время для анализа бизнес-процессов в финансовой сфере в форме реализации нотации специальных диаграмм.

XIV. AutoLanD (Automata-based Language Definition) — семейство визуальных языков для определения ПОЯ, 2008, [127, 128, 134- 137], совместно с У. Н. Тихоновой. В настоящее время применяется для реализации автоматного метода в университете г. Эйдховен (Голландия).

XV. аСМК (автоматизированная Система Менеджмента Качества) — язык описания бизнес-процессов и документооборота, 2008 [126], совместно с В. О. Клебаном. Язык был реализован в рамках гранта Фонда Бортника. Получено свидетельство об официальной регистрации программы для ЭВМ №2007612840 от 27 июня 2007 года «Конструктор системы менеджмента качества на базе MS Office».

XVI. ИПС (Исполняемые Программные Спецификации) — язык исполняемых программных спецификаций, основанный на автоматическом синтезе программ, 2009, [132, 133], совместно с В.Б. Новосельцевым. Язык реализован и используется в рамках программы СКИФ-ГРИД (проект «Инструментальный программный комплекс моделирования сложных предметных областей с возможностями автоматического синтеза параллельных программ») в Институте программных систем РАН.

XVII. AMPLE 3 (Adaptable Minor PLanets Ephemerides) — входной язык заданий для пакета прикладных программ в области динамики малых тел Солнечной системы, 2009, [138] совместно с Г. А. Нецветаевой и другими. Пакет распространяется Институтом прикладной астрономии РАН совместно с ежегодником Эфемериды малых планет.

Структура диссертации и используемые обозначения

Диссертация изложена на 196 страницах и состоит из введения, пяти глав и заключения. Список литературы содержит 149 наименований. Работа иллюстрирована 44 диаграммами.

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Новиков, Фёдор Александрович

Выводы по главе 4

1) Автоматический синтез вычислительных программ по декларативным спецификациям —- перспективный метод алгоритмизации и формализации предметных областей.

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

3) Наряду с системным и прикладным программированием существует модельное программирование, и составление МПО является характерным примером модельного программирования.

4) Язык исполняемых программных спецификаций Ч7 предназначен для спецификации МПО, описания ДПФ и постановки типовых задач.

5) Применение формальных (логических) методов совместно с программными эвристиками позволяет получать полезные результаты.

6) Автоматический синтез программ обеспечивает семантическую корректность синтезированных программ с точностью до семантической корректности ДПФ; тестирование и иные методы проверки правильности оказываются излишними.

7) Предобработка МПО позволяет строить эффективные алгоритмы синтеза программ, обладающие требуемыми свойствами.

Язык исполняемых программных спецификаций и методы его реализации — третье положение, выносимое на защиту. Язык разработан автором совместно с В. Б. Новосельцевым в 2009-2010 гг. в ИПС РАН и ИПА РАН. Язык исполняемых программных спецификаций является решением третьей проблемы алгоритмизации (см. стр. 9) для вычислительных предметных областей.

ГЛАВА 5. ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ МЕТОДОВ

АЛГОРИТМИЗАЦИИ

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

• Использование разработанных автором ПОЯ для повышения степени алгоритмизации вычислительных предметных областей в учреждениях Российской академии наук.

• Внедрение разработанных автором методов повышения степени алгоритмизации в промышленности при автоматизации бизнес-процессов и создании ПОЯ.

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

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

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

5.1.1. Система автоматического синтеза программ по декларативным спецификациям

Шифр: СПОРА, название: «Специальное программное обеспечение работ по астрономии», Институт теоретической астрономии АН СССР, 1978 -1986, [18, 19, 20, 22, 27, 28, 29, 37]. Проект предусматривал разработку семейства проблемно-ориентируемых языков для комплексной алгоритмизации любых предметных областей, связанных с вычислительными задачами и обработкой наблюдений. В рамках проекта был разработан язык Декарт [III] — декларативный язык спецификаций очень высокого уровня (40Ь) и выполнена реализация существенного подмножества языка на ЭВМ БЭСМ-6. Разработанное программное обеспечение прошло приемо-сдаточные испытания (протокол приемо-сдаточных испытаний Межведомственной комиссии при Совмине СССР) и было сдано в государственный фонд алгоритмов и программ [И/Р. Агамирзян, И. О. Бабаев и др. Система программных средств автоматического синтеза программ СПОРА. Свидетельство ГосФАП СССР, №50860000399].

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

54 Некоторые из упоминаемых документов нужно искать в архивах уже несуществующих учреждений. Тем не менее, эти документы существуют. сти 01.01.10 «математическое обеспечение вычислительных машин и систем» на тему «Реализация абстрактных типов и отображений в программном обеспечении прикладных исследований» [29].

5.1.2. Табличный подход к обработке данных

Шифр: ЭРА, название: «Эфемеридные расчеты в астрономии», Институт теоретической астрономии АН СССР 1984 - 1988, Институт прикладной астрономии АН СССР 1988 - 1990, Институт теоретической астрономии РАН 1994 - 1997, Институт прикладной астрономии РАН 2007-2010, [40, 41, 53, 54, 55, 58, 59, 64, 65, 66, 68, 69, 70, 72, 73, 77, 122]. В этой многочисленной группе проектов были разработаны несколько таблично-ориентированных языков (СЛОН [IV], АстроТОП [VII], Дельта [XI]) для решения задач в предметной области «эфемеридная астрономия».55 Разработанные ПОЯ и ДПФ были реализованы на трех программно-аппаратных платформах (ЭВМ БЭСМ-6 + Паскаль, MS DOS + Turbo Pascal, MS Windows + Delphi), причем каждый язык был реализован в нескольких версиях.

В 1994 - 1997 годах на основе таблично-ориентированного метода алгоритмизации предметных областей был выполнен проект по гранту РФФИ № 94-02-05296 «Технология сбора, хранения и обработки астрономической информации» (руководитель Новиков Ф. А.).

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

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

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

5.1.3. Автоматическая компьютерная вёрстка табличных изданий

Шифр: СВИТА, название: «Система вёрстки ИТА», Институт теоретической астрономии РАН, Институт прикладной астрономии РАН, 19931999, [74, 75]. В этом проекте была создана предметно ориентированная система для подготовки и верстки ответственных табличных изданий (астрономических ежегодников и альманахов) в Институте теоретической астрономии, а теперь в Институте прикладной астрономии РАН. Астрономические ежегодники используются в службах навигации, связи, точного времени и в других жизненно важных областях. Эти издания являются чрезвычайно наукоемкими — всего несколько стран в мире имеют научный потенциал, достаточный для выпуска подобных изданий. Основная цель проекта достигнута: «Астрономический ежегодник» издается с помощью системы СВИТА с 1995 года, о чем имеется специальная запись в выходных данных издания. В последующие годы с помощью системы был автоматизирован выпуск других изданий, в настоящее время с помощью системы СВИТА издаются все астрономические издания ИПА РАН.

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

5.1.4. Электронная версия ежегодника «Эфемериды малых Планет»

Шифр: AMPLE 3, название «Adaptable Minor PLanets Ephemerides», Институт прикладной астрономии РАН, 2009 - 2010, [138]. Проект является реализацией третьей версии электронного приложения к международному изданию «Эфемериды малых планет» [XVII]. В этом проекте автор разрабатывал язык заданий, и осуществлял общее руководство проектом. В рамках проекта в окончательной форме было подтверждено наблюдение, состоящее в том, что графический интерфейс пользователя является командным предметно ориентированным языком. Разработанный пакет доступен по адресу http://www.ipa.nw.ru/PAGE/DEPFUND/LSBSS/ample3.hti-nl

5.1.5. Структурный синтез программ

Шифр: VP, название: «Инструментальный программный комплекс моделирования сложных предметных областей с возможностями автоматического синтеза параллельных программ» Институт программных систем РАН, 2008-2010, [132, 133]. В рамках программы СКИФ-ГРИД, Мероприятие 4: «Научно-исследовательские работы по перспективным областям применения создаваемых вычислительных установок, в том числе: разработка пилотных образцов различных систем; проведение проектов, демонстрирующих возможности создаваемых вычислительных средств, а также исследований, посвященных решению актуальных задач науки и техники на основе использования суперкомпьютеров» был выполнен проект 2010р424 [XVI].

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

5.2. Внедрение методов алгоритмизации в промышленности

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

5.2.1. Модель процесса разработки прикладного программного обеспечения

Шифр: ASDH, название: «Astro Software Development House», ООО «АстроСофт», 1997-2000, [113, 140, 146]. С целью повышения продуктивности разработки прикладного программного обеспечения в компании «АстроСофт» автором была создана оригинальная модель процесса разработки и подготовлены регламенты проведения типового проекта по разработке программного обеспечения.56 В этот период получили значительное развитие и практическое внедрение аспекты работы автора, связанные с технологией программирования, в частности, концепции циклов повышения продуктивности и сильного пользователя.

56 Общий объем разработанной автором документации — несколько сот страниц. К сожалению, эта внутренняя документация компании «АстроСофт» является корпоративной собственностью и не была опубликована в открытой печати. Некоторые положения модели были опубликованы позднее.

5.2.2. Промышленное автоматное программирование

Шифр: UniMod, название «Автоматное программирование», Санкт-Петербургский государственный университет информационных технологий, механики и оптики, ИТМО, 2005-2007. Данный проект является весьма объемным государственным заказом, полученным по конкурсу ФЦНТП «Исследования и разработки по приоритетным направлениям развития науки и техники на 2002-2006 годы» (извещение №9-к-663 от 2 мая 2005 г.). Автор выполнял обязанности ответственного исполнителя в отчетах по госконтракту ИТ-13.4/004 «Технология автоматного программирования: применение и инструментальные средства».

В этот период автором была разработана модель взаимодействующих автоматных объектов, которая использована в автоматном методе определения проблемно-ориентированных языков [127, 128, 131, 134— 137]. В настоящее время У. Н. Тихоновой выполняется новая реализация предложенной автором автоматной модели и машины автоматного программирования в Техническом университете г. Эйдховен (Голландия).

5.2.3. Автоматизация бизнес-процессов

Шифр: аСМК, название «Автоматизированная система менеджмента качества», ООО «АтДиа», 2007—2008, [126]. Проект был реализован на грант, полученный в результате конкурса фонда Бортника «СТАРТ 07». Документами, подтверждающими результаты внедрения, являются отчеты по проекту «Разработка инструментальных программных средств на базе © MS Office для внедрения автоматизированной Системы Менеджмента Качества (СМК) в компаниях с проектным типом организации производства» и свидетельство об официальной регистрации программы для ЭВМ №2007612840 от 27 июня 2007 года «Конструктор системы менеджмента качества на базе MS Office». Этот проект является сугубо практическим приложением идей использования ки (множеств, отношений, графов, формул, функций) в виде структур данных в языках программирования. Математическое знание должно быть доведено до программного кода, в противном случае его трудно использовать в приложениях. Курс подкреплен учебником «Дискретная математика» [149], 2011 года, и учебным пособием «Дискретная математика для программистов», три издания, 2000, 2003, 2008 годы [141]. Все издания подготовило издательство Питер. Курс поставлен в СПбГПУ с 1986 года и в ИТМО с 2010 года.

5.3.2. Моделирование на UML

В этом курсе излагается основа основ— lingua franca современных модельных программистов — унифицированный язык моделирования UML. Уметь понимать диаграммы UML прикладным программистам сейчас так же необходимо, как уметь понимать математические формулы. Курс подкреплен монографией «Моделирование на UML» (с Ивановым Д. Ю.), 2010 [146]. В 2008 году вариант этого курса под названием «Анализ и проектирование на UML» был удостоен премии Sun Microsystems Teaching Grant. Курс поставлен в СПбГПУ с 2000 года, в ИТМО с 2005 года, преподавался на мат/мехе в 2006-2007 годах, а также в виде семинаров в Интернете (http://uml3.ru) и корпоративных курсов в организациях [139].

5.3.3. Системы представления знаний

Этот курс сейчас активно развивается в сотрудничестве с В.Б.Новосельцевым (ИПС РАН), со следующего 2011/2012 учебного года курс будет содержать, в частности, материал четвертой главы диссертации в полном объеме. Курс подкреплен монографией «Искусственный интеллект: представление знаний и методы поиска решения» (с Новосельцевым В. Б.), которая планируется к выходу в 2011 году в издательстве «Наука и Техника». Курс поставлен в СПбГПУ с 1992 года. сколько таблично-ориентированных ПОЯ. Результат выносится на защиту.

5) Разработан автоматный метод определения ПОЯ, позволяющий определить все аспекты языка— структуру, внешнее представление, контекстные условия и операционную семантику. Предложена модель взаимодействия автоматных объектов, обобщающая возможности автоматных моделей, предложенных ранее. Результат выносится на защиту.

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

7) Результаты диссертационного исследования внедрены в учебный процесс по подготовке бакалавров и магистров направления «Информатика и прикладная математика» в СПбГУ ИТМО и Санкт-Петербургском государственном политехническом университете.

Методы повышения степени алгоритмизации

Перечисленные здесь методы являются еще одной, более сжатой, формулировкой выводов из наблюдений, сделанных в диссертации. Фактически, здесь приводятся советы — что следует делать, чтобы добиться высокой степени алгоритмизации конкретной предметной области в определенной ситуации. Приводимые советы и методы не являются панацеей, их целесообразно применять при выполнении условий, описанных в диссертации. • Желательно привлечь сильного пользователя, способного решить любую типовую задачу и знающего ответы на все вопросы о предметной области. Ожидаемая величина степени алгоритмизации будет больше, если сильный пользователь является автором (соавтором) ПОЯ и МПО.

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

• Целесообразно определить предметно-ориентированный язык, обладающий достаточной выразительной силой для описания решения всех типовых задач предметной области, причем определение языка должно быть достаточно формализованным, в основе определения должна лежать метамодель, а класс типовых задач должен быть достаточно представительным.

Положения, выносимые на защиту

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

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

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

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

Список литературы диссертационного исследования доктор технических наук Новиков, Фёдор Александрович, 2011 год

1. Тыугу Э.Х. Решение задач на вычислительных моделях // ЖВМ и МФ, 1970, 10, №3, с. 716-733.

2. Manna Z., Waldinger R. Towards automatic program synthesis // Communications of the ACM, 1971, Vol. 14, No 3, pp. 151 166.

3. Линдси Ч., Мюйлен С. Неформальное введение в Алгол-68. М.: Мир, 1973, 407 с.

4. Wegbreit D. The treatment of types in EL/1 // Communications of the ACM, 1974, Vol. 17, No. 5, pp. 251 264.

5. Братчиков И. Л. Синтаксис языков программирования. М.: Наука, 1975, 232 с.

6. Оллонгрен А. Определение языков программирования интерпретирующими автоматами. М.: Мир, 1977, 288 с.

7. Ершов А. П., Грушецкий В. В. Метод описания алгоритмических языков, ориентированный на реализацию. Новосибирск, Препринт ВЦ СО АН СССР. 1977, №74, 39 с.

8. Guttag J. Abstract data types and the development of data structures // Communications of the ACM, 1977, vol. 20, No. 6, pp. 396 404.

9. Gehani N. Units of measure as a data attributes // Computer languages, 1977, vol. 2, No. 3, pp. 93-111.

10. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Том 1. Синтаксический анализ. М.: Мир, 1978, 612 с.

11. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Том 2. Компиляция. М.: Мир, 1978, 487 с.

12. Кнут Д. Искусство программирования для ЭВМ. Том 3. Сортировка и поиск. М.: Мир, 1978, 844 с.

13. Брукс-мл. Ф. П. мл. Как проектируются и создаются программные комплексы. Мифический человеко-месяц. Очерки по системному программированию. М.: Наука, 1979, 151 с.

14. Бабаев И. О., Новиков Ф. А. Руководство по использованию системы FP/FPG. Препринт «Алгоритмы небесной механики» № 22. Л.: 1979, 32 с.

15. Новиков Ф. А. Программа для составления программ методом пошагового уточнения. Препринт «Алгоритмы небесной механики» № 26. Л.: 1979, 16 с.

16. Тыугу Э. X., Харф М. Я. Алгоритмы структурного синтеза программ // Программирование, 1980, № 4, с. 3 13.

17. Майерс Г. Надежность программного обеспечения. М.: Мир, 1980, 360 с.

18. Новиков Ф. А. Декарт — язык для работы с пакетами прикладных программ и базами данных / Тезисы докладов III всесоюзного совещания «Алгоритмы небесной механики». Рига. 1980, с. 15, 16.

19. Новиков Ф. А. Абстрактные типы данных в языке Декарт / там же, с. 227 229.

20. Кахро М. И., Калья А. П., Тыугу Э. X. Инструментальная система программирования ЕС ЭВМ (ПРИЗ). М.: Финансы и статистика, 1981, 158 с.

21. Бабаев И. О., Новиков Ф. А., Петрушина Т. И. Язык Декарт — входной язык системы СПОРА // Прикладная информатика, сборник статей подред. В.М.Савинкова. Выпуск I, М., "Финансы и статистика". 1981, с. 35-72.

22. Солтан В. П., Мейдман С. И. Тождества и неравенства в треугольнике. Кишинев, Штиинца, 1982, 59 с.

23. Лавров С. С. Синтез программ // Кибернетика, 1982, № 6, с 11-16.

24. Ershov А. P. Mixed Computation: Potential Applications and Problems for Study // Theoretical Computer Science, Vol. 18, Issue 1, 1982, pp. 41 67.

25. Автоматический синтез программ / Сб. статей под ред. Г. Е. Минца и Э. X. Тыугу. Таллин, 1983, 202 с.

26. Бабаев И. О., Лавров С. С., Нецветаева Г. А., Новиков Ф. А., Шувалов Г. М. СПОРА система программирования с автоматическим синтезом программ / Тезисы докладов III конференции "Применение методов математической логики". Таллин, 1983, с. 29-41.

27. Бабаев И. О., Новиков Ф. А. Средства оформления функционального наполнения ППП в системе СПОРА / Тезисы докладов III Всесоюзной конференции "Автоматизация производства пакетов прикладных программ и трансляторов". Таллин, 1983, с. 62 64.

28. Новиков Ф. А. Реализация абстрактных типов и отображений в программном обеспечении прикладных исследований. Дисс. канд. физ.-мат. наук по спец. 01.01.10. Л.:, 1983, 85 с.

29. Ульман Дж. Основы систем баз данных. М.: Финансы и статистика, 1983, 334 с.

30. Непейвода Н. Н. Семантика алгоритмических языков. // Итоги науки и техн. Сер. Теор. вероятн. Мат. стат. Теор. кибернет., 20, ВИНИТИ, М., 1983, с. 95- 166.

31. Тыугу Э.Х. Концептуальное программирование. М.: Наука, 1984, 256 с.

32. Диковский А. Я. Детерминированные вычислительные модели // Техническая кибернетика, 1984, №5, с. 84 — 105.

33. Новосельцев В. Б. Синтез рекурсивных программ в системе СПОРА. Препринт «Алгоритмы небесной механики», № 43. Л.: ИТА АН СССР, 1985,24 с.

34. Диковский А. Я. Решение в линейное время алгоритмических проблем, связанных с синтезом ациклических программ // Программирование, 1985, №3, с. 38-49.

35. Новикова Е. В. Планирование циклических программ в системе СПОРА. Препринт «Алгоритмы небесной механики», № 45. Л.: ИТА АН СССР, 1986,31 с.

36. Новиков Ф. А., Сахаров А. Л. Типизация данных посредством пакетовпрограмм / Тезисы докладов III Всесоюзной конференции "Автомати*зация производства систем программирования". Таллин. 1986, с. 199, 200.

37. Агамирзян И. Р. Система технологической поддержки разработки трансляторов «ШАГ». Подсистема построения анализаторов. Препринт «Алгоритмы небесной механики» № 46. Л.: ИТА АН СССР, 1986, 50 с.

38. Шувалов Г. М. Система технологической поддержки разработки трансляторов «ШАГ». Подсистема управления библиотеками и установки параметров. Препринт «Алгоритмы небесной механики» № 47. Л.: ИТА АН СССР, 1986, 48 с.

39. Агамирзян И. Р., Красинский Г. А., Новиков Ф. А., Скрипниченко В. И. Автоматизированная система эфемеридных расчетов астрономии / Тезисы докладов Всесоюзной школы-семинара "Динамика механических систем". Томск, 1986.

40. Лавров С.С. Представление и использование знаний в автоматизированных системах // Микропроцессорные средства и системы, 1986, № 3, с. 14-20.

41. Канович М. И. Оценки сложности синтеза программ в концептуальных базах знаний / Логические методы построения эффективных алгоритмов. Междуведомственный тематический сборник научных трудов. Калинин, 1986, с. 32 52.

42. Нейман В. С. Безразверточный синтез программ на вычислительных моделях с R-формулами / Логические методы построения эффективных алгоритмов. Междуведомственный тематический сборник научных трудов. Калинин, 1986, с. 71 — 81.

43. Новикова Е. В. Об алгоритме синтеза циклических программ по системам рекуррентных соотношений / Логические методы построения эффективных алгоритмов. Междуведомственный тематический сборник научных трудов. Калинин, 1986, с. 86 90.

44. Пакеты прикладных программ. Инструментальные системы. Сб. статей под ред. А. А. Самарского. М.: Наука, 1987, 148 с.

45. Knuth D. The TeXbook. American Mathematical Society, Addison Wesley Publishing Company, 1988, 481 p.

46. Кузнецов О. П., Адельсон-Вельский Г. М. Дискретная математика для инженера. 2-е изд. перераб. и доп. М.: Энергоатомиздат, 1988, 480 с.

47. Брябрин В.М. Программное обеспечение персональных ЭВМ. М.: Наука, 1988, 272 с.

48. Джоунз Г. Программирование на языке Оккам. М: Мир, 1989, 208 с.

49. Вирт Н., Иенсен К. Паскаль: руководство для пользователя. М.: Финансы и статистика, 1989, 254 с.

50. Языки программирования Ада, Си, Паскаль. / Сб. статей под ред. А. Фьюэра и Н. Джехани. М.: Радио и связь, 1989,

51. Васильев И. А., Игнатович А. А., Красинский Г. А., Новиков Ф. А., Скрипниченко В. И. Табличный подход к обработке данных и его реализация в системе ЭРА / Тезисы докладов конференции "Диалог "Человек-ЭВМ". Часть 3. Свердловск. 1989, с. 77, 78.

52. Krasinsky G. A., Novikov F. A., Skripnichenko V. I. Problem Oriented Language for Ephemeris Astronomy and its Realization in System ERA // IAU Colloquim 109 Proc., Gaithersburg, 1988; Celestial Mechanics, 1989, v.45, p. 219 229.

53. Новиков Ф. А. Архитектура системы ЭРА — табличный подход к обработке данных. Сообщения ИПА РАН № 16. 1990, 32 с.

54. Иванова Т. В., Новиков Ф. А. Пакет программ улучшения наблюдаемых параметров для IBM PC. Сообщения ИПА РАН № 21. 1990, 40 с.

55. Иванова Т. В., Новиков Ф. А. Улучшение параметров орбит небесных тел на IBM PC / Материалы II Всесоюзной астрономической школы-семинара по программе "Орбита". Тирасполь, 1990.

56. Новиков Ф. А., Скрипниченко В. И. Система таблично-ориентированного программирования / Тезисы докладов Всесоюзного совещания "Компьютерные методы небесной механики". СПб., 1991, с. 48, 49.

57. Иванова Т. В., Новиков Ф. А. Автономный пакет программ улучшения параметров орбит небесных тел на IBM PC / Тезисы докладов Всесоюзного совещания "Эфемеридная астрономия и позиционные наблюдения". Л.:, 1991, с. 60, 61.

58. Иванова Т. В., Новиков Ф. А., Парийская Е. Ю. Автономный пакет программ улучшения параметров движения небесных тел для IBM PC / Всероссийское совещание "Компьютерные методы небесной механики". СПб.: 1992, с. 21, 22.

59. Иванова Т. В., Новиков Ф. А., Парийская Е. Ю. Автономный пакет программ улучшения наблюдаемых параметров для IBM PC. Препринт ИТА РАН № 29. 1992, 70 с.

60. Ward М.Р. Language Oriented Programming // Software — Concepts and Tools. 1994, Vol. 15, No. 4, pp. 147 161.

61. Крашенинников С. В., Назаров А. А., Новиков Ф. А. АстроТОП: таблично ориентированное программирование астрономических задач / Тезисы докладов совещания Компьютерные методы небесной механи-ки-95. СПб.: ИТА РАН. 1995, с. 135-137

62. Крашенинников С. В., Новиков Ф. А. АстроТОП — технология сбора, хранения и обработки астрономической информации / Тезисы докладов совещания «Информационные системы в науке-95». М.: Фазис, 1995, с. 63-64.

63. Новиков Ф. А., Яценко А. Д. Microsoft Office в целом. — СПб.: BHV-Санкт-Петербург, 1995, 336 с.

64. Крашенинников С. В. Управление данными в системе Таблично-ориентированного программирования. Дисс. канд. физ.-мат. наук по спец. 05.13.11. СПб.:, 1995, 91 с.

65. Крашенинников С. В. ТОП-модель: формальное описание. СПб.: Препринт ИТА РАН, 1995, № 45, 91 с.

66. Solomon K. Developing Applications with Microsoft Office 95. Microsoft Press, 1996, 609 p.

67. Krasheninnikov S. V., Nazarov A. A., Novikov F. A. Skripnichenko V. I. ASTROTOP: automation of observations storage, retrieval and treatment // Baltic Astronomy. Vol. 6, N 2, 1997, p. 355, 356.

68. Нецветаева Г. А., Новиков Ф. А., Парийская Е. Ю. Система автоматической верстки табличных изданий (СВИТА). Сообщения ИПА РАН№ 118. 1998, 60 с.

69. Нецветаева Г. А., Новиков Ф. А., Парийская Е. Ю. Система автоматической верстки табличных изданий (СВИТА): аспекты реалии-зации. Сообщения ИПА РАН №119. 1999, 32 с.

70. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. 2-е изд. М.: Бином, СПб.: Невский диалект, 1999, 560 с.

71. Крашенинников С. В., Кривоногое А. В., Назаров А. А., Новиков Ф. А., Скрипниченко В. И. Система таблично ориентированного программирования: 32-разрядная версия. Сообщения ИПА РАН № 122. 1999,33 с.

72. Новиков Ф. А., Яценко А. Д. Microsoft Office 97 в целом. — СПб.: BHV-Санкт-Петербург, 1999, 624 с.

73. Брукс. Ф. Мифический человеко-месяц или как создаются программные системы. СПб.: Символ-Плюс, 1999, 304 с.

74. Горбатов В. А. Фундаментальные основы дискретной математики. Информационная математика. М.: Наука, 1999, 544 с.

75. Гарнаев А. Ю., Матросов А. В., Новиков Ф. А., Усаров Г. Е., Харитонова И. A. Microsoft Office 2000: разработка приложений / Под общ. ред. Ф. А. Новикова. — СПб.: БХВ-Санкт-Петербург. 2000, 656 с.

76. Ларман К. Применение UML и шаблонов проектирования. М.: Вильяме, 2001, 496 с.

77. Гордеев А. В., Молчанов А. Ю. Системное программное обеспечение. СПб: Питер, 2001, 736 с.

78. Лавров С. С. Программирование. Математические основы, средства, теория. СПб.: БХВ-Петербург, 2001, 317 с.

79. Леоненков А. В. Самоучитель UML. СПб.: БХВ-Петербург, 2001, 304 с.

80. Карпов Ю. Г. Теория автоматов. СПб.: Питер, 2002, 224 с.

81. Орлов С. А. Технологии разработки программного обеспечения: учебник. СПб.: Питер, 2002, 464 с.

82. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. СПб : Питер, 2002, 492 с.

83. Бек К. Экстремальное программирование. СПб.: Питер, 2002, 224 с.

84. Леффингуэлл Д., Уидриг Д. Принципы работы с требованиями к программному обеспечению. Унифицированный подход. М.: Вильяме, 2002, 448 с.

85. Фаулер М., Скотт К. UML. Основы. СПб.: Символ-Плюс, 2002, 192 с.

86. Рамбо Дж., Якобсон А., Буч Г. UML: специальный справочник. СПб.: Питер, 2002, 656 с.

87. Скотт К. Унифицированный процесс. Основные концепции. М.: Вильяме, 2002, 160 с.

88. Хопкрофт Д., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и вычислений. 2-е изд. М.: Вильяме, 2002, 528 с.

89. Арнольд В. И. Что такое математика? М.: МЦНМО, 2002, 104 с.

90. Ахо А., Сети Р., Ульман Дж. Компиляторы: принципы, технологии и инструменты. М.: Вильяме, 2003, 788 с.

91. Бурдонов И. Б., Косачёв А. С., Кулямин В. В., Петренко А. К. Подход UniTesK к разработке тестов // Программирование, 2003, №6, с. 25-43.

92. Нецветаева Г. А., Новиков Ф. А., Парийская Е. Ю., Скрипни-ченко В. И. Автоматическая генерация интерфейсов пользователя. Сообщения ИПА РАН №159. 2003, 10 с.

93. Матросов А. В., Новиков Ф. А., Усаров Г. Е., Харитонова И. А. Microsoft Office ХР: разработка приложений / Под ред. Ф.А.Новикова. — СПб.: БХВ-Санкт-Петербург. 2003, 944 с.

94. Ауэр К., Миллер Р. Экстремальное программирование: постановка процесса. С первых шагов и до победного конца. СПб.: Питер, 2003, 368 с.

95. Бобровский С. Технологии Пентагона на службе российских программистов. СПб.: Питер, 2003, 222 с.

96. Новиков Ф. A. Microsoft Word 2003. СПб.: БХВ-Петербург, 2004, 976 с.

97. Frankel D. Model Driven Architecture. Applying MDA to Enterprise Computing. Wiley Publishing, 2003, 328 p.104105106107108109110111112113114,115116117,

98. Орлов С. А. Технологии разработки программного обеспечения. Учебное пособие. 2-е изд. СПб.: Питер, 2003, 480 с. Thomas D. UML — Unified or Universal Modeling Language? // Journal of Object Technology, 2003, Vol. 2, No 1, pp.7 12.

99. Крёнке Д. Теория и практика построения баз данных. 8-е изд. СПб.: Питер, 2003, 800 с.

100. Бейзер Б. Тестирование черного ящика. Технология функционального тестирования программного обеспечения и систем. СПб.: Питер, 2004, 318 с.

101. ДоротВ. JL, Новиков Ф. А. Толковый словарь современной компьютерной лексики. 3-е изд., перераб. и доп. СПб.: БХВ-Петербург, 2004, 608 с.

102. Брауде Э. Технология разработки программного обеспечения. СПб.: Питер, 2004, 655 с.

103. Константайн Л., Локвуд Л. Разработка программного обеспечения. СПб.: Питер, 2004, 592 с.

104. Леоненков A.B. Самоучитель UML. 2-е изд., перераб. и доп. СПб.: БХВ-Петербург, 2004, 432 с.

105. Терехов А. Н. Технология программирования: Учебное пособие. М.: БИНОМ, 2006, 148 с. '

106. Буч Г., Якобсон А., Рамбо Дж. UML. Классика CS. 2-е изд. СПб.: Питер, 2006, 736 с.

107. Новосельцев В.Б. Теория структурных функциональных моделей // Сибирский математический журнал. 2006. №5. Т. 47. с. 1014—1030.

108. Рамбо Дж., Блаха М. UML 2.0. Объектно-ориентированное моделирование и разработка. 2-е изд. СПб: Питер, 2007, 544 с.

109. Аалст В., Хей К. Управление потоками работ: модели, методы и системы. М.: ФИЗМАТЛИТ, 2007, 316 с.

110. Новиков Ф. А. Степанян К. Б. Язык описания диаграмм // Информационно-управляющие системы. 2007, №4, с. 28 36 (список ВАК).

111. Новиков Ф. А. Степанян К. Б. Использование порождающего программирования при реализации языка описания диаграмм // Информационно-управляющие системы. 2008, №6, с. 32 — 35 (список ВАК).

112. Новиков Ф. А., Тихонова У. Н. Определение проблемно-ориентированных языков интерпретируемыми автоматами // Научно-технические ведомости Санкт-Петербургского государственного политехнического университета. 2008, № 5(65), с. 93-98 (список ВАК).

113. Новиков Ф. А., Тихонова У. Н. Применение автоматного программирования для определения проблемно-ориентированных языков // Труды ИПА РАН. Вып. 19. 2008, с. 174 183.

114. Новиков Ф. А., Сотскова М. Ф. Microsoft Office Word 2007. СПб.: БХВ-Петербург, 2008, 960 с.

115. Тихонова У. Н. Новый метод определения проблемно-ориентированных языков // XIII молодежная научная конференция «Наукоемкие информационные технологии» Институт программных систем РАН УГП имени А. К. Айламазяна, Переславль-Залесский, 2009, с. 183-194.

116. Новиков Ф. А., Новосельцев В. Б. Предварительное сообщение о языке исполняемых программных спецификаций // Программные продукты и системы. 2009, № 2, с. 107-111 (список ВАК).

117. Новиков Ф. А., Новосельцев В. Б. Язык исполняемых программных спецификаций // Программирование. 2010, №1, с. 66 — 78 (список ВАК).

118. Новиков Ф. А., Тихонова У. Н. Применение автоматного метода определения проблемно-ориентированных языков / Материалы научнопрактической конференции «Научные исследования и инновационная деятельность». СПбГПУ, 2009.

119. Новиков Ф. А., Тихонова У. Н. Автоматный метод определения проблемно-ориентированных языков (Часть 1) // Информационно-управляющие системы. 2009, № 6, с. 34 40 (список ВАК).

120. Новиков Ф. А., Тихонова У. Н. Автоматный метод определения проблемно-ориентированных языков (Часть 2) // Информационно-управляющие системы. 2010, № 2, с. 31 37 (список ВАК).

121. Новиков Ф. А., Тихонова У. Н. Автоматный метод определения проблемно-ориентированных языков (Часть 3) // Информационно-управляющие системы. 2010, № 3, с. 29 37 (список ВАК).

122. Иванов Д. Ю., Новиков Ф. А. Моделирование на UML: опыт преподавания в Интернет // Компьютерные инструменты в образовании. 2009, №4, с. 53 61 (список ВАК).

123. Иванов Д. Ю., Новиков Ф. А. Влияние UML на процесс разработки программного обеспечения // Компьютерные инструменты в образовании. 2009, №6, с. 3 11 (список ВАК).

124. OWL 2 Web Ontology Language, http://www.w3 .org/TR/2009/REC-owl2-overview-20091027/ Последнее обращение 30.03.11.

125. Новиков Ф. А. Дискретная математика для программистов. Учебник для вузов. 3-е изд. — СПб.: Питер, 2009, 384 с.

126. Поликарпова Н. И., Шалыто А. А. Автоматное программирование. СПб.: Питер, 2010, 176 с.

127. Карпов Ю. Г. MODEL CHECKING. Верификация параллельных и распределенных программных систем. СПб.: БХВ-Петербург, 2010, 560 с.

128. Бычков И.В., Корсуков A.C., Опарин Г.А., Феоктистов А.Г. Инструментальный комплекс для организации гетерогенных распределенных вычислительных сред // Информационные технологии и вычислительные системы, 2010, № 1, с. 45 -54.

129. Новиков Ф. А. Иванов Д. Ю. Моделирование на UML. Теория, практика, видеокурс. — СПб:, Наука и Техника, 2010, 640 с.

130. Fowler М. Domain Specific Languages. Addison-Wesley Professionals, 2010, 640 p.

131. Опарин Г. А., Феоктистов А. Г., Горский С. А. Язык описания модели предметной области в пакетах прикладных программ // Программные продукты и системы, 2011, №1.

132. Новиков Ф. А. Дискретная математика: Учебник для вузов. Стандарт третьего поколения. СПб.: Питер, 2011, 384 с.

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