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

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

Оглавление диссертации доктор физико-математических наук Москвитин, Анатолий Алексеевич

Введение.

1 Обзор существующих подходов к исследуемой проблеме.

1.1 Решение задач в языках императивного типа.

1.2 Решение задач в языках декларативного типа.

1.3 Доказательное программирование.

1.4 Особенности подхода от задач.

1.4.1 Первый уровень общности.

1.4.2 Второй уровень общности.

1.4.3 Третий уровень общности.

2 Теоретические основы языков спецификаций задач.

2.1 Концепция технологии построения языков спецификаций классов задач, ориентированных на пользователей.

2.2 Интеллектуальные ресурсы и интеллектуальные запросы пользователей.

2.2.1 Интеллектуальные ресурсы пользователей.

2.2.1.1 «Парадокс кучи».

2.2.1.2 Оценка интеллектуального ресурса пользователя.

2.2.1.3 Интеллектуальный ресурс сообщества пользователей.

2.2.2 Интеллектуальные запросы пользователей.

2.2.1 Интеллектуальные запросы идеального пользователя.

2.2.2 Интеллектуальные запросы реального пользователя.

2.3 Языки и логики спецификаций задач для идеальных пользователей.

2.3.1 Языки.

2.3.2 Т-логики.

2.3.3 Тзуш" логики.

2.3.4 Немонотонность некоторых Т-логик.

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

2.3.5.1 Представления Т-логик.

2.3.5.2 Конструктивные системы.

2.4 Языки и логики спецификаций задач для реальных пользователей.

2.4.1 Яех-языки.

2.4.2 Логики.

2.4.3 (Т5уш, гей}- логики.

2.4.4 Немонотонность некоторых (Т,/-е^-логик.

2.5 Представления логик спецификаций для реальных пользователей.

2.5.1 Представления (Т, гех)-логик.

2.5.2 Лея-конструктивные системы.

3 Алгоритмические проблемы языков спецификаций задач.

3.1 Измерение интеллектуальных ресурсов пользователей.

3.1.1 Алгоритм измерения интеллектуальных ресурсов пользователей.

3.1.1.1 Терм-калибровка.

3.1.1.2 Шкала уверенности ТЗ.

3.1.2 Измерение т3(р, Т) ресурса ге$(р,Т).

3.1.3 Измерение т2(р,Т).

3.1.4 Измерение т^р.Т).

3.2 Особенности организации диалога в языках спецификаций задач.

3.2.1 Организация диалога с реальным пользователем.

3.2.2 Длина текста и сложность текста.

3.2.3 Синтаксис, семантика и прагматика.

3.2.3.1 Синтаксис.

3.2.3.2 Оценка синтаксической сложности текста.

3.2.4 Особенности формулировки задачи в языках спецификаций.

3.2.4.1 Тестирование.

3.2.4.2 Пример формальной спецификации задачи.

3.2.5 Некоторые комментарии и обоснования.

3.2.6 Реализационные аспекты диалога.

4 Реализационные аспекты применения языков спецификаций классов задач, ориентированных на пользователей.

4.1 Применение языков спецификаций задач в экономике и технике.

4.1.1 Спецификация экономической задачи.

Инвестиционное проектирование и управление проектами».

4.1.2 Реализация интернет-проекта.

Инвестиционный менеджмент (в инновационной сфере)».

4.1.3 Спецификация технической задачи «Системные основы информатики». j 4.1.4 Реализация программы «Системные основы информатики».

4.1.4.1 Комплекс обучающих программ «Конструктор IBM PC».

4.1.4.2 Аппаратные основы информатики. «Конструктор IBM PC».

4.1.4.3 Работа с конструктором IBM PC.

4.1.4.4 Конфигурирование персонального компьютера.

4.1.4.5 С ЧЕГО начать и КАК это делается.

4.1.4.6 Лабораторный практикум.

4.1.4.7 Задания лабораторного практикума.

4.2 Инструментарий для реализации языков спецификаций задач.

4.2.1 Измерение интеллектуальных ресурсов пользователей. Система «PLAST».

4.2.1.1 Определение интеллектуальных ресурсов пользователя.

4.2.1.2 Схема постановки задачи пользователем р.

4.2.2 Среда спецификационной деятельности. Система «СИГМА-ТЗ».

4.2.2.1 Схема решения задач в системе «Сигма-ТЗ».

4.2.2.2. Формирование исходных спецификаций в «Сигма-ТЗ».

4.3 Инструментальный комплекс языков спецификаций задач.

4.3.1 Архитектура инструментальной системы «ТеКоРЗ».

4.3.1.1 Базисный уровень технологического комплекса решения задач.

4.3.1.2 B-модули.

4.3.1.3 Управляющий массив.

4.3.1.4 Организация программного обеспечения на базисном уровне.

4.3.1.4.1 Решение задач на базисном уровне.

4.3.1.4.2 Технологический этап решения задач в «ТеКоРЗ».

4.3.1.4.3 Свойства качественных решений Г-задач.

4.3.2 Инструмент отбора стратегий исполнения модулей.

4.3.2.1 Схема работы 71-конструктора.

4.3.2.2 Структура и состав ТС-конструктора.

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

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

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

• недостаточные знания, умения и навыки постановки задачи в точных математических терминах;

• неумение выбирать или разрабатывать эффективные алгоритмы решения задачи;

• незнание формальных языков программирования и инструментальных программных средств;

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

И если некоторые из указанных проблем можно разрешить сравнительно быстро (например, изучив язык программирования [130]), то решение других проблем (например, формулировка задачи в терминах предметной области пользователя и ее точный перевод на формальный язык, а, далее, на «язык компьютера» [82]) вызывает серьезные затруднения.

Отметим, что всегда одной из центральных проблем области человеческих знаний и деятельности была и остается проблема корректной постановки задачи, в самом широком смысле этого слова [9, 27, 28]. Эта проблема относится как к решению повседневных бытовых, так и самых сложных научных и производственных задач. С момента появления вычислительных устройств, и особенно с появлением персональных компьютеров, эта проблема еще более обострилась, поскольку теперь к решению задач приобщилась еще большая аудитория (к профессионалам математикам и программистам добавились, так называемые, непрограммирующие профессионалы — конечные пользователи [110, 120]). Последние же составляют подавляющую часть работающего населения мира.

Можно выделить два подхода в решении вышеперечисленных проблем, которые существуют в настоящее время в информатике. Один подход базируется на исчислении задач. Когда из множества элементарных задач, не вызывающих сомнения в отношении их осмысленности, конструируются более сложные задачи. И хотя осмысленность такой вновь построенной задачи считается (по умолчанию) бесспорной - этот факт вызывает подозрение. Почему же тогда так часто возникают конфликты между заказчиками и разработчиками программного обеспечения?

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

