Аналитический обзор предметной области

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

Во всевозможных рейтингах форумов по языку SQL часто фигурирует веб-ресурс sqlcourse.com. Данный сайт имеет обширный форум с множеством постоянных участников. Тематика не ограничивается стандартами языка, здесь можно почерпнуть знания как о SQL Server, так и об Oracle или, например, DB2. Сайт поддерживается англоязычным сообществом.

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

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

Веб-ресурс sql-tutorial.net является, по сути, справочником по языку. Минималистский интерфейс сочетается с простотой и читабельностью, но здесь нет взаимодействия с пользователем, как и нет возможности решать задачи онлайн. Язык – английский.

Портал webdevelopersnotes.com содержит раздел, посвященный SQL. На доступном английском здесь разъясняются основы языка. Хороший дизайн и большая аудитория самого портала привлекают множество посетителей.

Единственный серьёзный русскоязычный портал схожей тематики – это sql.ru. Ресурс содержит множество полезной информации, обладает сильным форумом. Удобство пользователя также на высоте. К сожалению, нет англоязычной версии.

Таким образом, подводя итоги, можно сделать следующие выводы:

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

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

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

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

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

 


 

Техническое задание

Разработать веб-приложение, предназначенное для обеспечения проведения конкурсов по оптимизации задач на сайте sql-ex.ru.

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

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

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

 

Требования:

1. Требования к составу выполняемых функций.

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

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

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

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

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

 

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

Приложение должно быть реализовано на языке php.

Необходимо использовать паттерн программирования MVC для интеграции с основным сайтом.

Приложение необходимо связать с основной базой данных сайта MSSQLServer 2005, а новую разрабатываемую базу приложения реализовать на MySQL.

 

3. Условия эксплуатации.

Приложение должно корректно отображаться во всех наиболее популярных браузерах, в частности, InternetExplorer 8+, Firefox 3.5+, Opera 10+, Chrome 9+.

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

 

4. Стадии и этапы разработки.

1. Анализ требований к веб-приложению.

2. Выбор функциональных средств.

3. Разработка пользовательского интерфейса и дизайна.

4. Верстка основных страниц(с учетом «кроссбраузерности»).

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

6. Создание базы данных и необходимых таблиц.

7. Подключение баз данных к сайту.

8. Наполнение баз данных тестовым содержимым.

9. Отладка взаимодействия PHP с MS SQL Server и MySQL.

10. Выявление и исправление ошибок и неточностей.