Разработка и тестирование автоматизированной системы контроля успеваемости студентов

Анализ решений в сфере автоматизации контроля успеваемости и вычисления оценок студентов, сравнительный анализ. Обоснование методов решения задачи создания автоматизированной системы учета и контроля знаний студентов. Разработка и тестирование программ.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 31.08.2016
Размер файла 4,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

  • Оглавление
  • Введение
  • 1. Обзор литературы и нормативных документов
  • 1.1Обзор и анализ нормативных документов
  • 1.2Обзор и анализ литературы
  • 2. Анализ существующих программных решений
  • 3. Обоснование выбора методов решения
  • 4. Обоснование выбора языка программирования
  • 5. Обоснование выбора инструментальных и программных средств
  • 6. Разработка структурной схемы проекта и структуры программного обеспечения
  • 6.1Проектирование базы данных
  • 6.2Вывод формул расчёта оценок
  • 7. Разработка прикладного программного обеспечения
  • 7.1Структура системы
  • 7.2Разработка клиент-серверной части
  • 7.3Разработка базы данных
  • 7.4Разработка клиентского приложения
  • 8. Тестирование прикладного программного обеспечения
  • 8.1Общие сведения о тестировании
  • 8.2Тестирование интерфейса
  • 8.3Тестирование алгоритма вычисления оценок
  • Заключение
  • Список литературы

Введение

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

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

Всё это делает разработку системы с гибкой настройкой вычислительной части актуальной.

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

Задачи выпускной квалификационной работы:

1. Найти документацию Национального исследовательского университета «Высшая школа экономики» (далее - НИУ ВШЭ) по организации учебного процесса в учебном заведении и провести её анализ.

2. Найти литературу по теме автоматизации контроля успеваемости и вычисления оценок студентов и проанализировать её.

3. Найти существующие решения в сфере автоматизированных систем контроля успеваемости и вычисления оценок студентов и провести их сравнительный анализ.

4. Выбрать и обосновать методы решения для автоматизированной системы контроля успеваемости и вычисления оценок студентов.

5. Обосновать выбор языков программирования.

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

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

8. Разработать прикладное программное обеспечение для автоматизированной системы контроля успеваемости и вычисления оценок студентов.

9. Протестировать программное обеспечение для автоматизированной системы контроля успеваемости и вычисления оценок студентов.

Система построена на клиент-серверной архитектуре. На стороне сервера находится реляционная база данных с системой управления базами данных MySQL. На стороне клиента находится программное обеспечение, написанное на языке C# с помощью бесплатной среды разработки Microsoft Visual Studio C# 2010 Express.

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

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

1. Обзор литературы и нормативных документов

1.1 Обзор и анализ нормативных документов

Для начала решения поставленных задач необходимо было изучить нормативную документацию НИУ ВШЭ, которая касается автоматизированных систем контроля успеваемости и вычисления оценок студентов.

В ходе решения задачи по исследованию документации об организации учебного процесса в НИУ ВШЭ основной упор был сделан на документ «Положение об организации промежуточной аттестации и текущего контроля успеваемости студентов национального исследовательского университета «Высшая школа экономики»» [1]. В данном положении к особому рассмотрению были подвергнуты главы I, II, III, V, а ещё приняты во внимание главы IV, VIII. В каждой главе были приведены важные пункты, которые так или иначе влияют на контроль успеваемости или на вычисление оценки студента. Все эти пункты необходимо учесть при разработке автоматизированной системы.

В первой главе «Общие положения и определения» в пункте 4 описывается назначение текущего контроля успеваемости студентов. Пункты с 5 по 10 описывают проведение промежуточного или итогового контроля по дисциплине. Важно учесть следующие особенности:

- каждая дисциплина заканчивается окончательной аттестацией;

- в каждом модуле проводимой дисциплины может быть, а может и не быть промежуточной аттестации;

- в качестве промежуточной аттестации может использоваться экзамен (зачёт);

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

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

