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

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 29.06.2011
Размер файла 7,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

– родительская категория - указатель на категорию, являющуюся родительской по отношению к описываемой в дереве категорий.

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

– код производителя - уникальный код производителя в системе;

– название - брендовое имя производителя;

– страна - страна, в которой официально размещено представительство производителя (не страна размещения заводов);

– описание - описание направленности деятельности производителя;

– логотип - ссылка на логотип компании;

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

4. Фотография детали. Сущность хранящая схематические изображения и фотографии описываемой детали.

– код фото - уникальный код фото в системе;

– код детали - код описываемой детали;

– путь к фото - путь к схеме, или изображению в хранилище сервера.

5. Применимость. Сущность, отражающая применимость той или иной детали к тому или иному автомобилю.

– код применимости - уникальный код применимости в системе;

– код детали - код детали, применимость которой указывается;

– код автомобиля - код автомобиля, к которому применима деталь.

6. Автомобиль. Сущность описывает все возможные комплектации автомобилей. Учитывая специфику предметной области в большинстве случаев для однозначного определения применимости детали к автомобилю достаточно знать устанавливаемые на него кузов и двигатель. В том случае, если этой информации окажется недостаточно в описании детали должен быть добавлен соответствующий комментарий. Набор атрибутов сущности:

– код автомобиля - уникальный код автомобиля в системе;

– код модели - код модели кузова;

– код двигателя - код устанавливаемого на автомобиль двигателя.

7. Модель кузова.

– код модели кузова - уникальный код модели в системе;

– дата начала выпуска;

– дата окончания выпуска;

– фото кузова.

8. Двигатель. Сущность описывает характеристики двигателей. Эта информация должна быть подробной, учитывая множество модификаций схожих двигателей. Атрибуты сущности:

– код двигателя - уникальный код двигателя в системе;

– название - условное название двигателя, зачатую отражающее целый класс двигателей;

– емкость - емкость двигателя;

– тип двигателя - принцип построения двигателя: рядный,
или V-образный;

– топливо - тип используемого топлива;

– количество цилиндров;

– турбонаддув - наличие, или отсутствие нагнетателя;

– количество клапанов - имеется ввиду общее число впускных и выпускных клапанов, в сумме на всех цилиндрах;

– мощность двигателя.

9. Заказ. Сущность, содержащую информацию о заказе и его состоянии.

– код заказа - уникальный код заказа в системе;

– дата модификации - дата последнего изменения статуса заказа;

– контактный телефон - контактный телефон, указанный клиентом;

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

– состояние обработки - состояние в котором находится заказ: обработан менеджером, или нет;

– состояние отправки - отражает был ли заказ окончательно сформирован и отправлен на рассмотрение.

10. Запчасти заказа. Список товаров, который клиент хочет приобрести при визите в офис, или наличие которых он хочет уточнить.

– код заказа - код заказа, которому принадлежит набор деталей;

– код детали - код заказываемой детали;

– количество - желаемое количество данных деталей.

2.2.2 Инфологическая модель БД

Инфологическая модель базы данных (рисунок 2.1) отражает отношения между сущностями и позволяет полноценно представить логическую структуру БД [6].

Рисунок 2.1 - Инфологическая модель базы данных

Абсолютно все связи между сущностями БД реализуют отношение
один-ко-многим (1:М). Спецификация связей отражена в таблице 2.1.

Таблица 2.1 - Спецификация отношений между сущностями

Отно-шение

Родительская

сущность

Дочерняя

Сущность

Описание отношения

1

Категория

Деталь

В одну категорию может входить множество деталей

2

Деталь

Применимость

Каждая деталь может быть применима к множеству автомобилей

3

Автомобиль

Применимость

К каждому автомобилю применимо множество деталей

4

Модель кузова

Автомобиль

С одним и тем же кузовом может выпускаться множество автомобилей

5

Двигатель

Автомобиль

Один и тот же двигатель может устанавливаться на множество автомобилей

6

Деталь

Запчасти заказа

Одна и та же деталь может фигурировать во множестве заказов

7

Заказ

Запчасти заказа

К одному заказу может относиться множество запчастей

8

Произ-водитель

Деталь

Один и тот же производитель может выпускать множество деталей

9

Деталь

Фотография детали

Одна и та же деталь может быть отражена на множестве схем, рисунков

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

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

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

