Мончак М.О., Широкопетлева М.С.,
Пустовойтовский В.С., Жижирий И.С.
Харьковский национальный университет
радиоэлектроники
О системе поддержки
проведения социологического опроса
Социологический
опрос сводится к общению исследователя прямо или косвенно через его
представителя (интервьюера, анкетера) с совокупностью людей (респондентов) в
форме вопросно-ответного диалога. Основой опроса является анкета. Анкета – это
набор вопросов, объединенных по какому-либо признаку. Для автоматизации
проведения социологических опросов и расширения аудитории респондентов
предлагается использование web-ориентированной системы поддержки проведения
социологического опроса.
Для
реализации такого проекта необходимы современные web-ориентированные
технологии. Это должны быть инструменты работы с данными, инструменты
осуществления бизнес-логики, инструменты поддержки
пользовательского интерфейса. Необходимо также учитывать высокие требования по
обеспечению безопасности и надежности данных, т.к. на основании результатов
социологического опроса могут приниматься решения различной важности. Для
обеспечения этого требования реализована возможность подключения к системе пользователей
с различными ролями.
Анкеты
создаются зарегистрированными и авторизированными пользователями системы с ролью
«социолог». Анкета имеет название, автора, сроки проведения и область видимости
(доступность результатов для просмотра). Анкеты могут быть модифицированы,
приостановлены и удалены. Любые модификации анкет доступны только для ее
создателей.
Что
же касается контроля за содержанием, работоспособностью и качеством анкет, то
эти обязанности возлагаются на пользователя с ролью «администратор». Данный тип
пользователя представлен только одной учетной записью, которая не может быть
удалена из системы. Администратор не может создавать новые или изменять
существующие анкеты, не может редактировать отчеты о проведении голосования, не
может сам отвечать на вопросы анкет. Данный пользователь имеет лишь
неограниченное право на удаление анкет и пользователей, присвоение уже
зарегистрированным пользователям роли социолога или отстранения пользователей
от роли в системе.
Пользователи
с ролью «респондент» может подключиться к системе и пройти анкетирование по
имеющимся активным анкетам. Процедура ответов представляет собой выбор
пользователем интересующей его анкеты из списка, прочтение правил прохождения
анкетирования и комментариев, оставленных создателем анкеты и собственно
ответов на вопросы. Перед началом анкетирования пользователь уведомляется об
уровне анонимности анкеты. Анкета может сохранять всю информацию о
пользователе, только некоторые необходимые данные или быть вовсе анонимной.
Отвечающему
показывается только один вопрос в каждый момент времени, но ему предоставляется
возможность навигации по анкете. Реализована возможность ввода и модификации
ответов на вопросы в любой последовательности. Ответы пользователя считаются
принятыми только после подтверждения пользователя о прохождении всей анкеты.
Вопрос
в системе является составной частью анкеты – не может быть вопросов, не
принадлежащих ни к одной анкете. В то же время один и тот же вопрос не может
принадлежать к разным анкетам – это вызывало бы путаницу в обработке
результатов. Если у двух разных анкет будет два абсолютно одинаковых вопроса,
то с точки зрения системы, это будут два разных вопроса, со своими ответами.
Система поддерживает вопросы пяти типов:
1)
выбрать
единственный вариант ответа;
2)
выбрать
несколько или ни одного варианта ответа;
3)
ввести
текстовый вариант ответа;
4)
ввести
числовой вариант ответа;
5)
расставить
варианты ответов в порядке предпочтения.
Ключевой
функциональностью системы является процедура обработки результатов. Результаты
анкеты могут быть доступны всем желающим или только автору анкеты, что
указывается при ее создании. В базе данных (БД) хранятся только ответы
пользователей на вопросы анкеты, отчеты и различные вычисляемые данные
формируются при необходимости.
Результаты
предоставляются в удобном виде. Это подразумевает как числовой, так и
графический режим отображения информации (графики, диаграммы). Отчеты могут
экспортироваться в файл Excel.
Для
достижения простоты модификации и расширения системы используются шаблоны
проектирования.
Система
состоит из трех частей:
1.
Клиентский модуль, который представлен браузером. Эта часть отвечает за
визуализацию интерфейса программы и осуществление обмена данными с
пользователем. Поддерживаются достаточно распространенные типы браузеров: Internet Explorer, Opera и Fire Fox. Требованием к браузеру является
поддержка языка JavaScript.
2. Web сервер представлен собственно
сервером, под управлением которого происходит работа серверной части программы.
Здесь сосредоточена основная часть бизнес-логики приложения (кроме той, которая
вынесена на сервер БД). Основной задачей данной части приложения является
генерация разметки для браузера, обработка данных, получаемых от пользователя и
работа с данными, которые хранятся в БД.
3.
Сервер БД представляет собой СУБД и собственно БД. База данных в свою очередь
содержит сами данные и хранимые процедуры для работы с данными. Все
взаимодействие приложения с хранилищем данных происходит с помощью хранимых
процедур и при необходимости внесения функциональных изменений в работу с
данными, достаточно будет внести эти изменения в хранимые процедуры.
Трехзвенная
клиент-серверная технология обладает рядом преимуществ, такими как повышение
безопасности и ускорение обработки данных. Никакие запросы не могут поступить для
выполнения в СУБД, поэтому ни при каких ситуациях злоумышленнику не удастся
совершить sql-инъекцию вредоносного запроса. Также
хранимые процедуры выполняются гораздо быстрее простых запросов связи с тем,
что они хранятся в уже откомпилированном и оптимизированном виде.
На
Рисунке 1 представлена схема приложения. Как видно, оно состоит из трех частей,
именуемых слоями. Разделение программы на слои вызвано в основном стремлением
сделать программу развиваемой и модифицируемой. Например, при необходимости
организации перехода на источник данных, отличный от используемого, придется
вносить изменения в код программы.
Рисунок 1.
– Архитектура приложения.
При
использовании слоевой архитектуры, пользователю не нужно будет модифицировать
ничего, кроме слоя доступа к данным, в котором надо внести изменения в одну из
составляющих программы. Аналогичная ситуация и с другими абстрактными слоями.
Важным
моментом является правильная декомпозиция на классы. В принципе, нет
единственного правильного решения этой задачи, каждый человек по-своему ее
решит. Но исходить стоит из основных принципов ООП. Все сущности хранилища
данных находят свое отражение в классовой структуре, все классы, наполненные
функциональностью, распределены по области применения, утилитные классы
выделены в отдельную группу. Широко применяется наследование и реализация интерфейсов.
Описанный
подход можно использовать для проектирования систем поддержки проведения
социологического опроса и для других систем, например, в маркетинговых исследованиях,
тестированиях и т.п.