Пункты 1 и 2 утверждают десятибалльную систему оценивания, а далее приведено её соответствие с официально используемой в Российской Федерации пятибалльной системой оценивания. Важно сделать вывод, что для унифицирования системы необходимо дать возможность преподавателю установить свою систему оценивания. О том, что система оценивания, в зависимости от решения преподавателя дисциплины, может меняться в отдельно взятом элементе текущего контроля, сказано в пункте 17, а о масштабировании таковых до десятибалльной системы сказано в 20 пункте.

Пункт 19 говорит о расчёте накопленной оценки с помощью взвешенной суммы оценок за отдельные формы оценивания знаний, где сумма весов должна быть равна 1. Как некоторое ограничение, в случае проведения экзамена в результирующей формуле вес текущего контроля не может превысить 0,8 (пункт 21), а без экзамена её вес равен 1 (пункт 22).

Пункт 24 говорит об округлении накопленной, экзаменационной и результирующей оценок. Пункт 25 говорит о том, что каждый модуль может иметь свою формулу расчёта. В этом случае в программе курса приводится итоговая формула, учитывающая результаты промежуточных аттестаций (пункт 27).

Третья глава описывает организацию текущего контроля при изучении дисциплины. Очень важен пункт 31 о формах контроля. В НИУ ВШЭ используются следующие формы текущего контроля:

- домашнее задание;

- контрольная работа;

- самостоятельная работа;

- реферат;

- эссе;

- коллоквиум;

- лабораторная работа;

- курсовой проект;

- другие формы на усмотрение преподавателя.

Пункт 36 сообщает важную подробность о том, что преподаватель имеет право незначительно корректировать план проведения работ. Пункт 46 описывает возможность преподавателя освободить студента от сдачи экзамена, если накопленная оценка больше 7, в таком случае за экзамен автоматически ставится за экзамен оценка «отлично».

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

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

Данный документ положен в основу разработки системы, хотя эта система также может учитывать сторонние стандарты для увеличения охвата пользователей. Остальные документы НИУ ВШЭ лишь косвенно затрагивают заданную тему, потому рассматривать данные источники нет необходимости.

1.2 Обзор и анализ литературы

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

Трещев Иван Андреевич в своей статье «Разработка автоматизированной системы контроля успеваемости студентов ВУЗа» [2] описывает функционал, который должна предоставлять система. В статье происходит следующее деление на группы пользователей: студент, преподаватель, заведующий кафедрой, декан. Что касается функционала, то для разных групп пользователей он изменяется. Выберем лишь те возможности, которые относятся к рассматриваемой теме.

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

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

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

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

Реализация происходит по клиент-серверной технологии с клиентом в виде web-странице в браузере. В список аппаратных и программных средств включается сервер Apache, система управления базами данных (далее - СУБД) MySQL и язык программирования PHP.

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

В статье «Информатизация системы управления процедурой оценки знаний и учётом текущей успеваемости в Высшем учебном заведении в контексте электронного государства» [3] Кешиков Константин Андреевич оценивает системы контроля успеваемости и вычисления оценок студентов как большую и важную часть информационной системы учебных заведений, которая может стать ориентиром для студентов и преподавателей для улучшения своих навыков и повышения уровня ВУЗа. Данная статья не даёт ничего нового в плане оценивания успеваемости, но указывает на важность подобных систем в контексте электронного государства.

Статья «Автоматизированная система мониторинга успеваемости студентов университета с применением технологии OLAP» [4] исследует мониторинг оценок студентов как крайне удобный инструмент для оценивания возможностей студентов и их учебно-познавательной деятельности. Обработка вручную таких данных представляется как трудозатратный процесс, что приводит к необходимости разработки системы мониторинга успеваемости с применением технологии OLAP (On-Line Analysis Processing). Данная система должна обрабатывать экзаменационные ведомости и направления на переэкзаменовку, а в качестве результата выдавать графики, сводные таблицы и отчёты. База данных системы основана на следующих сущностях: таблица фактов, предмет, преподаватель, оценка, дата и студенты. Из них информация об оценках и датах обновляется с определённой периодичностью, остальные сущности в основном неизменны.

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

