Глобалізація світових товарних ринків

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Мировая экономика, МЭО
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    26,74 Кб
  • Опубликовано:
    2016-04-14
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Глобалізація світових товарних ринків

Кировское областное государственное

профессиональное образовательное бюджетное учреждение

"Кировский Авиационный Техникум"









ВЫПУСНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

Информационная система бонусных программ лояльности




Студент: Русских А.С.

Руководитель ВКР:

Сандова Э.Г.





Содержание

Введение

1. Общая характеристика предприятия

1.1 Организационная структура предприятия

2. Постановка задачи автоматизации

3. Проектные решения

3.1 Техническое обеспечение

3.2 Программное обеспечение

3.3 Информационное обеспечение

3.3.1 Описание используемой СУБД

3.3.2 Структура информационной базы системы

3.3.3 Поддержание ссылочной целостности данных

4. Технология разработки программного обеспечения

4.1 Общие сведения

4.2 Описание функциональной структуры

4.3 Руководство пользователя

4.4 Тестирование программы

5. Экономическое обоснование разработки

5.1 Расчет трудоемкости по видам работ и исполнителям

5.2 Расчет заработной платы

5.3 Расчет материальных затрат

5.4 Расчет сметы затрат

6. Обеспечение безопасности программного продукта

Заключение

Список использованных источников

Приложения

Введение

1С Франчайзи "ИП Голдованская Наталья Георгиевна" предоставляет комплексные услуги (сертифицированные фирмой "1С") по автоматизации учетной и офисной работы, продажу лицензионных программных продуктов зарубежных и отечественных производителей, помощь в выборе программ, доставку, установку, внедрение, послепродажное обслуживание, консультации, индивидуальное обучение.

Основным видом деятельности "ИП Голдованская Наталья Георгиевна" является автоматизация бизнеса, поэтому все существующие бизнес-процессы, начиная от учета документации и заканчивая учетом программных продуктов уже автоматизированы. За автоматизацию отвечает комплексная система "1С-Рарус: Автоматизация 1С: Франчайзи", которая имеет развитые средства построения экономической и аналитической отчетности и расширенный функционал для различной финансово-хозяйственной деятельности.

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

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

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

Преимущества использования бонусной программы для организации:

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

Увеличение суммы разовых покупок;

Лучшее привлечение новых клиентов, поскольку бонусы можно получать уже с первой покупки, а скидки по обычно даются со второй;

Бонусы могут быть потрачены только в Вашей организации при приобретении ваших товаров или услуг, следовательно, увеличивают прибыльность компании;

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

Бонусы могут быть потрачены только спустя какое-то время. Таким образом, Ваша компания располагает данными денежными средствами до того момента, пока они не будут использованы покупателем;

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

Для организации бонусной программы лояльности потребуется оборудование, на котором будет храниться информация о покупателях (сервер) и программное обеспечение. Чтобы запустить бонусную программу лояльности возникла необходимость создать "Информационную систему бонусных программ лояльности".

Цель разработки системы:

Автоматизировать проведение расчетов (начисление бонусов, списание их при покупке, сгорание бонусных баллов после окончания их срока действия);

Идентифицировать клиента в процессе приобретения товаров/услуг;

Изучать и анализировать целевую аудиторию предоставляемых организацией продуктов и услуг;

Стимулировать клиента на совершение покупок товаров и услуг путем реализации каналов взаимодействия с клиентами;

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

Информационная система должна разрабатываться в трех модулях. "Приложение для управления бонусной программой" и "Личный кабинет держателя бонусной карты" разрабатывается мною в рамках выполнения ВКР. Моей задачей также является проектирование базы данных, запуск и настройка сервера БД. "Дополнение к типовым конфигурациям 1С Предприятие 8" разрабатывается сотрудниками "ИП Голдованская Наталья Георгиевна". После запуска и начала эксплуатации ИС, сотрудниками организации, на базе существующей информационной системы, будет создана универсальная платформа, для запуска бонусной программы лояльности в любой организации, с целью распространения ее, как собственного программного продукта клиентам и партнерам фирмы.

В результате введения бонусной системы 1С Франчайзи "ИП Голдованская Наталья Георгиевна" получит прирост числа лояльных постоянных клиентов - людям нравится идея накапливать баллы и затем менять их на определенные товары или услуги; возможность изучать и анализировать целевую аудиторию - регистрируясь в бонусной системе, клиент заполняет анкету (контактные данные), благодаря которым организация может лучше узнать "своего клиента", и на основе имеющейся информации координировать свою работу; создать универсальную платформу для запуска бонусной программы лояльности в любой организации, и продавать ее как собственный программный продукт.

1. Общая характеристика предприятия

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

"1С" является официальным дистрибьютором деловых программных продуктов зарубежных и отечественных производителей, таких как Microsoft, Лаборатория Касперского, Eset, ABBYY, DrWeb, Аскон, ПроМТ, Entensys, Novosoft и другие. Из собственных разработок фирмы "1С" наиболее известны программы системы "1С: Предприятие", а также продукты для домашних компьютеров и образовательной сферы.

"1С" работает с пользователями через разветвленную партнерскую сеть, которая включает предприятия сети "1С: Франчайзинг". Фирмы, входящие в сеть "1С: Франчайзинг" осуществляют комплексные услуги по автоматизации учетной и офисной работы: от помощи в выборе программных средств, их продажи, установки и настройки до постановки на предприятии учета в полном объеме.

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

Сфера деятельности: Франчайзинга "ИП Голдованская Наталья Георгиевна" - комплексные услуги (сертифицированные фирмой "1С") по автоматизации бизнес-процессов:

Разработка программного обеспечения (прикладные решения, внедрения) для автоматизации производственных и торговых предприятий на платформе "1С: Предприятие" или любой другой.

Распространение деловых программных продуктов зарубежных и отечественных производителей;

Помощь в выборе программ, необходимых для комплексной автоматизации бизнес-процессов коммерческих предприятий;

Доставка, установка, внедрение программного обеспечения;

Послепродажное обслуживание, сопровождение, техническая поддержка;

Консультации, индивидуальное обучение;

Аренда виртуального выделенного сервера "1С".


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

Различают несколько типов организационных структур: линейные, функциональные, линейно-функциональные, дивизиональные, адаптивные. Рассмотрим основные характеристику структуры характерной для "ИП Голдованская Наталья Георгиевна".

Для 1С Франчайзи "ИП Голдованская Наталья Георгиевна" характерна Линейная организационная структура. Такая структура в организации обусловлена малым количеством подчиненных руководителю лиц.

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

Организационная структура предприятия представлена в приложении А

бонусная информационная программа лояльность

2. Постановка задачи автоматизации

Для роста количества постоянных и привлечения новых клиентов, а также в связи с растущей конкуренцией в 1С Франчайзи "ИП Голдованская Наталья Георгиевна" использовалась дисконтная система.

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

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

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