Традиционно в процессе решения задач на компьютере участвуют несколько групп специалистов. С одной стороны — это постановщики задач, они являются заказчиками программного обеспечения, а с другой стороны -программисты (системные, прикладные, конструкторы программных систем, аналитики и т.д.). Отсюда и возникают две основные проблемы в решении задач на компьютере. Они связаны с разрешением проблемы взаимопонимания, возникающими как между различными группами программистов (системными, прикладными, конструкторами), так и между заказчиками и разработчиками программного обеспечения.

Решение проблемы взаимопонимания между различными группами программистов ищут на пути разработки различных технологий программирования [4, 12-14, 16-17, 42, 49, 90], а решение проблемы взаимопонимания между заказчиками и программистами ищут на пути разработки новых методик постановки задач, например [26-31, 37, 39, 43, 75], предполагающих их решение на компьютере.

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

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

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

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

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

До последнего времени от пользователя требовалось не столько умение точно поставить свою задачу для ее решения на компьютере, сколько умение описать ее программисту или постановщику, переадресовав последним ее точную постановку. Другой подход: пользователю предлагали изучить язык программирования («вторая грамотность» [36, 37]) и изучив возможности компьютера по решению определенного класса задач, самостоятельно разработать требуемое программное обеспечение. Иначе говоря, самому поставить и решить свою задачу. Естественно, что при этом пользователю нужно было знать не только и, может быть даже не столько то, ЧТО он хочет, сколько уметь точно описать КАК желаемое ЧТО должно быть реализовано на компьютере. Вот эти ЧТО и КАК и явились главной преградой на пути массового применения персональных компьютеров.

Здесь и далее: термин ЗАЧЕМ отвечает за прагматику', термин ЧТО — за семантику, термин КАК - за синтаксис.

Заметим, что подавляющее большинство пользователей персональных компьютеров относится к так называемым «непрограммирующим профессионалам», т.е. к специалистам, работающими с уже готовым программным обеспечением [35]. Именно они, представители всех сфер человеческой деятельности, и являются основными постановщиками задач, предполагающих их решение на компьютерах. Их часто именуют «конечными пользователями» [120] (чтобы отличать от программистов, исполняющих роль посредников между пользователем и компьютером). Естественно, что когда каждый специалист в своей предметной области станет конечным пользователем, никакой армии программистов-посредников не хватит. Попытки обучить всех программированию, возведя его в ранг «второй грамотности» не дали положительных результатов по вполне понятным причинам (нельзя всех обучить программированию).

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

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

Многочисленные попытки решить данную проблему автоматизации построения алгоритмов и программ по спецификациям задач, привели к появлению и широкому распространению языка логического стиля - ПРОЛОГ [51,52,117,129,131,148].

В отличие от языков фон-неймановского типа [11, 104, 124, 130] (когда программист вынужден был смотреть на решение своей задачи как на процесс планирования вычислений) в логическом программировании [10, 31, 51-52, 60, 91, 131, 148] сознательно переходят на разделение описания задачи (в специальных терминах) от метода ее решения на компьютере. Иначе говоря, происходит переход от императивных языков постановки и решения задач, к декларативным языкам. Это позволило применить к описанию задачи универсальный способ вычислений функций и отношений, составляющих содержание задачи (метод резолюций). Правда, на практике вновь происходит смешение чисто логических и вычислительных аспектов вследствие жесткого детерминизма исполнения логических программ.

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

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

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

Таким образом, возникают следующие задачи исследования.

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

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

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

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

Для позиционирования места работы в ряду других следует отметить следующие особенности.

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

II. Понятность задачи для пользователя классифицируется тремя следующими уровнями общности рассмотрения понятия задачи: a) «Г-задача» - задача понятна пользователю, т.е. он может сформулировать критерий, позволяющий эффективно отделять решение задачи от ее нерешения', b) «Г-полузадача» - при постановке задачи явно указан критерий определяющий только решение задачи, т.е. решения задачи составляют рекурсивно перечислимое множество, а нерешения - никак не определяются; c) «Г-томление» - пользователь может указать только нерешение задачи. Что же при этом является решением задачи и как это определяется ничего не сказано. Так, например, в 1932 году Колмогоров [170] предложил интуиционистское пропозициональное исчисление трактовать как исчисление задач. При этом он не определил ни что такое задача, ни что такое решение. Импликацию он истолковывал следующим образом: импликация а—> Ь {а влечет Ь) означает, что имеется общий метод сведения задачи Ь к задаче а. Затем Клини предложил уточнить термин «сведение» как алгоритм, который по каждому решению задачи а выдает решение задачи Ь.

Замечание 1. Два последних случая будем связывать с принятием безответственных решений, и рассматривать их не будем.

Замечание 2. Конструктивный подход в определении задачи совпадает с классическим определением в том случае, когда задача осмысленна, т.е. является Т- задачей.

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

1. В работе рассматриваются только осмысленные задачи из некоторой предметной области, которые являются в некотором смысле равномерными, единообразными. Например, как при рассмотрении относительной вычислимости. Если есть произвольная исходная функция, о которой чтолибо известно и есть алгоритм сведения исходной функции к результирующей (например, примитивно-рекурсивной относительно этой исходной), то можно делать какие-то вразумительные суждения и о результирующей функции. Иначе говоря, такие задачи, для которых заказчик явно указал критерий различения решения и нерешения задачи. Все другие случаи (например, когда такой критерий явно сформулировать нельзя) в данной методике не рассматриваются.

2. Принципиальный отказ от универсальности в определении языков спецификаций задач в пользу эффективности. Чем плоха универсальность и какие здесь могут быть «подводные камни» достаточно хорошо известно и с теоретической и с практической стороны.

3. Проблема «машинного нуля» [26] или презумпция неточности. Кто может гарантировать, что если известен результат и известен путь его получения, то можно отправляясь от результата однозначно прийти к исходным посылкам (нарушение транзитивности)?

4. В основе проводимых исследований (предшествующих теоретическому обобщению) лежит значительный этап практических разработок программных систем, хотя он и не является единственно определяющим фактором. Анализ данного этапа позволил выделить некоторые особенности решения задач на компьютерах, которые были положены в основу рассматриваемого подхода от задач. Так, например, а) разработанное программное обеспечение только тогда долго и эффективно эксплуатируется, когда в постановке задачи и формировании технического задания на разработку программного обеспечения непосредственное участие принимает сам заказчик; Ь) сам процесс постановки задачи оказывается успешным тогда, когда язык общения заказчика с исполнителем бывает с одной стороны простым, удобным и понятным, а с другой - точным и формальным; с) разработанное программное обеспечение только тогда эффективно, когда при его разработке отказываются от принципа универсальности; с!) было замечено также, что знания о предметной области пользователя не монотонны по отношению к его знаниям о задачах из той же самой предметной области; е) пользователи, как правило, в практических действиях руководствуются не предметной областью (имеется ввиду модель предметной области [109]), а оперируют понятием, которое определено в работе как «поле» задач этой предметной области.

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

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

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

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