Похожая статья написана Харченко И.С. и Красулиным А.В. В их публикации «Применение информационной системы мониторинга успеваемости студентов для оценки качества профессионального образования в ОМГУПС» [5] сказано о важности сбора, хранения и обработки информации об оценках студентов. Рассказано о разработке своей системы, в которой используется СУБД MySQL и язык программирования PHP, позволяющие обеспечить веб-интерфейс. Система состоит из нескольких модулей, которые учитывают различные типы контроля знаний, аттестации, формирование рейтинга. Есть функция перевода из разных шкал оценивания в другие шкалы.

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

2. Анализ существующих программных решений

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

Система управления учебным процессом «Magellan» для одного модуля содержит электронный журнал успеваемости, позволяющий хранить и редактировать данные по текущей успеваемости и посещаемости, формируя рейтинги и аудиторную нагрузку преподавателей. Эта система предназначена для использования в высших учебных заведениях. Она имеет лишь две шкалы измерения оценки: 5-балльную и 10-балльную. К её преимуществам относится интеграция с автоматизированной системой Moodle, гибкая настройка возможностей групп пользователей и формирования отчётов. Модуль представлен как в виде отдельной программы, так в виде веб-сайта, имеющей мобильную версию. Приобретение данного продукта производится лично с каждым заказчиком, потому состав комплекта системы и цена могут меняться.

Электронный журнал для школы «ЭлЖур» распространяется бесплатно, но по заявке. Имеет функцию выставления оценок, поддерживает различные системы оценивания, комментарии к работам, оценкам и учебникам, формирует различные типы отчётов. Есть учёт посещаемости, поддерживается экспорт данных в Excel и pdf. В системе имеется реклама. Существует мобильная версия приложения, однако настольной версии нет.

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

Программный комплекс «ЗТ:ХроноГраф Журнал» отличает возможность автономной работы с оценками учеников, когда нет связи с сервером хранения оценок. Сервер позволяется установить самим заказчикам, а не пользоваться централизованным готовым. Комплекс имеет вид отдельной программы для персонального компьютера. Для предоставления оценок учащимся разработан веб-интерфейс. Из других особенностей следует заметить лишь две системы оценивания и три варианта деления учебного года на отдельные периоды. Стоимость комплекса составляет 14 тысяч рублей, в случае использования серверов компании данная сумма будет увеличиваться на 5 тысяч рублей каждый год. Имеется демо-версия системы.

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

В национальном исследовательском университете «Высшая школа экономики» применяется своя система электронного журнала под названием LMS. Данная система в плане контроля успеваемости и вычисления оценок студентов достигла больших высот, а именно научилась работать с весами к оценке и выгружать все данные студента в Excel. Однако никакой зависимости от даты проставления или тонкой настройки занятий здесь нет. Присутствует адаптивный веб-интерфейс, однако удобного ввода оценок в мобильной версии нет.

На курсах «Алгоритмизация вычислений» и «Информатика и программирование» в Московском институте электроники и математики (далее - МИЭМ) НИУ ВШЭ применяется журнал оценок, основанный на Excel [6]. Здесь присутствует поддержка формул высчисления оценки за модуль, поддержка любых систем оценивания и приведение их к десятибалльной или любой другой шкале, а ещё возможно учесть проведение или не проведение какой-либо работы. Отдельным плюсом можно считать назвать точность оценки, которая может доходить до сотых долей.

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

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

К необходимым функциям относятся:

- возможность введения формулы расчёта итоговой оценки и формул промежуточного контроля;

- возможность введения веса оценок;

- адаптивность в высчитывании оценки;

- разделение на группы пользователей;

- поддержка различных систем оценивания и их приведение к одной единой, устанавливаемой преподавателем;

- экспортирование в различные виды представления для отчётности;

- построение рейтингов и графиков для контроля успеваемости и общих успехов студентов;

- учёт нескольких deadline с понижением оценки;

- проставление оценок за ответы у доски;

- добавление учебных планов с формулами оценок и типами работ, используемых в предмете;

- редактирование списков групп.

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

К функциям, которые не нужно реализовывать в рассматриваемом проекте, следует отнести отмечание посещаемости, учёта которой нет в НИУ ВШЭ.

3. Обоснование выбора методов решения

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

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

- все вычисления оценок и их хранение происходит на одном персональном устройстве, тогда технология автономна;

