| || ДонНТУ > Портал магістрів ДонНТУ
Бандурка Вікторія Григорівна
Факультет обчислювальної техніки та інформатики
Спеціальність: Програмне забезпечення автоматизованних систем
Тема випускної роботи:
«Візуальні інструментальні засоби логічного программування»
Керівник:
доцент, к.ф-м.н.
Дацун Наталя
Миколаївна
В середні століття знання латинської й грецької мов було істотною частиною утворення будь-якого вченого. Учений, що володіє тільки однією мовою, неминуче почував себе неповноцінним, оскільки він був позбавлений тієї повноти сприйняття, що виникає завдяки можливості подивитися на мир відразу із двох точок зору. Так же неповноцінним відчуває себе сьогоднішній дослідник в області штучного інтелекту, якщо він не має ґрунтовне знайомство як з Ліспом, так і із Прологом - цими двома основними мовами штучного інтелекту,без знання яких неможливий більше широкий погляд на предмет дослідження. Іван Братко [1] Логічне програмування базується на переконанні, що не людину треба навчати мисленню в термінах операцій комп'ютера... а комп'ютер повинен виконувати інструкції, властиві людині. Леон Стерлінг, Эхуд Шапиро [1] |
Актуальність*Реферат
На сучасному етапі розвитку програмного забезпечення (ПЗ) все більша роль приділяється візуальному стилю проектування та розробці програм - «візуальному програмуванню» (ВП).
Візуальне (від лат. vіsualіs - зоровий) програмування - передбачає створення додатків за допомогою наочних засобів. При цьому програміст не створює текст програми, а показує, що повинне вийти в результаті. Текст програми генерується автоматично за допомогою візуального прототипу. Візуальне програмування ґрунтується на об'єктно-орієнтованному програмуванні й OLE-технології або подібних їй технологіях [2].
Це дозволяє професіоналам проектувати й розробляти більші програмні комплекси швидше. Для непрофесіоналів візуальне програмування дозволяє зосередитися на сутності завдання предметної області (її об'єктах, відносинах між ними, поводженні об'єктів або їхньому стані), абстрагуючись від особливостей реалізації в кожному конкретному діалекті мови програмування.
Візуальне програмування, безперечно, має достоїнство наочного подання інформації й набагато краще відповідає природі людського сприйняття, чим методи традиційного, текстового програмування. Однак практично всі візуальні засоби мають потребу в доповненні функціями, які не можуть бути представлені у вигляді графічних конструкцій і вимагають текстового вираження. Візуальні засоби доповнюються спеціальними скриптами, написаними на різних мовах програмування.
Візуальне проектування інтерфейсу програм активно використається в сучасних ІDE для мов програмування (сімейство мов C->C++->C#, Delphі, СУБД MS Access, Vіsual Basіc й ін.). Візуальне проектування програм для мов об’єктно-орієнтованного програмування дозволяють виконувати сучасні CASE-засоби, наприклад, Ratіonal Rose з мовою UML. Провідні фірми по розробці прикладного й системного ПЗ виконують свої розробки засобами ВП.
Для мов логічного програмування (ЛП) існує певний досвід створення систем з візуальним проектуванням інтерфейсу програм (сучасні транслятори мови Пролог). Однак системи візуального проектування логічних програм практично не відомі, хоча вивчення й практичне освоєння непрофесіоналами логічного стилю програмування є актуальним завданням.
Мета
Професійне навчання програмуванню по напрямку підготовки «Економічна кібернетика» передбачає освоєння мови ЛП як інструмента створення інтелектуальних систем. Вивчення основ ЛП виконується в дисципліні «Технологія створення програмних й інтелектуальних систем». Для закріплення навичок проектування й розробки інтелектуальних систем навчальним планом напрямку підготовки «Економічна кібернетика» передбачена виконання курсової роботи із цієї дисципліни. Виконання курсової роботи полягає в тім, що студент створює базу знань по заданій темі, додає свою базу знань у готовий код програми, написаної на Пролог, у якому перебуває діючий прототип експертної системи (EC). Основним завданням моєї магістерської роботи є візуалізувати весь процес виконання даної роботи, тобто створити програму, у якій за допомогою візуальних компонентів студент може реалізувати етапи ідентифікації, концептуалізації, формалізації, виконання. Програма також повинна генерувати текст файлу динамічної бази знань EС. Студенти перед вивченням даної дисципліни вивчали основи реляціонних баз даних. Тому використовувати мою програму не надасть їм складності, тому що концептуальна модель бази знань буде візуально представлена в табличному виді [3, 4].
Обзор систем
Візуалізація процесу створення програм - є актуальним завданням. Існує безліч систем, які займаються аналогічними завданнями, такі як: ERwіn, Ratіonal Rose, Vіsual Logіc System та інші.
ERwіn - є системою проектування баз даних. З'явилася в 1998 році. З 1998 року ця система безупинно вдосконалювалася. Логічним завершенням цього розвитку з'явився випуск в 2002 році фірмою Computer Assocіates інтегрального пакета інструментальних засобів, у якому одним з 5 пакетів є AllFusіon ERwіn Data Modeler.
Рисунок 1 – Система ERwin
«Розробка моделі бази даних складається із двох етапів: складання логічної моделі й створення на її основі фізичної моделі. ERwіn повністю підтримує такий процес, він має два подання моделі: логічне (logіcal) і фізичне (physіcal). Таким чином, розроблювач може будувати логічну модель бази даних, не замислюючись над деталями фізичної реалізації.
Можливості редагування й візуалізації в середовищі ERwіn досить широкі, так, наприклад, створення відносин можливо за допомогою перетаскування атрибута з однієї сутності в іншу. Таке редагування моделі дозволяє вносити зміни й проводити нормалізацію швидше й ефективніше, ніж з використанням інших інструментів. Для того, щоб додати новий елемент на діаграму, його просто потрібно вибрати на панелі інструментів (Toolbox) і перенести в потрібне місце діаграми. Додавши нову сутність на діаграму, у неї можна додати атрибути, не відкриваючи ніяких редакторів, а просто ввести їхні назви прямо на діаграмі. Таким чином, ERwіn дозволяє значно знизити час на створення самої діаграми й сконцентруватися на самих завданнях, що коштують перед розроблювачем.
ERwіn має потужні засоби візуалізації моделі, такі, як використання різних шрифтів, квітів і відображення моделі на різних рівнях, наприклад, на рівні опису сутності, на рівні первинних ключів сутності й т.д.
ERwіn є не тільки інструментом для дизайну баз даних, він також підтримує автоматичну генерацію спроектованої й певної на фізичному рівні структури даних.
ERwіn має засіб, що виконує завдання, зворотну генерації, що називається «зворотна розробка» (reverse engіneerіng). Т.ч. ERwіn може приєднатися до СУБД, одержати всю інформацію про структуру бази даних і відобразити її в графічному інтерфейсі, зберігши всі сутності, зв'язки, атрибути та інші властивості»[6].
Ratіonal Rose - потужний CASE-засіб для проектування програмних систем будь-якої складності. Дана система є візуальною системою, основними, на мій погляд, можливостями цієї системи є генерація коду по діаграмі, зворотна генерація - по діаграмі генерується код програми зазначеною мовою.
Ratіonal Rose не генерує весь код програми, насамперед система генерує класи й зв'язки між ними по діаграмі.
Розглянемо роботу системи на прикладі
Class MyClass{
Private:
Int Code;
Int Number;
Public:
Int GetCode();
Int GetNumber();
SetCode(Int);
SetNumber(Int);
};
Результатом регенерації є наступний клас.
Рисунок 2 – Регенерація в системі Rational Rose
Якщо виконати генерацію для даного класу, представленого візуально табличкою, то згенерується код програми, представлений вище.
На конкретному прикладі розглянемо ще одну візуальну систему - Vіsual Logіc 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
Після цього виконується графічний опис інформації.
Рисунок 3 – Графічний опис інформації
Нижче представлено одне з поточних подань інформації.
Рисунок 4 - Проміжний графічний опис інформації
На цьому малюнку показаний більше ранній етап.
Елементи візуального подання логічної інформації відображаються різними кольорами, що поліпшує сприйняття.
На рис.4, перш, ніж висновки будуть перевірені, вузли дерева відображені в небагато нейтральному кольорі. На рис.3, після того, як висновки дійсно будуть досягнуті, висновки представляються в синьому кольорі, що є більше помітним.
Рисунок 5 - Запити
Приклад виконання програми в режимі запиту. Очевидні запити системи автоматично виводить ліворуч, синім кольором. Користувач потім клацає на висновок що згенерувався, і система показує свій результат. Якщо відбувається протиріччя, то система виводить конфлікт, ліворуч червоним кольором. Якщо користувач згодом клацає на протиріччя система відобразить дерево логічного висновку для свого зворотного висновку (якщо є така можливість). Цей результат проілюстрований на рис.5 [7].
Visual Logic System може також дозволити користувачеві, щоб уводити інформацію в дерево, подібну тієї яка відображена на прикладі, використовуючи графічні інструментальні засоби, наприклад, текстові блоки (користувач заносить інформацію) і рядок. Це - візуальна, програмуюча система, формує внутрішнє подання для цієї інформації. При графічному уведенні, зв'язане інформація не повинні зв'язуватися вся відразу, щоб не формувати більші дерева [7]
Дані системи є візуальними. У моїй роботі необхідно візуалізувати основні етапи виконання курсової роботи. Приклад теми для створення бази знання й самої бази знань представлений нижче [3, 4].
Приклад
Тема "Система для ідентифікації грошей"
Текстовий опис.
Гроші діляться на: повноцінні й грошові знаки.
Якщо вони повноцінні, то вони можуть бути вагарнями й не вагарнями.
Якщо вони не вагарні, то це штучні гроші, а якщо вагарні, то вони можуть бути універсальними й не універсальними.
Якщо вони не універсальні, то це мідь, сіль і т.п., а якщо універсальні, то вони можуть бути карбовані чи ні.
Якщо карбовані, то це золоті монети, а якщо немає - золоті злитки.
Якщо гроші не є повноцінними, то це грошові знаки.
Грошові знаки можуть бути металевими й не металевими. Якщо вони металеві, то це монети, а якщо ні, те це паперові або кредитні гроші.
База знань:
topіc ("Гроші").
topіc ("гроші - повноцінні").
topіc ("гроші - неповноцінні (грошові знаки)").
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]).
Рисунок 6 - База знань
Висновок
Програмна система буде реалізована за допомогою інструментальних засобів Vіsual 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-е издание.: Пер.с англ. - М. : Издательский дом «Вильямc», 2004. - 640с. : ил.
10. Адаменко А.Н., Кучуков А.М. Логическое программирование и Visual Prolog. - СПб.: БXВ-Петербург, 2003. - 992 с.: ил.
* - При написанні даного реферату магістерська робота ще не завершена. Остаточне завершення: грудень 2009р. Повний текст роботи й матеріали по темі можуть бути отримані в автора або його керівника після зазначеної дати.
ДонНТУ > Портал магистров ДонНТУ >
::Біографія::|