Пример 1. Чем отличается доказательство того, что пятый постулат геометрии Евклида эквивалентен теореме о сумме внутренних углов треугольника, от попыток геодезическим способом измерять сумму внутренних углов треугольника»?

Пример 2. Если в качестве исходных аксиом выбрать заповеди «Не убий» и «Не прелюбодействуй», то они явно будут иметь разный вес, по крайней мере, не будут эквивалентными.

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

Вместе с тем, чем точнее система аксиом отражает предметную область, тем решение задачи будет точнее.

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

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

Заметим, что понимание ограниченности аксиоматического метода в смысле Геделя в данном случае неприемлемо. Это нечто совсем другое. Отсюда вывод: при аксиоматическом изложении трудно добиться того, чтобы все аксиомы были равно приемлемы. Пока же предлагается исходить из рав-новзвешенности и равноприменимости аксиом для заказчика.

II. Желательно учитывать не только то, КАК будет работать система, если бы она работала идеально, но и ЧТО будет, если она будет работать плохо. Что будет, когда система будет откланяться от того, что в ней предусмотрено? Видимо, в этих случаях необходимо предусмотреть некоторые другие механизмы организации взаимодействия заказчиков и исполнителей, и другой методики решения задач на компьютерах. Здесь также играют роль предпочтения неуниверсальности. Это же может выражаться и в виде нечеткости самих понятий, но в этом случае предлагается поступать особым образом, описанным далее в главе III. Такие ситуации в данной работе не рассматриваются и не исследуются, хотя на практике они также могут встречаться.

III. Желание обеспечить пользователя методикой, теорией и технологией постановки и решения задач на компьютере предполагает, что и сам пользователь и спецификатор обладают необходимыми знаниями о своих предметных областях. Хотелось бы научиться как-то, оценивать их, так называемые, интеллектуальные потребности (задачи, которые они решают) и их интеллектуальные возможности (ресурсы, которыми они обладают). Это позволит получить ответ на вопрос о том, насколько точно (адекватно) пользователь понимает свою задачу, чтобы иметь возможность принимать ответственные решения, как при постановке задачи, так и при оценке результатов ее решения. Один из способов такой оценки интеллектуальных ресурсов и интеллектуальных запросов пользователей описан в главе III.

IV. Если пользователь получил решение своей задачи, и оно его не удовлетворяет, то можно рассмотреть две ситуации: первая — мы считаем, что пользователь сам виноват во всем; вторая — мы признаем, что пользователь может не знать всех особенностей компьютерной реализации и соответственно не может указать их в спецификации своей задачи. В этом случае исполнитель может включить в реализацию программы фрагменты, способные повысить эффективность программного обеспечения, решающего задачу пользователя (например, алгоритмические логики [39]). Однако при этом необходимо быть особенно осторожным и учесть следующее обстоятельство. Может возникнуть следующая опасная ситуация - берется конкретная задача, потом она обобщается, затем конкретизируется и в результате решается уже совсем другая задача, не та которую имел ввиду пользователь.

V. В рассмотрение введен критерий, отделяющий решение задачи от ее нерешения. Но может быть в рассматриваемом «поле» задач и есть и еще что-то, что нашим критерием не улавливается, (что не является ни решением и ни нерешением)? Тогда имеет смысл говорить о системе критериев, поскольку меняется само понятие истины. Здесь можно вспомнить теорему Геделя, о существовании арифметической формулы, которая истинна, но не доказуема в арифметике: если она и истинна, то в каком-то другом, не таком смысле, что а + Ь = Ь + а.

Для решения перечисленных выше задач имелись следующие предпосылки. Методологическую основу исследований составляет анализ понятий задачи и «поля» задач, рассматриваемый в рамках нового подхода к философии математики [4\], а теоретическую базу исследований составляет математический аппарат относительно конструктивных систем, адаптированный применительно к языкам спецификаций задач [105, 111]. Технологические основы апробированы при решении практических задач и описаны в [55,65-67,70-71,73-74].

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

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

Дано определение интеллектуальных потребностей {интеллектуальных запросов) пользователя в виде так называемого «поля» задач. Дано определение интеллектуальных возможностей (интеллектуальных ресурсов) пользователя, согласованных с его интеллектуальными потребностями, предста-вимые как измеримые характеристики и приведена процедура их измерения. Ресурс (данного человека) р относительно (данной аксиоматической системы) Т есть тройка гез(р,Т) =(т](р,Т), щ2(р,Т), ш3)(р,Т)) натуральных чисел т1(р,Т)> ш2(р,Т), т3(р,Т) таких, что:

• т](р,Т) — наибольшая длина доказательств в Т, все еще имеющих достаточно высокую (заранее фиксированную) балльную оценку степени убедительности для данного человекар\

• гп2(р,Т) — наибольшая длина последовательностей символов алфавита языка системы Т, все еще имеющих достаточно высокую (заранее фиксированную) балльную оценку (субъективной уверенности р в) безошибочной распознаваемости их р как формул (или не формул) языка системы; тз(р,Т) — таких, что и Ш2(р,Т), но применительно к термам. Здесь Т описание предметной области пользователя.

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

Предложена архитектура и принципы организации инструментальной программной системы поддержки языков спецификаций классов задач, ориентированных на пользователей, в основу которых положены оригинальные идеи В-модуля и Управляющего Массива.

Основные результаты, выносимые на защиту.

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

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

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

4. Архитектура инструментального комплекса в технологии языков спецификаций классов задач, ориентированных на пользователей, базирующаяся на понятии В-модуля и Управляющего Массива.

Диссертация состоит из введения, четырех глав, разбитых на параграфы и заключения. Параграфы разбиты на пункты.

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

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

Заключение

На защиту выносятся следующие результаты.

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

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

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

Ш}(р,Т) - наибольшая длина доказательств в Т, все еще имеющих достаточно высокую (заранее фиксированную) балльную оценку степени убедительности для данного человека р; т2(р,Т) - наибольшая длина последовательностей символов алфавита языка системы Т, все еще имеющих достаточно высокую (заранее фиксированную) балльную оценку (субъективной уверенности р в) безошибочной распознаваемости их р как формул (или не формул) языка системы; т3(р,Т) - таких, что и т2(р,Т), но применительно к термам;;

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

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

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

Список литературы диссертационного исследования доктор физико-математических наук Москвитин, Анатолий Алексеевич, 2004 год

