Рябинин Виктор Александрович
Факультет компьютерных наук и технологий
Кафедра компьютерной инженерии
Специальность: Системное программирование
Разработка базы знаний и веб-приложения для подготовки и обработки экзаменационных заданий
Научный руководитель: проф. Святный Владимир Андреевич
Контактная информация
Gmail: ryabinin.victor@gmail.com
Skype: wikt0r_r
Содержание
2. Цели и задачи магистерской работы
2.2 Требования к интерфейсу
2.3 Выбор инструментов для создания приложения
3. Обзор источников информации
4. Состояние проекта на момент написания реферата
4.2 Результаты проделанной работы
4.3 Дальнейшая реализация проекта
1. Актуальность темы
Очень часто возникают ситуации, когда большому количеству пользователей необходимо предоставить доступ к некоторым данным, дать им возможность их получения и редактирования. Эти данные являются общими для всех пользователей и не могут располагаться на каждой клиентской машине: правка информации одним пользователем не будет видна остальным. Для решения задач такого рода применяются web-приложения (веб-приложения, web-based applications) – программные средства, предназначенные для автоматизированного выполнения действий на web-серверах. При этом данные хранятся на сервере, там же при необходимости выполняется их программная обработка. По запросу необходимая информация предоставляются клиенту. Для обеспечения диалога с пользователем в web-приложениях используются web-браузеры. С одной стороны это создает ряд преимуществ (нет необходимости в разработке и установке дополнительного клиентского программного обеспечения, пользователь может запускать приложение в браузере независимо от установленной на его компьютере операционной системы). С другой – накладывает определённые условия при выборе средств разработки интерфейсов таких приложений (HTML, CSS, JavaScript). Однако существуют технологии, позволяющие упростить создание web-интерфейсов (не используя напрямую указанные ранее инструменты) и их связывание с логической частью приложений.
Вне зависимости от способа реализации интерфейса пользователя, web-приложения являются подходящим решениям для вышеупомянутого рода задач, потому что они:
– предоставляют доступ к единой информации одновременно большому числу пользователей;
– не зависят от операционной системы, установленной на пользовательском компьютере.
Благодаря этому ряду преимуществ web-приложения получили широкое распространение. По этой же причине данный подход выбран для реализации задач магистерской работы, приведенных во второй части реферата.
2. Цели и задачи магистерской работы
Здесь будет произведено рассмотрение свойств, которыми должно обладать разрабатываемое приложение и функций, которые оно должно выполнять. Выдвигаемые к приложению требования можно разделить на функциональные и требования к интерфейсу.
Функциональные требования описывают поведение приложения и сервисы (функции), которые оно выполняет. Иногда именуемые требованиями поведения (behavioral requirements), они содержат положения, начинающиеся традиционным словом должен
или должна
. Помимо основных действий, выполнение которых должно обеспечивать приложение, существует ряд дополнительных условий и дополнительных возможностей, которыми оно в соответствии с этими условиями должно обладать.
Требования к интерфейсу – это требования к внешнему виду клиентской части приложения, к его отдельным визуальным элементам.
На основании рассмотренных требований будет предложена общая архитектура приложения, выделены его основные компоненты. В дальнейшем будет произведен выбор средств и инструментов, наиболее подходящих для реализации компонентов, выделенных согласно требованиям.
2.1 Функциональные требования
Разрабатываемое приложение предназначено для выполнения следующих действий:
– предоставление пользователю необходимой ему информации из базы, возможность редактирования предоставленных данных, их удаления либо добавления новых, проверка на корректность и сохранение изменений;
– генерация экзаменационных билетов с использованием хранящейся в базе знаний информации.
Существует также ряд дополнительных требований к приложению, связанных с особенностями его использования. Все они приведены ниже.
Приложение будет использоваться большим числом пользователей, однако все они должны будут иметь доступ к общей информации. При этом нужно, чтобы пользователи имели возможность изменять данные и эти изменения были видны другим пользователям. Таким образом, необходимо обеспечить централизованное хранение данных, организовать возможность одновременного доступа к ним нескольких пользователей, а также предотвратить возникновение конфликтных ситуаций.
Ещё одним свойством, которым должно обладать приложение является многоязычность. То есть в начале работы пользователь должен иметь возможность выбрать подходящий для себя язык интерфейса. На данный момент требуется поддержка трёх языков: немецкого, английского и русского.
При удалении каких-либо данных связанная с ними информация не должна теряться. Одни и те же данные могут быть отредактированы разными пользователями. Вопросы могут относиться к нескольким темам, а ответы – лишь к одному вопросу. Все эти особенности должны быть учтены в структуре данных.
2.2 Требования к интерфейсу
На основании анализа общих требований к проектированию интерфейсной части приложения, был выделен ряд рекомендаций для создания «дружелюбного» к пользователю интерфейса. Можно выделить следующие из них:
– не требовать перезагрузки страницы при каждом действии пользователя. Необходимость обновления страницы нарушает нормальный ход мысли. Поэтому имеет смысл заполнять страницы динамическим контентом, чтобы избавиться от лишних её перезагрузок. К тому же, такой подход снижает интенсивность обмена информацией между клиентской и серверной частями приложения;
– использовать контекстные инструменты для внедрения функциональных возможностей прямо в контент страницы. Эти инструменты являются аналогами контекстного меню в настольных приложениях. Они могут располагаться непосредственно на странице, отображаться при наведении курсора на объект, иметь переключатель для отображения/скрытия и т.д. Данный подход позволяет распределить функциональные возможности по всей странице, не загромождая ее при этом.
Ниже приведены требования к интерфейсу конкретно разрабатываемого приложения:
– наличие форм для отображения запрашиваемой информации (списка пользователей, тем, вопросов по конкретной теме и т. д.);
– наличие форм для редактирования полученной информации. Так как в вопросах и ответах на них могут присутствовать математические формулы, на форме необходимо присутствие редактора для их создания;
– наличие корректного инструмента отображения ошибок в случае их возникновения.
Естественно, все формы для создания и редактирования должны содержать необходимую справочную информацию и подсказки для упрощения работы с ними.
2.3 Выбор инструментов для создания приложения
Подходящим решением описанной задачи является разработка web-приложения. Это обеспечит выполнение таких требований как централизованное хранение информации, одновременный доступ к ней нескольких пользователей. Структура web-приложения в общем виде и направления передачи информации в нем приведены на рисунке 1.
Рисунок 1 – Структура web-приложения в общем виде
(анимация: 7 кадров, 4 цикла повторения, интервал между кадрами 0.8 с., 800х339 px, 30.2 Кб)
Для написания серверной части web-приложения выбран язык программирования Java. Чтобы избавиться от необходимости писать клиентскую часть с использованием стандартных средств (которые указаны в части 1 реферата) и упростить ее связывание с серверной частью, будет использован Vaadin. Это – платформа с открытым исходным кодом, предназначенная для создания полнофункциональных интернет приложений.
Использование данного инструмента позволяет описывать интерфейс приложения на языке Java. В дальнейшем клиентские Java классы преобразуются в совместимые с браузером JavaScript и HTML.
На стороне браузера используется технология Ajax (AJAX – Asynchronous Javascript and XML – асинхронный JavaScript и XML
) для обеспечения функционально насыщенного и интерактивного интерфейса пользователя. Данный подход к построению интерактивных веб-приложений, заключается в фоновом
обмене данными браузера с web-сервером. В результате, при обновлении данных, web-страница не перезагружается полностью, и web-приложения становятся более быстрыми и удобными.
Описанная технология позволяет удовлетворить указанные ранее рекомендации для создания дружелюбного
к пользователю интерфейса. А библиотека готовых виджетов (визуальных элементов) позволяет реализовать все необходимые формы для взаимодействия с приложением, например, для редактирования информации.
Хранение информации будет осуществляться в базе данных. В качестве СУБД будет использоваться PostgreSQL – мощная объектно-реляционная система управления базами данных с открытыми исходными текстами. Структура базы данных приведена на рисунке 2.
Рисунок 2 – Структура базы данных
Для связи СУБД с логической частью приложения будет использоваться Hibernate – библиотека языка программирования Java, предназначенная для решения задач объектно-реляционного отображения (object-relational mapping – ORM). Hibernate обеспечивает связь классов Java с таблицами базы данных.
Подводя итог: использование указанных подходов и инструментов позволяет выполнить все выдвигаемые к функциональности приложения и к его интерфейсу требования.
3. Обзор источников информации
Ниже приведены источники (книги, интернет ресурсы), в которых описываются отдельные этапы или технологии, использованные в разработке.
Поэтапная разработка требований к программному обеспечению (приведена во второй части реферата) описана в книге Разработка требований к программному обеспечению
[1], автор Вингерс Карл. В частности, в ней указаны уровни требований (функциональные, системные, требования пользователей), отдельные из которых уже были описаны ранее.
В книге Проектирование веб-интерфейсов
[2], авторы Скотт Б., Нейл Т., выделен ряд рекомендаций для создания «дружелюбного» к пользователю интерфейса. Эти рекомендации использовались при разработке требований к интерфейсу пользователя.
Книга Java. Полное руководство
[5], автор Шилдт Герберт посвящена описанию синтаксиса и стандартной библиотеки языка Java, использующегося в написании разрабатываемого приложения. Отлично подходит для начинающих Java программистов, также может использоваться как источник справочной информации.
Информация об основных шаблонах проектирования приведена в книге Паттерны проектирования
[4], авторы Фримен Э., Сьерра К., Бейтс Б.
Работа с веб-платформой Vaadin, используемой для создания форм пользовательского интерфейса, описана в книге BookofVaadin
[3], автор Marko Grönroos. Эта книга обновляется при выходе новых версий данного программного обеспечения. Последнюю версию (а также и предыдущие) можно найти на официальном сайте веб-платформы [7]. Помимо книги, на данном ресурсе имеется руководство, необходимое для начала работы с Vaadin, примеры простых приложений, техническая документация по API, форум и много другой полезной при разработке информации.
Для организации доступа к базе данных использована библиотека Hibernate. Её описание и связанная с ней документация имеются на интернет-ресурсе hibernate.org [9]. Там же можно найти и загрузить непосредственно файлы библиотеки. Более подробно и развернуто об использовании данного инструмента можно прочитать в посвященных ему книгах. Например, Hibernate in action
[6], авторы Christian Bauer, Gavin King. Документация по системе управления базой данных PostgreSQL (как и все необходимое для ее установки) находится на сайте postgresql.org [10].
Информацию по используемому при создании приложения фреймворку Spring можно найти на сайте springsource.org [8]. Естественно, помимо указанных в списке источников официальных интернет-ресурсов Spring, Hibernate, Vaadin, существует множество других сайтов, содержащих полезную информацию по данным темам. Некоторые из них приведены в разделе сайта Ссылки
.
4. Состояние проекта на момент написания реферата
Приложение разрабатывается для дальнейшего использования в Штутгартском университете, Германия. Разработка приложения была начата сотрудниками HLRS (The High Performance Computing Center Stuttgart – вычислительный центр высокой производительности города Штутгарт) Евгением Дорожко и Юрием Юдиным. Поэтому ниже приведено состояние проекта на момент начала моей работы над ним, результаты проделанной мной работы и планы по дальнейшему развитию проекта.
4.1 Состояние проекта на момент начала моей работы над ним
На момент начала моей работы над проектом, некоторая его часть уже была реализована. Конкретно: была разработана первоначальная структура данных и в соответствии с ней создана база. Создано два модуля приложения. Core – ядро приложения, отвечающее за выполнение функциональности приложения. UI – часть приложения, реализующая пользовательский интерфейс.
Модуль Core уже содержал следующую функциональность:
– обмен данными с базой знаний;
– ведение журнала событий.
Модуль UI уже содержал следующие компоненты:
– формы просмотра списка преподавателей, предметов и вопросов;
– форма создания вопроса.
4.2 Результаты проделанной работы
На данный момент в течение работы над проектом я занимался по большей части модулем пользовательского интерфейса. Помимо этого мной была реализована некоторая часть функциональности (редактирование и удаление информации), что потребовало внесения дополнений в модуль Core. Ниже приведен список выполненных мной изменений в проекте:
– возможности редактирования и удаления были добавлены для предметов;
– модифицированы поля некоторых таблиц в базе данных для расширения возможностей приложения: темы, к которым принадлежат вопросы, не удаляются из базы, а лишь помечаются как удалённые (аналогично предметам, к которым относятся какие-либо темы);
– проверена совместимость всего этого с ранее написанным кодом, устранены как найденные в нём ошибки, так и вновь возникшие.
Ниже, на рисунке 3, приведен скриншот с изображениями форм для просмотра и редактирования тем.
Рисунок 3 – Пример работы уже созданных форм интерфейса приложения
4.3 Дальнейшая реализация проекта
В течение моей дальнейшей работы по разработке приложения будет сделано следующее:
– модификация визуальной составляющей интерфейса (расположение и внешний вид виджетов, цветовая гамма, стили);
– добавление функциональности, связанной с генерацией экзаменационных билетов;
– возможна модификация структуры данных.
По завершении этих действий работоспособность приложения будет проверена. После проверки и исправления ошибок начнется его использование.
5. Заключение
Тема магистерской работы не является узкоспециализированной и носит прикладной характер. Она является весьма актуальной: web-приложения на сегодняшний день широко распространены и имеют высокую популярность. Подходы, инструменты и технологии, используемые в разработке данного приложения, также применяются при создании множества других проектов.
При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: декабрь 2013 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.
Список источников
1. Вигерс Карл. Разработка требований к программному обеспечению. Пер, с англ. – М.: Издательско-торговый дом Русская Редакция
, 2004. – 576с., ил.
2. Скотт Б., Нейл Т. Проектирование веб-интерфейсов. Пер. с англ. – СПб.: Символ-Плюс, 2010. – 352 с., ил.
3. Marko Grönroos. Book of Vaadin: 4th Edition. Published: 2012-11-08. Copyright © 2000-2012 Vaadin Ltd
4. Фримен Э., Сьерра К., Бейтс Б. Паттерны проектирования. – СПб.: Питер, 2011. – 656 с., ил.
5. Шилдт Герберт. Java. Полное руководство, 8-е изд.: Пер. с англ. – М.: ООО И.Д. Вильямс
, 2012. – 1104 с., ил.
6. Christian Bauer, Gavin King. Hibernate in action. ©2005 by Manning Publications Co. All rights reserved.
7. Интернет-ресурс посвященный веб-платформе Vaadin. – Режим доступа: www/ URL: https://vaadin.com/homel
8. Интернет-ресурс посвященный SpringFramework. – Режим доступа: www/URL: http://www.springsource.org/
9. Интернет ресурс посвященный HibernateORM. – Режим доступа: www/URL: http://www.hibernate.org/
10. Интернет ресурс посвященный PostgreSQL. – Режим доступа: www/URL: http://www.postgresql.org/