ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
Вестн. Ом. ун-та. 2010. № 4. С. 147-149.
УДК 004.4'24 С. В. Гусс
Омский государственный университет им. Ф. М. Достоевского
ПРОБЛЕМА ПОВТОРНОГО ИСПОЛЬЗОВАНИЯ В РАЗРАБОТКЕ СЕМЕЙСТВА ИГРОВЫХ ПРОГРАММНЫХ СИСТЕМ УЧЕБНОГО НАЗНАЧЕНИЯ
Рассматривается проблема повторного использования в разработке семейства программных систем для конкретной тематической области, представлен список авторских проектов разработки обучающего программного обеспечения.
Ключевые слова: повторное использование, семейство программных систем.
Введение
Само по себе решение проблемы повторного использования весьма затруднительно без применения специального инструментария. Такой инструментарий должен поддерживать разработку программного обеспечения с учётом уже имеющихся производственных активов повторно используемых компонентов.
Проблема повторного использования
Очевидно, что компьютерные игры, а главным образом обучающие компьютерные игры, являются важным объектом научного исследования в психологии [1], культурологии [2] и в других областях науки. Не чужды они исследованиям и в области инженерии программного обеспечения [3]. Что касается одной из важных проблем разработки программного обеспечения, проблемы повторного использования, впервые обозначенной в работе Малькольма Дугласа Макил-роя (Malcolm Douglas Mcllroy) в 1968 г. [4], она актуальна и по сей день. Это подтверждается активным строительством на её основе парадигмы программирования, названной фабриками программного обеспечения (Software Factories) [5]. Эта «новая» парадигма сочетает в себе весьма перспективные технологии, которые уже успели принести определённую пользу в процессе разработки программного обеспечения и смогли себя оправдать.
Предметом исследований автора статьи является систематическое повторное использование в процессе разработки программных систем учебного назначения для проведения занятий лингвистической направленности в игровой форме. Такое повторное использование невозможно без рассмотрения компьютерной программы как продукта из определённого семейства. А если смотреть на разработку программного обеспечения как на зрелую индустрию, то разговор возможен в терминах линеек программных продуктов как «производственных вместилищах семейства программных продуктов» [5]. Эта проблема дала о себе знать как раз в то самое время, когда компьютер-
ОС. Я Гусс, 2010
148
С. В. Гусс
ные программы постепенно стали рассматриваться как инженерные творения и разработчики создавали уже не единичное приложение, решающее заданную проблему, а продукт, принадлежащий особому программному семейству, решающему набор взаимосвязанных проблем из определённой предметной области. О необходимости создания семейства программных продуктов, нежели единичных программ, в одной из своих ранних
Что же касается лингвистических занятий, то на протяжении многих лет они демонстрировали свой успех в обучении не только языку и его особенностям, но и применению его в профессиональной сфере. Об игровой форме таких занятий можно говорить так же, как и о других обучающих занятиях в той же форме. Существенная работа в этом направлении проделана Марком Пренским - исследователем в области электронного обучения, в основе которого лежат компьютерные игры. В одной из его публикаций [7], можно найти информацию о том, почему именно игровая форма является привлекательной. Это объясняется тем, что игры приносят радость. Способствуют интенсивному вовлечению в процесс обучения. В них заложена система правил, что способствует упорядоченности структуры процесса. Они мотивируют, ставя перед игроком определённые цели. Они интерактивны, что вынуждает действовать, чтобы получить результат. У них есть обратная связь, что способствует обучению. Игровому процессу характерно свойство привыкания, что позволяет без труда получать новые знания посредством игры. У игры есть состояния победы, что даёт возможность почувствовать свои силы и увидеть конечный результат. Они развивают творческие способности благодаря тому, что заставляют справляться с проблемами, искать способы их решения. Игры способны социализировать благодаря специальным многопользовательским режимам.
Средства разработки
Специально созданные или отобранные, адаптированные и настроенные на определённое семейство программных систем средства разработки в сочетании с определённой профессиональной подготовкой исполнителей проекта способны
увеличить производительность процесса создания компьютерных приложений и обеспечить высокое качество разрабатываемого продукта.
К таким средствам относятся модели, каркасы, шаблоны и предметно-ориентированные языки, способные связать составные части приложения в рамках общей архитектуры семейства программных систем [5; 8; 9]. В моделях отображаются общие очертания программных единиц. Каркасы определяют характерные для программных единиц повторно-используемые абстракции. Предметно-ориентированные языки делают процесс работы с этими абстракциями производительным, а шаблоны повышают эффективность процесса, ограничивая возможность совершения некорректных действий, в то же время, указывая верный путь работы с абстракциями. Добавив к этому автоматические программные инструкции, оказывающие помощь разработчикам, непосредственно во время создания приложений можно объединить всё вместе в специальный пакет, расширяющий возможности интегрированной среды разработки. К примеру, среда Microsoft Visual Studio 2010 имеет в своём арсенале все необходимые для расширения средства (те же возможности имеются в версиях 2005 и 2008), включая специальные шаблоны проектов, есть нечто подобное и в средах IDE Eclipse и Embarcadero RAD Studio. Особое выделение продуктов компании Microsoft вызвано тем, что в рамках одной из её исследовательских инициатив (а именно «фабрики программного обеспечения») проводятся поиск и развитие методов автоматизации, а в конечном счёте, и индустриализации разработки программных продуктов, что должно повысить уровень зрелости разработки программного обеспечения.
Проекты
Ниже приводится список проектов, составленных автором статьи, в рамках которых создаются программные продукты учебного назначения. Каждый проект на текущей стадии развития описывает семейство приложений, в рамках которого возможно создание продуктов с определёнными характеристиками. В скобках указан регистрационный номер продукта во ВНТИЦ, разработанного в рамках проекта.
Проблема повторного использования в разработке семейства..._____________________________149
Главные проекты:
1. Проект «Защищённая система тестирования и проверки знаний на основе классического кроссворда» (ВНТИЦ: 50200700813);
2. Проект «Учебная система развития словарного запаса на основе венгерского кроссворда» (ВНТИЦ: 50200701105);
3. Проект «Система контроля и проверки знаний на основе китайского кроссворда» (ВНТИЦ: 50200702345).
Экспериментальные проекты (на основе которых производится испытание новых технологий):
4. Проект «Программная система учебного назначения We Need Your Help». В основе лежит набор занимательных лингвистических задач;
5. Проект «Криптограммы. Путь к знанию через тайнопись». Идея состоит в том, что в процессе игровых занятий нужно разгадывать криптограммы (особый вид лингвистических игр).
Заключение
Систематическое повторное использование в разработке программного обеспечения предполагает разработку в рамках проекта не единичного продукта, но похожих членов одного семейства. Для работы с семейством необходим специальный инструментарий. Сюда входят связки каркасов и предметно-ориентированных языков моделирования/программирования, позволяющих генерировать необходимый код, используя абстракции каркасов. В рамках указанных в работе проектов ведётся создание подобных инструментов и средств. Подробнее об этом можно узнать в работах [10-12].
ЛИТЕРАТУРА
[1] Керделлан К., Грезийон Г. Дети процессора:
Как интернет и видеоигры формируют зав-
трашних взрослых. Екатеринбург: У-Фактория,
2006. 272 с.
[2] Липкое А. И. Ящик Пандоры: Фенонмен компьютерных игр в мире и в России. М. : Изд-во ЛКИ, 2008. 192 с.
[3] Flynt J., Salem O. Software Engineering for Game Developers. United States of America : Thomson Course Technology PTR, 2005. 890 p.
[4] Mcllroy M. Mass Produced Software Components // Report on a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968, Scientific Affairs Division, NATO, Brussels, 1969. URL : http://www. cs.dartmouth.edu/~doug/components.txt (дата обращения: 11.08.2010).
[5] Гоинфилд Д., Шорт К., Кент С., Круп и Д.
Фабрики разработки программ: потоковая
сборка типовых приложений, моделирование, структуры и инструменты. М. : ООО «И.Д. Вильямс», 2007. 592 с.
[6] Parnas D. L. On the Design and Development of Program Families // IEEE Transactions on Software Engineering. Vol. SE-2. No. 1. 1976. URL : http://web.cecs.pdx.edu/~omse532/Parnas_Famili es.pdf (дата обращения: 11.08.2010).
[7] Prensky M. Digital Game-Based Learning. United States of America: Paragon House Publishers,
2007. 442 p.
[8] Басс П., Клементс П., Кацман Р. Архитектура программного обеспечения на практике. 2-е изд. СПб. : Питер, 2006. 575 с.
[9] Брукс Ф. Мифический человеко-месяц или как создаются программные системы. СПб. : Символ-Плюс, 2001. 304 с.
[10] Гусс С. В. Элементы повторного использования для программных систем учебного назначения. Концептуальное проектирование и анализ // Математические структуры и моделирование. Омск : ООО «УниПак», 2009. Вып. 20. С. 78-92.
[11] Гусс С. В. Модель каркаса программных компонентов поддержки занятий лингвистической направленности в игровой форме // Прикладная информатика. М. : ООО «Маркет ДС Кор-порейшн», 2010. Вып. 3 (27). С. 62-77.
[12] Гусс С. В. Использование компьютерных лингвистических игр в процессе обучения // Открытое образование. М. : CAPITALPRESS, 2010. Вып. 1. С. 18-29.