Создание обучающей системы с использованием интернет-технологий

Автор: Пользователь скрыл имя, 05 Марта 2013 в 10:01, дипломная работа

Описание работы

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

Содержание

Введение 6
1 Постановка задачи и обзор существующих решений 8
1.1 Требования к системам дистанционного обучения 8
1.2 Обзор некоторых существующих решений 9
1.3 Выбор и обоснование решения поставленной задачи 18
1.4 Основные преимущества и возможности системы 19
2 Разработка системы 20
2.1 Проектирование структуры системы 20
2.2 Создание базового приложения Rails 20
3 Реализация дополнительной функциональности и работа с системой 32
3.1 Идентификация пользователей 32
3.2 Контроль уровня доступа 33
3.3 Загрузка файлов на сервер и работа с ними 34
3.4 Работа с комментариями 36
3.5 Начальная настройка 36
3.6 Создание пользователя 37
3.7 Обслуживание системы 38
4 Технико-экономическое обоснование разработки клиент-серверного приложения «обучающая система с использованием интернет-технологий» 39
4.1 Краткая характеристика программного продукта 39
4.2 Расчет сметы затрат, себестоимости и отпускной цены ПО 39
4.3 Расчет экономического эффекта от применения ПО пользователем 48
4.4 Вывод 52
5 Реализация эргономических требований к конструкции и организации рабочего места в системе “человек - тех.средство” 53
5.1 Характеристика трудового процесса технического средства. Функции работника 53
5.2 Выбор и обоснование рабочего положения работника, рабочей поверхности, сидения (рабочего кресла) 54
5.3 Проектирование сенсомоторного поля рабочего места, т.е. пространства с размещенными в нем средствами отображения информации, органами управления и другими техническими средствами с учетом зон досягаемости 56
Заключение 61
Список использованных источников 62

Работа содержит 1 файл

Пояснительная записка 1.docx

— 339.89 Кб (Скачать)

Одним из основных принципов работы с Rails является принцип DRY – “Do not Repeat Yourself”. При соблюдении этого принципа в системе не будет повторяющихся фрагментов программного кода, что значительно сокращает объём исходного текста, упрощает дальнейшее сопровождение и разработку.

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

1.4 Основные преимущества и возможности  системы

Использование языка программирования Ruby с фрэймворком Ruby on Rails (Rails, RoR) бесплатно; в качестве серверной платформы может выступать операционные системы различных семейств: *nix, Windows, MacOS, Solaris. Кроме того, сам проекты, созданные с помощью этих средств имеют малый объём программного кода, который легко читается и модифицируется.

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

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

Единица учебного материала  – лекция. Лекция может в себе содержать как текстовые, так  и мультимедийные данные. Лекции формируют  курс обучения по определённому предмету. Курсы могут быть представлены как  единым списком, так и сгруппированы по факультетам, годам обучения и кафедрам.

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

 

2 Разработка системы

2.1 Проектирование структуры системы

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

  • администратор – имеет возможность создавать, удалять и редактировать учётные записи других пользователей, а так же другие сущности;
  • редактор – создаёт и редактирует «Лекции»;
  • непривилегированный пользователь – имеет доступ к учебным материалам без возможности дополнительных действий. Может оставлять комментарии к «Лекциям».

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

Кроме того, для «Лекций» имеется набор «Комментариев», создавать  которые могут как привилегированные, так и обычные пользователи, что  позволяет организовать диалог.

2.2 Создание базового приложения Rails

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

Сначала необходимо создать  пустой шаблон приложения. Для этого  используется команда терминала  операционной системы «rails new %name%» где %name% это название создаваемого проекта. В результате выполнения этой команды в текущем каталоге будет создана папка с названием %name%.

Созданный проект уже может  считаться рабочим приложением. Для того, чтобы проверить его  работоспособность нужно перейти  в терминале в папку приложения и выполнить команду «rails server». При выполнении этой команды запустится встроенный в Rails web-сервер WEBrick, подключиться к которому можно по адресу http://localhost:3000. При подключении к серверу в интернет-браузере отобразится страница приветствия Rails, показанная на рисунке 2.1.

Рисунок 2.1 – Начальная  страница нового Rails-проекта