1. Агафонов, В. Н. Типы и абстракция данных в языках программирования / В. Н. Агафонов // Данные в языках программирования. М.: Мир, 1982. С. 265-327.

2. Агафонов, В. Н. Надъязыковая методология спецификации программ / В. Н. Агафонов // Программирование. Москва, 1993. N 5. С. 28-49.

3. Агафонов, В. Н. Языки и средства спецификации программ / В. Н. Агафонов // Требования и спецификации в разработке программ. М.: 1984. С. 285-344.

4. Арефьева, Н. А. HIPO-технология метод разработки и сквозного документирования программ по принципу «сверху-вниз» / Н. А. Арефьева, И. Б. Пушкина, С. Т. Родионов // УСИМ. 1978. N 3. С. 35-39.

5. Базисный РЕФАЛ и его реализация на вычислительных машинах (методические рекомендации). М.: ЦНИПИАСС Госстроя СССР, 1977. 300 с.

6. Бауэр, Ф., Брей, М. На пути к языку широкого спектра для поддержки спецификации в разработке программ // Требования и спецификации в разработке программ. М., 1984. С. 28-46.

7. Белякин, Н. В., Самохвалов, К.Ф. Логика мнений и ритуалов / Н. В. Белякин, К. Ф. Самохвалов // Методологический анализ математических теорий. М.: Центр, совет филос. (метод.) семинаров при Президиуме АН СССР, 1987. 296 с.

8. Бельтюков, А. П. Язык дедуктивного программирования / А. П. Бель-тюков // Теория языков программирования. Ижевск, 1983. С. 3-18.

9. Бенерджи, Р. Теория решения задач (подход к созданию искусственного интеллекта) / Р. Бенерджи. М.: Мир, 1972. 224 с.

10. Борщев, В.Б. Семантика параметрических конструкций в логическом программировании /В.Б. Борщев // Логические методы в программировании. Вып. 120: Вычислительные системы. Новосибирск, 1987. С. 3-13.

11. Характеристики качества программного обеспечения / Б. Боэм, Дж. Браун, X. Каспар, М. Липов, Г. Мак-Леод: Пер. с англ. Е.К.Масловского. М.: Мир, 1981. 206 с.

12. Боггс, У., Боггс, М. UML и Rational Rose / У. Боггс, М. Богсс. М.: Лори, 2000. 582 с.

13. Буч, Г., Рамбо, Дж., Джекобсон, A. UML Руководство пользователя / Г. Буч, Дж. Рамбо, А. М. Джекобсон. М.: ДМК, 2000. 432 с.

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

15. Васильев, С. Н. Методы логического вывода и генерирование гипотез в задачах искусственного интеллекта / С. Н. Васильев // Труды III международного симпозиума "Интеллектуальные системы" (INTELS'98): Тез.докл. Псков, 1998. С. 105-108.

16. Вельбицкий, И.В. Технология программирования / И. В. Вельбицкий. Киев: Техника, 1984. 280 с.

17. Вендров, A.M. CASE-технологии. / А. М. Вендров. Современные методы и средства проектирования информационных систем. М.: Финансы и статистика, 1998. 176 с.

18. Вирт, Н. Алгоритмы + Структуры данных = программы / Н. Вирт. М.: Мир, 1985. 406 с.

19. Волож, Б. Б. Система ПРИЗ и исчисление высказываний / Б. Б. Волож и др. // Кибернетика. 1982. № 6. С. 65-70.

20. Вопенка, П. Математика в альтернативной теории множеств / П. Во-пенка. М.: Мир, 1983. 150 с.

21. Гантер, Р. Методы управления проектированием программного обеспечения / Р. Гантер. М.: Мир, 1981. 388 с.

22. Гаек, П., Гавранек, Т. Автоматическое образование гипотез: математические основы общей теории / П. Гаек, Т. Гавранек. М.: Наука, 1984. 280 с.

23. Гладкий, А. В. Формальные грамматики и языки / А. В. Гладкий. М.: Наука, 1973. 368 с.

24. Глушков, В. М. Синтез цифровых автоматов / В. М. Глушков. М.: Физматгиз, 1962. 476 с.

25. Глушков, В. М. Алгебра. Языки. Программирование / В. М. Глушков, Г. Е. Цейтлин, Е. JI. Ющенко. Наукова Думка, 1989. 376 с.

26. Годунов, С. К. Решение систем линейных уравнений / С. К. Годунов.1. М.: Наука, 1980. 177 с.t

27. Гончаров, С.С. Методологические аспекты семантического программирования / С. С. Гончаров, Ю. JI. Ершов, Д. И. Свириденко // Научное знание: логика, понятия, структура. Новосибирск: Наука, 1987. С. 154-183.

28. Гончаров, С.С. Введение в логику и методологию науки / С. С. Гончаров, Ю. JI. Ершов, К. Ф. Самохвалов. М.: Интерпракс, 1994. 256 с.

29. Гончаров, С. С., Свириденко, Д. И. Z-программы и их семантики / С. С. Гончаров, Д. И. Свириденко // Логические методы в программировании. Вып. 120: Вычислительные системы. Новосибирск, 1987. С. 24-51.

30. Гончаров, С. С., Свириденко, Д. И. Z-программирование / С. С. Гончаров, Д. И. Свириденко // Логико-математические проблемы МОЗ. Вып. 107: Вычислительные системы. Новосибирск, 1985. С. 3-29.

31. Гончаров, С. С., Свириденко, Д. И. Логическое программирование в широком смысле / С. С. Гончаров, Д. И. Свириденко // Теория алгоритмов и ее приложения. Вып. 129: Вычислительные системы. Новосибирск, 1989. С. 3-48.

32. Громов, Г. Р. Профессиональные приложения персональных ЭВМ / Г. Р. Громов // Микропроцессорные средства и системы. 1985, N 3. С. 9-15.

33. Грисс, Д. Наука программирования / Д. Грисс. М.: Мир, 1984. 416 с.

34. Дейкстра, Э. Дисциплина программирования / Э. Дейкстра. М.: Мир, 1978. 276 с.

35. Денинг, В. Диалоговые системы Человек-ЭВМ: адаптация к требова4ниям пользователя / В. Денинг, Г. Эссиг, С. Маас. М.: Мир, 1984. 112 с.

36. Ершов, А. П. Избранные труды / А. П. Ершов. Новосибирск: Наука Сибирская издательская фирма, 1994. 416 с.

37. Ершов, А. П. Научные основы доказательного программирования / А. П. Ершов//Вестн. АН СССР. № 10. 1984, С. 7-18.

38. Ершов, Ю. Л. Язык Х-выражений / Ю. Л. Ершов // Логические вопросы теории типов данных. Вып. 114: Вычислительные системы. Новосибирск, 1986. С. 3-10.