3. Любой неключевой атрибут функционально полностью зависит только от первичного ключа.

2.2.3 Определение ключевых атрибутов сущностей БД

Для поддержания ссылочной целостности данных набор атрибутов сущностей должен быть определен как первичные и внешние ключи [7].

В соответствии с инфологической моделью для сущностей БД определен следующий набор атрибутов (таблица 2.2).

Таблица 2.2 - Ключевые атрибуты сущностей

Сущность

Тип ключа

Ключевые атрибуты сущности

Категория

Первичный

Код категории

Деталь

Первичный

Код детали

Внешний

Код производителя

Код категории

Применимость

Первичный

Код применимости

Внешний

Код деталь

Код автомобиля

Автомобиль

Первичный

Код автомобиля

Внешний

Код модели кузова

Код двигателя

Модель кузова

Первичный

Код модели кузова

Двигатель

Первичный

Код двигателя

Производитель

Первичный

Код производителя

Фото детали

Первичный

Код фото

Внешний

Код детали

Заказ

Первичный

Код заказа

Запчасти заказа

Составной первичный

Код заказа

Код детали

2.2.4 Даталогическая модель БД

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

Тогда сущность «Деталь» будет представлена в виде таблицы «spare_part» (таблица 2.3).

Таблица 2.3 - Физическое представление сущности «Деталь»

Поле данных

Тип данных

Допустимость неопределенных значений

part_id

varchar(30)

Нет

catalogue_number

varchar(30)

Нет

title

varchar(100)

Нет

description

ntext

Да

manufacturer

varchar(10)

Нет

category

varchar(10)

Нет

quantity_office

int

Да

quantity_storage

int

Да

price

money

Да

Сущность «Категория» будет представлена в виде таблицы «categories» (таблица 2.4).

Таблица 2.4 - Физическое представление сущности «Категория»

Поле данных

Тип данных

Допустимость неопределенных значений

category_id

varchar(10)

Нет

description

varchar(50)

Нет

parent_id

varchar(10)

Да

Сущность «Применимость» будет представлена в виде таблицы «application» (таблица 2.5).

Таблица 2.5 - Физическое представление сущности «Применимость»

Поле данных

Тип данных

Допустимость неопределенных значений

app_id

bigint

Нет

car_id

varchar(20)

Нет

part_id

varchar(30)

Нет

Сущность «Автомобиль» будет представлена в виде таблицы «car» (таблица 2.6).

Таблица 2.6 - Физическое представление сущности «Автомобиль»

Поле данных

Тип данных

Допустимость неопределенных значений

car_id

varchar(20)

Нет

model

varchar(50)

Нет

engine

varchar(20)

Нет

Сущность «Модель кузова» будет представлена в виде таблицы «model» (таблица 2.7).

Таблица 2.7 - Физическое представление сущности «Модель кузова»

Поле данных

Тип данных

Допустимость неопределенных значений

model_id

varchar(50)

Нет

start_date

datetime

Нет

end_date

datetime

Да

photo

varchar(200)

Да

Сущность «Двигатель» будет представлена в виде таблицы «engine» (таблица 2.8).

Таблица 2.8 - Физическое представление сущности «Двигатель»

Поле данных

Тип данных

Допустимость неопределенных значений

engine_id

varchar(20)

Нет

short_name

varchar(20)

Да

capacity

float

Да

type

varchar(10)

Да

fuel

varchar(10)

Да

cilinders

int

Да

turbo

bit

Да

valves

int

Да

HP

int

Да

Сущность «Производитель» будет представлена в виде таблицы «manufacturer» (таблица 2.9).

Таблица 2.9 - Физическое представление сущности «Производитель»

Поле данных

Тип данных

Допустимость неопределенных значений

manuf_id

varchar(10)

Нет

name

varchar(50)

Нет

country

varchar(30)

Да

description

ntext

Да

logo

varchar(200)

Да

company_site

varchar(50)

Да

Сущность «Фото детали» будет представлена в виде таблицы «sp_photos» (таблица 2.10).

Таблица 2.10 - Физическое представление сущности «Фото детали»

Поле данных

Тип данных

Допустимость неопределенных значений

photo_id

varchar(10)

Нет

spare_part

varchar(30)

Нет

photo_path

varchar(200)

Нет

Сущность «Заказ» будет представлена в виде таблицы «reserve» (таблица 2.11).

