Мончак М.О., Широкопетлева М.С., Пустовойтовский В.С., Жижирий И.С.

Харьковский национальный университет радиоэлектроники

О системе поддержки проведения социологического опроса

 

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

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

Анкеты создаются зарегистрированными и авторизированными пользователями системы с ролью «социолог». Анкета имеет название, автора, сроки проведения и область видимости (доступность результатов для просмотра). Анкеты могут быть модифицированы, приостановлены и удалены. Любые модификации анкет доступны только для ее создателей.

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

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

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

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

1)     выбрать единственный вариант ответа;

2)     выбрать несколько или ни одного варианта ответа;

3)     ввести текстовый вариант ответа;

4)     ввести числовой вариант ответа;

5)     расставить варианты ответов в порядке предпочтения.

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

Результаты предоставляются в удобном виде. Это подразумевает как числовой, так и графический режим отображения информации (графики, диаграммы). Отчеты могут экспортироваться в файл Excel.

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

Система состоит из трех частей:

1. Клиентский модуль, который представлен браузером. Эта часть отвечает за визуализацию интерфейса программы и осуществление обмена данными с пользователем. Поддерживаются достаточно распространенные типы браузеров: Internet Explorer, Opera и Fire Fox. Требованием к браузеру является поддержка языка JavaScript.

2. Web сервер представлен собственно сервером, под управлением которого происходит работа серверной части программы. Здесь сосредоточена основная часть бизнес-логики приложения (кроме той, которая вынесена на сервер БД). Основной задачей данной части приложения является генерация разметки для браузера, обработка данных, получаемых от пользователя и работа с данными, которые хранятся в БД.

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

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

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

Рисунок 1. – Архитектура приложения.

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

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

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