Бонусная программа лояльности, позволяет клиенту получать бонусные баллы за покупки товаров или услуг, а в дальнейшем обменивать накопленные баллы на вознаграждение только в той организации, где они были предоставлены, к тому же, бонусы могут накапливаться. Таким образом, у получается "отложенная" по времени скидка. В любом случае, сэкономленную сумму клиент оставит в вашей организации, а не где-нибудь еще.

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

В ходе проектирования бонусной программы лояльности готовые программные решения от сторонних разработчиков рассмотрены не были. Такое решение связано с тем, что 1С Франчайзи "ИП Голдованская Наталья Георгиевна" планирует использовать разрабатываемую информационную систему не только внутри организации, но также распространять ее как собственный программный продукт клиентам и партнерам фирмы.

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

Функционал разрабатываемой информационной системы должен обеспечить:

Автоматизацию проведения расчетов (начисление бонусов, списание их при покупке, сгорание бонусных баллов после окончания их срока действия);

Администрирование и управление настройками бонусной системы;

Формирование отчетной документации по результатам работы бонусной программы лояльности;

Идентификацию клиента в процессе приобретения товаров/услуг, чтобы знать, кому начислять бонусы за факт приобретения и вести историю начисления бонусов;

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

Стимулирование клиента на совершение покупок товаров и услуг путем реализации каналов взаимодействия с клиентами на базе смс-рассылок и функционала "Личного кабинета держателя бонусной карты".

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

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

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

Для того чтобы выполнять поставленные цели, разрабатываемая информационная система должна выполнять определенный набор функций. За выполнение этих функций отвечают различные модули ИС. "Информационная система бонусных программ лояльности" состоит из трех модулей: "Дополнение к типовым конфигурациям 1С Предприятие 8", "Приложение для управления бонусной программой" для платформы Win32, "Личный кабинет держателя бонусной карты" для мобильной платформы Android.

"Дополнение к типовым конфигурациям 1С Предприятие 8" отвечает за начисление и оплату бонусами по пороговой схеме для розничных и оптовых продаж.

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

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

В рамках выполнения ВКР мне было предложено спроектировать базу данных, создать "Приложение для управления бонусной программой" для платформы Win32 и "Личный кабинет держателя бонусной карты" для мобильной платформы Android. Дополнение к типовым конфигурациям 1С разрабатывается силами "ИП Голдованская Наталья Георгиевна".

3. Проектные решения

3.1 Техническое обеспечение

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

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

Наличие локальной вычислительной сети является обязательным условием работы ИС с архитектурой клиент-сервер. ЛВС помогает поддерживать стабильный документооборот, и обеспечивает обмен данными между рабочими станциями и сервером. Сеть состоит и из сервера и подключенных к сети рабочих станций. ЛВС организации должна быть подключена к провайдеру интернета. Рекомендуемое расположение компьютеров, кабелей и других компонентов сети должно быть характерно для топологии сети типа "Звезда".

"Информационной системы бонусных программ лояльности" будет распределена на одном компьютере-сервере и некотором количестве компьютерах-клиентах:

Сервер баз данных;

Одна рабочая станция для сотрудников организации с установленным модулем "Дополнение к типовым конфигурациям 1С Предприятие 8";

Одна рабочая станция для сотрудников организации с установленным модулем "Приложение для управления бонусной программой";

До 1000 терминалов доступа к системе со стороны клиентов организации с установленным модулем "Личный кабинет держателя бонусной карты".

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

ОС: Windows Server 2008, Windows Server 2012, Windows Server 2016;

Процессор: двухъядерный с частотой 2.5 ГГц;

ГБ оперативной памяти (ОЗУ);

ГБ свободного места на жестком диске на этапе запуска ИС.

Компьютер-клиент необходим для нормального функционирования и работы с информационной системой. Минимальные аппаратные требования рабочей станции для сотрудников организации:

ОС: Microsoft Windows - Win 7, Win 8, Win 8.1, Win10;

Дисплей с разрешением экрана 1280х720 точек и выше;

Процессор с минимальной частотой 2 ГГц;

ГБ оперативной памяти (ОЗУ);

МБ свободного места на жестком диске;

Манипуляторы типа клавиатура и мышь.

Клиентский терминал доступа к ИС - смартфон или планшет (мобильное устройство) под управлением ОС Android. Минимальные аппаратные требования к терминалу клиентов организации:

ОС: от Android 4.1 x (Jelly Bean) до Android 5.1 х (Lollipop);

Диагональ дисплея 3.5" и выше;

Процессор с частотой 1 ГГц на базе архитектуры ARM v7 или Intel x86;

Графический процессор с поддержкой OpenGL;

МБ оперативной памяти (ОЗУ);

МБ Свободного места на встроенном накопителе данных.

По мере необходимости исходный код мобильного приложения можно компилировать с использованием Android SDK 6.0 или более поздних версий для возможности запуска на Android 6.0+.

3.2 Программное обеспечение

При создании базы была использована реляционная СУБД MySQL 5.6 Реляционная база данных MySQL - это одна из самых популярных и самых распространенных СУБД (система управления базами данных) в интернете. Она не предназначена для работы с большими объемами информации, но ее применение идеально для мобильных веб-приложений, как небольших, так и достаточно серьезных.

Программное обеспечение обоих модулей написано на объектно-ориентированном языке С++. В качестве среды разработки используется RAD Studio 10 Seattle разработанная компанией Embarcadero. RAD Studio 10 Seattle - многоязычная интегрированная среда разработки, включающая все необходимые инструменты для моделирования и конструирования приложений на различных платформах, с поддержкой языков Delphi, C и C++. Она предоставляет мощные компоненты VCL для Windows 10 и обеспечивает разработку на FMX для Windows, Mac и мобильных устройств.

"Приложение для управления бонусной программой" разработано только под ОС семейства Microsoft Windows (Win7, Win8, Win8.1, Win10) и имеет 32-битный набор команд. Особых требований к настойкам ОС не предъявляется, кроме того, что встроенный брандмауэр Windows не должен блокировать порт 3306.

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

Для формирования, просмотра, редактирования внешних документов в формате *. doc и *. xls, необходимо наличие установленного пакета Microsoft Office 2003 (включая Microsoft Word и Microsoft Excel) или более поздних версий, заканчивая MS Office 2013. Важно: без наличия установленного пакета MS Office документы формироваться не будут!

Для просмотра внешних документов в формате *. pdf необходимо наличие установленного Adobe Acrobat Reader DC или любой другой программы для просмотра PDF документа;

Для просмотра внешних документов в формате *.html, необходимо наличие программного обеспечения для просмотра веб-страниц (например, Internet Explorer, Chrome, Mozilla Firefox, Opera);

Для просмотра внешних документов в формате *. txt, необходима программа просмотра тестовых документов в кодировке UTF-8 (например, Блокнот, AkelPad, WordPad, Microsoft Word);

Для просмотра внешних данных в формате *. bmp, необходима программа просмотра изображений в формате Bitmap Picture (например, Просмотр Фотографий Windows, Paint).