Таблица 2.11 - Физическое представление сущности «Заказ»

Поле данных

Тип данных

Допустимость неопределенных значений

reserve_id

varchar(100)

Нет

reserve_date

datetime

Нет

contact_info

varchar(200)

Да

contact_phone

varchar(15)

Да

accepted

bit

Нет

sended

bit

Нет

Сущность «Запчасти заказа» будет представлена в виде таблицы «reserve_parts» (таблица 2.12).

Таблица 2.12 - Физическое представление сущности «Запчасти заказа»

Поле данных

Тип данных

Допустимость неопределенных значений

reserve_id

varchar(100)

Нет

part_id

varchar(30)

Нет

quantity

int

Нет

Даталогическая модель отражена в виде схемы физической ER-модели БД и вынесена в приложение А.

2.3 Разработка программной части информационной подсистемы

2.3.1 Реализация взаимодействия между сервером приложений и сервером баз данных

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

Механизм загрузки данных реализован таким образом, чтобы минимизировать время открытого соединения с базой данных и объем передаваемых данных. В ходе проектирования было решено отказаться от использования стандартных классов DataSet и TableAdapter ввиду того что в большинстве случаев на определенной странице приложения используются лишь некоторые из таблиц БД. Соответственно нет смысла хранить на каждой странице приложения коллекции таблиц БД. Отказавшись от такого подхода можно увеличить быстродействие и сократить объем страниц, повысив при этом трудоемкость разработки [8].

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

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

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

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

Работа с данными осуществляется с использованием следующих классов:

– SqlConnection. Используется для открытия безопасного подключения к базе данных;

– SqlCommand. Используется для отправления управляющих инструкций для СУБД в форме SQL-запросов;

– SqlDataReader. Используется для потокового чтения данных из базы;

– DataTable. Используется для хранения табличных структур данных на стороне приложения.

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

При этом выполнения всех операций с удаленными данными осуществляется в пределах инструкции try..catch для повышения стабильности работы приложения и корректной обработки возникающих ошибок. К примеру временная недоступность базы данных из-за неполадок в канале связи не вызовет крах приложения.

Рисунок 2.2 - Обобщенный алгоритм обмена данными СУБД

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

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

2.3.2 Реализация клиент-серверного взаимодействия

Вся бизнес-логика приложения сосредоточена в серверном коде и «тонкий» клиент получает готовые html-страницы с активными элементами управления. Благодаря такому подходу веб-приложению безразличны детали реализации клиентских приложений (браузеров) [10].

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

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

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

Рисунок 2.3 - Просмотр кода страницы приложения в браузере

2.3.3 Разработка страниц ориентированных на клиентов

Из десяти страниц приложения шесть являются клиент-ориентированными: default.aspx, catalog.aspx, order.aspx, about.aspx, manufacturer.aspx, showpdf.aspx.

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

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

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

Ключевым управляющим элементом каталога является полнофункциональное дерево категорий. Запасные части сгруппированы в дерево категорий, динамически выстраиваемое в виде элемента TreeView на основе данных таблицы categories, в которой хранятся узлы дерева
с указанием родительских узлов. Построение древа реализуется функцией
BuildTree(DataTable ToBuild), которая также обеспечивает корректное именование узлов, отображающее пользователю понятные названия категорий, сохраняя значения кодов категорий. Таким образом, после построения дерева таблица его образующая удаляется при перезагрузке страницы и уже не запрашивается из базы, что существенно сокращает последующее время загрузок страницы при активной работе, в то время как состояние элемента управления сохраняется в переменной состояния ViewState [12].

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

Еще одной важной задачей являлось создание активного списка товара принадлежащего выбранной категории. Поскольку элемент управления GridView напрямую не поддерживает обработку нажатий на строки таблицы и не вызывает отправку страницы на сервер было решено переопределять все строки таблицы при их создании. Для этого был перегружен обработчик события OnRowDataBound, добавляющий на строки таблицы Java-скрипты, исполняемые на стороне клиента. С их помощью стало возможным отслеживание кликов по строчкам таблицы и изменение стиля при наведения курсора на ячейки без использования специальных управляющих кнопок в дополнительных столбцах GridView. При выборе какой-либо позиции управление передается серверу с указанием позиции. Активная таблица товаров отражена на рисунке 2.4.