- клиент-серверная технология, при которой вся обработка производится на персональном устройстве, а информация хранится на сервере;

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

Автономная технология плохо подходит для больших учебных заведений, особенно если журнал используется для нескольких учебных курсов. Кроме того, происходит сильная привязка к устройству, имеется зависимость от его работоспособности, невозможна работа с другого устройства с теми же данными. Клиент-серверная технология с полной обработкой и хранением информации на сервере тоже плохо подходит для данного типа приложения, поскольку НИУ ВШЭ обеспечен в основном достаточно производительными информационными устройствами, а такая система больше подходит для тонких клиентов. Здесь же существует большая зависимость от серверов, при их перегрузке могут быть проблемы с работоспособностью системы. Поэтому остаётся лишь вариант с клиент-серверной технологией, которая отвечает характеристикам представленной аппаратуры, позволяет распределить нагрузку на сеть высшего образовательного учреждения, даёт возможность работать из любого места, где есть интернет. Стоит сказать, что подобная технология позволяет работать и в режиме offline, если сделать возможным скачивание данных по определённым предметам. Именно такой вид клиент-серверной технологии будет реализован в проекте.

Следующим шагом стоит определиться с формой хранения данных на сервере. Возможны следующие варианты хранения информации:

- хранение в виде обычного текстового документа с определёнными правилами записи и чтения;

- хранение в виде специального xml файла с заранее разработанными правилами записи данных;

- использование базы данных с заранее спроектированной и реализованной структурой.

Хранение в текстовом документе или специальном файле типа xml требует написания отдельного обработчика для функций записи и чтения. Это довольно трудоёмкий процесс, который отнимет время, но не принесёт особой пользы. Использование базы данных с системой управления базой данных (СУБД) позволит избавиться от необходимости написания собственного обработчика данных, предоставив выработанную технологию запросов к СУБД, где есть специальные алгоритмы поиска данных с большой скоростью.

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

- иерархическая база данных;

- сетевая база данных;

- реляционная база данных;

- объектно-реляционная база данных.

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

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

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

4. Обоснование выбора языка программирования

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

- C++;

- С#;

- Java.

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

C# обладает синтаксисом Java и C++, а также имеет во многом схожие с этими языками функции, но отличительной чертой языка являются атрибуты, делегаты и события. Основан на платформе .NET, которая позволяет запустить приложение на различных платформах. Сборка мусора осуществляется на уровне платформы .NET. В одном файле возможно создать сразу несколько классов, что помогает уменьшить количество файлов проекта. К одному классу можно подключить несколько интерфейсов. Возможно определять структуры и перечисления. Большим плюсом является быстрая и углублённая работа с xml, Excel, Word и иными программами из пакета Microsoft Office. Из минусов стоит отметить низкую скорость работы со строками. Для работы с MySQL необходимо установить отдельные библиотеки. Является основным языком для работы с некоторыми отдельными системами, к примеру, Unity3D.

Java похож на C#, а вернее наоборот. Имеет почти те же функции, кроме атрибутов, делегатов и событий. Имеет более простой синтаксис по сравнению с C++. Кроссплатформенный. Главной чертой является возможность создания веб-серверных приложений на базе JSP.

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

В качестве языка программирования для баз данных необходимо использовать одну из версий SQL, поскольку иных языков для работы с базами данных практически нет, все они являются лишь слегка изменёнными по сравнению со стандартом в зависимости от используемой системы управления базами данных. Нужно также учесть, что версия языка SQL будет зависеть от выбранной СУБД.

5. Обоснование выбора инструментальных и программных средств

Для работы с базами данных созданы системы управлением базами данных. Существует довольно большое количество СУБД, особенно предназначенных для работы с реляционными базами данных. Сравним несколько самых распространённых СУБД:

- MySQL;

- Oracle Database;

- Microsoft Access;

- Firebird;

- PostgreSQL.

