Смекни!
smekni.com

Автоматизированное рабочее место 2 (стр. 5 из 6)

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.

Также отметим, что сущность «Ведомость» не полностью соответствует таблице D_ControlRegisters, т.к. в последней введено еще одно поля – UGroup. Данное поле изначально не планировалось, но было добавлено исключительно из-за накопившихся в базе данных ошибок. Предполагалось, что академическую группу можно было определить через группу для занятий из соответствующего учебного поручения. Но так как у поля SGroup не было поставлено ограничения на непустоту, а также вследствие неправильного ведения пользователями учебных поручений (АРМ «Учебные поручения»), оказалось, что не всегда в ведомости можно однозначно определить группу. Через отчетность по дисциплине же однозначно определить группу также не получалось, потому что там есть ссылка только на рабочий план, а по одному рабочем плану может обучаться несколько академических групп.

Анализ схемы данных показал некоторые её недочеты и порой несогласованность, которая и неудивительна в системах такого масштаба, как РИВСУУП. Например, оказалось, что дисциплины, использующиеся в АРМах подсистемы «Нагрузка и учебные поручения кафедр», не соответствуют дисциплинам, которые пользователи видят в АРМах подсистемы «Учебные планы» (видно на диаграмме базы данных: в представлениях VSes_TeacherParts и VSes_DisciplineControls есть одно и то же строковое поле Discipline). Дело в том, что эти подсистемы разрабатывались практически независимо друг от друга, и, когда, появился АРМ, использующий данные из обеих подсистем, начались сложности. Тем не менее, проблема с дисциплинами была успешно решена путем реализации необходимых объектов серверной логики.

Реализация АРМа «Сессия» потребовала также некоторых изменений в АРМе «Курсантский и студенческий отдел кадров» («КСОК») и той части базы данных, с которой он работает. Раньше в «КСОКе» не было привязки студентов к группам (потому что в этом не было необходимости). Теперь для «КСОКа» введены таблицы, в которых хранится история групп для каждого человека. Были также найдены и исправлены ошибки хранения данных в АРМе «Редактор рабочих учебных планов».


7.2. Модули и алгоритмы

7.2.1. Модули

Можно рассмотреть соответствие модулей системы и компонентов, определенных в главе 4:

Рис. 7. Схема взаимодействия модулей системы

Модуль системы Компонент Описание
USesMainForm.pas Forms Описание класса главной формы TfrmMain (см. 6.3)
USesSessionsForm.pas Описание класса формы списка специальностей TfrmSessions (см. 6.7)
USesGroupControlsForm.pas Описание класса формы работы с формой просмотра отчетностей группы TfrmGroupControls (см. 6.8)
USesRegisterForm.pas Описание класса формы работы с зачетно-экзаменационной ведомостью TfrmRegister (см. 6.9)
USesSelectFacultyForm.pas Описание класса формы выбора факультета TfrmSelectFaculty (см. 6.2)
USesSessionsForm.pas Описание класса формы выбора сессии TfrmSelectSession (см. 6.4)
USesSelectStudentForm Описание класса формы выбора студента TfrmSelectStudentForm (см. 6.5)
USesStudentCardForm Описание класса формы учебной карточки TfrmStudentCardForm (см. 6.6)
USesSpecialityTree.pas ClassesTrees Описание иерархии классов для отображения данных в форме TfrmSessions
USesGroupControlsTree.pas Описание иерархии классов для отображения данных в форме TfrmGroupControls
USesBaseObjects Описание базовых классов, унаследованных от MObject и используемых в остальных модулях для построения иерархии классов для отображения данных
USesRegisterTree Описание иерархии классов для отображения данных в форме TfrmRegister
USesStudentCardTree Описание иерархии классов для отображения данных в форме TfrmStudentCard
About Core Стандартное для всех АРМов РИВСУУП окно «О программе»
Con3 Набор компонентов ядра РИВСУУП, отвечающих за соединение с базой
Login2 Авторизационная форма
MObject Набор компонентов ядра РИВСУУП для загрузки и хранения данных из БД в специальных объектах.
MGrid Набор компонентов ядра РИВСУУП, отвечающих за отображение данных из объектов-наследников TMObject в специальном древесном виде. Входит в ядро РИВСУУП
Version Модуль, позволяющий получать версию клиента
MTest Ядро системы тестирования

Такая структура модулей принята по аналогии с АРМом «КСОК». Программа получается более понятной, а, следовательно, ее легче сопровождать и расширять.

7.2.2. Проект интерфейса

АРМ представляет собой оконное приложение Win32.

Оформление АРМа «Сессия» соответствует графической концепции РИВСУУП, разработанной дизайнером отдела РПО. Введение понятия цветовых схем позволяет соотнести информацию в таблицах к определенному заголовку по цвету, что позволяет развернуть длинные горизонтальные таблицы вертикально, что удобно при анализе информации на экране компьютера. Кроме того, такое представление информации является уже привычным для сотрудников МГУ, по другим АРМам.

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

Ниже приведены снимки экранов АРМа.

Рис. 8. Окно «О программе»


Рис. 9. Форма выбора факультета

Рис. 10. Форма выбора сессии

Рис. 11. Форма списка специальностей