Министерство образования и науки Российской Федерации Ростовский Государственный Университет

Вид материалаДокументы

Содержание


ДИДАКТИЧЕСКИЙ ПРОЕКТ ИЗНУТРИ Фомин Г.В.
Оболочка проекта
Модули проекта
Интерактивные приложения проекта и классы
Подобный материал:
1   ...   61   62   63   64   65   66   67   68   ...   75


ДИДАКТИЧЕСКИЙ ПРОЕКТ ИЗНУТРИ

Фомин Г.В.

Ростовский государственный университет, физический факультет


fomin@rsu.ru

При создании дидактических проектов могут использоваться разные технологии – от простого набора текста в текстовом редакторе до создания сетевого самонастраивающегося проекта «клиент-сервер», способного манипулировать распределенными базами данных и содержащего громадное количество кода и мультимедиа-файлов.

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

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

Прозрачность установочных действий

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

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

Автор не спрашивает пользователя, куда распаковывать материал проекта и что делать с ним дальше. Более того, пользователь может даже не переносить файл проекта с каталога сервера на свой компьютер. Интернет-браузер предоставит пользователю выбор - активизировать полученный файл «с лету», не сохраняя его в файловой системе, либо сохранить в указанном пользователем каталоге. Решив сохранить файл проекта, пользователь в дальнейшем будет иметь дело только с одним этим файлом.

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

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

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

Оболочка проекта

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

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

Окно оболочки оформлено как обложка книги.

На самом деле имеется два окна. Центральное окно воспроизводит трехмерное изображение, иллюстрирующее содержание проекта-книги. Изображение анимировано. Более того, пользователь может даже варьировать ракурс и фактуру изображения обложки.

Модули проекта

Проект является довольно сложным программным продуктом и состоит из множества отдельных модулей.

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

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

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

В качестве браузера можно было бы использовать стандартный Internet Explorer. Его достоинством является общедоступность. Но в приложениях, содержащих множество формул, статических иллюстраций, использование браузера Интернета оказывается неудобным. Поэтому предпочтение было отдано программе Winword. В то же время этот факт не лишает пользователя возможности сохранить текст и статические изображения в формате html с тем, чтобы в дальнейшем использовать для просмотра Интернет-браузер.

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

Интерактивные приложения проекта и классы

Наиболее трудоемкой и, в этом смысле, центральной частью проекта являются, конечно, интерактивные приложения.

Все интерактивные приложения проекта являются оконными и представляют собой отдельные исполняемые модули (exe-файлы). Каждый исполняемый модуль получен в результате компиляции и объединения множества (иногда, десятков) кодовых модулей и библиотек (.dll). Библиотеки и компилируемые модули, созданные автором, содержат описания классов, используемых одновременно в нескольких приложениях.

Классы представляют собой довольно абстрактные, а потому, достаточно общие, фрагменты кода. Приложения динамически создают в памяти компьютера объекты этих классов, обладающие конкретно требуемыми свойствами. Здесь в полной мере используются преимущества современных методов объектно-ориентированного проектирования. Использование этих методов делает приложения компактными, сравнительно легко обозримыми и в то же время обладающими очень широким спектром свойств. Например, класс интегрирования произвольной системы дифференциальных уравнений в обыкновенных производных, занимающий в коде приложения два-три небольших модуля, позволяет определять закон движения практически любой задачи механики. Другой класс определяет инерционные свойства произвольного твердого тела. Есть классы численного интегрирования, решения трансцендентных уравнений. Ряд классов создан для построения графического интерфейса. Например класс «спрайтов», позволяющий создавать эффект перемещения объекта, сохраняя в изображении окна его след-траекторию. Другие классы обеспечивают вывод на экран трехмерных образов с заданными изобразительными свойствами. Пользователь, манипулируя параметрами решаемой задачи, получает практически бесконечное число вариантов решений, наблюдая их в реальном времени.