Экспертная система для автоматизации построения компонентов системы Moodle

Автор работы: Пользователь скрыл имя, 07 Декабря 2013 в 19:24, дипломная работа

Краткое описание

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

Содержание

Введение 5
Основная часть 7
1 Специальная часть 7
1.1 Аналитический обзор системы Moodle 7
1.1.1 О системе Moodle 7
1.1.2 Преимущества Moodle 9
1.1.3 Экспертная система 11
1.2 Обзор существующих экспертных систем в данной предметной области 14
1.3 Постановка задачи на разработку экспертной системы 16
1.4 Анализ программного построения существующих модулей в системе Moodle 17
1.4.1 Содержимое папки базового модуля 18
1.4.2 Описание файлов 19
1.5 Разработка структурной схемы экспертной системы 21
1.6 Выбор программных средств для реализации экспертной системы 25
1.6.1 Perl 26
1.6.2 Delphi 27
1.6.3 Python 28
1.6.4 PHP: Hypertext Preprocessor 29
1.6.5 Сводная таблица сравнения языков программирования 31
1.7 Создание базы знаний экспертной системы 32
1.8 Разработка дерева вопросов 33
1.9 Выбор модели представления знаний 34
1.10 Выбор алгоритма поиска решений 37
1.11 Оценка эффективности системы 39
2 Экономическая часть 40
2.1 Расчет стоимости разработки экспертной системы 41
2.2 Расчет экономического эффекта экспертной системы 45
2.3 Показатели эффективности 50
3 Защита информации 52
3.1 Анализ возможных угроз безопасности информации в экспертной системе 53
3.2 Выбор средств защиты информации 56
Заключение 58
Приложения 59
Список использованной литературы 64

Прикрепленные файлы: 1 файл

Диплом прядкин.doc