"Приложение для управления бонусной программой" позволяет напрямую вывести на печать некоторые из внешних документов. Для необходимо установить драйвер, с помощью которого Приложение получает доступ к аппаратному обеспечению некоторого подключенного устройства (МФУ, Принтер и т.д.).

"Личный кабинет держателя бонусной карты" разработан под мобильную платформу Android. Стабильная работа приложения гарантируется начиная с версии 4.1 и заканчивая 5.1 Для приложения Личного кабинета в системе должны быть доступны разрешения:

Получение данных о статусе телефона;

Чтение, изменение содержимого SD-карты;

Неограниченный доступ в интернет.

Для стабильной работы приложения необходимо наличие установленного пакета служб и приложений - Google Apps. Других требований к настройкам ОС и программному обеспечению не предъявляется.

3.3 Информационное обеспечение

3.3.1 Описание используемой СУБД

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

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

MySQL отличатся хорошей скоростью работы, надежностью, гибкостью. Работа с ней, как правило, не вызывает больших трудностей. Поддержка сервера MySQL автоматически включается в поставку PHP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы. Немаловажным фактором является ее условная бесплатность. MySQL распространяется на условиях общей лицензии GNU (GPL, GNU Public License). Кроме того, MySQL имеет API для языков Delphi, C, C++, Java, Perl, PHP, Python, Ruby, библиотеки для языков платформы.net, а также обеспечивает поддержку для ODBC посредством ODBC-драйвера MyODBC.

Компьютер-сервер, установленный в организации - HP ProLiant ML110, полностью соответствует требованиям необходимым для установки и продуктивной работы сервера MySQL 5.6 в стабильном режиме.

3.3.2 Структура информационной базы системы

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

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

Рисунок 1 - Структурная схема БД

Структура таблицы "clients" (Клиенты)

В данной таблице хранится информациях о клиентах бонусной системы: фамилия, имя, пол, дата рождения, телефон, email, пароль, номер карты клиента.

Таблица 1 - "clients"

Наименование полейТип данныхНулевой статусКлючОграниченияСсылкиПримерclient_idintegerNot NullПервичный1card_idintegerNot NullВнешнийcards. card_id124emailvarcharNullc86@mail.compasswdvarcharNullreqwery123first_namevarcharNullРусскихlast_namevarcharNullАлексейgendervarcharNullМужскойbirth_datedatetimeNull01.01.2001mobile_phonevarcharNull+79120000000

Структура таблицы "cards" (Карты)

В данной таблице хранится информациях о бонусных картах: номер карты, бонусный баланс, статус карты, тип карты, дата выпуска карты, срок годности и дополнительные комментарии.

Таблица 2 - "cards"

Наименование полейТип данныхНулевой статусКлючОграниченияСсылкиПримерcard_idintegerNot NullПервичный1balanceintegerNull345stat_idintegerNull1statvarcharNullАктивнаtype_idintegerNull1typevarcharNullПерсональнаяoutput_datedatetimeNull01.01.2001valid_thrudatetimeNull01.01.2016commentvarcharNullКарта самого крутого клиента организации

Структура таблицы "transactions" (Транзакции по карте)

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

Таблица 3 - "transactions"

Наименование полейТип данныхНулевой статусКлючОграниченияСсылкиПримерtrans_idintegerNot NullПервичный33card_idintegerNot NullВнешнийcards. card_id1pointsintegerNull-395descriptionvarcharNullОплата бонусамиtrans_datedatetimeNull12.03.2016valid_thrudatetimeNullNullcommentvarcharNullСкидка на оформление годовой подписки

Структура таблицы "offers" (Рекламные предложения)

В данной таблице хранится информациях о рекламных предложениях: полное название (заголовок) предложения, полное описание предложения, дата старта предложения, срок действия и адрес веб-страницы.

Таблица 4 - "offers"

Наименование полейТип данныхНулевой статусКлючОграниченияСсылкиПримерoffer_idintegerNot NullПервичный33titlevarcharNullСкидка 33%descriptionvarcharNullCкидка 33% при сделке на сумму более 5000 рублейdatedatetimeNull12.01.2016valid_thrudateNull12.03.2016html_pathvarcharNull#"justify">Структура таблицы "client_offers" (Персональные рекламные предложения)

В данной таблице хранится информациях о рекламных предложениях для конкретного клиента: ссылка на клиента, которому предназначается рекламное предложение, ссылка на предложение, статус предложения (новое или уже прочтено).

Таблица 5 - "client_offers"

Наименование полейТип данныхНулевой статусКлючОграниченияСсылкиПримерidintegerNot NullПервичный33client_idintegerNot NullВнешнийclients. client_id1offer_idintegerNot NullВнешнийoffers. offer_id4stat_idintegerNull0

Структура таблицы "sms" (SMS-сообщения)

В данной таблице хранится информациях об отправленных смс-сообщениях: ссылка на клиента, которому было отправлено сообщение, наименование отправителя, дата отправки и текст сообщения.

Таблица 6 - "sms"

Наименование полейТип данныхНулевой статусКлючОграниченияСсылкиПримерsms_idintegerNot NullПервичный3client_idintegerNot NullВнешнийclients. client_id45sendervarcharNull201C43.rubodyvarcharNullЗаканчива - ется лицензияdatedateNull12.08.2015

3.3.3 Поддержание ссылочной целостности данных

Обеспечение качества информации достигается за счет поддержания ссылочной целостности. Основой для обеспечения ссылочной целостности данных является создание первичных и внешних ключей. Кроме того, первичные и внешние ключи помогают обеспечить связь, которая основана на синтаксисе Transact-SQL запросов.

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

Триггер для формирования первичного ключа при добавлении нового клиента:

DELIMITERTRIGGER `ins_new` BEFORE INSERT ON `clients`EACH ROW BEGINNEW. client_id = 1 + (SELECT MAX (client_id) FROM clients);NEW. group_id = NULL;

Триггер для удаления всех транзакций из таблицы "transactions" и отвязки удаляемой карты от профиля клиента при удалении бонусной карты из таблицы "cards":

DELIMITERTRIGGER `delete_trans` BEFORE DELETE ON `cards`EACH ROW BEGINFROM transactions WHERE card_id = OLD. card_id;clients SET card_id = 0 WHERE card_id = OLD. card_id;

Триггер для поддержания ссылочной целостности при удалении записи из таблицы "clients":

DELIMITERTRIGGER `delete_dependenses` BEFORE DELETE ON `clients`EACH ROW BEGINFROM sms WHERE client_id = OLD. client_id;FROM client_offers WHERE client_id = OLD. client_id;

4. Технология разработки программного обеспечения

4.1 Общие сведения

Программное обеспечение "Информационной системы бонусных программ лояльности" состоит и двух модулей независимых модулей.

"Приложение для управления бонусной программой" имеет один исполнительный файл с названием "Управление Бонусной Программой. exe" размером 16.8 Мб при объеме исходных текстов программ и ресурсов 9.1 Мб. Итоговый вес модуля может увеличиваться - создание временных ресурсных файлов и файлов для хранения настроек программы.