39. Ершов, Ю. Л. Динамическая логика над допустимыми множествами / Ю. Л. Ершов // ДАН СССР. Т. 273 N 5. 1983. С. 1045-1048

40. Ершов, Ю. Л., Палютин, Е. А. Математическая логика / Ю. Л. Ершов, Е. А. Палютин. М.: Наука. 1987, 320 с.

41. Ершов, Ю. Л., Самохвалов, К. Ф. О новом подходе к философии математики / Ю. Л. Ершов, К. Ф. Самохвалов // Структурный анализ символьных последовательностей. Вып. 101: Вычислительные системы. Новосибирск, 1984. С. 141-148.

42. Жоголев, Е.А. Система обосновательного гиперпрограммирования / Е. А. Жоголев // Программирование, N 1. Москва, 1993. С. 58-65.

43. Интеллектное управление динамическими системами / С. Н. Васильев, А. К. Жерлов, Е. А. Федосов, Б. Е. Федунов // Федер. целевая программа. М.: Физматлит, 2000. 352 с.

44. Интенсивный курс информатики (сборник заданий и задач). Учебно-методическое пособие / Сост. Ю. И. Молородов, А. А.Москвитин, Е. Н. Алаев и др. Новосибирск, СУНЦ НГУ, 2000. 46 с.

45. Казаков, Е. В. Проект разработки языков спецификации задач, ориентированных на пользователя / Е. В. Казаков, А. А. Москвитин, К. Ф. Самохвалов // Модели когнитивных процессов. Вып. 158: Вычислительные системы. Новосибирск, 1997. С. 63-94.

46. Казаков, Е.В. Установление ресурсов пользователей / Е. В. Казаков, А. А. Москвитин, К. Ф. Самохвалов // Измерение и модели когнитивныхпроцессов. Вып. 162: Вычислительные системы. Новосибирск, 1998. С. 41-57.

47. Каргальцева, С. Л., Самохвалов, К. Ф. Как измерить склонность к конформизму / С. Л. Каргальцева, К. Ф. Самохвалов // Искусственный интеллект и экспертные системы. Вып. 160: Вычислительные системы. Новосибирск, 1997. С. 18-35.

48. Касьянов, В.Н. Редуцированные преобразования программ / В. Н. Касьянов // Трансляция и оптимизация программ. Новосибирск, ВЦ СО АН СССР, 1983. С. 86-98.

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

50. Клини, С. Математическая логика / С. Клини. М.: Мир, 1973. 480 с.

51. Клоксин, В., Меллиш, К. Программирование на языке ПРОЛОГ / В. Клоксин, К. Меллиш. М.: Мир, 1987. 336 с.

52. Ковальский, Р. Логическое программирование / Р. Ковальский // Логическое программирование. М.: Мир, 1988. С. 134-166.

53. Косарев, Ю.Г. О путях развития математического обеспечения средств вычислений / Ю. Г. Косарев // Проблемы обработки информации. Вып. 100: Вычислительные системы. Новосибирск, 1985. С. 5-10.

54. Косарев, Ю.Г., Москвитин, A.A. Проблемно-инструментальная технология построения программных систем / Ю. Г. Косарев, А. А. Москвитин // Методы анализа данных. Вып. 111: Вычислительные системы. Новосибирск, 1985.С. 59-76.

55. Костин, B.C., Москвитин, A.A. Инструмент отбора стратегий исполнения модулей (первая версия) / В. С. Костин, А. А. Москвитин // Теория вычислимости и зыки спецификаций. Вып. 139: Вычислительные системы. Новосибирск. 1991. С. 38-47.

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

57. Лавров, С. С., Силогадзе, Г. Г. Автоматическая обработка данных. Язык ЛИСП и его реализация. / С. С. Лавров, Г. Г. Новосибирск: Нау-ка,1978. 176 с.

58. Логическое программирование / Отв. Ред. В. Н. Агафонов. М.: Мир, 1988.366 с.

59. Маклаков, С. В. Моделирование бизнес-процессов с BPwin 4.0 / С. В. Маклаков. М: «Диалог-МИФИ», 2002. 224 с.

60. Малпас, Дж. Реляционный язык ПРОЛОГ и его применение / Дж. Малпас. М.: Наука, 1990. 464 с.

61. Манцивода, А. В. Флэнг-проект: обзор основных результатов / А. В. Манцивода. Иркутский университет, 1993. 27 с.

62. Мартьянов, В. И. Теоретико-модельная семантика методов решения комбинаторных проблем / В. И. Мартьянов // Труды XI Байкальской международной школы-семинара "Методы оптимизации и их приложения", Иркутск, 1998, т. 1. С. 167-170.

63. Минц, Г. Б. Логические основы синтеза программ / Г. Б. Минц. Таллинн, 1982. 42 с.

64. Минц, Г. Б., Тыугу, Э.Х. Обоснование структурного синтеза программ / Г. Б. Минц, Э. X Тыугу // Автоматический синтез программ. Таллинн, 1983. С. 52-60.

65. Москвитин, А. А. Среда спецификационной деятельности СИГМА-ТЗ / А. А. Москвитин // Теория вычислений и языки спецификаций. Вып. 152: Вычислительные системы. Новосибирск, 1995. С. 76-84.

66. Москвитин, А. А. Компьютерные приложения в информатике / А. А. Москвитин // Международная конференция «Новые информационные технологии в университетском образовании»: Тез. докл. Новосибирск, 1995. С. 96-98.

67. Москвитин, А. А. Методологические основы языков спецификаций задач / А. А. Москвитин // Второй Сибирский Конгресс по Прикладной и Индустриальной Математики (ИНПРИМ-96): Тез. докл. Новосибирск, 1996. С. 98.

68. Москвитин, А. А. Об одном способе организации программного обеспечения в технологическом комплексе решения логических задач / А. А. Москвитин // Модели когнитивных процессов. Вып. 158: Вычислительные системы. Новосибирск, 1997. С. 95-109.

69. Москвитин, А. А. Компьютерные технологии в преподавании информатики в СУНЦ НГУ (Подход от задач) / А. А. Москвитин // Международная конференция «Новые информационные технологии в университетском образовании»: Тез. докл. Новосибирск, 1997. С. 128-129.

70. Москвитин, А. А. Аппаратно-системные основы информатики / А. А. Москвитин // Проблемы специализированного образования. Вып. 1: НГУ. Новосибирск, 1998. С. 137-158.

71. Москвитин, А. А. Архитектура программной системы для реализации языков спецификаций задач / А. А. Москвитин // Модели когнитивных процессов. Вып. 164: Вычислительные системы. Новосибирск. 1998. С. 69-77.