— 589.50 Кб (Скачать документ)
  •  

     

     

    • 1.6.2 Delphi

    Delphi – это императивный, структурированный, объектно-ориентированный язык программирования, диалект Object Pascal. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal. Начиная с 2007 года уже язык Delphi начал жить своей самостоятельной жизнью и претерпевал различные изменения, связанные с современными тенденциями развития языков программирования.

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

    Но всё же данный язык программирования имеет ряд недостатков. Главный недостаток  - статическое присоединение библиотеки VCL и компонентов к исполняемому файлу. Другой недостаток состоит в том, что в используемой в Delphi парадигме форм вся информация о форме, включая свойства, настройки компонентов, значения по умолчанию, хранится в exe-файле, причем не оптимальным образом. Кроме того, Delphi имеет малое число параметров оптимизации кода[5].

  •  

     

  •  

    • 1.6.3 Python

    Python является интерпретируемым, изначально объектно-ориентированным языком программирования. Он чрезвычайно прост и содержит небольшое число ключевых слов, вместе с тем очень гибок и выразителен. Это язык более высокого уровня нежели Pascal, C++ и, естественно C, что достигается, в основном, за счет встроенных высокоуровневых структур данных.

    Несомненным достоинством является то, что интерпретатор Python реализован практически  на всех платформах и операционных системах.

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

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

    Но немаловажным недостатком данного  языка является сравнительно невысокая скорость выполнения Python-программы, что обусловлено ее интерпретируемостью[6].

  •  

     

     

  •  

     

     

     

     

     

    • 1.6.4 PHP: Hypertext Preprocessor

    а) Традиционность. Код РНР очень похож на тот, который встречается в типичных программах на С или Pascal. Это заметно снижает начальные усилия при изучении РНР. PHP — язык, сочетающий достоинства Perl и Си и специально нацеленный на работу в Интернете, язык с универсальным и ясным синтаксисом.

    б) Простота. Сценарий РНР может  состоять из 10 000 строк или из одной строки — все зависит от специфики задачи. Механизм РНР просто начинает выполнять код после первой экранирующей последовательности (). Если код имеет правильный синтаксис, он исполняется в точности так, как указал программист.

     в) Эффективность. Очень важное преимущество PHP заключается в его «движке». «Движок» PHP не является ни компилятором, ни интерпретатором. Он является транслирующим интерпретатором. Такое устройство «движка» PHP позволяет обрабатывать сценарии с достаточно высокой скоростью.

    д) Безопасность. РНР предоставляет  в распоряжение разработчиков и  администраторов гибкие и эффективные  средства безопасности, которые условно  делятся на две категории: средства системного уровня и средства уровня приложения.

    1) Средства безопасности системного уровня

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

    2) Средства безопасности уровня  приложения 

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

    е) Гибкость. Поскольку РНР не содержит кода, ориентированного на конкретный web-сервер, пользователи не ограничиваются определенными серверами (возможно, незнакомыми для них). Apache, Microsoft IIS, Netscape Enterprise Server, Stronghold и Zeus — РНР работает на всех перечисленных серверах. Поскольку эти серверы работают на разных платформах, РНР в целом является платформенно-независимым языком и существует на таких платформах, как UNIX, Solaris, FreeBSD и Windows 95/98/NT/2000/XP/2003.

    ж) Бесплатное распространение. Принятие стратегии Open Source и бесплатное распространение  исходных текстов РНР оказало  неоценимую услугу пользователям[7].

     

     

     

     

     

     

     

     

    • 1.6.5 Сводная таблица сравнения языков программирования

    В таблице 2 приведено сравнение  основных характеристик рассмотренных  языков программирования.

     

      Таблица 2 – Сравнение языков программирования

    Параметры

                                          Язык

    Объектно-ориентиро-ванный

    Высокая скорость выполнения программы

    Бесплатная лицензия

    Расширяемость языка

    Простота изучения

    Perl

    -

    +

    +

    -

    -

    Delphi

    +

    -

    -

    -

    +

    Python

    +

    -

    +

    +

    -

    PHP

    +

    +

    +

    +

    +


     

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

     

     

     

     

     

     

     

     

     

     

     

     

     

    • 1.7 Создание базы знаний экспертной системы

    База знаний экспертной системы  представлена в виде трех таблиц в базе данных в phpMyAdmin. Таблица «polls» содержит вопросы экспертной системы, в таблице «answers» представлены варианты ответов на вопросы, а результаты выбранных ответов на вопросы, представляющие собой код, и комментарии к ним находятся в таблице «votes».

    Все результаты ответов с комментариями  записываются в соответствующие файлы: «db/install.xml», « db/upgrade.php», «index.php», «lang/en_utf8/help/newmodule/index.html», «lang/en_utf8/help/newmodule/mods.html», «lang/en_utf8/newmodule.php», «lib.php», «mod_form.php», «README.txt», «version.php», «view.php».

    После окончания работы с экспертной системой все эти файлы помещаются в архив.

    Схема базы данных представлена на рисунке 4.

    Рисунок 4 – база данных экспертной системы

     

     

     

     

    • 1.8 Разработка дерева вопросов 

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

    Всего в системе 35 вопросов. На рисунке 5 представлена часть этого дерева – 16 вопросов. Вопросы сгруппированы таким образом, что ответы на вопросы определенной группы заносятся в соответствующий ей файл.

    Рисунок 5 – Дерево вопросов экспертной системы

     

          • 1.9 Выбор модели представления знаний

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

    а) Представление знаний в виде семантических сетей.

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

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

    б) Представление знаний в виде фреймов.

    Фреймы – это формализм для описания структурированных занятий, причем такой, что удаление из описания любой его части приводит к потере определяющих суть данного понятия свойств. Также фреймом называется структура данных для представления некоторого концептуального объекта. Фрейм имеет имя, служащее для идентификации описываемого им понятия, и содержит ряд описаний — слотов, с помощью которых определяются основные структурные элементы этого понятия. За слотами следуют шпации, в которые помещают данные, представляющие текущие значения слотов. Слот может содержать не только конкретное значение, но также имя процедуры, позволяющей вычислить это значение по заданному алгоритму.

    в) Представление знаний в виде системы продукций.

    В этой модели знания представляются в виде совокупности правил типа «ЕСЛИ — ТО». Любое продукционное правило, содержащееся в БЗ, состоит из двух частей: антецедента и консеквента. Антецедент представляет собой посылку правила (условную часть) и состоит из элементарных предложений, соединенных логическими связками И, ИЛИ. Консеквент (заключение) включает одно или несколько предложений, которые выражают либо некоторый факт, либо указание на определенное действие, подлежащее исполнению. Экспертные системы, основанные на продукционной модели, не располагают процедурами, которые могли бы построить в пространстве состояний сразу весь путь решения задачи. Траектория поиска решения полностью определяется данными, получаемыми от пользователя в процессе логического вывода.

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

     

    Таблица 3 – Сравнение моделей  представления знаний

    Характеристики предметной области

     

     

    Модели представления  знаний

    Небольшой объем знаний

    Слабо-формализованные  знания

    Высокая степень детализации знаний

    Независимость отдельных  элементов знаний

    Семантические сети

    -

    -

    -

    +

    Фреймы

    -

    -

    +

    -

    Система продукций

    +

    +

    +

    +


     

    На основе анализа предметной области  и моделей представления знаний можно сделать следующие выводы:

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

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

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

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    • 1.10 Выбор алгоритма поиска решений

    Основные стратегии поиска решений в продукционных системах:

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

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

    Механизм вывода выполняет две основные функции:

    - просмотр существующих в рабочей памяти (РП) фактов и правил из базы правил, а также добавление в РП новых фактов;

    Информация о работе Экспертная система для автоматизации построения компонентов системы Moodle