Рисунок 2.4 - Управляемая скриптами таблица товара

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

Разработка страницы оформления заказа. Данная страница инкапсулирует в себе логику оформления заказов и реализует функции модификации списка товаров, а также деталей заказа. Кроме того на нее возложены функции проверки корректности составления заказа перед изменением статуса продвижения на «отправленный».

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

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

Рисунок 2.5 - Список товара с интегрированными элементами управления

2.3.4 Разработка страниц, организующих управление содержимым сайта

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

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

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

2.3.5 Разработка модуля подготовки отчетов

Модуль подготовки отчетов используется для формирования документов в формате PDF с использованием свободно распространяемой библиотеки iTextSharp.dll. Данное расширение предоставляет программисту наборы структур данных, механизмов их заполнения и вывода в документы. Необходимые описания классов, методов и структур данных находятся в заголовочных файлах iTextSharp.text; iTextSharp.text.pdf; iTextSharp.text.html.simpleparser.

Сам модуль базируется на странице showpdf.aspx, однако эта страница никогда демонстрируется пользователю. Вместо этого на страницу методом открытого GET-запроса передается код заказа, который необходимо вывести в документ.

При загрузке страницы этот параметр анализируется, из базы данных подгружается необходимая информация и выводится в документ в два этапа:

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

2. Выводится табличная часть документа, отражающая список товаров по заказу.

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

Особенностью использования библиотеки iTextSharp.dll является отсутствие поддержки кириллических шрифтов. Для решения этой проблемы потребовалось импортировать на сервер в диспетчер шрифтов готовый файл шрифта Arial со встроенными расширениями для кириллических начертаний. После этого шрифт определен как базовый для вывода на дисплей и в документ.

2.3.6 Верстка и дизайн страниц веб-приложения

Верстка страниц веб-приложения абсолютно везде является табличной, причем сами таблицы являются серверными элементами <asp:Table runat=«server»> и исполняются на сервере. Такой подход имеет как минусы так и плюсы. Из минусов - невозможность проектирования страниц в режиме дизайнера. Вся верстка и дизайн велись в режиме редактирования html-разметки. Однако из плюсов - возможность обращения к макетной сетке как к северному элементу и вытекающие отсюда последствия: событийно-управляемые изменения дизайна и компоновки.

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

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

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

Единообразие верстки и оформления во многом обеспечивается использованием шаблона оформления, описанного в основном MasterPage файле. В соответствии с выбранной разметкой шаблон представляет собой шапку, панель навигации, поле для контента и подвал (рисунок 2.6). Все страницы приложения загружаются как страницы содержимого в описанный выше шаблон. И даже страницы управления контентом, использующие свой собственный AdminMasterPage тоже разворачиваются во внешнем шаблоне (рисунок 2.7).

Рисунок 2.6 - Шаблон оформления страниц, определенный в MasterPage.master

Рисунок 2.7 - Шаблон оформления страниц управления контентом

Объявление стилей оформления элементов страниц преимущественно осуществлено во внешнем .CSS файле, что облегчает их модификацию.

Выводы

1. Определен набор сущностей с присущими им атрибутами, позволяющий полноценно описать предметную область.

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

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

4. Разработан дизайн и макет страниц, гарантирующий корректную верстку и размещение элементов управления независимо от настроек отображения на стороне клиента.

5. Подсистема удовлетворяет всем требованиям, предъявляемым к ней заказчиком, и решает все задачи, предусмотренные техническим заданием на проектирование.

3. Техническое и программное обеспечение

3.1 Общие сведения об информационной подсистеме

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

Краткое обозначение веб-приложения в информационной системе предпринимателя: «Заказ».

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

информационный база поток подсистема

Таблица 3.1 - Программное обеспечение, используемое в процессе разработки информационной подсистемы

Класс ПО

Название ПО

Целевое использование ПО

Среда разработки

Microsoft Visual Studio 2010: Express

– Редактор программного кода;

– компиляция;

– отладка.

СУБД

Microsoft SQL Server 2008: Express Edition

Создание и ведение баз данных

Графический редактор

Adobe Photoshop CS4

Подготовка элементов графического оформления

Веб-браузер

Google Chrome
ver. 11.0.696.71

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

Microsoft IE 8.0

Microsoft IE 6.0

FTP-менеджер

FileZilla Client

Размещение файлов приложения
в FTP-хранилище хостинга