72. Москвитин, А. А. Языки спецификаций задач в преподавании информатики / А. А. Москвитин // Международная конференция «Новыеинформационные технологии в университетском образовании». Тез. докл. Новосибирск, 1998. С. 108-109.

73. Москвитин, А. А. Языки спецификаций задач, ориентированные на пользователя / А. А. Москвитин // Сибирский журнал индустриальной математики. Новосибирск, 2002. Т. V. 2(10). С. 148-159.

74. Москвитин, А. А., Тимофеева, М. К. Оценка длины убедительного доказательства для реального пользователя / А. А. Москвитин, М.К.Тимофеева // Модели когнитивных процессов. Вып. 169: Вычислительные системы. Новосибирск. 2001. С. 3-19.

75. Москвитин, А. А. Три взгляда на преподавание информатики. Методика преподавания информатики / А. А. Москвитин // Международная конференция «Новые информационные технологии в университетском образовании». Тез. докл. Новосибирск, 2001. С. 136-37.

76. Москвитин, А. А., Тимофеева, М. К. Особенности диалога в языках спецификаций задач / А. А. Москвитин, М. К. Тимофеева // Модели когнитивных процессов. Вып. 168: Вычислительные системы. Новосибирск, 2001. С. 3-18.

77. Москвитин, А. А. Измерение интеллектуальных ресурсов пользователей в языках спецификаций задач / А. А. Москвитин // Вычислительные технологии, Т. 7. N 4. Новосибирск, 2002. С. 71-83.

78. Москвитин, А. А. Языки спецификаций задач в преподавании информатики / А. А. Москвитин // Международная конференция «Новые информационные технологии в университетском образовании». Тез. докл. Кемерово, 2002. С. 138-140.

79. Москвитин, А. А. Задачно-ориентированный подход в информатике / А. А. Москвитин // Четвертая Всероссийская МегпеЬконференция. «Компьютерное и математическое моделирование в естественных и технических науках». Вып. 16. Тез. докл. Тамбов, 2002. С. 12-17.

80. Москвитин, А. А. Диалог в языках спецификаций задач / А. А. Москвитин // Сибирский журнал индустриальной математики. Новосибирск, 2002. Т. 5. N 3(11). С. 139-145.

81. Москвитин, А. А. Методологические аспекты языков спецификаций задач сложных систем / А. А. Москвитин // Поиск математических закономерностей, Новосибирск, ИМ СО РАН, 2002, Т. 1. С. 173-186

82. Москвитин, А. А.Задачный подход в информатике / А. А. Москвитин. Новосибирск, НГУ, 2003. 200 с.

83. Москвитин, А. А. Задачный подход в информационных технологиях / А. А. Москвитин // Международный форум «Новые инфокоммуника-ционные технологии: достижения, проблемы, перспективы». Тез. докл. Новосибирск, 2003. С. 100-101.

84. Москвитин, А. А. Методологические основы языков спецификаций задач, ориентированных на пользователя / А. А. Москвитин // 81СРИО'04. 2004. С. 354-395.

85. Нагао М. и др. Структуры и базы данных / Нагао М., Катаяма Т., Уэмура С. М.: Мир, 1986. 416 с.

86. Непейвода, Н. Н., Свириденко, Д. И. Логичекая точка зрения на программирование / Н. Н. Непейвода, Д. И. Свириденко // Новосибирск, 1981. Ч. I. 49 е., Ч. II. 51 с. (Препринт / АН СССР. Сиб.отд-ние. Ин-т математики).

87. Непейвода, Н. Н., Свириденко, Д. И. К теории синтеза программ / Н. Н. Непейвода, Д. И. Свириденко // Математическая логика и ее приложения: Труды Института математики АН СССР. Сибирское отделение. Т. 2. Новосибирск, 1982. С. 159-175.

88. Непейвода, Н. Н. Анализ методов доказательного программирования в конструктивных логиках: Автореф. дис. . д-ра физ.-мат. Наук / Н. Н. Непейвода. Новосибирск, 1988. 27 с.

89. Непомнящий, В. А. Практические метода верификации программ / В. А. Непомнящий // Кибернетика, 1984, N2. С. 21-28.

90. Непомнящий, В. А., Сабельфельд, В. К. Трансформационный синтез корректных программ / В. А. Непомнящий, В. К. Сабедьфельд // Прикладная информатика. 1986. Вып. 2(11). С. 19-38.

91. Оптнер, С. Системный анализ для решения деловых и промышленных проблем / С. Оптнер. М.: Сов. Радио, 1969. 148 с.

92. Пайл, Я. АДА язык встроенных систем / Я. Пайл // М.: Финансы и статистика, 1984. 238 с.

93. Панащук, С. А. Разработка информационных систем с использованием СА8Е-системы 8Пуеггип / С. А. Панащук // СУБД, 1995, №3. С. 41-47.

94. Персональные компьютеры. Материалы Всесоюзной конференции. «Диалог-82-Микро». Пущино, 1983. 72 с.

95. Перязев, Н. А. Основы теории булевых функций // Н. А. Перязев // М.: Физматлит, 1999. 112 с.

96. Пойа, Д. Как решать задачу / Д. Пойа // М.: Учпедгиз, 1961. 207 с.

97. Поляков, В. Г. Формула успеха в бизнесе. Практическое руководство для российского менеджера / В. Г. Поляков // Новосибирск. ЭКОР, 1993. 127 с.

98. Попов, Э. В. Общение с ЭВМ на естественном языке / Э. В. Попов // М.: Наука, 1982. 360 с.

99. Поттосин, И. В. О критериях добротности программ / И. В. Поттосин // Системная информатика. Вып.6. 1989. С. 90-122.

100. Практическое руководство по программированию / Б. Мик,. П. Хит, Н Рашби и др. М.: Радио и связь, 1985. 168 с.

101. Проблемно-ориентированный подход к науке: Философия математики как концептуальный прагматизм / Отв. ред. В.В.Целищев. Новосибирск: Наука, 2001. 154 с.

102. Психологические измерения: Сб. науч. Тр. / Под ред Л.Д. Мешалкина; М.: Мир, 1967. 196 с.

103. Редько, В. Н. Основания композиционного программирования / В. Н. Редько // Программирование. 1979. N 3 С. 3-13.

104. Редько, В. Н., Никитченко, Н. С. Композиционные аспекты програм-мологии / В. Н. Редько, Н. С. Никитченко // Кибернетика. 1987. № 5. С. 49-56.

105. Робинсон, А. Введение в теорию моделей и метаматематику алгебры / А. Робинсон . М.: Наука, 1967. 376 с.

106. Савельев, А. Я. Персональный компьютер для всех / А. Я. Савельев, Б. А. Сазонов, С. Э. Лукьянов. М.: Высшая школа, 1991. 191 с.