"Личный кабинет держателя бонусной карты" имеет один исполнительный файл с названием пакета "com. embarcadero. lk10. apk" и названием приложения "Личный Кабинет 1.0". Вес установленного приложения составляет 42.6 Мб при объеме исходных текстов программ и ресурсов 26.1 Мб.

Программное обеспечение обоих модулей "Информационной системы бонусных программ лояльности" написано на объектно-ориентированном языке С++. В качестве среды разработки используется RAD Studio 10 Seattle разработанная компанией Embarcadero. RAD Studio 10 Seattle - многоязычная интегрированная среда разработки, включающая все необходимые инструменты для моделирования и конструирования приложений на различных платформах, с поддержкой языков Delphi, C и C++. Она предоставляет мощные компоненты VCL для Windows 10 и обеспечивает разработку на FMX для Windows, Mac и мобильных устройств. RAD Studio обеспечивает 5-кратно увеличенную скорость разработки и развертывания на нескольких настольных, мобильных, облачных средах и платформах баз данных, включая 32-разрядные и 64-битные ОС Windows.

При разработке "Личного кабинета держателя бонусной карты" использован FireMonkey Фреймворк (FMX) - GUI-framework, использующий возможности графического процессора. FireMonkey входит в состав среды разработки RAD Studio 10 Seattle. Лежащий в его основе движок FMX представляет собой похожий на Flash или WPF, кроссплатформенный Фреймворк для построения пользовательских интерфейсов. Будучи встроенным в С++ Builder, FireMonkey позволяет компилировать один и тот же код приложения для работы в Windows, iOS и Android.

"Приложение для управления бонусной программой" разработано с использованием VCL. Visual Component Library (VCL) - объектно-ориентированная библиотека для разработки программного обеспечения для поддержки принципов визуального программирования. VCL входит в комплект поставки Embarcadero RAD Studio 10 и является, по сути, частью среды разработки, хотя разработка приложений в этих средах возможна и без использования VCL. VCL предоставляет огромное количество готовых к использованию компонентов для работы в самых разных областях программирования, таких, например, как интерфейс пользователя (экранные формы и элементы управления), работа с базами данных, взаимодействие с операционной системой, программирование сетевых приложений и прочее.

Для подключения обоих модулей к базе MySQL был использован компонент от сторонних разработчиков (не входящий в состав RAD Studio 10) - "MySQL Data Access Components (MyDAC)". MyDAC - многофункциональный инструмент для разработки клиент-сервер приложений на Delphi, C++Builder, Lazarus (и Free Pascal) под Windows, Mac OS X, iOS, Android, Linux и FreeBSD, как для 32-битных, так и для 64-битных платформ. MyDAC позволяет разрабатывать быстрые и нативные MySQL приложения и подключаться к MySQL напрямую через TCP/IP, не используя клиентскую библиотеку MySQL.

Для отправки СМС сообщений используется SMS-шлюз предоставляемый порталом "Смс-дисконт - iqsms.ru" SMS-шлюз - интерфейс, который позволяет отправлять и получать SMS-сообщения без использования мобильного телефона. При отправке SMS-сообщения преобразуются в JSON запросы к серверу iqsms.ru. После отправки всех сообщений, сервер посылает ответ о статусе сообщений, также в формате JSON.

4.2 Описание функциональной структуры

Для запуска "Приложения для управления бонусной программой" необходимо переместить файл "УправлениеБонуснойПрограммой. exe" в любой каталог на физическом накопителе доступный для чтения и записи. Запустить файл "УправлениеБонуснойПрограммой. exe" от имени Администратора.

"Приложение для управления бонусной программой" имеет одну входную точку в управляющую программу - файл "УправлениеБонуснойПрограммой. exe"

Для того, чтобы запустить модуль "Личного кабинета держателя бонусной карты", необходимо открыть Play Market. В строке поиска ввести "Личный кабинет 1.0", перейти на страницу приложения из результатов поиска и установить приложение. Запустить приложение "Личный кабинет 1.0" из главного меню. Второй способ - переместить "ru. embarcadero. lk10. apk" в память телефона. Разрешить установку из неизвестных источников, и запустить пакет на установку. Запустить приложение "Личный кабинет 1.0" из главного меню.

"Личный кабинет" имеет три точки входа в управляющую программу - иконка приложения в главном меню, кнопка "запуск" из информации о приложении в настройках, страница приложения в Play Market.

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

Администрирование бонусной системы;

Управление настройками бонусной системы;

Импорт и экспорт данных;

Ведение статистики и формирование отчетных документов;

Взаимодействие с клиентами на базе смс-рассылок и функционала Личного кабинета держателя бонусной карты.

Просмотр и редактирование профиля клиента;

Просмотр бонусного баланса и списка транзакций по бонусной карте;

Регистрация новых клиентов в бонусной системе.

Входными данными в "Приложении для управления бонусной программой" являются:

Информация о бонусных картах: идентификатор, баланс, срок активности карты, дополнительная информация;

Данные клиентов: фамилия, имя, дата рождения, пол, номер телефона, email;

Персональные рекламные предложения: название предложения, полное описание, срок действия, путь с web-странице;

Смс-сообщения: номер телефона, текст сообщения.

Выходными данными в Приложении являются:

Итоговый баланс бонусной карты;

Журнал транзакций по бонусной карте;

Статистика активности пользователей бонусной программы;

Цепочки личных предложений и смс-сообщений;

Отчеты во внешних документах (word, excel, pdf, txt).

Входными данными в "Личном кабинете держателя бонусной карты" является информация о клиенте:

Фамилия, имя, дата рождения, пол, номер телефона клиента;

Информация для авторизации: адрес электронной почты, пароль.

Выходными данными в Личном кабинете являются:

Информация о бонусной карте: номер карты, тип карты, количество бонусных баллов, статус карты, срок годности карты.

Список транзакций по карте.

4.3 Руководство пользователя

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

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

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

Главное окно и развернутое swipe-меню "Приложения для управления бонусной программой" представлено на рисунке 2.

Главный экран "Личного кабинета держателя бонусной карты" представлен на рисунке 3.

Рисунок 2 - Главное окно "Приложения для управления бонусной программой"

Рисунок 3 - Главный экран "Личного кабинета"

Ниже представлен исходный код основных функций "Приложения для управления бонусной программой" и "Личного кабинета держателя бонусной карты".

) Функция начисления бонусных баллов:

(ToggleSwitch1->Enabled)

