УДК 004
Информационные технологии
Зайцев Константин Александрович, магистрант, Московский Автомобильно-дорожный Институт - МАДИ, Россия, г. Москва
МЕТОДОЛОГИЯ РЕАЛИЗАЦИИ МОДУЛЕЙ В СДО MOODLE
Аннотация: В данной статье рассмотрено понятие «системы дистанционного обучения» на примере СДО Moodle. Исследована и описана методология реализации модулей в СДО Moodle.
Ключевые слова: дистанционное обучение, электронное обучение, СДО, Moodle, плагины, модули, php.
Annotation: This article discusses the concept of « learning management systems» on the example of LMS Moodle. The methodology for implementing modules in Moodle is studied and described.
Keywords: distance learning, e-learning, LMS, Moodle, plugins, modules,
php.
Системы дистанционного обучения (СДО или LMS, от английского -learning management systems) позволяют организовать учебный процесс «с нуля» и отслеживать успешность учеников посредством создания онлайн-курсов или виртуальных классов, доступных в любое время и в любой точке мира, где есть интернет [1]. Все учебные материалы при этом хранятся в одном месте, их удобно адаптировать и пересматривать в зависимости от целей обучения и сферы деятельности компании или организации.
Moodle - система дистанционного обучения предназначенная для предоставления всем участникам учебного процесса единой надежной, безопасной и интегрированной системы для создания персонализированной учебной среды [2]. Является полностью бесплатной, распространяется под
лицензией General Public License и обеспечивает высокий уровень функциональности в создании и управлении образовательными онлайн-курсами.
Основными преимуществами данной системы является модульность, масштабируемость и открытость исходного кода. Moodle позволяет создавать базовые модули и добавлять элементы с разной степенью сложности в программу.
Процесс реализации состоит из 4-х основных этапов, характерных для всех типов модулей для СДО Moodle:
■ подготовка;
■ разработка;
■ тестирование;
■ установка.
Данные этапы не представляют собой непрерывный последовательный процесс. После этапа тестирования в большинстве случаев необходимо вернутся на этап разработки, поэтому этапы в процессе разработки могут повторятся. Процесс представлен на рис. 1.
Рисунок 1. Этапы реализации модуля для СДО Moodle
К тому же этап тестирования является необязательным и его вполне можно пропустить, но в данном случае в процессе работы могут возникнуть непредвиденные проблемы.
Этап подготовки
Все установленные и разработанные модули в системе Moodle расположены на веб-сервере в корневом каталоге с исходным кодом в директории mod.
Для разработки нового модуля необходимо создать в директории mod каталог, название которого должно совпадать в наименованием разрабатываемого плагина. Все необходимые файлы, библиотеки и исходные файлы, принадлежащие плагину, должны находится в данном каталоге.
Основополагающим этапом при создании плагина для СДО Moodle, является настройка связи и взаимодействия с базой данных. Для этого в корневом каталоге плагина необходимо создать директорию db. В дальнейшем на этапе разработки, в него будут добавлены файлы необходимые для взаимодействия с базой данных.
Для хранения изображений необходимо создать директорию pix. В данной директории необходимо разместить все графические изображения, которые будут использоваться в плагине. Файлу с иконкой плагина должно быть присвоено наименование - icon.png.
Вспомогательные классы, создаваемые разработчиками плагина, можно хранить в директории classes, позволяющая легко сориентироваться в проекте. Данная директория не является обязательной для работы плагина.
Необязательной является и директория tests. В ней принято располагать все файлы unit-тестирования, реализованных с помощью фреймворка PHPUnit.
Директория backup служит для хранения файлов, предоставляющих возможности резервного копирования и восстановления данных. Данная
директория не является обязательной, если плагин не должен предоставлять такие возможности.
Для поддержки мультиязычности и возможности перевода плагина на несколько языков, необходимо создать директорию lang, в которой необходимо разместить соответствующие языковые подпапки. Внутри каждой такой папки должен располагаться файл с расширением php и названием, соответствующим наименованию плагина. Например, название папки en соответствует английскому языку, а ru - русскому. Файл с языковыми настройками состоит из ассоциативного массива $string, ключом которого является кодовое название строки, а значением - строка на нужном языке. Благодаря встроенной функции get_string () в любом месте исходного кода Moodle можно получить необходимую строку. Для этого данной функции необходимо передать два параметра - название плагина и кодовое название строки.
Наименование, версию плагина, метаданные, минимальные системные требования к системе Moodle и дополнительные используемые плагины необходимо описать в файле version.php расположенном в корневом каталоге разрабатываемого модуля.
Обобщенная файловая структура для разработки плагина в СДО Moodle представлена на рис. 2.
Плагин
> СИ йь
р'х
- с1авзев
>
1апд
| —^ ¡пс1ех.рИр
—^ ую\л?.рЬ|р
- —^ уегзюп.рИр
Рисунок 2. Обобщенная файловая структура плагина в СДО Мооё1е
Этап разработки
Этап разработки состоит из создания и написания исходных файлов, отвечающих за функциональность плагина, которые располагаются в описанных выше директориях [3].
Первоначально необходимо сформировать файл 1ш1а11.хт1 в каталоге ёЬ корневой директории плагина. В данном файле в формате хт1 необходимо описать таблицы, связи между ними и другими существующими таблицами. При первой установке плагина будут созданы все таблицы и связи, описанные в данном файле.
Благодаря встроенному редактору для файлов 1ш1а11.хт1, который доступен главному администратору системы после установки СДО Мооё1е, имеется возможность создавать, просматривать и изменять файлы установки, а также просматривать связи между таблицами.
Файл ирёа1е.рИр, расположенный в каталоге ёЬ служит для внесения изменений в существующие таблицы плагина или добавления новых таблиц.
В зависимости от версии это позволяет быстро модифицировать базу данных.
Файл index.php содержит в себе визуальное представление всех экземпляров данного элемента курса.
Файл mod_form.php служит для отображения веб-интерфейса плагина в режиме редактирования.
Файл access.php, расположенный в корневом каталоге плагина, содержит права пользователей системы в зависимости от их роли и уровня доступа. Данный файл носит обязательный характер.
Файл view.php содержит веб-интерфейс отображения плагина в режиме использования на странице курса.
Основным файлом, в котором реализуются все основные функции и методы необходимые для работы разрабатываемого плагина является - lib.php. При определении собственных функций в данном файле необходимо придерживаться стилистике наименований используемой в Moodle. Названия функций должны начинаться с наименования плагина.
Файл settings.php необходим, если плагин должен иметь функционал настройки со стороны администратора системы. Например, в настройках плагина «Тест» предоставляется возможность указать ограничение по времени, задать количество попыток, максимальную оценку и метод оценивания.
Этап тестирования
Этап тестирования необходим для проверки разработанных на предыдущем этапе функций, а также написания тестов для ещё не реализованных функций. Написание тестов в СДО Moodle происходит с использованием популярного фреймворка PHPUnit, основанного на модульном тестировании.
Функциональные возможности РНРипй [4]:
■ тестирование исключений;
■ провайдеры данных;
■ создание модульных тестов;
■ тестирования кода, взаимодействующего с базой данных;
■ поддержка фиктивных объектов;
■ генераторы отчетов;
■ интерфейс командной строки для выполнения тестов.
Для тестирования функций, реализованных в файле lib.php необходимо в директории tests создать файл lib_test.php и унаследовать класс от advanced_testcase.
Перед запуском каждого теста вызывается метод setUp, после выполнения теста вызывается метод tearDown. Методы setUpBeforeClass и tearDownAfterClass вызываются единожды перед началом и окончанием всех тестов соответственно. При запуске тестирования фреймворк PHPUnit начинает выполнение всех методов, начинающихся со слова test [5].
Внутри тестовых методов используется один из методов проверки, начинающихся с префикса assert. К примеру, при использовании метода assertEquals тест считается успешным, если плановое и фактическое значения равны. Пример тестового класса представлен на рис. 3.
l <?php
2
¿class modvtstream testcase extends advanced testcase
Jwwwwwwv-Vwwwwwwv —
{
5
public static function setUpBeforeClass{) {
global $CFG;
require_once($CFG->dirroot . '/mod/lib.php1);
>
11
public function test_deleting() 13 {
$this->resetAfterTest(true); $DB->delete_records{ user'); $this->assertEmpty{$DB->get_records('user'});
}
18
public function test_user_table__was_reset() 20 {
$this->assertEquals{2, $DB->count_records{1 user1, arrayO));
>
23 >
Рисунок 3. Пример тестового класса
Перед выполнением тестов в файле config.php, расположенном в корневой директории Moodle необходимо сконфигурировать тестовую среду, а именно указать сервер базы данных файловый сервер для тестов и произвести её инициализацию командой php admin/tool/phpunit/cli/init.php [6].
Тестирование происходит через консольную утилиту phpunit. При запуске утилиты без параметров, происходит тестирование всех плагинов в системе. Чтобы протестировать определенный файл, утилите необходимо указать путь к файлу и название тестируемого класса. Запуск тестов с помощью консольной утилиты приведен на рис. 4.
-* moodle vendor/bin/phpunit --debug mod_bookref_lib_testcase mod/bookref/tests/lib_test.php Moodle 3.1.4+ (Build: 20170202)
Php: 7,0.15,0.0,16.04,4, mysqll : 5 . 7 .1 7-0ubuntu0 .1 6 , 04 . 2 , OS [ Linux 4.4,0-72-generic x86_64 PHPUnlt 4.B.27 by Sebastian Bergmann and contributors.
Starting test ' mod_bookref_lib_testcase : : test_bookref_type_book_naire_is_valid ' . Starting test 1mod_bookref_lib_testcase: : test_bookref_type_article_naire_is_valid 1 . Starting test 1 mod_bookref_lib_testcase : : test_bookref _type_dissertation_nanie_is_valid 1 . Starting test 1mod_bookref_lib_testcase::test_bookref_type_book_conferenoe_is_valid'. Starting test 1 mod_bookref_lib_testcase : : test_bookref_type_abstract_nanie_Is_valId ' . Starting test ' mod_bookref_lib_testcase : : test_bookref_type_preprint_name_Is_valid ' . Starting test 1mod_bookref_lib_testcase::test_bookref_type_report_name_is_valid1. Starting test 1 mod_bookref_lib_testcase : : test_bookref_type_internet_nanie_is_valid ' .
Time: 393 ms, Memory: 32.00MB OK (B tests, B assertions)
Рисунок 4. Запуск тестов с помощью консольной утилиты
Помимо консольной утилиты, запускать тесты позволяют большинство сред разработки поддерживающих PHP, такие как NetBeans, PHPStorm, и Eclipse.
Этап установки
Установить разработанный плагин типа «элемент курса» в СДО Moodle можно двумя способами.
Первый способ заключается в том, что администратору в настройках системы необходимо перейти в раздел «Плагины», затем перейти к пункту «Установка плагина». Далее необходимо загрузить архив в формате zip c исходными файлами плагина [7].
Второй способ заключается в копировании исходных файлов плагина в каталог mod, расположенный в корневой директории Moodle на веб-сервере. Следующим шагом необходимо перейти на сайт. Администратору системы будет показано предупреждение о плагинах, требующих внимания [8].
Рисунок 5. Уведомление о плагинах, требующих внимания
Во время установки система Mood1e обновляет и создает необходимые таблицы в базе данных для корректной работы плагинов.
В пункте меню «Обзор плагинов» раздела «Плагины» отображаются все установленные в системе плагины (рис. 5.). В данном разделе можно увидеть версию плагина, изменить его настройки (если предусмотрена такая возможность), а также удалить плагин [9].
Обзор плагинов
Проверить наличие обновлений
Последняя проверка обновлений: 9 Март 2020,22:22
Название плагина Версия Доступность Действия Заметки
Модули элементов курсаО
ф Задание тоЬ.аэадп 2019111800 Включено Установки Удалить
Задание 2.2 (Отключено) тоЬ.аБадптеШ 2019111800 Отключено Удалить
Книга тос!_Ьоок 2019111800 Включено Установки Удалить
Чат тос)_сЬа1 2019111800 Включено Установки Удалить
7 Опрос тос1_сИоюе 2019111800 Включено Удалить
| База данных гпос!_с1а{а 2019111800 Включено Установки Требуется для: Шег_с1а1а
Обратная связь тосиее<1Ьаск 2019111800 Включено Установки Требуется для: ЫосМее<ЗЬаск
Рисунок 6. Страница со списком установленных плагинов
Для добавления плагина в курс необходимо перейти в «Режим редактирования» на странице курса, затем нажать на кнопку «Добавить элемент
или ресурс» и выбрать необходимый элемент курса. Пример окна с добавлением элемента или ресурса курса представлен на рис. 7.
Добавить элемент или ресурс
ЭЛЕМЕНТЫ КУРСА
п
Г)
о о
п
О YouTube Stream
dl Анкета
База данных
ki Вики
Внешний
инструмент
AaJ Глоссарий
Задание
Модуль «YouTube Stream» позволяет встраивать видеозаписи с сервиса YouTube, а так же имеет возможность быстрого создания прямых трансляции прямо из интерфейса Moodle.
Рисунок 7. Окно добавления элемента курса
Библиографический список:
1. Системы дистанционного обучения. [Электронный ресурс] URL: https://evergreens.com.ua/ru/articles/best-lms-2020.html (дата обращения: 15.03.2020).
2. Moodle. Open-source learning platform. [Электронный ресурс] URL: https://moodle.org (дата обращения: 15.03.2020).
3. Activity modules. [Электронный ресурс] URL: https://docs.moodle.org/dev/Activity_modules (дата обращения: 18.03.2020).
4. PHPUnit. [Электронный ресурс] URL: https://phpunit.de (дата обращения: 03.04.2020).
5. API. [Электронный ресурс] URL: https://ru.wikipedia.org/wiki/API (дата обращения: 28.03.2020).
6. Steve Foreman The LMS Guidebook: Learning Management Systems Demystified. — Association for Talent Development, 2017. — 248 с.
7. Jason Cole, Helen Foster Using Moodle: Teaching with the Popular Open Source Course Management System. — O'Reilly Media, 2007. — 284 с.
8. Ruth C. Clark, Richard E. Mayer e-Learning and the Science of Instruction: Proven Guidelines for Consumers and Designers of Multimedia Learning. — Wile, 2016. — 528 с.
9. Steve Foreman The LMS Guidebook: Learning Management Systems Demystified. — Association for Talent Development, 2017. — 248 с.