107. Самохвалов, К. Ф. Относительно конструктивные системы / К. Ф. Самохвалов // Языки спецификаций и логическое программирование. Вып. 124: Вычислительные системы. Новосибирск, 1988. С. 99-113.

108. Сазонов, В. Ю., Свириденко, Д. И. Абстрактная выводимость и теория областей / В. Ю. Сазонов, Д. И. Свириденко // Тез. докл. VII Всесоюзной конференции по математической логике. Новосибирск, 1984. С. 58.

109. Грани творчества. Секция информатики / В. Л. Селиванов, А. А. Мо-сквитин, А. А. Шрайнер, В. Н. Тимкин. Новосибирск, 1997. 38 с.

110. Свириденко, Д. И. О природе программирования / Д. И. Свитиденко // Математическое обеспечение ВС из микро-ЭВМ. Вып. 96: Вычислительные системы. Новосибирск, 1983. С. 51-74.

111. Свириденко, Д. И. Проект СИГМА. Цели и задачи / Д. И. Свириденкео // Логические методы в программировании. Вып. 133: Вычислительные системы. Новосибирск, 1990. С. 68-94.

112. Степанов, А. М. Экспериментальная база данных с запросами на естественном языке / А. М. Степанов. Новосибирск, 1978. С. 96-120.

113. Стерлинг, Л., Шапиро, Э. Искусство программирования на языке Пролог / Л. Стерлинг, Э. Шапиро. М.: Мир, 1990. 235 с.

114. Суппес, П., Зинес, Дж. Основы теории измерений / П. Суппес, Дж. Зинес // Психологические измерения. М.: Мир, 1967. С. 9-110.

115. Теория алгоритмов и программ. Т. 1-3. / Под ред. Я.М. Барздиня, Рига, 1974, 1975, 1977 (Латв. госуниверситет).

116. Толковый словарь по вычислительной технике и программированию (основные термины) / Под ред. М. Р. Шура-Бура. М.: Русский язык, 1988.222 с.

117. Тыугу, Э. X. Концептуальное программирование / Э. X. Тыугу. М.: Наука, 1984.256 с.

118. Успенский, В. А., Семенов, А. Л. Теория алгоритмов: ее основные открытия и приложения / В. А. Успенский, А. Л. Семенов // Алгоритмы в современной математике и ее приложениях. 4.1. Новосибирск, 1982. С. 99-342.

119. Филд, А., Харрисон, П. Функциональное программирование / А. Филд, П. Харрисон. М.: Мир, 1993. 637 с.

120. Фокс, Дж. Программное обеспечение и его разработка / Дж. Фокс. М.: Мир, 1985. 568 с.

121. Хендерсон, П. Функциональное программирование. Применение и реализация / П. Хендерсон. М.: Мир, 1983. 349 с.

122. Челпанов, Г. Введение в экспериментальную психологию / Г. Челпа-нов. М., 1916. 293 с.

123. Шенк, Р. Обработка концептуальной информации / Р. Шенк. М.: Энергия, 1980.360 с.

124. Шеннон, К. Работы по теории информации и кибернетики / К. Шеннон. М.: Издательство иностранной литературы, 1963. 830 с.

125. ЭВМ пятого поколения. Концепции, проблемы, перспективы / Под ред. Мотто-ока. М.: Финансы и статистика, 1984. 110 с.

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

127. Язык Пролог в пятом поколении ЭВМ: Сб. ст. / Сост. Н. И. Ильинский. М.: Мир, 1988. 501 с.

128. Analogical and Inductive Inferece / К. P. Jantke (Ed.) // Lect. Notes in Al. 1989. N397. 338 p.

129. Angluin, D.; Smith, С. H. Inductive inference: theory and methods // Computing Serveys. 1983. Vol. 15. P. 237-269.

130. Ansari, M.; Rusinkiewicz, M.; Ness, L. and Sheth, A. Executing Multidata-base Transactions. In Proceedings of the 25th International Conference on System Sciences, Hawaii, January 1992.

131. Apt, K. P.; van Emden, M. H. Contributions to the theory of logic programming//J. ASM. 1982. Vol. 29. P. 841-863.

132. Attie, P.; Singh, M.; Sheth, A. and Rusinkiewicz, M. Specifying and Enforcing Intertask Dependencies. In Proceedings of the 19th VLDB Conference, 1993.

133. Backus, J. Can programming be liberated from the von Neumann Style? A functional Style and its algebra of Programms.-Comm. ACM, 1978, Vol. 21. P. 613-641.

134. Bates, J. L.; Constable, R. L. Proofs as programs // ACM Trans. Programming Languages and Systems. 1985. Vol. 7, N1. P. 113-136.

135. Bauer, F. L.; Moller, B.; Partsch, H.; Pepper P. Formal program construction by transformations computer-aided, intuition-guided programming // IEEE Transactions on Software Engineering. 1989. Vol. 15. N 2. P. 165-180.

136. Bauer, E. I.; Wossner, H. Algorithmic Language and program development. //Berlin-Heidelberg-New York: Tpringer-Verlag, 1982. 497 p.

137. Beeson, M. Foundation of constructive mathematics // Mathematical Studies. Berlin: Springer Verlag. 1985.

138. Beeson, M. Proving programs and programming proofs // Logic, Methodology and Philosophy of Science.VII. Studies in Logic and Foundations of Mathematics. Vol. 114. Amsterdam: North-Holland, 1986. P. 51-82.

139. Blikle, A. MetaSoft Primer, Towards a Metalanguage for Applied Denota-tional Semantics // Lect. Notes in Comp. Sci. 1987. N 288. P. 81-86.

140. Booch, G.; Rumbaugh, J.; Jacobson I. The Unified Software Development Process. Addison-Wesley. 1999.

141. Burstall, R. M.; Darlngton, J. Transformation for developing recursive programs // J.ACM. 1977. Vol. 24. N 1. P. 44-67.

142. Clark, K. L.; Darlington, J. Algorithm classification trough synthesis // The Computer Journal. 1980. Vol. 23. N1. P. 61-65.

143. Clocksin, W. F.; Mellish C. T. Programming in Prolog. Berlin

144. Heidelberg-New York: Springer-Verlag, 1981. 327 p.

145. Constable, R. L. Constructive mathematics and automatic program writes //

146. Proc.of IFIP'71. Amsterdam: North-Holland, 1971. P. 229-233.

147. Constable, R. L.; Zlatin, D. R. The type theory of PL/CV3 //Lect. Notes in

148. Comp. Sci. 1982. Vol. 131. P. 72-93.

149. Dummett, M. Wang's paradox // Synthese. 1975. Vol. 30. P. 301-324. Dershowitz, N.; Plaisted, D. A. Equational programming. //Machine Intelligence. 1987. Vol. II. P. 21-56.