{

// АВТО РЕЖИМ(ToggleSwitch1->State == tssOff & bonus>=0)

{>Filter = L"card_id = "+ IntToStr (card_id);>Filtered = true;>Active = true;>Active = false;>SQL->Clear ();>SQL->Add ("Select max (trans_id) as max_id from transactions");>Active = true;>Execute ();

// ОПЛАТА БОНУСАМИ--------->Edit ();(RadioButton2->Checked) // ЧАСТИЧНАЯ

{>FieldByName ("balance") - >AsInteger = CardsTable->FieldByName ("balance") - >AsInteger - ceil (sCurrencyEdit2->Value);

}// ВСЕМИ БОНУСАМИ

{(ceil (itog) >= CardsTable->FieldByName ("balance") - >AsInteger) // Если сумма платежа больше количества бонусов на счету

{>FieldByName ("balance") - >AsInteger = CardsTable->FieldByName ("balance") - >AsInteger - CardsTable->FieldByName ("balance") - >AsInteger;

}(ceil (itog) < CardsTable->FieldByName ("balance") - >AsInteger) // Если сумма платежа МЕНЬШЕ количества бонусов на счету

{>FieldByName ("balance") - >AsInteger = CardsTable->FieldByName ("balance") - >AsInteger - ceil (itog);

}

}>Post ();(summa<itog)

{>Insert ();>FieldByName ("trans_id") - >AsInteger = ServiceQuery->FieldByName ("max_id") - >AsInteger + 1;>FieldByName ("card_id") - >AsInteger = card_id;>FieldByName ("points") - >AsInteger = bonus;>FieldByName ("description") - >AsString = L"Оплата бонусами";>FieldByName ("trans_date") - >AsDateTime = Now ();>FieldByName ("comment") - >AsString = "Покупка - "+Edit1->Text + " - " + sSpinEdit1->Text + "x за счет бонусных баллов";

TransTable->Post ();

}

// НАЧИСЛЕНИЕ БОНУСОВ ЗА ПОКУПКУ-----

CardsTable->Edit ();>FieldByName ("balance") - >AsInteger = CardsTable->FieldByName ("balance") - >AsInteger + ceil (bonus);>Post ();>Active = false;>Active = true;>Execute ();>Insert ();>FieldByName ("trans_id") - >AsInteger = ServiceQuery->FieldByName ("max_id") - >AsInteger + 1;>FieldByName ("card_id") - >AsInteger = card_id;>FieldByName ("points") - >AsInteger = bonus;>FieldByName ("description") - >AsString = L"Покупка";>FieldByName ("trans_date") - >AsDateTime = Now ();(CheckBox1->Checked)

{>FieldByName ("valid_thru") - >AsDateTime = AdvDateTimePicker1->DateTime;

}>FieldByName ("comment") - >AsString = "Оплата - "+Edit1->Text + " - " + sSpinEdit1->Text + "x";>Post ();>Execute ();>MessageBox (L"Бонусные баллы успешно начислены в режиме авто!",L"Бонусная система", MB_OK);

}

// РУЧНОЙ РЕЖИМ(ToggleSwitch1->State == tssOn & sCurrencyEdit3->Value>0)

{>Filter = L"card_id = "+ IntToStr (card_id);>Filtered = true;>Active = true;>Edit ();>FieldByName ("balance") - >AsInteger = CardsTable->FieldByName ("balance") - >AsInteger + ceil (sCurrencyEdit3->Value);>Post ();>Active = false;>SQL->Clear ();>SQL->Add ("Select max (trans_id) as max_id from transactions");>Active = true;>Execute ();>Insert ();>FieldByName ("trans_id") - >AsInteger = ServiceQuery->FieldByName ("max_id") - >AsInteger + 1;>FieldByName ("card_id") - >AsInteger = card_id;>FieldByName ("points") - >AsInteger = ceil (sCurrencyEdit3->Value);>FieldByName ("description") - >AsString = Edit2->Text;>FieldByName ("trans_date") - >AsDateTime = Now ();(CheckBox1->Checked)

{>FieldByName ("valid_thru") - >AsDateTime = AdvDateTimePicker1->DateTime;

}>FieldByName ("comment") - >AsString = Memo1->Text;>Post ();>Execute ();>MessageBox (L"Бонусные баллы успешно начислены в ручном режиме!",L"Бонусная система", MB_OK);

}

}

) Функция занесения данных в систему (на примере добавления бонусной карты):

if (sEdit1->Text == "") // Проверка полей ввода

{

Shape2->Visible = true;

Application->MessageBox (L"Не все поля заполнены!",L"Ошибка выполнения", MB_OK | MB_ICONWARNING);

return;

}>Active = false;>SQL->Clear ();>SQL->Add ("SELECT card_id FROM cards WHERE card_id = " + sEdit1->Text); // Проверка на наличие номера карты в базе>Active = true;(ServiceQuery->RecordCount>0)

{>MessageBox (L"Карта с таким номером уже существует!",L"Ошибка выполнения", MB_OK | MB_ICONWARNING);

return; // Если карта существует, то прерываем выполнение функции

}

// >Insert ();>FieldByName ("card_id") - >AsInteger = StrToInt (sEdit1->Text);>FieldByName ("balance") - >AsInteger = ceil (sCurrencyEdit1->Value);>FieldByName ("stat_id") - >AsInteger = 1;>FieldByName ("stat") - >AsString = L"Активна"; (ComboBox1->ItemIndex==0) // Проверяем какой тип карты выбран

}(ComboBox1->ItemIndex==1) // Проверяем какой тип карты выбран

{>FieldByName ("type_id") - >AsInteger = 10;>FieldByName ("type") - >AsString = L"Подарочная";

}>FieldByName ("output_date") - >AsDateTime = Now ();(CheckBox1->Checked) {CardsTable->FieldByName ("valid_thru") - >AsDateTime = sDateEdit1->Date; }>FieldByName ("comment") - >AsString = sMemo1->Text;>Post ();>MessageBox (L"Карта успешно добавлена!",L"Выполнено", MB_OK | MB_ICONINFORMATION);

AddTabRefresh->Execute (); // Выполняем действие по очистке формы

) Функция редактирования данных (на примере редактирования информации о карте):>Active = false; // Составление строки запроса-НАЧАЛО

ServiceQuery->SQL->Clear ();>SQL->Add ("UPDATE cards");>SQL->Add ("SET balance = " + FloatToStr (ceil (BonusEdit->Value)));>SQL->Add (",stat_id = "+IntToStr (StatusComboBox->ItemIndex));>SQL->Add (",stat = '"+StatusComboBox->Text+"'");(CardTypeComboBox->ItemIndex==0)

{>SQL->Add (",type_id = 1");>SQL->Add (",type = 'Персональная'");

}(CardTypeComboBox->ItemIndex==1)

{>SQL->Add (",type_id = 10");>SQL->Add (",type = 'Персональная'");

}(CheckBox2->Checked)

{ServiceQuery->SQL->Add (",valid_thru = '"+FormatDateTime ("yyyy-mm-dd",ValidDateEdit->Date) +"'"); }

{CardsTable->FieldByName ("valid_thru") - >Value=Null; }>SQL->Add (",comment = '"+CommentMemo->Text+"'");>SQL->Add ("WHERE card_id = "+CardsTable->FieldByName ("card_id") - >AsString);

ServiceQuery->ExecSQL ();

// Составление строки запроса-КОНЕЦ>MessageBox (L"Изменения успешно внесены!",L"Выполнено", MB_OK | MB_ICONINFORMATION);