Существует несколько  других команд для  работы с фрэймворком, которые будут использоваться далее:

  • «rails generate model» создает модель (в классификации «Модель – Представление – Контроллер») и миграцию для базы данных;
  • «rails generate controller» создаёт контроллер приложения;
  • «rails generate view» создаёт представление приложения;
  • «rails generate migration» создаёт отдельную миграцию для базы данных
  • «rake db:migrate» выполняет миграцию базы данных.

2.3.1 Начальная  настройка приложения

Для начала работы над системой необходимо выполнить несколько  действий по первоначальной настройке.

Одно из первых действий – настройка базы данных. Rails изначально может работать с БД SQLite3, MySQL и PostgreSQL. Для разработки данной системы используется база данных SQLite3. Для работы с ней не требуется установки дополнительного программного обеспечения и повторной настройки при смене платформы.

Настройка проводится путём редактирования файла по адресу «/config/database.yml». В нём указывается тип используемой базы данных («adapter: sqlite3») и имя файла («database: db/development.sqlite3»).

Из-за особенностей генерации URI-адресов в Rails при наличии в  папке /public файла index.html попытка доступа к корневому адресу системы (во время разработки это http://localhost:3000) будет приводить к открытию файла index.html. Поэтому для корректной работы приложения необходимо удалить файл /public/index.html

Файл /config/routes.rb представляет отвечает за распознавание поступивших HTTP-запросов от браузера и передачу управления соответствующим компонентам системы. Наиболее универсальным правилом является  «match ':controller(/:action(/:id(.:format)))'».

Согласно приведенному выше правилу открытие адреса «http://localhost:3000/controller/action/id» в браузере приведёт к исполнению метода «action» в контроллере «controller» с передачей в качестве параметра значения id = «id». Придерживаясь осмысленного именования элементов приложения легко представлять, к чему приведёт тот или иной запрос. Например, легко видеть, что «http://localhost:3000/user/show/5» отображает пользователя с id=5, а «http://localhost:3000/image/delete/12» удаляет изображение с id=12.

Для того, чтобы адрес «http://localhost:3000/» приводил не к отсутствующему файлу /public/index.html а к определённому методу в контроллере приложения используется правило вида «root :to => "controller#action"».

2.3.2 Создание  основных элементов приложения

Для создания полноценного приложения по принципу «Модель – Представление – Контроллер» необходимо наличие всех трёх элементов.

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

Для создания модели используется команда «rails generate model Department name:string about:text». В результате выполнения команды появится файл модели /app/models/department.rb и миграция /db/migrate/YYYYMMDDXXXXXX_create_departments.rb (где YYYYMMDDXXXXXX – это указатель времени создания для сортировки миграций по порядку).

Файл модели department.rb представляет собой обычный Ruby-класс, являющийся потомком класса ActiveRecord::Base. Это значит, что в самой модели не нужно  указывать поля данных и соотносить их с определёнными полями в таблицах базы данных. ActiveRecord отслеживает наличие полей в таблице с названием, соответствующим названию класса и предоставляет объектно-ориентированные методы доступа к ним.

В файле миграции для созданной  модели находятся команды, которыми создаётся отдельная таблица  в базе данных для модели и поля для неё. Для выполнения миграции необходимо воспользоваться в терминале командой «rake db:migrate». Rails следит за миграциями и учитывает, какие уже были выполнены, а какие ещё нет. Это предохраняет от повторного выполнения миграций и даёт возможность «откатывать» миграции после выполнения некорректной миграции. Ниже приведён программный код миграции, создающей таблицу для модели Course:

class CreateCourses < ActiveRecord::Migration

  def self.up

    create_table :courses do |t|

      t.string :name

      t.text :about

      t.boolean :visible

      t.integer :department_id

      t.timestamps

    end

    add_index('courses', 'department_id')

  end

 

  def self.down

    drop_table :courses

  end

end

Метод «self.up» выполняет комманду «create_table :courses», которая создаёт таблицу с названием «courses» и передаёт её в качестве объекта «t» в блок далее, где указываются поля создаваемой таблицы. После блока создания таблицы метод «add_index('courses', 'department_id')» добавляет поле в таблицу «courses» поле «department_id», которое будет являться индексом. Метод «self.down» содержит одну комманду, удаляющую таблицу «courses»

Контроллер для определённой модели принято именовать «%modelname%_controller.rb». Хранятся файлы контроллеров в папке /app/controllers и представляют собой Ruby-класс, наследник класса ApplicationController. В контроллере указываются те методы, которые будут производиться над моделью, соответствующей этому контроллеру. Чаще всего это методы формирующие CRUD («Create, Read, Update, Destroy» – создание, чтение, обновление и удаление данных). Гораздо реже контроллеры создаются без связи с моделями. В этом случае набор методов может существенно отличаться от принятого.

Для отображения данных, сформированных методами контроллера, используются представления. Представление – это файл с расширением «.html.erb» в котором находится HTML-шаблон со встроенным Ruby-кодом, который в указанных местах отображает данные, полученные в ходе выполнения контроллера. Представления размещаются по адресу /app/views/%имя_контроллера%/%имя_метода%.html.erb.

2.3.3 Реализация  основной функциональности приложения

Для реализации основных элементов CRUD для модели «Кафедра» в контроллере department_controller.rb были созданы методы «new», «create», «list», «index», «show», «edit», «update», «delete», «destroy».

В методе «new» создаёт  новый экземпляр класса Department, а  соответствующее ему отображение  «new.html.erb» формирует HTML-форму, заполнив которую и нажав кнопку «Создать кафедру» пользователь посылает команду  методу «create», который получает данные из формы, и если они корректны, записывает экземпляр класса в базу данных. При успешном выполнении этих операций браузер перенаправляется к методу «index», иначе вновь будет отображена форма создания кафедры с отображаемой ошибкой.

Метод «index» служит простой  «заглушкой» для корневого адреса, и сразу перенаправляет браузер на метод «list», который формирует список всех кафедр и передаёт его соответствующему представлению. Также практически в каждом методе присутствует определение переменной, определяющей заголовок страницы. Код метода «list» приведён ниже:

  def list

    @departments = Department.all

    @page_title = 'Список кафедр'

  end

 

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

  def edit

    @department = Department.find_by_id(params[:id])

    @page_title = "Редактирование кафедры " + @department.name

  end

Метод «update» получает из формы редактирования обновлённые  данные и действует подобно методу «create» - при успешном выполнении этих операций браузер перенаправляется к методу «index», иначе вновь будет отображена форма редактирования кафедры с отображаемой ошибкой. Код метода «update» приведён ниже:

  def update

    @department = Department.find(params[:id])

    if @department.update_attributes(params[:department])

      flash[:notice] = 'Курс обновлён'

      redirect_to(:action => 'show', :id => @department.id)

    else

      render('edit')

    end

  end

Метод «delete» направляет браузер на страницу подтверждения удаления выбранной кафедры. При отмене решения браузер перенаправляется к списку всех кафедр, а при подтверждении выполняется метод «destroy», удаляющий выбранную кафедру.

Реализация аналогичных  функций, за редкими исключениями, аналогична для всех остальных контроллеров. Листинги контроллера Lecture приведен в Приложении Б.

2.3.4 Начало  работы с представлениями

После того, как контроллер создаёт определённый набор данных, управление передаётся ActionView – модулю Rails, ответственному за отображение данных с помощью представлений.

Представления – это файлы  с расширением .html.erb в которых  находится обычная HTML-разметка и  встроенный Ruby-код. Все эти файлы  находятся в папке /app/views/ в подпапке с именем соответствующего представлению контроллера. Для того, чтобы Ruby-код исполнялся в файле представления, его строки помещаются в тэг <% %>. Например код

<% a = ‘Test’ %>

присвоит стоку «Test» переменной a. Отображение результата выполнения команды в тэге <% %> не происходит. Для того чтобы вывести результат необходимо использовать тэг <%= %>. Таким образом, код

<%= p a %>

выполнит команду p с переменной a, то есть выведет содержимое переменной в виде строки. В контексте представлений в итоговую HTML-страницу будет добавлена строка «Test».

2.3.5 Создание  представления-макета

Для того, чтобы не повторять  в коде представлений общие для  всей системы элементы, существует специальное представление-макет application.html.erb в папке /layouts. В нём можно задать основные элементы страницы, такие как заголовок и подпись, установить ссылки на используемые JavaScript и CSS файлы. Место, в котором должно отображаться непосредственно вызываемое контроллером представление задаётся тэгом <%= yield %>.

Информация о работе Создание обучающей системы с использованием интернет-технологий