Необходимо отметить хорошую настройку графического интерфейса для работы с базами данных в Microsoft Access. Она позволяет полностью создать формы для работы с базами данных, то есть практически полный интерфейс. Однако в данном варианте отсутствует тонкая настройка, возможность иначе формировать таблицы с помощью нескольких запросов, то есть в общем структура представления успеваемости студентов ухудшается. К тому же, данная система является платной и работает лишь на операционной системе Windows. В завершение рассмотрения данной СУБД стоит сказать, что SQL запросы для работы с базой данных не соответствуют стандарту ANSI.

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

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

Oracle поддерживает автономные транзакции, то есть все изменения не вносятся в базу данных до подтверждения, работает с объектно-реляционным типом баз данных. Поддерживается многими платформами, реализованы основные функции, но SQL запросы проводятся по специальному стандарту. Является платной.

MySQL разрабатывается в Oracle и является свободной СУБД, то есть бесплатной для использования. Данная система работает на самом большом количестве платформ. Входит в состав серверов LAMP, WAMP, XAMPP и в портативные сборки серверов Denver. Это самая популярная СУБД из всех представленных. Основные функции для работы с базами данных присутствует. Предоставляет API для большинства существующих языков программирования.

Из всех представленных систем управления базами данных следует выбрать MySQL. Первой причиной служит то, что на сервер может быть установлена любая операционная система, а в выбранном решении существует поддержка большинства существующих ОС. Таким образом можно не беспокоиться за выбор операционной системы для сервера. Второй причиной является то, что большинство серверов работает именно с этой системой управления базами данных, особенно такие гиганты как WordPress и Joomla, а это облегчит создание веб-версии программы при дальнейшей доработке проекта. Третья причина в бесплатном использовании данной СУБД для любого человека, хотя при применении данной системы управления итоговый продукт не может быть коммерческим. Четвёртой причиной служит удобная реализация индексов, хранимых процедур, триггеров, функций и прочего. Пятой причиной служит простота настройки и использования MySQL.

Для языка C# следует выбрать среду разработки. Рассмотрим несколько из существующих:

- MS Visual Studio C# 2010 Express;

- SharpDevelop;

- MonoDevelop.

MS Visual Studio C# 2010 Express является бесплатной средой разработки для C#. Содержит возможности создания приложений Windows Forms, WPF, консольные приложения, приложения среды CLR и платформы .NET. Среда предназначена для работы с C#, содержит большое количество библиотек для работы на этом языке.

SharpDevelop является ещё одной бесплатной средой разработки с основанием на платформе .NET. Возможности созадния приложений те же, что у MS Visual Studio C# 2010. Присутствует поддержка GIT.

MonoDevelop - кроссплатформенная бесплатная среда разработки доя языка C# и других языков платформы .NET.

Особых отличий между данными средами нет, потому выбор падает на первый вариант, MS Visual Studio C# 2010 Express, поскольку эта среда изначально создавалась для данного языка и имеет самое большое разнообразие средств и возможностей для работы с языком программирования C#. Однако стоит также иметь в виду MonoDevelop с целью переноса проекта на другие платформы.

успеваемость контроль автоматизированный программа

6. Разработка структурной схемы проекта и структуры программного обеспечения

При работе над проектом разрабатывались два основных компонента системы: база данных (далее - БД) и интерфейс клиентского приложения. Затем необходимо было обеспечить связь между ними. Таким образом, изначально следовало спроектировать структуру базы данных и реализовать её из MySQL, и параллельно с этим разрабатывать интерфейс и клиент-серверную связь.

6.1Проектирование базы данных

Для начала необходимо было определить сущности будущей базы данных вместе с соответствующими им атрибутами. Удалось выделить следующие сущности:

1. Преподаватель. Атрибуты: ID преподавателя, Ф.И.О., логин, пароль.

2. Группа. Атрибуты: название группы.

3. Студент. Атрибуты: студенческий билет, Ф.И.О., название группы, вариант, логин, пароль.

4. Предмет. Атрибуты: ID предмета, название предмета, модуль.

5. Занятие. Атрибуты: ID занятия, ID предмета, тип занятия, дата deadline, процент понижения, вид контроля знания, вес оценки.

6. Оценка. Атрибуты: ID студента, ID занятия, оценка, дата сдачи, ID преподавателя.

7. Виды занятий. Атрибуты: Название.

