Автор работы: Пользователь скрыл имя, 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
Развитие и совершенствование дистанционных систем обучения обычно производится разработчиками данных систем. Дистанционная система обучения Moodle имеет открытый исходный код, благодаря чему разработчиком, создателем новых компонентов системы может стать любой человек, обладающий знаниями, правилами построения модуля. Поэтому перед начинающими разработчиками возникает проблема отсутствия знаний в области специфики системы Moodle. Их можно получить, изучив разные интернет-источники, на что потребуется большое количество времени.
Поэтому необходимо уменьшить временные затраты на разработку программных компонентов и получить оптимизированный код нового модуля в системе Moodle с помощью разработки экспертной системы. Для этого нужно проанализировать программное построение существующих модулей системы, разработать структурную схему экспертной системы, выбрать программные средства для ее реализации, создать базу знаний, дерево вопросов, а также выбрать модель представления знаний и алгоритм поиска решений.
Таким образом, система должна содержать знания, необходимые для построения типового модуля системы Moodle, интерфейс системы должен быть построен для специалиста, плохо знакомого с особенностями построения модулей и результатом работы системы должен быть корректно написанный программный код.
"Moodle" — это акроним слов
"Modular Object-Oriented Dynamic Learning Environment" (Модульная
объектно-ориентированная
В базе модулей и расширений Moodle представлено более чем 360 модулей, стандартных и дополнительных. Стандартными модулями являются модули Ресурс, Форум, Задание, Тест, Тест HotPotatoes, Лекция, Глоссарий, Wiki, База данных, Чат, пакет Scorm, Семинар и др. Наиболее интересными из дополнительных модулей являются дополнения OpenID, Podcast activity for Moodle, OpenMeetings (кроссплатформенное приложение и для проведения видео и аудио-конференций), различные модули для записи голосовых ответов и публикации их как ответы на задания, модуль аутентификации Google Apps, Google Apps for Moodle, фильтр «Скрытый текст», индивидуальный учебный план студента, Moodle for Mobiles, модуль создания ресурсов для совместного доступа, модуль для управления проектами.
Каждый модуль в системе Moodle содержит в себе определенный набор папок и файлов, необходимых для корректной работы в системе.
Основные файлы модулей:
db/install.xml – это файл с XML-описанием таблиц, необходимых для работы модуля. Их минимум две: название первой соответствует названию модуля, вторая называется "log_display". Они имеют строгий синтаксис. Очень важно соблюдать связи между таблицами и полями. Это обязательный файл, в котором должна быть написана структура таблиц, которую модуль будет использовать. В таблице "log_display" нужно перечислить все «действия», которые будут добавлены в журналы модуля.
db/upgrade.php - это файл, который необходимо редактировать каждый раз, когда нужно изменить структуру таблицы модуля.
icon.gif - это значок размером 16px на 16px для идентификации каждого экземпляра модуля в рамках курса.
index.php - это страница, в которой перечислены все функциональные возможности модуля для обеспечения работы курса.
lang представляет собой папку, содержащую языковые пакеты.
Языковой пакет модуля представляет собой папку с именем "xx_utf8", содержащую, в свою очередь, папку с именем "help" и название языкового файла. Первые два символа «хх» обозначают сокращенное название языка, например, EN, DE, ES, IT, FR и так далее. Каждый языковой файл предназначен для определенного языка. Папка lang может содержать столько языковых пакетов, сколько предусмотрено переводчиком.
Папка Lang/xx_utf8/help / содержит файлы справки, которые необходимы для модуля.
lib.php является предварительно заполненным файлом с "ядром" функций, необходимых модулю.
Здесь находятся почти все функции. Каждая из них должна иметь имя, которое начинается с названия модуля. Этот файл должен иметь две отличающиеся друг от друга части:
Если из-за большого количества функций модуль становится сложным, то рекомендуется переместить все эти специфические функции модуля в новый файл "locallib.php". Это помогает сэкономить память при выполнении действий системой Moodle.
mod_form.php - это файл, описывающий форму модуля.
README.txt - это файл, где описано, для чего нужен данный модуль.
version.php - это простой, но очень важный файл.
Он необходим потому, что Moodle выполняет большое количество действий в процессе установки модуля. Например, редактирование таблиц базы данных и загрузка возможностей. Если в процессе развития модуля необходимо изменить структуру таблиц модуля или нужно редактировать возможности, имеющиеся у модуля, необходимо обновить версию Moodle.
view.php - это первый исполняемый код модуля. При выборе ссылки на данный модуль, выполняется код / view.php.
В системах, основанных на знаниях, правила (или эвристики), по которым решаются проблемы в конкретной предметной области, хранятся в базе знаний. Проблемы ставятся перед системой в виде совокупности фактов, описывающих некоторую ситуацию, и система с помощью базы знаний пытается вывести заключение из этих фактов.
Эвристики представляют собой правила вывода, которые позволяют находить решения по известным фактам. Обобщенная схема функционирования системы, основанной на знаниях, представлена на рисунке 1.
Рисунок 1 - Обобщенная схема функционирования системы, основанной на знаниях
В общем случае знания в такой системе разделяются на три типа:
1. Декларативные
знания (факты). Этот вид знаний
представляет собой факты о
конкретных ситуациях. Такие
2. Процедурные
знания (правила). Обычно эти знания
собираются заранее путем
3. Управляющие знания. В экспертной системе должен быть предусмотрен некоторый набор стратегий, чтобы можно было рассматривать альтернативные возможности получения вывода во время работы, то есть переходить при неудаче от одной стратегии к другой. Управляющие знания определяют, какие из процедурных правил следует использовать для получения вывода. По существу данные знания составляют основу механизма логического вывода.
Структура экспертной системы представлена на рисунке 2.
Рисунок 2 - Структура экспертной системы
Механизм логического вывода (МЛВ) выполняет следующие функции:
- формирование и обработка активных фактов конкретной ситуации;
- определение порядка выбора и применения фактов и правил.
МЛВ можно представить в виде четырех последовательных процессов:
- выбор активных правил и фактов;
- сопоставление (определяется какие правила выполнять в первую очередь);
- разрешение конфликтов;
- выполнение выбранного означенного правила (действие).
Интерфейс с пользователем отвечает за обмен информацией между пользователем и экспертной системой.
Экспертная система может быть ориентирована на разные типы пользователей. Но независимо от того, является ли пользователь специалистом или нет, всех их объединяет следующее: языком общения является ограниченный естественный язык, а не формальный язык программирования.
Экспертная система должна уметь объяснять свое поведение и свои решения пользователю так же, как это делает эксперт-человек. Без механизма объяснений пользователь не доверяет полученным результатам, и экспертная система не будет иметь спроса.
Назначение модуля объяснений - сделать экспертную систему «прозрачной» для пользователя, то есть предоставить пользователю возможность понимать логику действий экспертной системы, дать надежную гарантию правильности полученных результатов.
Модуль накопления (МН) является сервисным модулем, выполняющим различные вспомогательные функции. Как правило, добавление знаний осуществляется в дискретные интервалы времени в процессе эксплуатации системы. Естественно, что добавление знаний предполагает добавление «новых» знаний. К ним относятся знания, полученные на основе сообщений по особенностям эксплуатации системы.
На начальных этапах эксплуатации системы такие знания отсутствуют. Кроме того, новые знания представляются как результат развития данного научного направления. Постоянное пополнение новыми знаниями делают систему стабильной.
В противном случае, знания, которыми обладает система, устаревают, теряется их актуальность и система не способна решать новые задачи.
На рисунке 3 представлена структура разрабатываемой экспертной системы.
Рисунок 3 - Структура экспертной системы для построения компонентов в системе Moodle
В базе знаний построения компонентов будут представлены правила программирования модулей для системы Moodle.
База знаний фактов и правил будет представлять собой структуру, где каждому ответу будет соответствовать фрагмент кода будущего модуля.
Модуль накопления позволит модифицировать знания во время создания и последующей эксплуатации экспертной системы.
Механизм логического вывода на основе ответов о будущем модуле сможет вывести структуру будущего кода.
Для установки системы Moodle необходим веб-сервер, а также сервер баз данных. Наиболее популярным веб-сервером является Apache, а MySQL,в свою очередь, одним из распространенных серверов баз данных.
MySQL характеризуется большой
Поэтому управление знаниями, необходимыми для построения компонентов в системе Moodle, будет осуществляться с помощью базы данных в MySQL.
MySQL имеет API для языков Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, Python, Ruby, Smalltalk и Tcl.
Для разработки экспертной системы необходим такой язык программирования, который поможет быстро и эффективно решить поставленные задачи.
Perl – это высокоуровневый интерпретируемый динамический язык программирования общего назначения, созданный Ларри Уоллом, лингвистом по образованию. Название языка представляет собой аббревиатуру, которая расшифровывается как Practical Extraction and Report Language – «практический язык для извлечения данных и составления отчётов». Основной особенностью языка считаются его богатые возможности для работы с текстом, в том числе работа с регулярными выражениями, встроенная в синтаксис. Перл унаследовал много свойств от языков Си, AWK, скриптовых языков командных оболочек UNIX.
Perl также знаменит
огромной коллекцией дополнител
Основной недостаток Perl – в том же, что составляет его достоинства. Он предоставляет полную свободу стиля и многовариантность реализации, а сложнейшие команды обработки текста записываются в одну строку, похожую на набор символов. Поэтому код, написанный одним программистом, трудно читаем или совершенно непонятен другим. В результате затруднена корпоративная разработка проектов и техническая поддержка кода.
Другим существенным недостатком является отсутствие синтаксиса для объектно-ориентированного программирования. Реализация инкапсуляции (скрытия данных и методов), наследования и полиморфизма (перегрузки) осуществляется на уровне модулей, однако это ограничивает гибкость применения объектно-ориентированного подхода[4].
Информация о работе Экспертная система для автоматизации построения компонентов системы Moodle