![](/stc/img/evkova.png)
Разработка базы данных
Содержание:
ВВЕДЕНИЕ
Компьютерная обучающая система по программированию с модулем экспертной оценки – это информационная система, которая позволяет проводить тестирование учащихся по программированию, а также оценивать качество выполнения тестов.
Разрабатываемая система должна предоставлять следующие возможности:
- Обладать необходимым функционалом для тестирования учащихся.
- Обеспечивать проверку правильности выполненного задания.
- Выполнять экспертную оценку выполненного задания.
- Обеспечивать хранение результатов.
- Иметь удобный интерфейс.
Результат работы должен представлять собой компьютерную обучающую систему, позволяющую оценивать навыки программирования учащихся на основе специально составленных заданий, а также оценивать качество программного кода учащихся на основе оценок, которые должны быть выбраны в ходе выполнения работы.
Разрабатываемая система может использоваться в учебном процессе для обучения программированию. Система позволит повысить качество программного кода, написанного учениками, а также снизить нагрузку на преподавателя за счет оценки качества выполненного задания.
Глава 1.
Существующие системы обучения программированию различаются по своей функциональности, и предназначены для разных целей. Условно системы можно разделить по следующим типам:
- Не интерактивные системы обучения программированию. В большинстве своем такие системы представляют собой электронный учебник, содержащий материал для изучения.
- Системы обучения визуальному программированию. Обычно представляют собой IDE для создания программ методом работы с графическими элементами. В качестве примера можно привести систему Scratch. С одной стороны, такие системы обычно имеют низкой порог входа, с другой стороны визуальное программирование редко используется в “реальной” разработке, и по мнению автора рациональнее было бы начать обучение с распространённых языков программирования, хотя такие системы целесообразно использовать для обучения логике детей и школьников.
- Системы обучения программированию реализованные в виде игр. Суть обучения состоит в том, что обучающийся должен программировать игровую логику во время игрового процесса. В качестве примера можно привести игру Code hero. Такие обучающие системы хоть и выглядят оригинально, но не лишены недостатков. Основные недостатки: узкий круг задач, которые нужно решить программированием, однообразность.
- Системы обучения программированию через решение задач на языке программирования. Обучение с помощью таких систем наиболее приближено к реальной деятельности программиста. Суть обучения в подобных системах состоит в том, что учащемуся дается задание, которое нужно, затем решение проверяется на правильность. В качестве примера можно упомянуть Codecademy, интерактивную онлайн платформу для обучения программированию.
Системы обучения программированию через решение задач на языке программирования представляются автору наиболее эффективными при наличии дополнительной образовательной нагрузки в виде лекций или семинаров. Тестовые задания в таких системах можно задавать в качестве домашнего задания для учащихся. Остается проблема оценки качества выполнения задания. Автором было предложено использование метрик кода и статического анализа в качестве критериев оценки качества выполненного задания. Хотя таким образом невозможно однозначно оценить качество выполненного задания, но можно дать предварительную оценку. Кроме того, значение метрик кода и результаты статического анализ можно использовать для обнаружения проблемных участков кода во время выполнения тестовых заданий учениками, и на основе этих данных давать рекомендации учащимся.
В качестве языка программирования для обучения был выбран язык C#. C# — это самый удобный язык.
Правила именования параметров функций:
- Для именования параметров используется стиль camel case;
- Имена параметров должны давать четкое представление о том для чего используется параметр, и какое значение следует передать при вызове функции.
- В том случае, когда это не препятствует понимаю кода, в качестве имени параметра функции используется имя соответствующего параметру класса. Для коллекций и массивов используется имя объектов, содержащихся в коллекции или массиве.
- Имена параметров не должны совпадать с именами членов класса, если этого не удается избежать, то для разрешения конфликтов используется ключевое слово this.
- В именах параметров не используется венгерская нотация.
Правила именования свойств:
- Для именования свойств используется стиль pascal case;
- В том случае, когда это не препятствует понимаю кода, в качестве имени Свойства используется имя соответствующего свойству класса. Для коллекций и массивов используется имя объектов, содержащихся в коллекции или массиве.
- Название свойства типа bool должно представлять из себя вопрос, требующий ответа да или нет.
Правила именования полей:
- Для именования полей, доступных вне класса, используется стиль pascal case, для private полей - camel case;
- В том случае, когда это не препятствует понимаю кода, в качестве имени поля используется имя соответствующего полю класса. Для коллекций и массивов используется имя объектов, содержащихся в коллекции или массиве.
- Название поля типа bool должно представлять из себя вопрос, требующий ответа да или нет.
Правила именования переменных:
- Для именования переменных используется стиль camel case;
- В циклах foreach имя переменной назначается как имя массива в единственном числе.
Для именования констант используется стиль pascal case.
Правила именования enum’ов:
- Для именования enum’ов и их значений используется стиль pascal case;
- Имена enum’ов указываются в единственном числе;
- Имена, как правило, состоят из имени сущности, к которой относится enum и названия содержимого enum’а (status, type, state).
Правила именования exception’ов:
- Для exception’ов используется стиль pascal case;
- Имена классов для создаваемых custom exception’ов заканчиваются суффиксом Exception;
- В качестве имени объекта исключения внутри catch, для исключений типа Exception, используется имя “ex”.
В таблице 1.1 приведены сводные правила именования идентификаторов.
Таблица 1.1 - Сводная таблица правил именования идентификаторов
Идентификатор |
Регистр |
Пример |
Класс |
Pascal |
User |
Локальная переменная |
Camel |
user |
Интерфейс |
Pascal |
IDisposable |
Generic |
Pascal |
T, TKey, TValue |
Public функция |
Pascal |
Authenticate |
Private функция |
Pascal |
Authenticate |
Параметр функции |
Camel |
userID |
Public свойство |
Pascal |
FirstName |
Private свойство |
Pascal |
FirstName |
Public поле |
Pascal |
FirstName |
Private поле |
Camel |
firstName |
Enum |
Pascal |
UserStatus |
Значение enum’а |
Pascal |
Active |
Exception |
Pascal |
UserAuthenticationException |
Event |
Pascal |
StatusChanged |
Namespace |
Pascal |
UserManager |
Глава 2.
Структурная схема определяет основные части системы, их назначение и взаимосвязи и служат для общего ознакомления с системой. На структурной схеме раскрывается не принцип работы отдельных частей системы, а только взаимодействие между ними. Поэтому составные части системы изображают упрощенно в виде прямоугольников произвольной формы.
На рисунке 2.1 приводится структурная схема проектируемой ИС.
Рисунок 2.1 – Структурная схема системы
Система состоит из следующих модулей, взаимодействующих между собой:
- Модуль выполнения заданий. Отвечает выполнение заданий учениками. Связан с модулем тестирования кода и с модулем экспертной оценки.
- Модуль интерфейса ученика. Отвечает за взаимодействие с учеником. Связан с модулем выполнения заданий.
- Модуль экспертной оценки. Отвечает за экспертную оценку задания. Для работы использует значения метрик кода.
- Модуль тестирования кода. Отвечает за проверку решения с помощью набора тестов
- Модуль оценки метрик кода. Оценивает характеристики кода и передает значения в модуль экспертной оценки для интерпретации.
- Модуль интерфейса преподавателя. Отвечает за взаимодействие с преподавателем.
- Модуль создания заданий. Содержит инструментарий для создания новых тестовых заданий. Взаимодействует с модулем интерфейса преподавателя.
Концептуальная схема БД
Концептуальная схема базы данных строиться для описания содержания и структуры базы данных. Схема базы данных — её структура, описанная на формальном языке, поддерживаемом системой управления базами данных. Сущность – любой различимый объект, информацию о котором необходимо хранить в базе данных.
Концептуальная схема БД приведена на рисунке 2.2.
Рисунок 2.2 - Концептуальная схема БД
- Группа\Класс. В этой сущности содержится информация о группе или классе в котором учатся ученики.
- Замечание. Эта сущность содержит информацию о замечании к исходному коду решения, включая идентификатор автора замечания, текст замечания, информацию о том, было ли замечание исправлено.
- Решение. В этой сущности содержится информация решении задачи учеником.
- Исходный код решения. Эта сущность содержит исходный код решения, при внесении правок в исходный код, старая сущность остается неизменной, а в таблицу добавляется новая запись.
- Результат. Эта сущность содержит оценку решения, а также вспомогательную информацию.
- Задание. В этой сущности содержится информация о задании для решения. Условия задания, тесты и прочая информация храниться во внутреннем формате программы.
- Пользователь. В этой сущности содержится такая информация о пользователе системы, как логин, пароль, электронная почта, роль пользователя в системе (администратор, учащийся, преподаватель).
Функциональная схема системы
Для любой разрабатываемой системы, на первом этапе, необходимо построение функциональной модели, которая строится на основании требований заказчика и учета спецификаций области ее применения. Модель информационной системы разработана при помощи CASE инструмента BPwin.
На рисунке 2.3 показана функциональная схема системы, которая содержит следующие действия над объектами:
- Создание заданий.
- Выполнение заданий.
- Отображение интерфейса.
Рисунок 2.3 – Функциональная схема системы
На вход поступают:
- Исходный код.
- Задание.
- Тесты.
Управление осуществляется c помощью:
- Правил тестирования кода.
- Правил работы с метриками.
- Формата ошибок.
- Правил формирования интерфейса.
- Формата задания.
- Формата тестов.
Механизмом являются:
- Сборщик заданий.
- Windows Presentation Framework.
- Алгоритмы.
На выход поступают:
- Пользовательский интерфейс.
- Преподавательский интерфейс.
На рисунке 2.4 показана диаграмма «Выполнение заданий», которая содержит следующие действия над объектами:
- Тестирование кода.
- Экспертная оценка кода.
- Формирование отчета об ошибках.
Рисунок 2.4 - Функциональный блок «Выполнение заданий»
На вход поступают:
- Исходный код.
- Задание.
Управление осуществляется c помощью:
- Правил тестирования кода.
- Формата ошибок.
- Правил работы с метриками.
На выход поступает отчет об ошибках. Механизмом являются алгоритмы.
На рисунке 2.5 показана диаграмма «Экспертная оценка кода», которая содержит следующие действия над объектами:
- Оценка метрик кода.
- Анализ метрик кода.
Рисунок 2.5 - Функциональный блок «Экспертная оценка кода»
На выход поступает результат экспертной оценки. На вход поступает исходный код. Управление осуществляется c помощью правил работы с метриками. Механизмом является алгоритмы.
На рисунке 2.6 показана диаграмма «Отображение интерфейса», которая содержит следующие действия над объектами:
- Отображение пользовательского интерфейса.
- Отображение преподавательского интерфейса.
Рисунок 2.6 - Функциональный блок «Отображение интерфейса»
На вход поступают:
- Отчет об ошибках.
- Задание.
Механизмом является Windows Presentation Framework. Управление осуществляется c помощью правил формирования интерфейса. На выход поступают:
- Пользовательский интерфейс.
- Преподавательский интерфейс.
На рисунке 2.7 показана диаграмма «Создание заданий», которая содержит следующие действия над объектами:
- Валидация тестов.
- Сборка тестового задания.
Рисунок 2.7 - Функциональный блок «Создание заданий»
На вход поступают:
- Задание.
- Тесты.
На выход поступает задание. Механизмом являются:
- Сборщик заданий.
- Алгоритмы.
Управление осуществляется c помощью:
- Формата задания.
- Формата тестов.
Выбор СУБД производился по следующим критериям:
- Распространённость и популярность продукта. Редкая и неизвестная СУБД может быть просто забыта в будущем своим производителем и поддержка и развитие созданной Системы напрямую зависит от этого фактора.
- Простота использования, администрирования. Исключительно экономический критерий – менее квалифицированные кадры требуют меньшего вознаграждения за свой труд.
- Надёжность и устойчивость сервера. Снижает затраты на поддержание работоспособности Системы.
- Надёжность данных при их хранении и обработке. Требуется меньше резервных операций обработки данных.
- Совместимость с выбранной программной платформой. Сервер баз данных должен быть не просто портирован на выбранную ОС, но и надёжно и устойчиво работать под ней.
- Совместимость с распространёнными серверами приложений. Имеет место быть скорее обратный критерий – совместимость распространённых серверов приложений с выбираемым сервером баз данных. Отчасти перекликается с первым критерием – практически все распространённые СУБД поддерживаются наиболее популярными серверами приложений.
- Гибкость настроек баз данных. Это необходимо для более точного отражения и хранения ресурсного наполнения предметной области, а также для поддержки внутренних связей, целостности и логичности хранимой информации.
Microsoft SQL Server — система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов — Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для от небольших и средних по размеру баз данных до крупных баз данных масштаба предприятия, конкурирует с другими СУБД в этом сегменте рынка.
Microsoft SQL Server в качестве языка запросов использует версию SQL, получившую название Transact-SQL (сокращённо T-SQL), являющуюся реализацией SQL-92 (стандарт ISO для SQL) с множественными расширениями. T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур и обеспечивает поддержку транзакций (взаимодействие базы данных с управляющим приложением). Microsoft SQL Server и Sybase ASE для взаимодействия с сетью используют протокол уровня приложения под названием Tabular Data Stream (TDS, протокол передачи табличных данных). Протокол TDS также был реализован в проекте FreeTDS с целью обеспечить различным приложениям возможность взаимодействия с базами данных Microsoft SQL Server и Sybase.
Microsoft SQL Server также поддерживает Open Database Connectivity (ODBC) — интерфейс взаимодействия приложений с СУБД. Версия SQL Server 2005 обеспечивает возможность подключения пользователей через веб-сервисы, использующие протокол SOAP. Это позволяет клиентским программам, не предназначенным для Windows, кроссплатформенно соединяться с SQL Server. Microsoft также выпустила сертифицированный драйвер JDBC, позволяющий приложениям под управлением Java (таким как BEA и IBM WebSphere) соединяться с Microsoft SQL Server 2000 и 2005.
SQL Server поддерживает зеркалирование и кластеризацию баз данных. Кластер сервера SQL — это совокупность одинаково конфигурированных серверов; такая схема помогает распределить рабочую нагрузку между несколькими серверами. Все сервера имеют одно виртуальное имя, и данные распределяются по IP-адресам машин кластера в течение рабочего цикла. Также в случае отказа или сбоя на одном из серверов кластера доступен автоматический перенос нагрузки на другой сервер.
SQL Server поддерживает избыточное дублирование данных по трем сценариям:
- Снимок: Производится «снимок» базы данных, который сервер отправляет
получателям.
- История изменений: Все изменения базы данных непрерывно передаются
пользователям.
- Синхронизация с другими серверами: Базы данных нескольких серверов
синхронизируются между собой. Изменения всех баз данных происходят независимо друг от друга на каждом сервере, а при синхронизации происходит сверка данных. Данный тип дублирования предусматривает возможность разрешения противоречий между БД.
В SQL Server 2008 встроена поддержка .NET Framework. Благодаря этому, хранимые процедуры БД могут быть написаны на любом языке платформы .NET, используя полный набор библиотек, доступных для .NET Framework, включая Common Type System (система обращения с типами данных в Microsoft .NET Framework). Однако, в отличие от других процессов, .NET Framework, будучи базисной системой для SQL Server 2005, выделяет дополнительную память и выстраивает средства управления SQL Server вместо того, чтобы использовать встроенные средства Windows. Это повышает производительность в сравнении с общими алгоритмами Windows, так как алгоритмы распределения ресурсов специально настроены для использования в структурах SQL Server.
MySQL - свободная система управления базами данных (СУБД). MySQL является собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.
MySQL является решением для малых и средних приложений. Входит в LAMP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.
Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.
Версия MySQL 5.2 продолжает путь к стандарту SQL:2003. MySQL 5.2 содержит следующие нововведения:
- сегментирование — возможность разбить одну большую таблицу на несколько частей, размещенных в разных файловых системах, основываясь на определенной пользователем функции. При определенных условиях это может дать серьезное увеличение производительности и, кроме того, облегчает масштабирование таблиц.
- изменено поведение ряда операторов, для обеспечения большей совместимости со стандартом SQL2003;
- построчная репликация (row-based репликация), при которой в бинарный лог будет записываться только информация о реально измененных строках таблицы вместо оригинального (и, возможно, медленного) текста запроса. Построчную репликацию можно использовать только для определенных типов sql-запросов, в терминах MySQL — смешанная (mixed) репликация;
- встроенный планировщик периодически запускаемых работ. По синтаксису добавление задачи похоже на добавление триггера к таблице, по идеологии — на crontab;
- дополнительный набор функций для обработки XML, реализация поддержки XPath;
- новые средства диагностики проблем и утилиты для анализа производительности. Расширены возможности по управлению содержимым лог-файлов, логи теперь могут быть сохранены и в таблицах general_log и slow_log. Утилита mysqlslap позволяет провести нагрузочное тестирование БД с записью времени реакции на каждый запрос;
- для упрощения операции обновления подготовлена утилита mysql_upgrade, которая выполнит проверку всех существующих таблиц на предмет совместимости с новой версией, и при необходимости выполнит надлежащие корректировки;
- MySQL Cluster отныне выпущен как отдельный продукт, базирующийся на MySQL 5.1 и хранилище NDBCLUSTER;
- значительные изменения в работе MySQL Cluster, такие, как, например, возможность хранения табличных данных на диске;
- возврат к использованию встроенной библиотеки libmysqld, отсутствовавшей в MySQL 5.0;
- API для плагинов, которое позволяет загружать сторонние модули, расширяющие функциональность (например, полнотекстовый поиск), без перезапуска сервера.
- реализация парсера полнотекстового поиска в виде plug-in;
- новый тип таблиц Maria (устойчивый к сбоям клон MyISAM);
PostgreSQL - свободная объектно-реляционная система управления базами данных (СУБД). Является свободной альтернативой коммерческим СУБД (таким как Oracle Database, Microsoft SQL Server, IBM DB2, Informix и СУБД производства Sybase) вместе с другими свободными СУБД (такими как MySQL и Firebird). Существует в реализациях для следующих платформ: Linux, Solaris/OpenSolaris, Win32, Mac OS X, FreeBSD, QNX 4.25, QNX 6.
Функции являются блоками кода, исполняемыми на сервере, а не на клиенте БД. Хотя они могут писаться на чистом SQL, реализация дополнительной логики, например, условных переходов и циклов, выходит за рамки собственно SQL и требует использования некоторых языковых расширений. Функции могут писаться с использованием одного из следующих языков:
- Встроенный процедурный язык PL/pgSQL, во многом аналогичный языку PL/SQL, используемому в СУБД Oracle;
- Скриптовые языки — PL/Lua, PL/LOLCODE, PL/Perl, plPHP, PL/Python, PL/Ruby, PL/sh, PL/Tcl и PL/Scheme;
- Классические языки — C, C++, Java (через модуль PL/Java);
- Статистический язык R (через модуль PL/R).
PostgreSQL допускает использование функций, возвращающих набор записей, который далее можно использовать так же, как и результат выполнения обычного запроса.
Функции могут выполняться как с правами их создателя, так и с правами текущего пользователя. Иногда функции отождествляются с хранимыми процедурами, однако между этими понятиями есть различие.
Триггеры определяются как функции, инициируемые DML—операциями. Например, операция INSERT может запускать триггер, проверяющий добавленную запись на соответствия определённым условиям. При написании функций для триггеров могут использоваться различные языки программирования (см. выше).
Триггеры ассоциируются с таблицами. Множественные триггеры выполняются в алфавитном порядке.
В PostgreSQL имеется поддержка индексов следующих типов: B-дерево, хэш, R-дерево, GiST, GIN. При необходимости можно создавать новые типы индексов, хотя это далеко не тривиальный процесс. Индексы в PostgreSQL обладают следующими свойствами:
- возможен просмотр индекса не только в прямом, но и в обратном порядке — создание отдельного индекса для работы конструкции ORDER BY ... DESC не нужно;
- возможно создание индекса над несколькими столбцами таблицы, в том числе над столбцами различных типов данных;
- индексы могут быть функциональными, то есть строиться не на базе набора значений некоего столбца/столбцов, а на базе набора значений функции от набора значений;
- индексы могут быть частичными, то есть строиться только по части таблицы (по некоторой её проекции); в некоторых случаях это помогает создавать намного более компактные индексы или достигать улучшения производительности за счёт использования разных типов индексов для разных (например, с точки зрения частоты обновления) частей таблицы;
- планировщик запросов может использовать несколько индексов одновременно для выполнения сложных запросов.
На основании проведенного аналитического обзора в качестве СУБД была выбрана MySQL. Программное обеспечение MySQL представляет собой очень быстрый многопоточный, многопользовательский и надежный SQL-сервер баз. Сервер MySQL предназначен как для критических по задачам производственных систем с большой нагрузкой, так и для встраивания в программное обеспечение массового распространения.
СУБД MySQL в полной мере отвечает поставленным критериям:
Распространённость и популярность продукта. Не вызывает никаких сомнений – одна из самых известных и используемых платформ в мире. Большая часть мелких и средних проектов, связанных с базами данных, выполняется с применением MySQL.
Простота использования, администрирования. В MySQL активно используется развитый графический интерфейс пользователя. Сервер способен функционировать долгое время в полностью автономном режиме.
Надёжность и устойчивость сервера. MySQL характеризуется большой скоростью, устойчивостью и легкостью в использовании, является идеальным решением для малых и средних приложений. В малых и средних проектах показатель надёжности приближается к показателю большинства известных серверов. Многопоточность. Поддержка нескольких одновременных запросов.
Надёжность данных при их хранении и обработке. Всё резервирование данных осуществляется в автоматическом или полуавтоматическом режиме как в любом современном развитом сервере БД. Все поля имеют значение по умолчанию.
Совместимость с выбранной программной платформой. Совместимость очевидна – MySQL первоначально создавался для платформы Unix, и прекрасно функционирует под Windows 7/Vista/2000/XP/2003.
Совместимость с распространёнными серверами приложений. Практически все популярные сервера приложений имеют в своём составе поддержку MySQL. Интерфейс с языками C и perl, php.
Гибкость настроек баз данных. Большое число поддерживаемых типов данных (поддержка чисел длинной от 1 до 4 байт (ints, float, double, fixed), строк переменной длины и меток времени) Все данные хранятся в формате ISO8859_1. Встроенная Утилита проверки и ремонта таблицы (isamchk). Легкость управления таблицей, включая добавление и удаление ключей и полей. Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках. Гибкая система привилегий и паролей. До 16 ключей в таблице. Каждый ключ может иметь до 15 полей.
Использование программного обеспечения MySQL регламентируется лицензией GPL (GNU General Public License), в которой указано, что можно и чего нельзя делать с этим программным обеспечением в различных ситуациях, также есть возможность приобрести коммерческую версию данной СУБД.
Выбор технологии для создания интерфейса
Платформа .NET Framework предлагает две основные технологии для создания оконного интерфейса:
- Windows Forms.
- Windows Presentation Foundation (WPF).
В результате анализа возможностей этих технологий была выбрана технология WPF.
В основе WPF лежит векторная система отрисовки, не зависящая от разрешения и созданная с расчетом на возможности современного графического оборудования. WPF расширяет базовую систему полным набором функций разработки приложений, в том числе Язык XAML (Extensible Application Markup Language), элементами управления, привязкой данных, макетом, двухмерный- и трехмерный-графикой, анимацией, стилями, шаблонами, документами, мультимедиа, текстом и оформлением. WPF входит в состав Microsoft .NET Framework и позволяет создавать приложения, включающие другие элементы библиотеки классов .NET Framework.
Разработка структуры базы данных
Структура базы данных разрабатывается на основе концептуальной модели. На рисунке 2.8 представлена ER-диаграмма БД. В таблицах 2.1-2.7 представлено описание таблиц базы данных.
Рисунок 2.8 - ER – диаграмма БД
Таблица 2.1 - Описание полей таблицы «Группа\Класс»
PUPIL_GROUP (Группа\Класс) |
||
Описание |
Название |
Тип |
Идентификатор |
id |
INT NOT NULL AUTOINCREMENT |
Название |
name |
VARCHAR(100) |
Таблица 2.2 - Описание полей таблицы «Замечание»
REMARK (Замечание) |
||
Описание |
Название |
Тип |
Идентификатор |
id |
INT NOT NULL AUTOINCREMENT |
Идентификатор исходного кода |
source_code_id |
INT NOT NULL |
Идентификатор создателя |
creator_id |
INT |
Текст замечания |
content |
TEXT NOT NULL |
Было исправлено |
was_fixed |
BOOL NOT NULL |
Таблица 2.3 - Описание полей таблицы «Решение»
SOLUTION (Решение) |
||
Описание |
Название |
Тип |
Идентификатор |
id |
INT NOT NULL AUTOINCREMENT |
Дата создания |
create_time |
DATETIME NOT NULL |
Идентификатор создания |
creator_id |
INT NOT NULL |
Идентификатор задания |
task_id |
INT NOT NULL |
Таблица 2.4 - Описание полей таблицы «Исходный код решения»
SOLUTION_SOURCE (Исходный код решения) |
||
Описание |
Название |
Тип |
Идентификатор |
id |
INT NOT NULL AUTOINCREMENT |
Идентификатор решения |
solution_id |
INT NOT NULL |
Исходный код |
source_code |
TEXT NOT NULL |
Дата создания |
create_time |
DATETIME NOT NULL |
Таблица 2.5 - Описание полей таблицы «Результат»
SUMMARY (Результат) |
||
Описание |
Название |
Тип |
Идентификатор |
id |
INT NOT NULL AUTOINCREMENT |
Идентификатор решения |
solution_id |
INT NOT NULL |
Итоговая оценка |
result_mark |
FLOAT |
Задание выполнено |
complete |
BOOL |
Комментарии |
comments |
TEXT |
Таблица 2.6 - Описание полей таблицы «Задание»
TASK (Задание) |
||
Описание |
Название |
Тип |
Идентификатор |
id |
INT NOT NULL AUTOINCREMENT |
Название |
name |
VARCHAR(128) |
Идентификатор создателя |
creator_id |
INT NOT NULL |
Содержимое задания |
internal_data |
BLOB |
Таблица 2.7 - Описание полей таблицы «Пользователь»
USER (Пользователь) |
||
Описание |
Название |
Тип |
Идентификатор |
id |
INT NOT NULL AUTOINCREMENT |
Логин |
login |
VARCHAR(32) NOT NULL |
Пароль |
password |
VARCHAR(64) NOT NULL |
Электронная почта |
|
VARCHAR(128) NOT NULL |
Полное имя |
fullname |
VARCHAR(128) NOT NULL |
Роль |
role |
ENUM |
Идентификатор группы |
group_id |
INT |
Алгоритм функционирования ИС
Алгоритмы функционирования информационной системы задают условия и последовательность действий компонентов автоматизированной системы при выполнении ей своих функций. В качестве основных алгоритмов функционирования разрабатываемой системы можно выделить следующие:
- Алгоритм проверки заданий.
- Обработка запроса к базе данных.
- Проверка работоспособности сервера БД.
- Составление отчетов о выполнении операций или об ошибках.
- Установление соединения с БД.
- Проверку качества кода.
Алгоритм проверки заданий представлен на рисунке 2.9.
Рисунок 2.9 – Алгоритм проверки заданий
В процессе разработки алгоритмов необходимо руководствоваться стандартными правилами в построении логики программы. Использование стандартных методов и подходов позволит упростить процесс написания кода программы и повысит эффективность взаимодействия приложения с внешней средой.
Интерфейс системы
Интерфейс системы разрабатывается с помощью технологии WPF и состоит из двух частей:
- Интерфейс преподавателя.
- Интерфейс ученика.
Внешний вид интерфейса ученика показан на рисунке 2.10. Окно содержит поле для ввода решения, поле с заданием и список ошибок, допущенных в решении.
Рисунок 2.10 – Интерфейс ученика
Внешний вид интерфейса для создания тестовых заданий показан на рисунке 2.11.
Рисунок 2.11 – Интерфейс создания тестовых заданий
Исследование
Вычислим результирующее значение качества кода разработанной системой. Расчеты показаны в таблице 2.8.
Таблица 2.8 – Расчет результирующей оценки
Метрика |
M |
Mmax |
N=M/Mmax |
R |
RN |
Ошибки именования |
43 |
1540 |
0,0279 |
0,5 |
0,014 |
Ошибки использование переменных и типов |
16 |
623 |
0,0257 |
0,75 |
0,019 |
Ошибки комментирования кода |
0 |
0 |
1 |
0,25 |
0,25 |
Цикломатическая сложность |
4 |
91 |
0,0439 |
1 |
0,044 |
Результирующая оценка |
0,869129 |
Результирующая оценка кода системы получилось равной 0,87, что является хорошим показателем, учитывая, что код системы писался на “скорую руку”. Полученное значение оценки примерно соответствует 4-ке по 5-ти бальной шкале.
Этот же код, оценённый экспертами, получил среднюю оценку 4 по 5-ти бальной шкале, что неплохо согласуется с результатами оценки кода системой.
В таблице 2.9 показаны результаты 3-х экспериментов по оценке качества кода.
Таблица 2.9 – Результаты экспериментов
Эксперимент |
Оценка системы |
Оценка экспертов |
Разница балов |
№1 |
4 |
4 |
0 |
№2 |
4 |
3 |
1 |
№3 |
5 |
4 |
1 |
Как видно из таблицы, результаты оценки кода системой близки к оценке кода экспертами, что свидетельствует о том, что методы оценки в целом были выбраны правильно.
Этапы модели ЖЦ |
Происходящие процессы |
План проекта |
На данном этапе ЖЦ происходит создание технического задания, технических условий и технических предложений. |
Быстрый анализ |
На этапе «Быстрого анализа», осуществляется анализ предметной области, операционных систем с открытым исходным кодом. Исследование схожих и смежных по ряду признаков систем. Выявление актуальных и новых функций проектируемого изделия. Производится анализ и выбор программных средств реализации: выбор программной и аппаратной платформы, выбор языка программирования, выбор СУБД. Происходящие на этапе «Быстрого анализа» процессы позволяют исследовать и создать, актуальный и индивидуальный в своем плане проект. |
Создание БД |
Наличие этапа «Создание БД» в модели ЖЦ позволяет спроектировать и организовать структурную схему системы и создать БД. Разработать заявленные в ТЗ подсистемы. Наполнить надлежащим контентом БД и производить его дальнейшее наращивание с учетом изменения предмета наполнения и его новизны. |
Пользовательский интерфейс |
Производится моделирование и создание основы интерфейса пользователя. |
Функции |
Создание и добавление новых функций выявленных на этапе «быстрого анализа». Реализация функционала ИС. |
Исследование |
Исследование разработанных методов оценки качества кода |
Итеративное проектирование |
На рассматриваемом этапе модели ЖЦ: производится добавление недостающего контента, редактирование пользовательского интерфейса с учетом эргономичности и когнитивных свойств восприятия человеком, а так же доработки и добавления нового функционала ИС (с учетом новшеств выявленных на этапе анализа). Корректировка объектов БД с учетов выявленных замечаний и добавленных функций. На этапе «Итеративное проектирование» происходят процессы эволюции прототипа до требуемого уровня, циклично проходя стадии «быстрый анализ», «создание БД», «пользовательский интерфейс» и «функции». Расчет надежности ИС. |
Утверждение пользователем. |
После прохождения каждого этапа «Итеративного проектирования» ИС предоставляется пользователю. Производится утверждение пользователем, если прототип отвечает всем заявленным требованиям пользователя. |
Производная разработка проекта. |
Доработка прототипа до конечного варианта. Адаптация ИС к заявленным требованиям ТЗ, ТУ и ТП. |
Выводы
В рамках данной курсовой работы была разработана структурная схема системы и описаны ее компоненты, была разработана концептуальная схема базы данных, функциональная схема системы, обоснованы средства разработки. Кроме того, была разработана структура базы данных, включая описание полей таблиц, описан алгоритм функционирования ИС, а также разработан интерфейс системы, который состоит из двух частей. Было проведено исследование, в ходе которого было выяснено что результаты оценки кода системой близки к оценке кода экспертами, что свидетельствует о том, что методы оценки в целом были выбраны правильно. Но в любом случае оценка системы не может заменить оценку экспертами, так как система не проверяет много критериев, которые проверяют эксперты. Например, корректность выбранных алгоритмов для решения задачи проверить в автоматическом режиме очень сложно. Код может быть оформлен по всем правилам, но название методов не соответствовать тем задачам, которые они выполняют. Исходя из этого, можно сделать вывод, что оценка кода системой будет ниже или равна оценки кода системой. Был произведен анализ существующих на сегодняшний день моделей и методологий жизненного цикла. Выбор наиболее подходящей модели к проекту и обоснование выбора модели. Детальное описание выбранной модели.
ЗАКЛЮЧЕНИЕ
Основным результатом курсовой работы является «Компьютерная обучающая система по программированию с модулем экспертной оценки».
В рамках первой главы КР был проведен анализ предметной области. Произведена классификация аналогов. Исследование и анализ аналогов разрабатываемой системы показали, что большая часть аналогов не имеет инструментов для экспертной оценки решения. Также в рамках первой главы, были выбраны критерии оценки тестов и разработана формула результирующей оценки.
В рамках второй главы КР был описан алгоритм функционирования ИС, произведен выбор и обоснование средств разработки. Также были описаны процессы работы системы с функциональной точки зрения. Было выполнено проектирование и разработка интерфейса. Кроме этого, были предложены концептуальная и структурная схемы БД. Также было проведено исследование, в ходе которого было выяснено, что результаты оценки кода системой близки к оценке кода экспертами, что свидетельствует о том, что методы оценки в целом были выбраны правильно.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Ауэр Ксавер, Фрилинг Генрих. Человек – цвет – пространство. Прикладная цветопсихология / Сокр. пер. с нем. О.В. Гавалова. - М.: «Стройиздат», 1973. - 117 с.
- Гвоздева Т.В. Проектирование информационных систем / Т. В. Гвоздева, Б. А. Баллод – изд. Феникс – ISBN 978-5-222-14075-8; 2009 г. – 512 с.
- Гибсон Дж. Экологический подход к зрительному восприятию / Пер. с англ. канд. псих. наук Т.М.Сокольской. - М.: «Прогресс»,1988. - 461 с.
- Грекул В. И. Проектирование информационных систем / Г. Н. Денишенко– М.: Интернет-Ун-т Информ технологий – ISBN: 5-9556-0033-7; 2005 г. – 304 с.
- Грекул В.И., Денишенко Г.Н., Коровкина Н.Л. Проектирование информационных систем - М.: Интернет-Университет Информационных технологий - ISBN: 5-9556-0033-7; 2005 г. – 304 стр.
- Гуминский А А. и др. Руководство к лабораторным занятиям по общей и возрастной физиологии. Учеб. пособие для студентов биол. спец. пед. ин-тов / А.А. Гуминский, Н.Н. Леонтьева, К.В. Марионова. - М.: Просвещение, 1990. - 240 с.
- Гуров В.В. Интернет для бизнеса / В.В. Гуров; - М. : Электроинформ, 1997. -200 с.
- Игра с элементами программирования «Code hero» // [Электронный ресурс]. – Электрон. дан. – 2013. – Режим доступа: http://primerlabs.com/codehero0
- Ипатова Э.Р. Методологии и технологии системного проектирования информационных систем / Э.Р. Ипатова, Ю.В. Ипатов – Флинта; МПСИ – ISBN: 978-5-89349-978-0, 2008 г. – 256 с.
Приложения
- Определение безубыточности предприятия на основе экономического отчета о прибыли и убытках
- Стратегии кадровой безопасности
- Трудовые конфликты в организации: типовые причины и методы профилактики
- Выбор управленческого решения методом анализа иерархий. Оценить корректность метода на примере ООО "ИНФОСОФТ"
- СРАВНИТЕЛЬНАЯ ХАРАКТЕРИСТИКА НОРМАТИВНОЙ БАЗЫ РЕГУЛИРОВАНИЯ ФИНАНСОВОЙ ОТЧЕТНОСТИ В РОССИИ И ОТДЕЛЬНЫХ МЕЖДУНАРОДНЫХ СТАНДАРТОВ ФИНАНСОВОЙ ОТЧЕТНОСТИ (МСФО)
- Финансовая политика и ее реализация в РФ (Теоретические основы финансовой политики и ее задачи)
- Учет амортизации основных средств
- Общие принципы и правила формирования отчетности
- Фирменное наименование и его гражданско-правовая охрана
- Управление оборотными активами организаций индустрии гостеприимства (на примере ресторана «Марадона»)
- Процессы принятия решений в организации (Теоретические основы принятия управленческих решений)
- Автоматизация бизнес-процессов