8. Годы обучения. Атрибуты: Учебный год.

9. Модуль. Атрибуты: ID модуля, год обучения, номер модуля, дата начала, дата окончания, дата начала сессии.

Далее следует описать предметную область базы данных, чтобы можно было уточнить зависимость сущностей друг от друга. Было получено следующее описание:

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

- Студент входит в одну группу, одна группа состоит из нескольких студентов.

- Один предмет может преподаваться разному количеству групп. Одна группа может изучать один или несколько предметов.

- Занятие относится лишь к одному предмету. У предмета может быть несколько занятий.

- Занятие относится лишь к одной группе. У групп может быть одно или много занятий.

- Занятие относится к одному модулю. Модуль может содержать одно или много занятий.

- Каждая оценка относится к соответствующему занятию и студенту, у студента может быть много оценок.

- Каждая оценка может быть поставлена одним преподавателем, преподаватель может поставить одну или много оценок.

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

- Каждый модуль относится к одному учебному году, учебный год может содержать один или несколько модулей.

- Каждое занятие содержит один тип занятия, каждый тип занятия может относится к одному или нескольким занятиям.

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

Рис. 1. ER-диаграмма базы данных

Следующим шагом следовало построить ER-диаграмму. Результат представлен на рис. 1.

Далее необходимо перевести ER-диаграмму в схему БД, используя стандартные правила. При этом требуется провести несколько шагов нормализации.

Перевод в схему баз данных осуществляется по следующим правилам:

- Отношение «один ко многим» реализуется в виде внешнего ключа у таблицы со многими связями от таблицы с одной связью.

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

- Соединение трёх таблиц порождает новую таблицу с дополнительными атрибутами, если такие имеются или необходимы, при этом возникает атрибуты, связывающие новую таблицу с родительскими.

Таким образом связи «Соответствует», «Ставит», «Включает», «Содержит», «Идут», «Получают», «Относятся» между сущностями «Группы» и «Занятие» и «Состоят» реализуются с помощью внешних ключей. Связи «Ведёт», «Изучают», «Относятся» между сущностями «Предметы» и «Учебные годы» реализуются с помощью новых таблиц. Связь «Формула» аналогично преобразуется в отдельную таблицу с дополнительным атрибутом «Вес».

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

При первом шаге нормализации сложные атрибуты «Ф.И.О.» у таблиц «Студенты» и «Преподаватели» разделяются на простые поля «Фамилия», «Имя», «Отчество». Других сложных полей в структуре нет.

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

Транзитивных зависимостей в полученной структуре базы данных не найдено, потому третий шаг считается выполненным автоматически.

В результате получается итоговая схема базы данных для разрабатываемого проекта (рис. 2).

Рис. 2. Схема базы данных

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

- Под количество учебных годов отводится 10 мест типа char(9), тогда

.

- Под количество типов занятий отводится 8 мест типа char(20), тогда

.

- Количество модулей зависит от количества учебных годов, на 10 лет это:

.

- Под 50 названий групп типа char(8) требуется:

.

- Под одного студента:

- В группе по 40 студентов

.

- В штате департамента около 200 преподавателей, тогда:

.

- Всего имеется около 200 различных предметов, в среднем каждый предмет преподаётся в течение 4 модулей, для каждого модуля составляется своя таблица, тогда:

.

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

- В модуле максимум 11 недель, то есть возможно провести11 лабораторных работ, 2 курсовых/рефератов/эссе и около 11 домашних работ. У каждого такого занятия может быть 3 deadline, тогда для одного года потребуется объём:

- Формулы хранятся для каждого вида занятия отдельно для каждого модуля, в таком случае для каждого учебного года память рассчитывается по формуле:

- Для хранения оценок потребуется объём памяти, вычисляемый по формуле:

- Для хранения базы данных по каждому учебному году необходимо выделить объём памяти, который можно вычислить по формуле:

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

- Архив необходимо хранить около 9 лет: 10*1,5= 15 Гб.

- Под дополнительные файлы необходимо столько же места, сколько под всю информацию БД: 15 * 2 = 30 Гб.

