УДК 004.9.032.6
Белоцерковская И.Е., канд. физ.-мат. наук,
доцент кафедры Втюрин М.Ю., канд. физ.-мат. наук,
зав. кафедрой ГБОУ ДПО «Нижегородский институт развития образования» (Нижний Новгород, Россия)
РАЗВИТИЕ НАВЫКОВ ОБРАТНОЙ ИНЖЕНЕРИИ НА ПРИМЕРЕ РАЗРАБОТКИ АВТОМАТИЗИРОВАННОГО МУЛЬТИМЕДИА-ПРОЕКТА
Аннотация. В статье рассматривается вариант формирования первичных навыков обратной инженерии у обучающихся старшей школы на примере разработки автоматизированного мультимедиа-проекта в рамках обучения программированию в среде Visual Basic for Applications (VBA). На основе использования бесплатного программного средства Bolide Movie Creator и написанного на VBA проекта описывается механизм автоматизированного создания видеофайла.
Ключевые слова: обратная инженерия, информатика, мультимедиа-проект, автоматизация видеофайла, программирование.
В условиях реализации национального проекта «Образование», направленного на решение программно-стратегических задач развития российского образования, особое внимание уделяется педагогическим инициативам, направленным на использование передовых образовательных технологий, позволяющих формировать творческую личность, способную решать широкий диапазон жизненных задач в различных сферах человеческой деятельности. Способность к саморазвитию и самосовершенствованию становится сегодня одним из важнейших условий формирования личности, успешной в условиях развития цифровой экономики страны. Следуя обозначенным трендам развития личности существенную ценность, приобретают образовательные технологии междисциплинарного характера, направленные на привлечение детей к научным исследованиям, творчеству, развитие способностей решать нестандартные задачи [2].
Развитие навыков обратной инженерии [10] на примере разработки автоматизированного мультимедиа-проекта предполагает
• знакомство с интерфейсом и простейшими операциями видео-редактора Bolide Movie Creator (размещение статичной картинки, титров и дорожки звукового файла [4]);
• изучение XML-формата хранения данных проекта (корневой узел, узлы дорожек контента, узлы и атрибуты сегментов для картинки, звука и титров) [3];
• Изучение основных объектов библиотеки Microsoft XML 3.0 (загрузка и сохранение XML-файла, корневой узел, узлы одного уровня, дочерние узлы, узлы -элементы и узлы - атрибуты, клонирование узлов и наполнение их контентом) [9];
• знакомство со средой VBA в MS EXCEL (описание базы данных: имена файлов, титры подписи, звуковые файлы) [1], [6] - [8].
Типовой интерфейс программных продуктов создания видеоряда включает настройку признаков для каждого медиа-контента, таких как: время начала, время окончания, длительность, подпись слайда, звуковая подложка и т.д. Объединив указанные признаки посредством файла описания значений признаков медиа-контента, можно продемонстрировать создание видеоряда в автоматизированном режиме на основе единого алгоритма, исходными данными для которого является файл метаданных медиа-контента.
Фактически обучающиеся создают программный код, позволяющий создать видеоряд на основе описания данных. При этом программа не будет зависеть от конкретных данных.
В качестве примера рассматривается создание простого видеоряда на основе файлов фотографий, звуковых дорожек и подписей к каждой фотографии (рис.1).
Для разработки автоматизированного мультимедиа-проекта будем использовать программу MS Excel, в которой создадим файл, содержащий таблицу состоящую из 3 -х столбцов, соответствующих трем признакам описания исходных данных: путь к файлу с фотографией, путь к файлу звуковой подложки, подпись к фотографии.
Обучение первичным навыкам использования обратной инженерии связано с разработкой программного кода для автоматизированного формирования файла проекта) [5];
03D Bolide Movie Creator 3.5 - Шаблон2.Ьтс - ознакомительный режим. Файл Настройки Помощь & Купить лицензию
О проекте Общее время: 5.000s, Разрешение проекта: 1024x768
Рисунок 1. Отображение исходных данных проекта в программе Bolide Movie Creator
Рассмотрим пример разработки автоматизированного мультимедиа-проекта, в котором создаётся промо-ролик клуба собаководов.
Программа, написанная в среде VBA с комментариями к каждой строке представлена ниже: Option Explicit
//Обязательность объявления переменных Dim oXMLDoc As MSXML2.DOMDocument //Объект - документ XML
Dim oXMLNode1, oXMLNode2, oXMLNode3, oXMLNode4, oXMLNode5 As MSXML2.IXMLDOMNode
//Объекты - узлы
Dim NewNode, NewChild As MSXML2. IXMLDOMElement
//Объекты - узлы-элементы
Dim NewAttr As MSXML2. IXMLDOMAttribute
//Объекты - узлы-атрибуты
Sub LoadXML()
//Процедура обработки
Dim GetFile, ResFile As Variant //Путь к исходном шаблону Dim CurDog, CurChar As Integer //Путь к выходному файлу Dim LineStr As String
GetFile = "CЛUsers\moish\Desktop\Кино\Шаблон2.bmc" ResFile = "C:\Users\moish\Desktop\Кино\Результат.bmc" Set oXMLDoc = New MSXML2.DOMDocument //Создаем объект XML-документ
oXMLDoc.Load (GetFile) //Загружаем XML-документ вызовом метода Load Set oXMLNode1 = oXMLDoc.FirstChild Set oXMLNode2 = oXMLNodeLNextSibling Set oXMLNode3 = oXMLNode2.ChildNodes(0) //Выбираем нужный узел иерархии
CurDog = 2 // Проходим по всем картинкам в цикле While Sheets( 1). Cells(CurDog, 1) <> ""
Set NewNode =
oXMLDoc.createNode(oXMLNode3.ChildNodes(0).NodeType, "Seg" + CStr(CurDog - 1), oXMLDoc.NamespaceURI)
//Создаем новый узел Segs+Индекс строки
Set NewAttr =
oXMLDoc.createNode(oXMLNode3.ChildNodes(0).Attributes(0).NodeType, "MediaType", oXMLDoc.NamespaceURI)
NewAttr.NodeValue = 4 NewNode.setAttributeNode NewAttr //Устанавливаем атрибут MediaType FillNode
NewNode.ChildNodes(0).Attributes(0).NodeValue = CStr(CLng(50000000) + CLng(50000000) * (CurDog - 2) - 1500000)
NewNode.ChildNodes(3). nodeTypedValue = CStr(Sheets(1).Cells(CurDog,
1))
//Устанавливаем сдвиг картинки на заданное время
oXMLNode3. appendChild NewNode //Добавляем новый сегмент в дорожку CurDog = CurDog + 1 Wend
Set oXMLNode4 = oXMLNode3.NextSibling //Переходим на узел дорожки с титрами CurDog = 2
While Sheets( 1). Cells(CurDog, 1) <> ""
Set NewNode =
oXMLDoc.createNode(oXMLNode4.ChildNodes(0).NodeType, "Seg" + CStr(CurDog - 1), oXMLDoc.NamespaceURI)
Set NewAttr =
oXMLDoc.createNode(oXMLNode4.ChildNodes(0).Attributes(0).NodeType, "MediaType", oXMLDoc.NamespaceURI)
NewAttr.NodeValue = 5 NewNode.setAttributeNode NewAttr FillNodeText
NewNode.ChildNodes(0).Attributes(0).NodeValue = CStr(CLng(50000000) + CLng(50000000) * (CurDog - 2) - 1500000) LineStr = ""
For CurChar = 1 To Len(Sheets(1).Cells(CurDog, 2)) //Цикл по буквам, для формирования строки титров в формате Unicode
LineStr = LineStr + CStr(AscW(Mid(Sheets(1).Cells(CurDog, 2), CurChar,
//Выбираем 1 символ и преобразовываем его числовое Unicode-значение в текст
LineStr = LineStr + "," Next CurChar
NewNode.ChildNodes(3). ChildNodes(2). ChildNodes(0). nodeTypedValue = "9223934987143745536,"+ LineStr
oXMLNode4.appendChild NewNode CurDog = CurDog + 1 Wend
Set oXMLNode5 = oXMLNode4.NextSibling
//Переходим на узел дорожки со звуковыми файлами CurDog = 2
While Sheets( 1). Cells(CurDog, 1) <> ""
Set NewNode =
oXMLDoc.createNode(oXMLNode5.ChildNodes(0).NodeType, "Seg" + CStr(CurDog - 1), oXMLDoc.NamespaceURI)
Set NewAttr =
oXMLDoc.createNode(oXMLNode5.ChildNodes(0).Attributes(0).NodeType, "MediaType", oXMLDoc.NamespaceURI)
NewAttr.NodeValue = 3 NewNode.setAttributeNode NewAttr FillNodeSound
NewNode.ChildNodes(0).Attributes(0).NodeValue = CStr(CLng(50000000) + CLng(50000000) * (CurDog - 2))
NewNode.ChildNodes(4). nodeTypedValue = C Str(Sheets( 1). Cells(CurDog,
3))
oXMLNode5.appendChild NewNode CurDog = CurDog + 1 Wend
oXMLDoc.Save (ResFile) End Sub
//Заполнение узла-картинки
Sub FillNode()
Dim CurChildNode As Integer For CurChildNode = 0 To 3
Set NewChild =
oXMLNode3.ChildNodes(0).ChildNodes(CurChildNode).CloneNode(True) NewNode.appendChild NewChild Next CurChildNode End Sub
//Заполнение узла-титра Sub FillNodeText() Dim CurChildNode As Integer For CurChildNode = 0 To 3
Set NewChild =
oXMLNode4.ChildNodes(0).ChildNodes(CurChildNode).CloneNode(True) NewNode.appendChild NewChild Next CurChildNode End Sub
//Заполнение узла-звука Sub FillNodeSound() Dim CurChildNode As Integer For CurChildNode = 0 To 4
Set NewChild =
oXMLNode5.ChildNodes(0).ChildNodes(CurChildNode).CloneNode(True) NewNode.appendChild NewChild Next CurChildNode End Sub
Данный мультимедиа-проект был апробирован в рамках курсов повышения квалификации в Нижегородском институте развития образования и получил положительный отзыв у учителей информатики.
ЛИТЕРАТУРА
1. Гайдышев И. Решение научных и инженерных задач средствами Excel, VBA и C/C++, 2014
2. Губайдуллин, Р.А. Модуль инжиниринг в образовательной программе основной школы - М.: Точка, 2016 - 145 с.
3. Емельянова С.В. Информационные технологии и вычислительные системы: Обработка информации и анализ данных. Программная инженерия. Математическое моделирование. Прикладные аспекты информатики / Под ред. С.В. Емельянова. - М.: Ленанд, 2015. - 104 c.
4. Ефимова Э.В., Голунова М.И., Втюрин М.Ю. Мультимедийные программные продукты в работе учителя/ Э.В. Ефимова, М.И. Голунова, М.Ю. Втюрин. - Н.Новгород: Нижегородский институт развития образования, 2016. - 43 с.
5. Казанский А.А. Прикладное программирование на Excel 2013, 2019 - 160
с.
6. Комолова Н., Яковлева Е. Программирование на VBA в Excel 2016. Самоучитель, 2017-431 с.
7. Кудрявцев Н. Г., Кудин Д. В., Беликова М. Ю. Программирование на VBA MS Excel / Н. Г. Кудрявцев, Д. В. Кудин, М. Ю. Беликова - Горно-Алтайск: РИО ГАГУ, 2015 - 116 с.
8. Лебедев В.М. Программирование на VBA в MS Excel, 2019 - 272 с.
9. Одиночкина С.В. Основы технологий XML/ С.В. Одиночкина - СПб: НИУ ИТМО, 2013 - 56 с.
10. Орлов, С.А. Программная инженерия. Технологии разработки программного обеспечения. Стандарт третьего поления: Учебник / С.А. Орлов. - СПб.: Питер, 2019.- 224 c.