Серверная часть приложения написана на языке высокого уровня C#. Разметка страниц выполнена на языке гипертекстовой разметки HTML. Для реализации логики на стороне клиенте использован язык JavaScript.

3.2 Функциональное назначение программного продукта

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

Информационная система позволяет клиентам:

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

2. Узнать применимость комплектующих к различным моделям автомобилей и подобрать комплектующие к своему автомобилю.

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

4. Узнать контактную информацию для связи с предпринимателем.

5. Получить сведения о значительных событиях и последних изменениях в деятельности предпринимателя.

6. Заранее подготовить и распечатать список желаемого товара для предъявления продавцу в офисе фирмы.

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

1. Систематизировано хранить исчерпывающие сведения о товаре и его наличии в офисе и на складке.

2. Создавать резервные копии базы данных.

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

4. Воплощать рекламную политику в сети Интернет.

3.3 Логическая структура веб-приложения

На рисунке 3.1 представлена обобщенная блок-схема алгоритма составления и отправки заказа клиентом.

Рисунок 3.1 - Блок схема основного алгоритма веб-приложения

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

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

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

Рисунок 3.2 - Мультиграф гиперссылок веб-приложения

В таблице 3.2 приводится объектно-ориентированная декомпозиция приложения в разрезе классов реализующих функционирование подсистемы.

Таблица 3.2 - Спецификация классов веб-приложения

Название класса

Назначение класса

1

2

MasterPage

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

AdminMaster

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

Default

Главная страница веб-приложения. Отображается при запросе адреса сайта без указания конкретной страницы. Содержит блок новостей и рекламную информацию.

Catalog

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

Order

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

About

Реализует отображение контактной информации предпринимателя.

Manufacturer

Отображает информацию о выбранном производителе товара.

Imuploader

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

Page404

Страница, отображаемая при запросе несуществующей страницы.

Parts

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

Reserves

Класс, обеспечивающий просмотр и управление созданными, отправленными и уже обработанными заказами.

Showpdf

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

Webmaster

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

Диаграмма классов веб-приложения представлена в приложении Б, листинг основных методов в приложении В.

3.4 Требования к техническому обеспечению

3.4.1 Требования к техническому обеспечению серверной стороны

Общие требования к серверу. Сервер веб-приложения должен поддерживать работу с технологией ASP.NET 2.0, обеспечивать функционирование провайдера данных ADO.NET для MS SQL Server и стандарты HTML 4.01, CSS 2.1. Кроме того на сервере должна быть предустановленна СУБД MS SQL Server 2008 или новее.

Серверная сторона должна обеспечивать плановое резервное копирование данных БД и файлов приложения.

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

Требования к дисковому пространству на сервере. Ввиду возможной физической разделенности серверов приложений и баз данных к ним предъявляются раздельные требования. Учитывая, что загружаемые изображения сохраняются в директории сервера приложений минимальные размер дискового пространства составляет 50МБ и будет увеличиваться в зависимости от количества изображений товаров, на которые ссылается БД (из расчета 100 КБ для каждой схемы в формате .png).

Основываясь на начальной заполненности БД на сервере БД должно быть доступно не менее 20 МБ дискового пространства с возможностью последующего роста БД. Однако, на предполагаемом хостинге 1gb.ru размер дискового пространства отводимого под базу данных не ограничивается.

3.4.2 Требования к техническому обеспечению клиентской стороны

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

Рекомендуется использовать браузер Google Chrome 11 или новее. Дальнейшее определение системных требований основывается на калькуляции требований к браузеру и требований браузера к операционной системе.

Требования Google Chrome 11 к операционной системе указаны
в таблице 3.3.

Таблица 3.3 - Требования браузера к операционной системе

Семейство ОС

Допустимые версии

Windows

– Windows XP с пакетом обновления 2 или более поздней версии;

– Windows Vista;

– Windows 7.

Mac

Mac OS X 10.5.6 или более поздней версии

Linux

– Ubuntu 10.04 или более поздней версии;

– Debian 6+;

– OpenSuSE 11.3+;

– Fedora Linux 14+.

Учитывая распространенность ОС Windows XP минимальные требования к обеспечению клиентской стороны подсистемы будут основываться на рекомендуемых требованиях к этой ОС.