Итого для хранения информации об оценках на сервере необходимо около 30 Гб постоянной памяти.

На данном этапе процесс проектирования базы данных может считаться завершённым.

6.2Вывод формул расчёта оценок

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

- зависимость оценки от срока сдачи работы;

- близость работ по смыслу и объёму;

- близость работ по времени и месту проведения;

- работа проводится или задание выдаётся одним или несколькими преподавателями.

В итоге можно получить следующий список объединённых видов работ, которые будут использоваться в системе:

- домашнее задание;

- контрольная работа, коллоквиум;

- проверочная работа на семинаре, выход к доске;

- проверочная работа на лекции, выход к доске;

- реферат, эссе, курсовой проект;

- лабораторная работа.

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

Необходимо заметить, что в качестве негласного, обязательного и окончательного deadline для всех работ модуля берётся дата начала сессии. Если работа предполагает выполнение в течение нескольких модулей, то оценка в любом случае будет поставлена в последнем из них, а потому крайним сроком будет являться этот срок. В случае проставления хотя бы одного другого крайнего срока сдачи, стандартный deadline в виде даты начала сессии модуля теряет свою силу и отменяется.

Разобравшись с видами занятий, необходимо определить формулы, по которым будет производиться расчёт оценок студентов. Для этого потребуется ввести несколько обозначений:

- Q - оценка за модуль.

- - количество работ определённого вида, проводимых за модуль.

- - абсолютная оценка, то есть оценка в стандартной шкале оценивания, принятой преподавателем.

- - относительная оценка, которая заменяется собой общую систему оценивания и имеет своё действие лишь в пределах одного занятия одного вида работ.

- - коэффициент, с помощью которого происходит перевод относительной оценки в абсолютную.

- - коэффициент понижения в зависимости от даты сдачи определённой работы.

- - весовой коэффициент;

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

- итог(n) - итоговая балл за курс или за n-ный модуль;

- экз - балл за экзамен;

- нак - накопленный балл за модуль;

- лр - балл за лабораторную работу;

- с - балл за проверочную работу на семинаре;

- от - балл за ответ у доски или на лекции;

- макс - максимально возможный балл;

- расч(i) - балл, который в итоге войдёт в вычислительную формулу для вычисления результата.

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

В общем случае итоговая оценка за модуль высчитывается по формуле (1).

(1)

В НИУ ВШЭ возможно подведение итогового или промежуточного балла за курс за несколько модулей. В таком случае в расчёт балла за модуль, в котором присутствует итоговый контроль, включается оценка за прошлый модуль. В простейшем варианте это представлено в виде формулы (1). Необходимо отметить, что все индексы без отдельной пометки относятся к текущему модулю.

(2)

Расчёт итоговой оценки за модуль без итогового оценивания описан в формуле (2).

(3)

Весовой коэффициент в данном случае не представлен, поскольку равен единице. На примере вычисления балла за все семинары можно представить расчёт оценки за виды работ без deadline. В данном виде работ необходимо нужно найти сумму баллов за все работы, перемноженные на их коэффициенты, благодаря которым относительные оценки переводятся в абсолютные. Расчёта оценки за семинары проводится по формуле (4).

(4)

высчитывается по формуле (5).

(5)

В данной формуле - это оценка за определённую проверочную работу на семинаре, а - это коэффициент пересчёта, рассчитываемый по формуле (6).

,(6)

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

При расчёте оценки за работы, в которых deadline имеет значение (например, в лабораторных работах), справедливы формулы (4) и (6). Однако формула (5) претерпевает изменения в случае, если оценка выходит за пределы срока сдачи. Это изменение отображено в формуле (7).

(7)

В формуле (7) - это коэффициент понижения оценки за лабораторную работу с номером i, проставляемый преподавателем и зависящий от даты.

Важно отметить, что преподаватель может объявить выставление оценки «автоматом». Это предполагает автоматическое получение итоговой оценки по предмету без сдачи экзамена по данному учебному курсу, начиная с определённой оценки, если она больше или равна 8. Это должно отдельно учитываться программой.

7. Разработка прикладного программного обеспечения

7.1Структура системы