150. Dershowitz, N.; Sivakumar, G. Solving goals in equational languages // Lect. Notes in Comp. Sci. I987.N.308. P. 45-55.

151. Freivalds, R.; Kinber, E. B.; Wiehagen, R. Inductive inference from good examples //Lect. Notes in AI. 1989. N 397. P. 1-17.

152. Current trends in programming methodology. Vol. 4: Data structures. Englewood Cliffs, NY; Prentice-Hall, 1978. P. 80-114.

153. Gordon, M. J.; Milner, A. J.; Wadsworth, C. P. Edinburgh LCE // Lect. Notes in Comp.Sei. 1979. Vol. 78. 160 p.

154. Goto, S. Program synthesis from natural deduction proofs // Proc. of the 6th Internat.Joint Conf. on Articial Intelligence. Amsterdam, 1979. Vol. 2. P. 339-341.

155. Goncharov, S. S.; Sviridenko, D. I. Theoretical aspects of E-programming // Lect.Notes in Comp.Sci. 1986, Vol.215. P. 169-179.

156. Goncharov, S. S.; Ershov, Y. L.; Sviridenko, D. I. Semantic programming // roc. 10th World Congress Information Processing 86. Amsterdam. 1986. P. 1093-1100.

157. Hayashi, T. Extracting LISP-programs from proofs // PRIMS, Kyoto University. 1983. Vol.19, N I. P. 169-191.

158. Hogger, C. Introduction to logic programming. London: Academic Press, 1984. 278 p.

159. Hoffmann, C. M.; O'Donnell, M. J. Programming with equations // ACM Trans.Programming Languages and Systems. 1987. Vol. 4. N 1. P. 83-112.

160. Howard, W. A. The formulae-as-types notion of construction // Festschrift on the occasion of Curry's 80th birthday. N.Y., 1980. P. 83-112.

161. Kolmogoroff, A. Zur Deutung der intuitionistischen Logic. Heiting, Die formalin Regelen der intuitionistischen Logik, Sitzel. Pens. Anad. (1930), I, S. 42: II. S. 57; III.S.158.

162. Kowalski, R. Logic Programming. In: Information Processing 83 (IFIP-83). Amsterdam, North-Holland, 1983. P. 133-145.

163. Krishnakumar, N.; Sheth, A. Specifying Multi-system Workflow Applications in METEOR. Bellcore, Technical Memorandum, 1994.

164. Kzrywda, Andrzej Concurrent execution of transactional workflows. Master's thesis, University of Houston, May 1994.

165. Lloyd, J. W. Foundation of logic programming. Berlin: Springer-Verlag, 1984. 124 p.

166. Manna, Z.; Waldinger, R. Synthesis: dreams —» programs // IEEE Trans, on Software Eng. 1979. Vol. SE-5. N4. P. 294-328.

167. Martin-Lof, P. An intuitionistic theory of types: predicative part // Logic Coll.73. Amsterdam: North-Holland, 1975. P. 73-119.

168. Martin-Lof, P. Constructive mathematics and computer programming // Logic, Methodology and Philosophy of Science. VI. Amsterdam: North-Holland. 1982. P. 153-179.

169. McCartny, J.; Abrahams, P. W.; Edwards, D. J.; Hart, T. P.; Levin, M. I. LISP 1.5 programmers manual, MIT Press, Cambridge, MA. 1965.

170. Middelburg, C. A. VVSI: A language for structured VDM Specifications // Formal Aspects of Computing. 1989. Vol. 1. N 1. P. 115-136.

171. Moskvitin, A. A. User-oriented task specification languages // Of the Second international scientific conference in the republic of Kazakhstan. The informative technologies and control. Almaty, 1999. P. 225-227.

172. Nielsen, M.; Havelund, K.; Wagner, K. R.; George, Ch. The RAISE language, method and tools // Formal Aspects of Computing. 1989. Vol. 1. N l.P. 85-114.

173. O'Donnell, M. J. Equational logic as a programming language. Cambridge, Mass: MIT Press, 1985. 212 p.

174. Partsch, H. The CIP transformation system // Program transformation and program environment. Rept.Workshop NATO Adv.Res., Munich, 1983. Berlin, a.o. 1984. P. 305-322.

175. Privara, I. PROGRESS system podporujuci systematicku konstrukciu programu z formalnych specifikacii // Programovacie a databazove sys-temy, projekt G a projeckt Progress, Vyskumna praca Y, VUSKI-AR, Bratislava. 1984. P. 83-119.

176. Sato, M. Towards a mathematical theory of program synthesis I I Proc. Internal Joint Conf. on Artificial Intelligence. Tokyo. 1979. P. 757-762.

177. Scherlis, W. I.; Scott, D. S. First stepts towards inferential programming. In: Information Processing 83 (IFIP-83). Amsterdam, Worth-Holland, 1983. P. 199-212.

178. Sheth, A. and Kalinichenko, L. Information Modeling in Multidatabase Systems: Beyond Data Modeling. // In Proceedings of the 1st International Conference on Information and Knowledge Management, November 1992.

179. The Munich project CIP, vol. 1: The wide spectrum language CIP-L // Lect. Notes in Сотр. Sci. 1985. Vol. 183. 276 p.

180. Tomlinson, C.; Attie, P.; Cannata, P.; Meridith, G.; Sheth, A.; Singh, M.; Woelk, D. Workflow Support in Carnot. In Data Engineering Bulletin, June 1993. P. 33-36.

181. Tyugu, E. H.; Matskin, M. В.; Penjam, J. E.; Fomois, P. U. NUT an object-oriented language // Computer and Artificial Intelligence. 1986. Vol. 5. N6. P. 521-542.

182. VDM A formal method at work / Bjorner D., Jones С. В., MacAirchin-nigh M., Neuhold E. J. (eds) // Lect. Notes in Сотр. Sci. 1987. N 252.

183. Wirth, N. Program development by step-wise refinement // Commun.ACM. 1974. Vol. 14. P. 221-227.

184. Warren, D. H. D. Logic Programming and Compiler Writing, Software-Practice and Experience 10, Number II, 1980. P. 97-125.

185. Zadeh, L. A. Fuzzy logic = computing with words // IEEE Trans, on Fuzzy Systems, 1996. Vol. 4. 2. P. 103-111.

186. Базовый курс информатики: Алгоритмизация и программирование / Сост. С. С. Гончаров, А. А. Москвитин, Ю. И. Молородов и др.; НГУ. Новосибирск, 2003. 100 с.

187. Москвитин, А.А. Некоторые особенности заданного подхода в информатике / А. А. Москвитин // Труды Байкальской Всероссийской конференции с международным участием «Информационные и математические технологии». Иркутск: ИСЭМ СО РАН, 2004. с. 195-205.

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