// Обновим информацию в визуальных компонентах>Active = false; CardsTable->Active = true;

CardsQuery->Refresh ();

) Функция импорта данных для любой таблицы:

void __fastcall TForm1:: SpeedButton2Click (TObject *Sender)

{>Active = false;>TableName = DBLookupComboBox1->Text;>Active = true;col,row;->ActivePage = TabSheet3;->LoadFromXLSSheet (sFilenameEdit1->FileName,Edit1->Text);= AdvStringGrid1->RowCount;->Max = row-1;= AdvStringGrid1->ColCount;(int i = 0; i < row-1; i++)

{>Insert ();(int j = 0; j < col; j++)

{ftype = FieldTypeNames [Table->FieldByName (AdvStringGrid1->Cells [j] [0]) - >DataType];(ftype == "WideString" & AdvStringGrid1->Cells [j] [i+1]! ="") {Table->FieldByName (AdvStringGrid1->Cells [j] [0]) - >AsString = AdvStringGrid1->Cells [j] [i+1]; }(ftype == "DateTime" & AdvStringGrid1->Cells [j] [i+1]! ="") {Table->FieldByName (AdvStringGrid1->Cells [j] [0]) - >AsDateTime = StrToDateTime (AdvStringGrid1->Cells [j] [i+1]); }(ftype == "Date" & AdvStringGrid1->Cells [j] [i+1]! ="") {Table->FieldByName (AdvStringGrid1->Cells [j] [0]) - >AsDateTime = StrToDate (AdvStringGrid1->Cells [j] [i+1]); }(ftype == "Integer" & AdvStringGrid1->Cells [j] [i+1]! ="") {Table->FieldByName (AdvStringGrid1->Cells [j] [0]) - >AsInteger = StrToInt (AdvStringGrid1->Cells [j] [i+1]); }(ftype == "AutoInc" & AdvStringGrid1->Cells [j] [i+1]! ="") {}

}>Post ();->Position = ProgressBar1->Position +1;

}->ActivePage = TabSheet4;

) Функция авторизации клиента:

// ПОДКЛЮЧЕНИЕ К БАЗЕ{MyConnection1->Connected=true; }(.) {ShowMessage (L"Ошибка соединения. Проверьте подключение к интернету!"); return; }

// ПРОВЕРЯЕМ ЗАПОЛНЕНИЕ ПОЛЕЙ ВВОДА

if (Edit2->Text=="") {ShowMessage (L"Введите Email!"); return; }

if (Edit1->Text=="") {ShowMessage (L"Введите Пароль!"); return; }

// ВЫПОЛНЕНИЕ ЗАПРОСА С ПАРАМЕТОМ

MyQuery2->ParamByName ("email") - >Value = Edit2->Text; // считываем параметр

MyQuery2->Active=true;->Execute (); // выполняем запрос

// АВТОРИЗАЦИЯ(MyQuery2->FieldByName ("passwd") - >AsString == Edit1->Text) // Проверяем введеный пароль

{>MyQuery1->ParamByName ("clientid") - >Value = MyQuery2->FieldByName ("client_id") - >AsInteger; // считывам параметр для запроса>Show ();

}

{(L"Неверный Email или Пароль!"); return;

}

) Функция регистрации пользователя:

if (MyConnection1->Connected==true)

{

// СОЗДАЕМ ЗАПИСЬ->Active=true;->Execute ();maxid = MyQuery1->FieldByName ("max_id") - >AsInteger + 1;->Active=true;->Insert ();->FieldByName ("first_name") - >AsString = Edit3->Text;->FieldByName ("last_name") - >AsString = Edit4->Text;->FieldByName ("mobile_phone") - >AsString = Edit5->Text;->FieldByName ("email") - >AsString = Edit6->Text;->FieldByName ("passwd") - >AsString = Edit7->Text;->FieldByName ("birth_date") - >AsDateTime = DateEdit1->Date;(RadioButton1->IsChecked==true) {MyTable1->FieldByName ("gender") - >AsString = L"Мужской"; }(RadioButton2->IsChecked==true) {MyTable1->FieldByName ("gender") - >AsString = L"Женский"; }->FieldByName ("client_id") - >AsInteger = maxid;->FieldByName ("card_id") - >AsInteger = StrToInt (Edit8->Text);->Post ();

// ЧИСТИМ ФОРМУ->Text=""; Edit4->Text=""; Edit5->Text=""; Edit6->Text=""; Edit7->Text=""; Edit8->Text="";->IsEmpty=true;->IsChecked=false; RadioButton2->IsChecked=false;

// ПЕРЕХОДИМ НА ВКЛАДКУ ОБ УСПЕШНОЙ РЕГИСТРАЦИИ

ChangeTabAction3->Execute ();->Start ();

}

{ (L"Ошибка соединения. Проверьте подключение к интернету!");

return;

}

) Функция редактирования профиля пользователя:

// ПОДКЛЮЧЕНИЕ К БАЗЕ{MyConnection1->Connected=true; }(.) {ShowMessage (L"Ошибка соединения. Проверьте подключение к интернету!"); return; }

if (Edit7->Text == "") {ShowMessage (L"Введите ваш старый пароль для редактирования профиля!"); return; }

if (MyTable1->Filtered == true)

{

if (Edit7->Text == MyTable1->FieldByName ("passwd") - >AsString) // Проверяем правильность введенного пароля пароль

{->Edit ();->FieldByName ("first_name") - >AsString = Edit3->Text; // Обновляем имя->FieldByName ("last_name") - >AsString = Edit4->Text; // Обновляем фамилию

// ОбНОВЛЯЕМ ПОЛ(RadioButton1->IsChecked == true)

{->FieldByName ("gender") - >AsString = RadioButton1->Text;

}(RadioButton2->IsChecked == true)

{->FieldByName ("gender") - >AsString = RadioButton2->Text;

}->FieldByName ("birth_date") - >AsDateTime = DateEdit1->Date;->FieldByName ("mobile_phone") - >AsString = Edit5->Text;->FieldByName ("email") - >AsString = Edit6->Text; (Edit1->Text! = "") // Если поле НОВЫЙ ПАРОЛЬ заполнено, то обновляем пароль

{->FieldByName ("passwd") - >AsString = Edit1->Text;

}

MyTable1->Post ();

}

}

4.4 Тестирование программы

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

Различают различные виды тестирования программного обеспечения информационных систем.

Функциональное тестирование - проверка соответствия продукта функциональным требованиям и спецификациям.

Интеграционное тестирование - это совместное выполнение двух или более классов, пакетов, компонентов или подсистем, созданных несколькими программистами или группами.

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

Компонентное тестирование - испытание отдельных программных компонентов информационной системы, в ходе которых подтверждается корректность проводимых этими компонентами вычислений.

Способы тестирования программного обеспечения "Информационной системы бонусных программ лояльности":

Тестирование интерфейса: тестирование интерфейса производится по таким критериям, как: естественность, согласованность, дружественность, принцип "обратной связи", простота, гибкость, эстетическая привлекательность;

