5.2. Схема потоков данных между подсистемами РИВСУУП
Рис. 4. Схема потоков данных между компонентами РИВСУУП
6. Функциональные требования
6.1. Авторизационная форма
Отображается при запуске АРМа. Выполняет следующие функции:
· Аутентификация пользователя
· Проверка наличия администраторских прав
· Определение подразделения, к которому принадлежит данный сотрудник, предоставление прав только в пределах данного подразделения
Данная форма является стандартной для АРМов РИВСУУП, она входит в состав ядра.
6.2. Форма выбора факультета
Отображается только для пользователя с правами администратора. Позволяет данному пользователю выбрать факультет, в рамках которого он будет работать.
6.3. Главная форма
Координационная форма. Включает в себя меню, в котором можно выбрать деятельность:
· Просмотр сессии;
· Просмотр учебных карточек;
· Выбор факультета (только для администратора системы).
6.4. Форма выбора сессии
· Диалог, запрашивающий номер группы, год и семестр;
· Проверка существования сессии с выбранными параметрами;
· Переход к форме просмотра списка специальностей.
6.5. Форма выбора учебной карточки
· Диалог, предлагающий выбрать студента из списка;
· Фильтры, позволяющие просматривать список студентов, обучавшихся на факультете в выбранный год и в выбранной группе;
· Текстовое поле для поиска студента в списке по фамилии;
· Переход к форме учебной карточки после выбора студента.
6.6. Форма учебной карточки
· Список всех дисциплин, а также отчетностей по ним, из учебного плана специальности, на которой обучается выбранный студент;
· Соответствие учебного плана рабочим планам (по количеству часов и видам отчетностей);
· Просмотр истории оценок по данной дисциплине;
· Выставление итоговой оценки.
6.7. Форма просмотра списка специальностей
· Формирование списка специальностей данного факультета, и для каждой специальности - списка курсов и групп, сдающих выбранную сессию;
· Отображение сроков сессии и количества каждого вида отчетности для каждого потока;
· Предоставление пользователю возможности сформировать сводную ведомость успеваемости выбранной группы, в формате Excel;
· Предоставление пользователю возможности сформировать все ведомости выбранной группы, в формате Word;
· Выбор группы и переход на форму просмотра отчетностей группы.
6.8. Форма просмотра отчетностей группы
· Список дисциплин, которые данной группе предстоит сдать на этой сессии. Для каждой дисциплины указан вид отчетности;
· Выделение дисциплин по выбору и факультативов;
· Отображение для каждой дисциплины списка преподавателей, привязанных к ней учебными поручениями. Предусмотрена также возможность замены преподавателя;
· Выставление дат сдачи.
· Выбор отчетности и переход на форму зачетно-экзаменационной ведомости
6.9. Форма зачетно-экзаменационной ведомости
· Отображение шапки ведомости, содержащей следующие поля:
– Учебный год;
– Семестр;
– Специальность;
– Группа;
– Число студентов в группе;
– Название дисциплина;
– Название кафедры;
– Название отчетности;
– Количество часов;
– ФИО преподавателя.
· Отображение списка группы;
· Заполнение следующих полей (для каждого учащегося, по каждой дисциплине):
– Оценка (в соответствии с отчетностью)
– Дата сдачи (если отличается от «официальной», указанной в форме отчетностей)
· Автозаполнение поля «Дата сдачи» (по умолчанию выставляется официальная дата сдачи);
· Сохранение истории оценок;
· Удаление оценок. Если история оценок содержит более одной оценки, то на место удаленной оценки должна выводиться предшествующая ей;
· Предоставление возможности генерации печатной формы зачетно-экзаменационной ведомости.
6.10. Автоматическое составление печатных документов на основе шаблонов
· Составление ведомости по выбранной отчетности по дисциплине (в виде документа Word). Ведомость должна содержать заголовок ведомости (см. 6.9) и список группы;
· Составление всех ведомостей по выбранной группе, на выбранной сессии (в виде документа Word). Каждая ведомость должна размещаться на отдельной странице;
· Составление сводной ведомости выбранной группы (в виде документа Excel). Она должна включать в себя:
– Таблицу, содержащую оценки всех студентов данной группы по всем отчетностям данной сессии;
– Средние оценки по данной сессии всех студентов данной группы
– Вычисленное количество отличников, хорошистов, троечников и неуспевающих. Неуспевающим считается человек, не сдавший сессию либо имеющий хотя бы одну оценку «неудовлетворительно», «неявка» или «не допущен»
· Для всех автоматически созданных документов должно также автоматически создаваться соответствующее им название (например, «Ведомости гр. 01.11 (2006 г 1 сем) »)
6.10.1. Компоненты ядра РИВСУУП, используемые для экспорта документов в Word и Excel
Для автоматического составления печатных форм была принята та же схема, что и для остальных АРМов РИВСУУП. Составляется XML-шаблон (соответственно, WordML или ExcelML) необходимого документа. В нужные места в шаблоне вставляются специальные теги, которые впоследствии будут заменены данными. Экспорт осуществляется с помощью методов классов TMWordMLExporter и TMExcelMLExporter. В объект соответствующего класса загружается сам XML-шаблон и блок данных (Dataset), которые надо занести в документ. После этого объект класса экспорта может сгенерировать новый документ, имеющий ту же структуру, что и шаблон и содержащий все данные.
6.11. Требования к интерфейсу
· Интерфейс должен быть выполнен в стиле, разработанном ОРПО для АРМов. Для отображения данных в таблицах должны быть использованы компоненты ядра РИВСУУП:
Рис. 5. АРМы РИВСУУП
· Автозаполнение редактируемых полей дат.
6.11.1. Визуальные компоненты ядра РИВСУУП
Ядро системы предоставляет следующие компоненты, используемые для загрузки, сохранения и отображения данных.
· TMObject
Представляет из себя абстрактный класс объектов, реализующий механизм доступа к данным через атрибуты. Одним из ключевых механизмов при реализации ИС является механизм поддержки иерархии объектов -- прямых и косвенных отношений между объектами типа родитель-ребенок, а также организация взаимодействия между ними - механизм рассылки уведомлений. В рамках механизма поддержки иерархии объектов возможно изменение иерархии объектов как в процессе проектирования, так и в процессе выполнения, причем учитываются как прямые связи, так и косвенные.
· MGrid
Класс предоставляет методы для отображения информации на экране в табличном виде, в нем также была реализована концепция типизированных редакторов (редактор текстовой информации, редактор дат, выпадающий список значений и т.д.). Данный класс оперирует таким понятием, как ячейка, и позволяет строить гибкий пользовательский интерфейс, комбинируя ячейки различного размера и объединяя их в отдельные области.
7. Проект
7.1. Структура БД
Рис. 6. Структура базы данных
Можно провести аналогию приведенных сущностей базы данных с ранее описанными сущностями системы (см. 5.1). Соответствие приведено в следующей таблице:
Сущность системы
Сущность БД
Семестр рабочего плана (WorkTerm)
U_WorkTerms
Рабочий план (WorkPlan)
U_WorkPlans
Сессия (Session)
VSes_Sessions
Учебное поручение (TeacherPart)
VSes_TeacherParts
Группа (Group)
VSes_Groups
Отчетность по дисциплине (DisciplineControl)
VSes_DisciplineControls
Студент (Student)
VSes_Persons
Ведомость (ControlRegister)
D_ControlRegisters
Оценка (Result)
D_Results, D_ResultsCache
Балл (Mark)
D_Marks
В основном, поля сущностей БД полностью соответствуют атрибутам сущностей системы. Стоит подробнее остановиться на сущности «Оценка», которой соответствует сразу две новых таблицы базы данных. Таблицы имеют совершенно одинаковую структуру, разница в том, что в D_Results хранятся все оценки, а в D_ResultsCache - только актуальные. Это значит, что, если некий студент сдавал одно и то же несколько раз, то в D_Results будет храниться вся история оценок, а в D_ResultsCache - только последняя. В поле Moment хранится дата и время внесения записи (чтобы можно было получить историю оценок в порядке их получения). Изначально для хранения оценок была введена только одна таблица, но в ней присутствовало поле IsActual, которое указывало, является данная оценка актуальной или нет. Но схема с двумя таблицами оказалась гораздо удобнее, так как SQL-запросы упростились и стали быстрее выполняться. Целостность данных поддерживается триггерами на добавление и удаление данных в таблице D_Results: обновляются соответствующие записи в D_ResultsCache.
Страницы: 1, 2, 3, 4, 5, 6