В ходе разработки выпускной квалификационной работы использовались базы данных, созданные в среде MySQL Workbench, и создано клиентское приложение. Ниже представлена структура базы данных (рис. 3) и структура клиентского приложения (рис. 4).

Рис. 3. Структура базы данных

Рис. 4. Структура клиентского

В структуре базы данных представлены все таблицы, ранее описанные во 7 главе, пункт 7.1 «Проектирование базы данных».

В структуре клиентского приложения находятся папки с базовыми настройками проекта, ссылками на библиотеки, здесь же находится конфигурационный файл для подключения к базе данных, начальный файл для работы приложения Program.cs и 5 классов типа Windows Form. В файлах с обычным расширением .cs хранится код обработки формы, то есть основной код. В файлах с расширением .Designer.cs находится автоматически генерируемый код, отвечающий за основные настройки элементов на форме. Файлы типа .resx являются файлами-хранилищами ресурсов, представленных в XML виде. В файле «DiplomHelp.chm» находится справочная информация по проекту, призванная помочь пользователю.

В данной структуре форма «StartWindows» является начальным окном выбора предмета, «MainWindow» содержит в себе основную таблицу оценок, «UpMarks» является окном проставления оценок за выбранное занятие, «LesEdit» является окном добавления, изменения и сохранения занятий, а форма «KursEdit» предоставляет аналогичные возможности для работы с учебными курсами. Данные формы будут подробно рассмотрены ниже.

Общая схема связей основных классов представлена на рис. 5.

7.2 Разработка клиент-серверной части

Разработка клиент-серверной части проекта, то есть связь между клиентским приложением и базой данных, реализуется при помощи специальной библиотеки MySQL для C#, свободно распространяемой на сайте MySQL. В структуре клиентского приложения (рис. 4) представлена часть этой библиотеки, а именно «MySQL.Data» в папке «Ссылки». Остальные части библиотеки не являются необходимыми для работы.

Рис. 5. Схема связей между классами

Для работы с базой данных необходимо использовать поставщик данных, который обеспечивает подключение, позволяет выполнять SQL запросы и получать результаты. Для подключения необходимо знать ip адреса сервера, имя базы данных, которая используется системой, имя пользователя и его пароль, номер порта. Вся эта информация хранится в специальном xml-файле с типом расширения .config, что позволяет быстро изменять параметры подключения, а не искать по всему коду очередное поле, которое нужно изменить. В данный момент этот файл выглядит следующим образом:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<connectionStrings>

<add name="MySQLConStr"

connectionString="Server=localhost;

Database=sysmp;

Uid=root;

Password=********;

Port=3306;

SslMode=Preferred;"

providerName="MySql.Data.MySqlClient"/>

</connectionStrings>

</configuration>

В самом коде связь между окном отображения информации DataGridView и базой данной осуществляется через класс DataTable. DataGridVies - это визуализированная таблица, которая позволяет отображать данные в различных форматах и хранить названия столбцов. DataTable - это внутренняя таблица хранения данных, схожая с DataGridView, но не представляющая пользовательский интерфейс для отображения информации. Создаётся функция, которая возвращает объект типа DataTable, а на входе всегда получает тип ConnectionStringSettings, содержащий информацию о конфигурационном файле с информацией о подключении к базе данных. Внутри функции находится строка с SQL запросом. Пример SQL запроса на выборку данных:

string queryString = @"SELECT studId as 'ID',

surname as 'Фамилия',

name as 'Имя',

midname as 'Отчество'

FROM students";

С помощью строки MySqlConnection con = new MySqlConnection(conString.ConnectionString) происходит подключение к базе данных. Далее создаётся связь между объектом типа MySqlCommand и строкой SQL запроса с указанием на нужное соединение, таким образом создаётся команда запроса к базе данных. Далее открывается соединение с базой по команде con.Open() и запускается режим запроса, в ходе которого вся информация, полученная в ходе SQL запроса, загружается в объект типа DataTable, который и является результатом функции. После получения результатов соединение закрывается. В дальнейшем форма DataGridView в своё свойство DataSource получает результат описанной ранее функции. Таким образом создаётся связь между окном отображения и объектом DataTable.

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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.