В связи со сложностью приложения, его логику на стороне сервера было решено реализовать с использованием двухуровневой архитектуры программного обеспечения.
Для хранения пользовательских данных будет использован MySQL-сервер. Этот сервер является бесплатным и предоставляет все необходимые средства для хранения и обработки пользовательских данных.
В качестве веб-сервера выбран Apache, поскольку он является одним из самых надежных и гибких в конфигурации. Одним из преимуществ данного сервера является модульность и расширяемость.
Для реализации серверной части приложения был выбран язык программирования Perl. CGI-сценарии на языке Perl, генерирующие HTML-страницы «на лету» являются мощным средством для решения поставленной задачи.
Основной структурой данных является база данных, в которой содержится информация о фирмах, моделях часов, продажах, счетах и типах механизма и крепления. Всего в базе данных существует семь таблиц. Их описание представлено ниже.
Таблица 3 — описание таблицы firma(фирмы)
Имя столбца | Содержательное наполнение | Тип данных | Роль |
id | Идентификатор фирмы | int(2) | Первичный ключ |
Name_Firma | Название фирмы | varchar(15) | Атрибут |
Country | Страна производитель | varchar(30) | Атрибут |
Logos | Логотип фирмы | varchar(50) | Атрибут |
Resume | Информация о фирме | text | Атрибут |
Таблица 4 — описание таблицы model (модели)
Имя столбца | Содержательное наполнение | Тип данных | Роль |
id | Идентификатор модели | int(2) | Первичный ключ |
id_Firma | Идентификатор фирмы | int(2) | Внешний ключ |
Name_Model | Название модели | varchar(40) | Атрибут |
id_Mechanism | Идентификатор механизма | int(1) | Внешний ключ |
id_Kreplen | Идентификатор крепления | int(1) | Внешний ключ |
id_Pol | Идентификатор пола | int(1) | Внешний ключ |
Data_post | Дата поставки | date | Атрибут |
Price | Стоимость | int(7) | Атрибут |
Photo | Изображение | varchar(50) | Атрибут |
Таблица 5 — описание таблицы mechanism(типы механизмов)
Имя столбца | Содержательное наполнение | Тип данных | Роль |
id | Идентификатор механизма | int(1) | Первичный ключ |
name | Название механизма | varchar(20) | Атрибут |
Таблица 6 — описание таблицы kreplen (типы крепления)
Имя столбца | Содержательное наполнение | Тип данных | Роль |
id | Идентификатор крепления | int(1) | Первичный ключ |
name | Название крепления | varchar(10) | Атрибут |
Таблица 7 — описание таблицы pol (пол)
Имя столбца | Содержательное наполнение | Тип данных | Роль |
id | Идентификатор пола | int(1) | Первичный ключ |
name | Название пола | varchar(10) | Атрибут |
Таблица 8 — описание таблицы schet (счет)
Имя столбца | Содержательное наполнение | Тип данных | Роль |
id | Идентификатор счета | nt(10) | Первичный ключ |
nom | Номер счета | varchar(255) | Атрибут |
fio | ФИО покупателя | varchar(255) | Атрибут |
tel | Телефон покупателя | varchar(255) | Атрибут |
Email покупателя | varchar(255) | Атрибут | |
data | Дата и время совершения заказа | datetime | Атрибут |
Таблица 9 — описание таблицы sale (продажи)
Имя столбца | Содержательное наполнение | Тип данных | Роль |
id | Идентификатор продажи | int(10) | Первичный ключ |
id_Model | Идентификатор модели | int(10) | Внешний ключ |
Schet_id | Идентификатор счета | int(10) | Внешний ключ |
Проектирование базы данных осуществлялось с помощью методологии IDEF1X, которая специально разработана для построения реляционных информационных систем.
На рисунке 2 приведена логическая модель базы данных.
Рисунок 2 – Диаграмма логической модели базы данных
В процессе проектирования информационной системы были использованы следующие модули языка Perl:
DBI — библиотека, осуществляющая работу с базами данных. Эта библиотека независима от типа БД. В данной работе используется СУБД MySQL, и для взаимодействия с ней модуль DBI использует класс DBD::MySQL.
CGI — данный модуль содержит набор функций для создания HTML-документов.
Оба модуля входят в состав ActivePerl 5.10.1.
Рассмотрим взаимодействие основных компонентов разрабатываемого web-приложения.
При загрузке сайта пользователь в первую очередь попадает на главную страницу. При выборе одного из пунктов меню запускается соответствующий cgi-скрипт для вывода необходимой информации.
Диаграмма деятельности - диаграмма, на которой показано разложение некоторой деятельности на её составные части. Под деятельностью (англ. activity) понимается спецификация исполняемого поведения в виде координированного последовательного и параллельного выполнения подчинённых элементов — вложенных видов деятельности и отдельных действий (англ. action), соединённых между собой потоками, которые идут от выходов одного узла ко входам другого. [4]
В курсовой работе диаграмма деятельности предназначена для детализации особенностей алгоритмической и логической организации системы.
Диаграмма деятельности редактирования продукции представлена ниже на рисунке 3.
Рисунок 3 — Диаграмма деятельности
Диаграмма последовательности - это диаграмма, чаще всего, описывающая один сценарий приложения. На диаграмме изображаются экземпляры объектов и сообщения, которыми они обмениваются в рамках одного прецедента (use case). Рассмотрим диаграмму последовательности для варианта использования «Просмотр списка всех моделей часов».
Пользователь выбирает пункт меню «Все модели» смотрит информацию о часах.
На рисунке 4 изображена диаграмма последовательности, которая показывает взаимодействие основных частей системы при просмотре списка моделей часов.
Рисунок 4 — Диаграмма последовательности
Особенностью пользовательского интерфейса данной системы является простота и логичность. Страница веб-сайта с помощью средств html разделена на блоки . В верхней части располагается логотип интернет магазина. В правой части располагается ссылка на корзину в пользовательской части сайта и ссылка выхода из подсистемы в администраторской части.
В левой части располагается меню навигации по сайту, благодаря которой можно переходить в разные разделы приложения. В центральной части располагается основная часть приложения где отображается вся информация и все необходимые формы.
Благодаря такой структуре все страницы сайта имеют единый интерфейс, и пользователю будет значительно проще ориентироваться при переходе на другие страницы.
В соответствии с требованиями к интерфейсу пользователя были спроектированы веб-страницы, реализующие необходимые функции системы.
Основные веб-страницы сайта:
Администраторская часть:
•Главная страница сайта;
•Страница списка фирм с функциями добавления , редактирования и удаления записей;
•Страница списка моделей часов с функциями добавления , редактирования и удаления записей;
•Страница просмотра информации о заказах;
•Страница авторизации администратора;
Пользовательская часть:
•Главная страница;
•Страница со всеми моделями часов;
•Страница подбора часов по параметрам;
•Страница просмотра информации о фирмах;
•Страница корзины;
Одну из страниц сайта (главная пользовательская) можно увидеть на рисунке 5.
Рисунок 5 — Главная страница пользовательской части сайта
Данная система разрабатывалась на языке Perl с использованием веб-сервера Apache и sql-сервера MySQL. MySQL был выбран в качестве веб-сервера, потому что подходит для решения малых задач, имеет достаточную гибкость, а также является бесплатным.
Приложение использует клиент-серверную технологию. В качестве клиента выступает браузер пользователя, в качестве сервера – совокупность программно-аппаратных средств, необходимых для работы разработанной системы. На стороне клиента используется браузер, а на стороне сервера веб-сервер Apache, СУБД MySQL и CGI-программа на языке Perl. Диаграмма развертывания представлена на рисунке 6.
Рисунок 6 — Диаграмма развёртывания системы
Программа, реализованная в данном проекте, включает в себя следующие файлы:
- Пользовательская часть:
- Index.pl – основной скрипт
- Ind.pl – главная страница сайта
- All_model – скрипт для вывода всех моделей часов магазина
- Model_find – скрипт для подбора модели часов по параметрам
- Firms.pl – отображает информацию о фирмах