Базовое тестирование: информационная система тестируется на ввод корректных данных, которые вводит пользователь и показывает результат работы системы;

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

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

5. Экономическое обоснование разработки

Раздел содержит расчет и обоснование экономической целесообразности разработки только того программного продукта, который разрабатывается мною в рамках ВКР. Экономическое обоснование не влючает расчеты для модуля ИС параллельно разрабатываемого силами "ИП Голдованская Наталья Георгиевна".

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

5.1 Расчет трудоемкости по видам работ и исполнителям

Трудоемкость - это затраты рабочего времени на произ¬водство единицы продукции.

Месячный оклад (таблица 9) - это фиксированный размер, оплаты труда работника за выполнение нормы труда определенной сложности за единицу времени.

Месячный оклад работника вычисляется по формуле:

ОМ = Омин*Кт, (1)

где ОМ - месячный оклад (руб.);

Омин - минимальный оклад (руб.);

Кт - тарифный коэффициент.

Таблица 7 - Месячные оклады

ДолжностьЧисленностьТарифный разрядМесячный оклад, руб. Администратор11118400Испольнитель (Разработчик) 1921450

Трудоемкость (таблица 10) работ вычисляется по формуле:

= (3*Tmin+2*Tmax) /5, (2)

где Tmin - минимальное время выполнения работ (час.);- максимальное время выполнения работ (час.).

Таблица 8 - Трудоемкость работ

Наименование работыТmin, чТmax, чТрЗанятость, часРазработчикАдминистраторИнициация36445Планирование1015121410Исполнение и контроль25025019025020Завершение253526278Всего: 23229533

5.2 Расчет заработной платы

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

После определения трудоемкости на разработку проекта и документации рассчитывается заработная плата работников по формуле:

ЗП = Р*Впо* (Ом/ (ds*Дp)), (3)

где Р - число работников; Впо - время участия в работе (час); Ом - месячный оклад (руб.); ds - длительность смены (час); Дp - среднее число рабочих дней (22).

Таким образом, заработная плата работников составляет:

ЗПразр. =1*295* (21450/ (8*22)) =35 953,12 руб.

ЗПадм. =1*25* (18400/ (8*22)) =2613,63 руб.

После того, как рассчитана заработная плата работников, вычислим фонд ЗП и общую заработную плату по формуле:

ЗПобщ=ЗП+П+Дрк, (4)

где П - премия (15% от ЗП); Дрк - доплаты по районному коэффициенту (15% от ЗП+П).

ЗПобщ. разраб. =35 953,12+5392,97+6201,91=47548 руб.

ЗПобщ. админ. =2613,70+391,95+450,74=3456,39 руб.

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

ФЗП= ЗПобщ. разр. + ЗПобщ. адм., (5)

ФЗП=47548+3456,39=51004,39 руб.

5.3 Расчет материальных затрат

Материальные затраты - это средства, которые были использованы в ходе выполнения работ по созданию программного обеспечения.

Затраты на разработку представлены в таблице 11.

Таблица 9 - Затраты на разработку

НаименованиеЕдиница измеренияЦена (руб.) КоличествоСумма (руб.) Компьтер-Клиент + ПОштука18900356700Сетевое оборудование (маршрутизатор) штука80011280, 00ЭлектроэнергиякВт2,9190551Всего: 58531

5.4 Расчет сметы затрат

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

В смету затрат входят:

материальные затраты;

заработная плата;

отчисления во внебюджетные фонды (Овн=30,2% от ЗП).

Смета затрат представлена в таблице 12.

Таблица 10 - Смета затрат

Элемент затратСумма, руб. Материальные затраты58531Заработная плата (ЗП) 51004,39Отчисления во внебюджетные фонды16321,4Всего: 125856,79

Вывод: на создание и реализацию разрабатываемого мною в рамках ВКР программного обеспечения "Информационной системы бонусных программ лояльности" потребуется 125856,79 руб.

6. Обеспечение безопасности программного продукта

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

Обеспечение безопасности рассматривается на базе организации "ИП Голдованская Наталья Георгиевна", где будет развернута информационная система.

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

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

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

) Программные методы защиты - система специальных программ, включаемых в состав программного обеспечения, реализующих функции защиты информации. Обеспечивается антивирусной программой Avast Endpoint Protection Suite Plus, встроенным Брандмауэром Windows, пакетом OpenSSL.Endpoint Protection Suite Plus - эффективная антивирусная защита клиентских компьютеров и серверов внутри организации. Предоставляет не только надежную защиту, но и эффективное централизованное управление с помощью удобной веб-консоли, модули удаленной установки, уведомления системы безопасности в режиме реального времени, плановое автоматическое сканирование и многое другое.

"Личный кабинет держателя бонусной карты" должен предоставить доступ клиенту к информации с сервера баз данных, который находится не в одной локальной сети с треминалом клиента. Как правило для таких случаев создается VPN подключение. Это позволяет безопасно получить доступ к серверу, без необходимости открывать его в "мир". Но использование VPN без предворительной настройки и установки дополнительного ПО на ОС Android является слишком сложной задачей. Для таких случаев, MySQL имеет поддержку SSL, при котором поток данных между клиентским терминалом доступа к ИС и cервером БД (мобильным приложением клиента организации и сервером MySQL) защищается системой OpenSSL. Криптографический пакет OpenSSL - это система защиты и сертификации данных, название SSL переводится, как система безопасных сокетов (secure socket layer). OpenSSL используется практически всеми сетевыми серверами для защиты передаваемой информацией. Для функионирования OpenSSL, нужно сгенерировать сертификат центра сертификации (CA). С его помощью создаются и серверные и клиентские сертификаты. В момент установления соединение, сервер сверяет сертификат клиента с центром сертификации и если все в порядке - клиент считается надежным и устанавливается защищенное соединение, а все данные передаются в защищенном виде.