Требования к центральному процессору. ОС Windows XP требует любой процессор с частотой не менее 300 MHz, однако браузер для платформы Windows требует Intel Pentium 4 или более поздней версии. Соответственно для корректной работы требуется более мощный из требуемых процессоров - Intel Pentium 4

Требования к размеру ОЗУ. Операционной системе для комфортной работы с минимальным использованием файла подкачки требуется не менее 128 МБ RAM. В свою очередь браузеру требуется до 128 МБ в зависимости от числа открытых вкладок. Тогда объем ОЗУ рассматриваемой системы должен составлять не меньше суммы этих требований, то есть 256 МБ.

Требования к свободному дисковому пространству. Операционной системе Windows XP требуется 1,5 ГБ дисковой памяти (не считая размера файла подкачки), в то время как для установки браузера требуется дополнительно 100 МБ. Тогда минимальный размер дисковой памяти в условиях наличия достаточного количества оперативной памяти должен составлять 1,6 ГБ.

Требования к видеосистеме. Для функционирования ОС требуется видеоадаптер класса не ниже, чем SVGA, в то время как размер главного информационного слоя страниц подсистемы ориентирован под мониторы с разрешением 1024х768. При меньшем разрешении эксплуатация также будет возможной, но скорость работы снизится из-за постоянной необходимости горизонтальной прокрутки страницы.

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

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

3.5 Публикация веб-приложения и организация доступа к нему

Публикация веб-приложения состоит из ряда этапов:

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

Для демонстрации проекта заказчику был выбран хостинг 1gb.ru за его предложение бесплатного тестового периода длительностью 10 дней.

По завершению процедуры регистрации: выбора доменного имени и тарифного плана (рисунок 3.3) регистратору предоставляется информация о средствах доступа к ресурсам хостинга - к серверам баз данных и виртуальным серверам, которая содержит:

– логин и пароль доступа к FTP-серверу;

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

– адрес сервера БД, имя базы и пароль для доступа к ней.

Эти данные впоследствии потребуеются для подключения базы данных и публикации веб-приложения.

Рисунок 3.3 - Резервирование доменного имени и настройка тарифного плана

2. Подключение базы данных к серверу баз данных.

Для подключения базы данных необходимо создать её полную архивную копию на жесткий диск в среде SQL Server Management Studio (рисунок 3.4). При этом особое внимание следует уделить версии SQL Server, установленной на сервере. Если его версия окажется устаревшей восстановление архивной копии окажется невозможным.

После этого в личном кабинете пользователя необходимо в пункте «подключение базы данных MsSQL» выбрать путь к файлу резервной копии для его загрузки на сервер (рисунок 3.5).

По окончанию загрузки будет предложено импортировать (восстановить) файл бэкапа в прикрепленную к аккаунту базу данных сервера (рисунок 3.6).

Рисунок 3.4 - Создание архивной копии базы данных

Рисунок 3.5 - Форма загрузки архивной копии на сервер хостинга

Рисунок 3.6 - форма восстановления копии в реальную базу данных сервера

3. Переопределение строки подключения к базе данных и публикация веб-приложения на хостинге.

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

<add name="SparePartsCatalogConnectionString" connectionString="Server=ms-sql-5.in-solve.ru; Database=<DataBaseName>;

uid=<UserName>;

pwd=<UserPass>;" providerName="System.Data.SqlClient" />

Листинг 3.1 - строка подключения к базе данных

Где <DataBaseName>, <UserName>, <UserPass> указываются в секретной информации о доступе к ресурсам сервера.

Далее следует скопировать файлы веб-приложения на FTP-сервер хостинга. Для этого в среде Visual Studio следует воспользоваться мастером копирования веб-приложения. После указания адреса и параметров доступа к FTP (рисунок 3.7) следует отметить галочками все файлы предложения и загрузить их на сервер (рисунок 3.8).

По окончанию копирования веб-приложение будет готово к работе. Доступ к нему будет осуществляется посредством обращению по доменному имени веб-приложения: parts-for-ford.1gb.ru

Рисунок 3.7 - настройка подключения к FTP-серверу

Рисунок 3.8 - Копирование файлов приложения на FTP-сервер

3.6 Входные данные

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

– технические характеристики двигателей автомобилей;

– выпускавшиеся модели автомобилей;

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

– информация о производителях комплектующих;

– информация каждой из продаваемых деталей с приложением фото (если имеется);

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

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

