| || ДонНТУ > Портал магистров ДонНТУ

 

Отчет о поискеБиблиотекаСсылкиБиографияИндивидуальное задание

 

Магистр ДонНТУ Бандурка Виктория Григорьевна

Бандурка Виктория Григорьевна

Факультет вычислительной техники и информатики
Специальность

Программное обеспечение автоматизированных систем

Тема выпускной работы:

«Визуальные инструментальные средства логического программирования»

Научный руководитель: доцент, к.ф-м.н. Дацун Наталья Николаевна


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

Иван Братко [1]

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

 

                                                                                                    Леон Стерлинг, Эхуд Шапиро [1]

 

*Автореферат

Актуальность

На современном этапе развития программного обеспечения (ПО) все большая роль отводится визуальному стилю проектирования и разработке программ – «визуальному программированию» (ВП).

«Визуальное (от лат. visualis - зрительный) программирование – предусматривает создание приложений с помощью наглядных средств. При этом программист не создает текст программы, а показывает, что должно получиться в результате. Текст программы генерируется автоматически с помощью визуального прототипа. Визуальное программирование основывается на объектно-ориентированном программировании и OLE-технологии или подобных ей технологиях»[2].

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

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

Визуальное проектирование интерфейса программ активно используется в современных IDE для языков программирования (семейство языков C->C++->C#, Delphi, СУБД MS Access, Visual Basic и пр.). Визуальное проектирование программ для языков объектно-ориентированного программирования позволяют выполнять современные CASE-средства, например, Rational Rose с языком UML. Ведущие фирмы по разработке прикладного и системного ПО выполняют свои разработки средствами ВП.

Для языков логического программирования (ЛП) существует определенный опыт создания систем с визуальным проектированием интерфейса программ (современные трансляторы языка Пролог). Однако системы визуального проектирования логических программ практически не известны, хотя изучение и практическое освоение непрофессионалами логического стиля программирования является актуальной задачей.

 

 

Цели

 

Профессиональное обучение программированию по направлению подготовки «Экономическая кибернетика» предусматривает освоение языка ЛП как инструмента создания интеллектуальных систем. Изучение основ ЛП выполняется в дисциплине «Технология создания программных и интеллектуальных систем». Для закрепления навыков проектирования и разработки интеллектуальных систем учебным планом направления подготовки «Экономическая кибернетика» предусмотрено выполнение курсовой работы по этой дисциплине [3, 4]. Выполнение курсовой работы заключается в том, что студент создает базу знаний по заданной теме, добавляет свою базу знаний в готовый код программы, написанной на  Пролог, в котором находится действующий прототип экспертной системы (ЭС). Основной задачей моей магистерской работы является визуализировать весь процесс выполнения данной работы. Т.е. создать программу, в которой студент может реализовать этапы идентификации, концептуализации, формализации, выполнения и тестирования. Выполнение всех этапов работы будет выполняться с помощью визуальных компонентов.  Программа также должна генерировать текст файла динамической базы знаний ЭС. Студенты перед изучением данной дисциплины изучали основы реляционных баз данных. Поэтому использовать мою программу не составит им сложности, так как концептуальная модель базы знаний будет визуально представлена в табличном виде.

 

Технология разработки ЭС

 

Рисунок 1 – Технология разработки ЭС

(10 кадров, задержка между кадрами 1с., размер 705х509 пикселей,объем 18.4 Кб, источник [5])

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

 

Задачи

 

Задачи, которые необходимо выполнить, вытекают из цели работы.

 

Основные задачи:

1.Анализ современных Visual-систем с целью реализации визуального конструирования программ для языков ЛП.

    1.1 Анализ инструментальных средства для описания предметной области (концептуальная модель).

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

     1.3 Анализ визуализации целей.

     1.4 Анализ визуальной среды разработки (IDE).

2.Определение соответствия между элементами современных Visual-систем и элементами языков логического программирования, которые должны быть реализованы визуальными средствами.

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

     3.1 Алфавит языка.

     3.2 Лексемы языка.

     3.3 Синтаксис языка.

     3.4 Семантика языка.

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

 

Обзор систем

Визуализация процесса создания программ является актуальной задачей. Существует множество систем, которые занимаются аналогичными задачами. Такими системами являются система ERwin, Rational Rose, Visual Logic System и др.

ERwin - система проектирования баз данных. Появилась в 1998 году. С 1998 года эта система непрерывно совершенствовалась. Логическим завершением этого развития явился выпуск в 2002 году фирмой Computer Associates интегрального пакета инструментальных средств,  в котором одним из 5 пакетов является AllFusion ERwin Data Modeler.

 

  Система ERwin

Рисунок 2 – Система ERwin

 

«Разработка модели базы данных состоит из двух этапов: составление логической модели и создание на ее основе физической модели. ERwin полностью поддерживает такой процесс, он имеет два представления модели: логическое (logical) и физическое (physical). Таким образом, разработчик может строить логическую модель базы данных, не задумываясь над деталями физической реализации.        Возможности редактирования и визуализации в среде ERwin весьма широки, так, например, создание отношений возможно при помощи перетаскивания атрибута из одной сущности в другую. Такое редактирование модели позволяет вносить изменения и проводить нормализацию быстрее и эффективнее, чем с использованием других инструментов. Для того, чтобы добавить новый элемент на диаграмму, его просто нужно выбрать на панели инструментов (Toolbox) и перенести в нужное место диаграммы. Добавив новую сущность на диаграмму, в нее можно добавить атрибуты, не открывая никаких редакторов, а просто ввести их названия прямо на диаграмме. Таким образом, ERwin позволяет значительно снизить время на создание самой диаграммы и сконцентрироваться на самих задачах, стоящих перед разработчиком.

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

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

        ERwin имеет средство, выполняющее задачу, обратную генерации, что называется «обратная разработка» (reverse engineering). Т.е. ERwin может присоединиться к СУБД, получить всю информацию о структуре базы данных и отобразить ее в графическом интерфейсе, сохранив все сущности, связи, атрибуты и прочие свойства»[6].

       Rational Rose - мощное CASE-средство для проектирования программных систем любой сложности. Данная система является визуальной системой, основными, на мой взгляд, возможностями этой системы являются генерация кода на указанном языке по диаграмме, обратная генерация – по коду программы на указанном языке создается диаграмма.

         Rational Rose не генерирует весь код программы, прежде всего система генерирует классы и связи между ними по диаграмме.

         Рассмотрим работу системы на примере

Class MyClass{
    Private:
         Int Code;
         Int Number;
    Public:
         Int GetCode();
         Int GetNumber();
         SetCode(Int);
         SetNumber(Int);
};

Результатом регенерации является следующий класс.

  Генерация класса

Рисунок 3 – Регенерация в системе Rational Rose

 

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

        Рассмотрим еще одну визуальную систему - Visual Logic System. Эта система предназначена для визуализации логической информации. На основе логической информации строится дерево, с помощью визуальных компонентов. Рассмотрим работу программы на следующем примере. Установлены показатели о вине или невиновности в уголовном испытании. Пример предполагает сравнивать различные пути логической информации, чтобы показать некоторые преимущества визуального метода. Сначала у нас есть текстовая информация, которая словесно описывает связи. Далее строится формальное логическое описание (представлено ниже)[7].

motive & opportunity & forensic_evidence --> guilty 
anger & jealous --> motive 
anger & possessive --> motive 
anger 
jealous or possessive 
nearby --> opportunity 
nearby 
alibi --> ~ opportunity 
observed_elsewhere --> alibi 
observed_elsewhere 
finger_prints_match --> forensic_evidence 
finger_prints_match
 
        

       После этого выполняется графическое описание информации с помошью визуальных компонент.

  Представление информации

Рисунок 4 – Графическое описание информации

           Ниже представлено одно из текущих представлений информации.

  Представление информации

Рисунок 5 – Промежуточное графическое описание информации

 

     На этом рис.5 показан более ранний этап.

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

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

  Запросы

Рисунок 6 – Запросы

       Пример выполнения программы в режиме запроса. Возможные варианты запросов (evident) система автоматически выводит слева синим цветом. Пользователь затем щелкает на сгенерированный вывод, и система показывает свой результат. Если в процессе доказательства происходит противоречие, то система выводит слева красным цветом список conflicted. Если пользователь впоследствии щелкает на противоречие, то система отобразит дерево логического вывода для своего обратного вывода (если есть такая возможность). Этот результат проиллюстрирован на рис.6 [7].

        Visual Logic System позволяет пользователю вводить информацию в дерево, подобную той, которая отображена на примере. Для этого используються графические инструментальные средства, например, текстовые блоки и строки. При графическом вводе информационные блоки не должны связываться все сразу, чтобы не формировать большие деревья [7].

     В моей работе необходимо визуализировать основные этапы разработки ЭС (идентификации, концептуализации, формализации, выполнения, тестирования). Пример темы для курсовой работы, её текстовое описание предметной области и  база знаний, построенная на этапе идентификации и концептуализации, представлены ниже [3, 4].

Пример

Тема «Система для идентификации денег»

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

     Деньги делятся на полноценные и денежные знаки.

     Если они полноценные, то они могут быть весовыми и не весовыми.

   Если они не весовые, то это штучные деньги, а если весовые, то они могут быть универсальными и не универсальными.

     Если они не универсальные, то это медь, соль и т.п., а если универсальные, то они могут быть чеканенные или нет.

     Если чеканенные, то это золотые монеты, а если нет - золотые слитки.

     Если деньги не являются полноценными, то это денежные знаки.

    Денежные знаки могут быть металлическими и не металлическими. Если они металлические, то это монеты, а если нет, то это бумажные или кредитные деньги[3, 4].

 База знаний на языке Пролог показана на рис.7.

topic ("Деньги").

topic ("деньги - полноценные").

topic ("деньги - неполноценные (денежные знаки)").

cond(1, "полноценные").

cond(2, "неполноценные").

cond(3, "весовые").

cond(4, "не весовые").

cond(5, "универсальные").

cond(6, "не универсальные").

cond(7, "чеканенные").

cond(8, "начеканенные").

cond(9, "металлические").

cond(10, "неметаллические").

rule (1, "Деньги", "деньги - полноценные", [1]).

rule (2, "Деньги", "деньги - неполноценные (денежные знаки)", [2]).

rule (3, " деньги - полноценные ",  "золотые монеты", [3, 5, 7]).

rule (4, " деньги - полноценные ",  "золотые слитки", [3, 5, 8]).

rule (5, " деньги - полноценные ",  "медь, соль и т.п.", [3, 6]).

rule (6, " деньги - полноценные ",  "штучные деньги ", [4]).

rule (7, " деньги - не полноценные (денежные знаки)"), "монеты", [9]).