В информационной системе есть персональные данные клиентов, а также данные по бонусным картам, поэтому используется встроенная в MySQL функция AES_ENCRYPT (AES_DECRYPT) для обратимого шифрования некотрых текстовых полей. Эти функции позволяют шифровать/дешифровать данные, используя официальный алгоритм AES (Advanced Encryption Standard. В MySQL выбран 128-битовый ключ, поскольку он работает намного быстрее и обычно обеспечивает вполне достаточную защищенность. Ключ шифрования можно изменить используя "Приложение для управления бонусной программой". Просмотреть зашифрованные данные можно только после запуска любого из приложений бонусной системы.

Все поля ввода, данные из которых отправляются непосредственно в запрос проходят проверку на наличие SQL-инъекций.

На компьютере, где развернут сервер MySQL 5.6 безопасность обеспечивается антивирусной программой Avast Endpoint Protection Suite Plus и встроенным Брандмауэром Windows.

Дополнительная "безопасность Личного кабинета держателя бонусной карты" на мобильном терминале доступе к ИС обеспечивается по усмотрению клиента.

Заключение

Выпускная квалификационная работа посвящена разработке "Информационной системы бонусных программ лояльности" для 1С Франчайзи "ИП Голдованская Наталья Георгиевна". Данная система предназначена для запуска бонусных программ лояльности на базе любой организации (в первую очередь на базе организации-заказчика) и автоматизацией всех операций, связанных с функционированием бонусной программы.

"Информационной система бонусных программ лояльности" была разработана лишь частично. Остальные работы по дальнейшей разработке и усовершенствованию системы взяла на себя организация-заказчик. В рамках ВКР мною была спроектирована и запущена БД и разработаны два модуля ИС: "Приложение для управления бонусной программой", "Личный кабинет держателя бонусной карты".

При разработке системы были достигнуты все поставленные цели:

Автоматизация проведения бонусных расчетов;

Администрирование и управление настройками бонусной системы;

Формирование отчетной документации по результатам работы бонусной программы лояльности;

Идентификация клиента в процессе приобретения товаров/услуг;

Реализация каналов взаимодействия с клиентами на базе смс-рассылок и функционала "Личного кабинета держателя бонусной карты".

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

Достоинства системы:

Разграничение доступа к ИС путем доступа к модулям, только тех категорий пользователей, которые имеют полномочия для работы с ними;

Поиск и фильтрация любого набора данных;

Усиленные меры безопасности: SSL-протокол для защиты потока данных и аутентификации источника данных, шифрование паролей и персональных данных клиентов;

Формирование отчетных документов в различных форматах (xls, txt, html, pdf, doc, png) или вывод их на печать напрямую;

Интуитивно понятный для пользователя интерфейс со стандартными контролами Windows и Android.

Недостатками "Информационной системы бонусных программ лояльности" являются:

Сложность установки и развертывания ИС;

Недостаточное быстрая отзывчивость пользовательского интерфейса - операции, требующие длительных вычислений не вынесены в отдельный поток (фризы GUI).

В результате введения "Информационной системы бонусных программ лояльности" 1С Франчайзи "ИП Голдованская Наталья Георгиевна" получит действующую бонусную программу, что позволяет клиенту получать бонусные баллы за покупки товаров или услуг, а в дальнейшем обменивать накопленные баллы на вознаграждение только в той организации, где они были предоставлены. Для организации система предоставит возможность отслеживать целевую аудиторию, увеличить число лояльных фирме клиентов, развивать каналы взаимодействия с клиентами, создать универсальную платформу для запуска бонусной программы лояльности в любой организации, чтобы продавать ее как собственный программный продукт.

Список использованных источников

1. Архангельский А.Я. - Программирование в C++ Builder XE.

. С. Бобровский - Самоучитель программирования на языке C++ в системе Borland C++ Builder - ДЕСС КОМ, I-PRESS, 2014. - 272 с.

. Максим Кузнецов, Игорь Симдянов - MySQL 5 - Изд. БХВ-Петербург, 2010

. Шварц Б., Зайцев П., Ткаченко В. и др. - MySQL. Оптимизация производительности (2-е издание) - Изд. Символ, 2010, 823 с.

. Дейтел П., Дейтел Х., Дейтел Э., Моргано М. - Android для программистов. Создаем приложения - Изд. Питер, 2012, 560 с.

. С. Хашими, С. Коматинени, Д. Маклин - Разработка приложений для Android - Изд. Питер, 2011, 738 с.

. ГОСТ 19.105-78 - Общие требования к программным документам.

. ГОСТ 2.105-95 - Единая система конструкторской документации. Общие требования к текстовым документам.

. Интернет-ресурсы:://ru. wikipedia.org;://docwiki. embarcadero.com;://fire-monkey.ru/forum;: // developer. microsoft.com/ru-ru/windows;://dev. mysql.com/doc;://www.mysql.ru/docs;://www.cyberforum.ru/cpp-builder-firemonkey.

Приложения

Приложение А

Организационная структура 1С Франчайзи "ИП Голдованская Наталья Георгиевна"

Приложение Б

Тестовые наборы и результаты их использования

Базовое тестирование

Таблица Б.1 - Базовое тестирование

ДействиеОжидаемый результатФактический результатВыводВвод Email в формате текстовой строкиОтображение в поле ввода текстаОтображение в поле ввода текстаТест пройден успешноВвод суммы покупки в формате математического выражения (сумма) Отображение вычисленной суммы в поле вводаОтображение вычисленной суммы в поле вводаТест пройден успешноВвод дат с клавиатуры в числовом форматеОтображение в поле ввода датыОтображение в поле ввода датыТест пройден успешноУдаление клиентаУдаление записи, содержащей информацию о клиентеУдаление записи, содержащей информацию о клиентеТест пройден успешноДобавление клиентаОтображение новой записи о клиенте в таблицеОтображение новой записи о клиенте в таблицеТест пройден успешноИзменение данных о клиентеОтображение новых данных о клиенте в таблицеОтображение новых данных о клиенте в таблицеТест пройден успешноПрименение фильтра по дате рождения клиента к таблицеОтображение данных удовлетворяющих условию запросаОтображение данных удовлетворяющих условию запросаТест пройден успешноВывод таблицы на печатьПечать таблицы на бумаге во всю ширину страницыПечать таблицы на бумаге во всю ширину страницыТест пройден успешноВывод в TXT форматОтображение данных в текстовом документеОтображение данных в текстовом документеТест пройден успешно

Тестирование на ошибочные данные

Таблица В.2 - Тестирование на ошибочные данные

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

Тестирование интерфейса

Таблица В.3 - Тестирование интерфейса

ПринципХарактеристикиОбеспечениеЕстественностьНе вынуждает пользователя существенно изменять привычные для него способы решения задачиПри добавлении любой информации, после заполнения полей ввода необходимо нажать кнопку "Добавить" - при добавлении задачи, "Изменить" - при изменении, "Удалить" - при удалении. "Поиск по таблице" - в случае поиска задач, "Сброс" - в случае отмены операции, и т.д. СогласованностьПозволяет пользователям переносить имеющиеся знания на новые задания, осваивать новые аспекты быстрее, и благодаря этому фокусировать внимание на решаемой задачеКнопка "Меню" в верхней части любой формы позволяет пользователю мгновенно получить доступ ко всем функциям программы. Хард-клавиша "Назад" на Android устройстве закрывает текущий экран приложения, возвращая к предыдущему. ДружественностьРазрешать только соответствующий набор действий и предупреждать пользователей о тех ситуациях, где они могут повредить системе или даннымПока пользователь не завершил выполнения конкретного действия, некоторые функции программы будут для него недоступны; показ окон в модальном режиме. Принцип "Обратной связи"Каждое действие пользователя должно получать визуальное, а иногда и звуковое подтверждение того, что программное обеспечение восприняло введенную командуПроцесс выполнения объемных задач, сопровождает статус-бар или индикатор; при некорректных действиях пользователя выводится ошибка или всплывающая подсказка. Простота

Похожие работы на - Глобалізація світових товарних ринків

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!