– При формировании заказа клиент фирмы может указывать:

– конфигурацию своего автомобиля

– контактный телефон (обязательно);

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

– список желаемых товаров и их количество (даже если количество превышает доступное в наличии).

3.7 Выходные данные

И клиенты и сотрудники фирмы могут в автоматическом режиме сформировать pdf-документ, сохраняемый на сервере и доступный для скачивания и печати. Данный документ содержит список отмеченных покупателем товаров, а контактную и дополнительную информацию введенные клиентом. Возможный вид документа отражен на рисунке 3.9.

Рисунок 3.9 - Форма отчета, формируемая приложением

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

3.8 Тестирование информационной подсистемы

В результате тестирования приложения с использованием различных веб-браузеров выявлено, что максимальная совместимость достигается при использовании Google Chrome, а в устаревших браузерах Internet Explorer версии 6 и старше могут наблюдаться нарушения в оформлении веб-страниц:

– не корректно отрисовывается тень, отбрасываемая центральным информационным блоком;

– при разрешении монитора большем, чем 1024х768, основное содержимое окна не выравнивается по центру. При этом функционирование веб-приложения не нарушается.

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

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

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

Рисунок 3.10 - Главная страница приложения, новостной блок

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

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

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

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

Поиск детали может быть так же осуществлен посредством ввода заводского номера в специальное текстовое поле «поиск по номеру».

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

Категория подбора детали отражена на рисунке 3.11.

Рисунок 3.11 - Категории идентификации автомобиля и подбора детали

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

Информация о выбранной детали будет загружена в третью
категорию - «Информация о выбранной детали» (рисунок 3.12). В ней отражается заводская маркировка детали, её название, ссылка на информацию о фирме-производителе, наличие товара, его цена, таблица применимости и графические схемы. Тут же располагается кнопка добавления товара к заказу. При добавлении товара будет автоматически создан новый заказ, если он не был создан ранее, или деталь будет добавлена к существующему заказу. Информация о добавлении товара, или невозможности этой процедуры будет выведена в панель состояния.

Также для каждой детали возможно получение информации об её производителе при нажатии соответствующей ссылки. Данные производителя будут открыты в новом окне браузера, чтобы не мешать продолжению работы с подбором (рисунок 3.13).

Рисунок 3.12 - Категория информации о комплектующих

Рисунок 3.13 - Вывод информации о производителе детали

После добавления всех интересующих позиций к списку товара пользователю следует перейти к оформлению заказа (Кнопка «заказ» навигационного меню).

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

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

Следует отметить, что клиент может создавать и отправлять множество заказов, поэтому на странице также размещены кнопки создания нового заказа и загрузки старого (по уникальному номеру заказа).

Рисунок 3.14 - Форма создания, редактирования и отправки заказа

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

3.10 Руководство администратора

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

Все инструменты управления контентом сайта сосредоточены в панели администратора, доступ к которой осуществляется вводом в адресную строку браузера прямой ссылки на одну из страниц панели: parts, reserves, webmaster, imuploader. Данные страницы соответственно предназначены для редактирования содержимого таблиц базы, работы со списком заказов, создания управляющих команд к базе данных и загрузки изображений в хранилище сайта для последующего использования в новостях или каталоге.

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

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

Рисунок 3.15 - Модификация табличных данных

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

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

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

На странице «Заказы» (reserves.aspx) осуществляется просмотр и продвижение заказов (рисунок 3.16). При этом при помощи специального выпадающего меню можно переключаться между отображением отправленных, не отправленных, обработанных и оформленных за период времени заказов. Список представляет из себя таблицу с указанием даты изменения заказа и кнопки перехода к его деталям, которые при нажатии на последнюю будут отражены сбоку. Там же будут отражены кнопки управления заказом: перевод заказа в обработанные, или удаление.

Рисунок 3.16 - Окно управления заказами

На странице «Команды» (webmaster.aspx) осуществляется ручной ввод SQL-команд управления базой данной. Данный инструмент не безопасен и его неосторожное использование может привести к порче данных. Использовать его стоит только в случаях, когда другие средства бесполезны. Например, с его помощью возможно изменение серверных переменных, таких как пароль администрации и длительность сессии в режиме администрирования.

Выборка данных с помощью этого инструмента невозможна. Пример использования окна управляющих команд отражен на рисунке 3.17.


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.