Примеры дипломов / ВКР_Ботов.pdf
2.ПОСТАНОВКА ЗАДАЧИ
Необходимо разработать прототип интернет-магазина,
предоставляющий базовый функционал, достаточный для удовлетворения основных потребностей пользователей. Построить, по меньшей мере, два интерфейса для переднего офиса: для полновесного браузера и оптимизированный под Apple iPhone.
Для разработки использовать платформу Microsoft .NET. Применить трехзвенную архитектуру. Минимизировать необходимость внесения каких-
либо изменений в слои доступа к данным и бизнес логики.
Принять во внимание накопленный опыт.
Как отмечалось ранее, данная работа осуществляется в рамках удаленного сотрудничества с компанией VivaPortals. Потому как проект является достаточно большим и автор не является единственным программистом в компании – у руководства VivaPortals возникала идея привлечь к разработкам более одного человека. Таким образом, возникала задача распределения работ. В технической команде были достигнуты договоренности осуществлять совместно: проектирование базы данных,
построение слоев доступа к данным и бизнес логики; разработку переднего офиса делегировать автору данной работы.
2.1. Описание инструментария и методов решения задачи
На первом этапе необходимо определиться с технологическим стеком средств, которые впоследствии будут задействованы в построении решения.
Потому как нужно минимизировать необходимость внесения, каких-либо дополнительных изменений в слои доступа к данным и бизнес логики, то можно заключить, что разные версии магазина будут отличаться в большей степени внешним видом (слоем представления).
22
Оптимальным решением в данном случае является использование паттерна программирования MVC (Model, View, Controller), который идеально подходит под названные ограничение. А если принять во внимание значительные наработки, произведенные в рамках летней и осенней преддипломных практик [16,17], осуществленных в ходе построения надстройки над CMS DotNetNuke для быстрого построения интернет-
магазинов, то целесообразным будет использовать именно ASP.NET MVC
[18].
Данная технология достаточно молодая и с тех пор как она вышла в релиз, прошло немногим более года; дата релиза – 17 марта 2009 [19]. Но,
тем не менее, уже сейчас данный фреймворк активно используется сообществом разработчиков и, судя по отзывам, технология весьма перспективна. Также следует отметить, что проект организован по принципу
Open Source, то есть, исходный код фреймворка открыт к всеобщему обозрению под лицензией Microsoft Public License [20]. Текущий номер версии – второй. Преимущества, которые предоставляет ASP.NET MVC 2.0:
Частичная совместимость написанного ранее под классический
ASP.NET Web Forms кода.
Более явное изолирование слоев доступа к данным и бизнес-логики от слоя представления.
Полный контроль над генерируемым кодом HTML, и как следствие повышение его качества (например, отсутствие необоснованно дутых
ViewState-ов в некоторых ситуация превышающих размер в 100 кб).
Сильная интеграция с AJAX, что позволяет повысить уровень интерактивности сайтов.
И наконец, так называемая, разработка, основанная на тестировании
(Test Driven Development). Которая позволяет повысить надежность кода, при незначительных дополнительных накладных расходах на
создание тестов.[21Сослаться на книгу] 23
Главным недостатком использования ASP.NET MVC является необходимость самостоятельной реализации ряда преимуществ, которые предоставляла ранее CMS DotNetNuke [22]:
Управление пользователями;
Управление контентом.
Тщательно взвесив все плюсы и минусы, руководством компании Viva Portals было принято решение использовать ASP.NET MVC 2.0.
Технологический стек:
Сервер баз данных SQL Server Express 2008.
Платформа .NET, версия Framework – 4.0.
Язык программирования – C#.
Веб-сервер – IIS 7.0.
Технология построения динамических страниц ASP.NET MVC 2.
Средства разработки:
Интегрированная среда разработки Visual Studio 2010 Professional.
Среда SQL Server Management Studio 2008.
24
3.АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
Разрабатываемая система рассчитана на следующие роли пользователей:
покупатель;
администратор.
Взависимости от роли пользователя интернет-магазина, он может преследовать различные цели, в соответствии с которыми, возникают следующие основные варианты использования, представленные на рис 3.1.
Рис 3.1 «Варианты использования»
Условно интернет-магазин можно разбить на передний (Frontend) и
задний (Backend) офисы. Передний офис служит достижению целей вариантов использования рядового покупателя, задний – администратора магазина.
Каждый из представленных юзкейзов в конечном итоге должен иметь отражение на страницах интернет-магазина в виде совокупности элементов управления (кнопки, поля для ввода, прочее). При этом данная совокупность
элементов управления ввиду того, что она служит достижению одной
25
конкретной цели: форма для авторизации, корзина покупателя, и т.д., обязана концентрироваться в одном локальном месте на странице. Поэтому ее можно считать за самостоятельную единицу (в ASP.NET Web Forms – это
UserControl), которая далее будет называться веб-частью интернет-магазина
(web-part). Одна и та же веб-часть может служить достижению более чем одного варианта использования. Так, например, веб-часть «Детали продукта» будет участвовать и в «Приобретении товаров», и в «Просмотре описания».
Список важных веб-частей интернет-магазина, декомпозиция слоя представления на которые, считается хорошей практикой, приведен ниже и упорядочен по типу офиса.
Передний офис:
Category List (Список категорий продуктов).
Category (Product List, Категория продуктов).
Product Detail (Детали продукта).
Shopping Cart (Корзина покупателя).
Checkout Confirmation (Подтверждение оплаты).
Checkout (Оплата).
Задний офис:
Manage Category (Манипулирование категориями).
Manage Products in Category (Манипулирование продуктами в категориях).
Manage Product (Управление продуктами).
Manage Orders (Управление продажами).
Reports (Отчетность).
Итак, каждый вариант использования служит достижению какой-то конкретной, самодостаточной, завершенной с точки зрения пользователя цели. И достижение это осуществляется по средствам переходов от одной
26
веб-части интернет-магазина к другой. То есть, мы можем расписать каждый юзкейс как некий State Machine процесс. Поэтому можно применить диаграммы Состояний нотации UML.
3.1. Варианты использования покупателя
Вариант использования «Приобретение товаров» в наибольшей степени соответствует конечной цели владельцев любого интернет-магазина – а
именно, цели продавать. И заключается в том, что посетитель сайта выбирает необходимую продукцию по средствам просмотра каталога и добавления нужных товаров в корзину. Далее покупатель просматривает корзину, где отображаются:
Список добавленных товаров с возможностью изменения их количества и удаления.
Общая сумма заказа, исключая доставку.
После просмотра / редактирования корзины покупатель переходит к процедуре оплаты, в процессе которой у него уточняются:
Платежный адрес.
Адрес доставки.
Способ доставки.
Платежная информация (способ оплаты и соответствующие реквизиты).
После чего клиенту предлагается проверить введенные им данные, и
принять конечное решение по поводу осуществления оплаты или же возвращения на более раннюю стадию. Схематическое изображение варианта использования с помощью диаграммы состояний представлено ниже на рис.
3.2.
27
Рис 3.2 «Приобретение товаров»
Следующая часто возникающая у посетителей интернет-магазинов цель – получение описания / характеристик товаров. Достигается посредствам навигации в веб-часть «Детали продукта» (Product Detail)
искомого товара. В соответствии с заданной целью пользователю должно предоставляться следующее:
Название.
Изображение продукта.
28
Характеристики – список существенных значений атрибутов продукта данного вида. Для разных видов товаров – разные наборы атрибутов.
Краткое и полное описания. В полном – помимо преимуществ также указываются недостатки, которые необходимо принять пользователю во внимание, например, «для детей от 3 лет» и т.д.
Цена.
Схематическое представление процесса отражено на рис 3.3.
Рис. 3.3 «Просмотр описания товаров»
В случае если вместе с интернет-магазином имеется физический филиал или целая их сеть, то вызывают интерес следующие два варианта использования:
Получение справочной информации о физических магазинах.
Например, схемы проезда, режим работы, телефоны клиентского сервиса и прочая существенная информация.
29
Предоставление скидок и купонов – средство диверсифицирования и привлечения клиентов. Позволяет покупателю уменьшать стоимость приобретения. Скидка предоставляется при предъявлении распечатанного купона в физических магазинах и в случае ввода кода скидки в процессе оплаты на веб-сайте.
3.2. Варианты использования для администратора интернет-магазина
Под манипулированием каталогом продукции понимается осуществление с помощью веб-частей «Манипулирование категориями», «Манипулирование продуктами в категориях», «Управление продуктами» добавления, изменения, удаления продуктов и их категорий. Возможности названных веб-частей должны исключить необходимость директивного обращения к базе данных.
Вариант использования «Возвращение денег» должен быть доступен только администратору магазина по средствам веб-части «Управление продажами». Необходимость данного юзкейса объясняется возможность возвращения товар покупателем, риска недоставки и прочими факторами.
Вариант использования «Предоставление отчетности по продажам» включает в себя отчет по проданным корзинам (Cart report) и отчет по проданным товарам (Product report).
Отчет по проданным корзинам содержит общую информацию о совершенной покупке:
1.Общая стоимость.
2.Дата покупки.
3.Имя покупателя.
4.Адрес покупателя.
5.Телефон.
6.Email.
30
7. Комментарии.
Информацию о каждом проданном товаре:
1.Идентификатор продукта.
2.Код продукта.
3.Наименование.
4.Адрес получателя.
5.Телефон получателя.
6.Сообщение получателю.
Также в этом отчете представляются сводные данные о количестве заказов, количестве проданных продуктов и общей сумме вырученных от продаж средств.
Отчет по проданным товарам (Product report) отображает информацию
опроданных продуктах с указанием:
1.Идентификатора продукта.
2.Названия продукта.
3.Имени покупателя.
4.Комментария покупателя.
Также отображается общее количество проданных продуктов.
31
