Система поддержки Дистанционного Обучения ФИТ НГУ Исследование и разработка базиса Системы Дистанционного Обучения – архитектура, ядро системы, инструментальная среда проекта Автор : Стукаленко А. В. Научный руководитель : к. ф. м. н., доцент кафедры систем информатики НГУ, с. н. с. Васючкова Татьяна Сергеевна
Информация о проекте Полное название : Система поддержки Дистанционного Обучения ФИТ НГУ Рабочие названия : iDeas NSUDE Количество участников : 4 Объем исходного кода : 20K LOC Объем документации : более 20 документов
Ключевые цели создания системы поддержки дистанционного образования ФИТ НГУ Предоставление оперативного доступа учащихся к учебно - методическим материалам Возможность оперативного изменения состава учебно - методических материалов Предоставление коммуникационной среды участникам образовательного процесса Возможность оперативного контроля за деятельностью участников ОП Возможность проведения тестирования и контроля знаний учащихся в процессе обучения
Проблемы, возникшие на начальной стадии проекта Отсутствие у заказчика четкого понимания функциональных требований к создаваемой системе Отсутствие унифицированного подхода к построению систем поддержки дистанционного образования ( каждая система предлагает свои, отличные от других подходы к организации СДО ) Отсутствие опыта у участников проекта в создании подобных систем Отсутствие у большинства участников проекта практического опыта по сбору и формализации требований
Цели первого этапа работ ( исследования ) Сформировать общее представление о предметной области у команды разработки Определить целевую аудиторию разрабатываемой системы Ключевые субъекты и роли – категории лиц, участвующие в учебном процессе Ключевые активности – задачи, решаемые ключевыми субъектами и методы их работы Потребности в информационных ресурсах и способы их использования Установить – можно ли использовать какую либо из существующих систем дистанционного обучения в качестве основы для построения целевой системы
План работ первого этапа Выработать список критериев совместно с заказчиком для оценки систем автоматизации ДО Проанализировать набор существующих систем на предмет соответствия критериям СДО « Прометей » СДО « Инфотехно » СДО «Moodle» Сформулировать ТЗ к будущей системе на основе : проведенного анализа существующих систем пожеланий заказчика собственного опыта участия в образовательном процессе Согласовывать ТЗ к будущей системе с заказчиком на итерационной основе с помощью прототипов
Список критериев для оценки систем поддержки дистанционного обучения Соответствие установленным процессам дополнительного обучения с использованием дистанционных технологий ФИТ НГУ Расширяемость Простота доработки существующего функционала Простота добавления нового функционала Простота интеграции с внешними системами Простота поддержки Простота установки и настройки Возможность поддержки собственными силами без привлечения внешних специалистов Доступность исходного кода Стоимость
Результаты первого этапа работ Ни одна из проанализированных систем не устроила заказчика Высокая стоимость приобретения и эксплуатации Неудобный пользовательский интерфейс Отсутствие доступа к исходному коду Отсутствие удобной готовой к использованию документации Принято решение о создании своей системы Разработана документация с результатами анализа Ключевые сущности и роли, участвующие в процессе дополнительного образования Выделена ключевая функциональность Установлены приоритеты функциональности Отмечены положительные свойства проанализированных систем для заимствования Создана концепция системы Определены ключевые функциональные требования
Принципы построения и функционирования системы ( начало ) Системность решений – разработка долговременной концепции создания и развития информационной системы и выполнение ее положений в течение всего периода существования концепции Атомарность ответственности – для каждого набора данных и активностей должен быть определен единственный автор, имеющий право внесения и модификации данных и осуществления активностей и ответственный за сохранность данных и своевременность совершаемых действий Свободное развитие – архитектура системы, предоставляющая максимально возможную независимость развития системы в рамках функциональных компонент системы Ориентированность на бизнес - процессы – описание функций подразделения ( функциональной компоненты системы ) должно производиться посредством описания его бизнес - процессов Ортогональность и гранулярность сервисов – функциональное обеспечение бизнес - процессов каждого подразделения должно быть локализовано в рамках конкретных функциональных компонент. Каждый функциональный компонент должен предоставлять только те сервисы, которые относятся к обеспечению бизнес - процессов соответствующего подразделения. Разрабатываемые сервисы должны предоставлять максимальный уровень гранулярности.
Принципы построения и функционирования системы ( окончание ) Ортогональность данных – информационное наполнение базы данных в разрезе функциональных компонент должно содержать только ту информацию, которая необходима для обеспечения бизнес - процессов, поддерживаемых соответствующим компонентом Функциональные зависимости на уровне БД – структура БД и сервисы доступа к данным должны обеспечивать простоту реализации необходимых функциональных зависимостей Обеспечение целостности данных – структуры данных, ограничения, сервисы доступа к данным и различные реализуемые в рамках системы алгоритмы должны обеспечивать гарантию сохранения целостности данных в процессе жизни системы Обеспечение технологии ручного ввода данных – при организации ввода данных, выполняемого вручную, необходимо добиваться максимально возможной простоты, надежности и быстродействия Обеспечение возможности автономной работы – система должна предоставлять возможность локального сохранения данных для автономной работы
Этап сбора требований и проработки архитектуры Разбиение задач и ролей в проектной команде Разработка архитектуры системы в соответствии с предъявленными требованиями Создание проектного окружения Разработка концепции пользовательского интерфейса Разработка базовой структуры пользовательского интерфейса системы Создание и формализация функциональных требований по ключевым направлениям деятельности : Учебная часть Студенты и преподаватели Методисты
Требования к архитектуре и технологиям Простота и независимость расширения при минимальном влиянии на работающую функциональность Обеспечение высокого уровня независимости ( гранулярности и ортогональности ) сервисов Однозначность разбиения модулей и компонент Возможность повторного использования компонент Прозрачность применяемых решений Простота разработки Простота интеграции
Архитектура и технологии – список технологий и фреймворков Java (JDK 6u14) Adobe Flex SDK 4 Adobe Blaze DS 4 Spring Core Spring Blaze DS Spring Annotations Spring Security Spring DAO Spring TX Apache commons Apache log4j Apache Tomcat 6 mySql 5
Архитектура и технологии - общее представление
Архитектура и технологии – структура серверной части
Архитектура и технологии – структура клиентской части
Архитектура и технологии – преимущества Крайне высокая эффективность разработки : Четкое разделение на логические слои Использование аннотаций для задания сервисов, точек доступа, автоматической привязки компонент, контроля доступа к функциональности и управления транзакциями Существенно облегченная работа с данными за счет DAO Минимум конфигурации Автоматизированная поддержка транзакций с использованием SPRING TX Кроссплатформенное решение Высокая степень модульности и гранулярности сервисов Отличная масштабируемость Сервисы могут располагаться на различных серверах и работать с различными БД Слой доступа к данным обеспечивает независимость от выбранной БД, SQL в коде отсутствует Простота освоения на уровне, достаточном для реализации конкретной функциональности Простота распределения задач ( за счет компонентной и сервисной структуры )
Проектное окружение Eclipse IDE for Java EE Developers (v ) Adobe FLASH Builder Plug-in (Flex v. 4) SPARX Enterprise Architect Microsoft Project Microsoft Visio SVN (GoogleCode hosting) Skype WebEx
Принципы, положенные в основу концепции пользовательского интерфейса Простота и понятность Легкость восприятия Минимизация необходимых действий Атомарность действий Защита от незапланированных и ошибочных действий Простота поиска данных Простота классификации данных Высокая производительность
Базовая структура пользовательского интерфейса системы ( начало )
Базовая структура пользовательского интерфейса системы ( окончание )
Разбивка на подсистемы Ядро системы Подсистема авторизации и аутентификации Подсистема методиста ( курсы ) Подсистема инспектора ( группы и отчетность ) Подсистема пользователя Подсистема нормативных документов Подсистема коммуникаций Подсистема хранения материалов Подсистема тестирования
Состав работ в рамках каждой подсистемы Разработка дизайна подсистемы Разработка списка сервисов и предоставляемых интерфейсов Разработка логической и физической моделей данных Разработка слоя доступа к данным и хранимых процедур Разработка серверной части ( сервисы и контроллеры ) Разработка клиентской части Документация Тестирование Разработка Unit- тестов Системное тестирование Функциональное тестирование
Полученные результаты Сформулирована и поставлена задача по разработке системы поддержки дистанционного образования ФИТ НГУ Произведен анализ присутствующих на рынке систем и выделены ключевые принципы и функциональные требования Созданы концепция и высокоуровневые требования системы Разработана архитектура системы, отвечающая всем предъявляемым требованиям и разработанным принципам Созданы и формализованы функциональные требования к системе Разработана концепция пользовательского интерфейса, отражающая пожелания заказчика и ключевые принципы удобства в использовании Созданы и реализованы модели данных системы, отражающие структуру и зависимости реальных сущностей, участвующих в бизнес - процессах заказчика Реализована базовая функциональность системы, необходимая для пилотного запуска системы в эксплуатацию Создана документация по системе
Сводная таблица критериев ( начало )
Сводная таблица критериев ( окончание )
Состав диплома Постановка задачи Концепция системы Высокоуровневые требования к системе Нефункциональные требования к системе Шаблоны проектной документации Архитектура и дизайн системы Проектные окружения Планы работ и отчеты о ходе выполнения Концепция пользовательского интерфейса ( совместно с остальными участниками проекта ) Базовая структура пользовательского интерфейса системы Реализация подсистем Структуры данных Хранимые процедуры Сервисы, контроллеры и объекты доступа к данным Клиентские компоненты и пользовательский интерфейс
Развитие системы Доработка пользовательской и системной документации, руководства пользователя Внедрение системы в образовательный процесс ФИТ НГУ Расширение коммуникационной среды интерактивными возможностями Расширение имеющихся функциональных возможностей Автоматизация процессов учебной части Разработка новых функциональных компонент, автоматизирующих смежную деятельность Интеграция с административными системами Университета
Вопросы ?