rule (8, " деньги - не полноценные (денежные знаки)"), "бумажные или кредитные деньги", [10])

 

Рисунок 7 -  База знаний на языке Пролог

 

Заключение

Программная система будет реализована с помощью инструментальных средств Visual Prolog. Язык программирования Prolog имеет свои преимущества перед другими процедурными языками программирования. Одними из них являются:

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

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

- Пролог «заставляет» программиста начинать с хорошо структурированного описания задачи, поэтому он может использоваться и как средство создания спецификации, и как средство реализации продукта[8, 9, 10].

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

 

Литература

1. Чернышов О.Г. ПРОграммирование в ЛОГике: Учеб.пособие. - Омск: Изд-во ОмГУ, 2004. - 64с.

2. Визуальное программирование [Электронный ресурс] /Википедия - свободная энциклопедия, - http://ru.wikipedia.org/wiki/Визуальное_программирование

3. Курс: Логическое программирование и базы данных. /Центр дистанционного обучения ДонНТУ, - http://temp1.donntu.ru/course/category.php?id=3

4. Курс: Технология создания программных и интеллектуальных систем /Центр дистанционного обучения ДонНТУ, -  http://temp1.donntu.ru/course/view.php?id=48

5. Попов Э.В., Фоминых И.Б., Кисель Е.Б., Шапот М.Д. Статические и динамические экспертные системы: Учеб. пособие. - М.: Финансы и статистика, 1996. - 320с.: ил.

6. Кинжалин A. Моделирование баз данных при помощи ERwin [Электронный ресурс] / Редакция «Компьютер-Информ», - http://www.ci.ru/inform12_98/astr1.htm

7. Fisher J.  Brief Introduction to Visual Logic /California State Polytechnic University, Pomona, - http://www.csupomona.edu/~jrfisher/www/logic_topics/visual_logic/vl_intro/vl_intro.html

8. Суслов А.В., Наумов Р.В. Введение в язык Prolog: основы синтаксиса и примеры использования (статья) [Электронный ресурс]/Computer technologies department, -http://rain.ifmo.ru/~suslov/prolog/introduction_to_prolog.htm

9. Братко И. Алгоритмы искусственного интеллекта на языке PROLOG, 3-е издание.: Пер.с англ. - М. : Издательский дом «Вильям, 2004. - 640с. : ил.

10. Адаменко А.Н., Кучуков А.М. Логическое программирование и Visual Prolog. - СПб.: БXВ-Петербург, 2003. - 992 с.: ил.


 *  --- При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: декабрь 2009г. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.


 

ДонНТУ > Портал магистров ДонНТУ >

::Биография::|::Библиотека::|::Ссылки::|::Отчет о поиске::|::Индивидуальное задание::