Разработка web-приложения и базы данных интернет-магазина

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    53,71 Кб
  • Опубликовано:
    2015-07-10
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка web-приложения и базы данных интернет-магазина

Реферат

Расчетно-пояснительная записка к выпускной работе специалиста: _____ стр., 47 рисунков, 10 таблиц, 12 источников.

Выпускная работа посвящена разработке web-приложения - CMS (система управления контентом) интернет-маркета. Приложение имеет два интерфейса: интерфейс пользователя и интерфейс администратора.

Целью работы является разработка web-приложения и базы данных интернет магазина.

Объект исследования - факторы, влияющие на пропускной способности в беспроводных сетях.

В разработке приложения использовался скриптовый язык программирования PHP.

PHP Expert Editor - удобный и приятный редактор для PHP, Perl, Python, HTML, Java Script, TXT и других файлов с поддержкой кодировки UTF-8. Первое, что действительно удобно - это настраиваемая подсветка синтаксиса, т.е. можно выбрать тип языка с которым Вы работаете и в соответствии с ним код будет подсвечиваться разными цветами.

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

Ключевые слова: ИНТЕРНЕТ-МАГАЗИН, СУБД MYSQL, WEB-ПРИЛОЖЕНИЕ, CMS, PHP, UML, JAVASCRIPT.

Abstract

Cash-explanatory note to the final work of the expert: 105 pp., 47 figures, 10 tables, 12 sources.work is dedicated to the development of web-applications - CMS (content management system) Internet Market. The application has two interfaces: the user interface and administrator interface.aim is to develop web-applications and databases online store.object of study - the factors affecting the capacity of wireless networks.the development of applications to use scripting language PHP.Expert Editor - Comfortable and pleasant editor for PHP, Perl, Python, HTML, Java Script, TXT and other files with support for UTF-8 encoding. The first thing that's really good - it's a fully customizable syntax highlighting, ie You can choose the type of language you are working in accordance with this code will be highlighted in different colors.a relational database used database MySQL.- a system of relational database management. In a relational database, data is stored are not all together, but in separate tables, and thus a gain in speed and flexibility. The tables are linked together by means of relationships, thereby providing the opportunity to unite when querying data from multiple tables. The SQL part of MySQL can be described as Structured Query Language is the most common standardized language used to access databases.: online shopping, DBMS MYSQL, WEB-ANNEX, CMS, PHP, UML, JAVASCRIPT.

Реферат

Розрахунково-пояснювальна записка до випускної роботи спеціаліста: 105 стор., 47 малюнків, 10 таблиць, 12 джерел.

Випускна робота присвячена розробці web-додатки - CMS (система управління контентом) інтернет-маркету. Додаток має два інтерфейси: інтерфейс користувача і інтерфейс адміністратора.

Метою роботи є розробка web-додатки та бази даних інтернет магазину.

Об'єкт дослідження - фактори, що впливають на пропускній спроможності в бездротових мережах.

У розробці програми використовувався скриптова мова програмування PHP.Expert Editor - зручний і приємний редактор для PHP, Perl, Python, HTML, Java Script, TXT та інших файлів з підтримкою кодування UTF-8. Перше, що дійсно зручно - це настроюється підсвічування синтаксису, тобто можна вибрати тип мови з яким Ви працюєте і відповідно до нього код буде підсвічуватися різними кольорами.

В якості реляційної бази даних використовувалася база даних MySQL.- це система керування базами даних. У реляційній базі даних дані зберігаються не все скопом, а в окремих таблицях, завдяки чому досягається виграш у швидкості та гнучкості. Таблиці зв'язуються між собою за допомогою відносин, завдяки чому забезпечується можливість об'єднувати при виконанні запиту дані з декількох таблиць. SQL як частина системи MySQL можна охарактеризувати як мова структурованих запитів плюс найбільш поширений стандартний мова, яка використовується для доступу до баз даних.

Ключові слова: ІНТЕРНЕТ-МАГАЗИН, СУБД MYSQL, WEB-додатків, CMS, PHP, UML, JAVASCRIPT.

Содержание

Реферат

Abstract

Реферат

Перечень сокращений и терминов

Введение

1. Постановка задачи

1.1 Анализ основных функций современных систем управления сайтами

2. Исследование средств и технологий

2.1 Выбор языка программирования

2.1.1 Особенности применения язык программирования PHP

2.1.2 Преимущества языка программирования PHP

2.1.2 Существуют три основных области, где используется PHP

2.2 Cистема управления базами данных MySQL

2.3 Особенности применения зыкаJavaScript

2.4 Среда разработки - PHPExpertEditor

3. Разработка

3.1 Разработка архитектуры системы

3.2 Разработка базы данных

3.3 Разработка диаграммы функциональности приложения

3.4 Разработка пользовательского интерфейса

3.4.1 Анализ области

3.5 Описание web-страниц и их функциональность

3.6 Примеры пользовательского интерфейса

3.7 Механизм шаблонов

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

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

4. Технологическая часть

4.1 Современные методы и средства тестирования web-приложений

4.1.1 Существующие подходы к тестированию Web-приложений

4.1.2 Тестирование "белого ящика" и "чёрного ящика"

4.2 Тестирование функциональности

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

5.1 Маркетинговые исследования предприятия

5.2 Расходы по созданию и размещению магазина в сети интернет

5.3 Выводы

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

6.1 Метеорологические условия при работе

6.2 Освещение

6.3 Шум

6.4 Излучение от экрана монитора

6.5 Техника безопасности

Выводы

Перечень ссылок

Приложения

Перечень сокращений и терминов

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

БД - база данных

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

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

ТЗ - техническое задание

Введение

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

1. Постановка задачи

Необходимость систем управления для владельцев сайтов начала проявляться в тот момент, когда количество материалов на веб-сайтах начало стремительно расти. Это привело к тому, что традиционные "ручные" технологии разработки и поддержки сайтов, когда сайт состоял из статических страниц и набора дополнительных специализированных скриптов, стали не успевать за быстро меняющимися условиями бизнеса. Ввод данных на сайт требовал (как минимум) знания технологий HTML/CSS верстки, изменения структуры сайтов были сопряжены с каскадным изменением большого количества взаимосвязанных страниц. Различные автоматизированные механизмы, вроде гостевых книг и новостных лент, внедренные на сайтах как отдельные скрипты и, как правило, написанные разными специалистами, перестали удовлетворять требованиям безопасности. На многих сайтах стали появляться коктейли из разных технологий и подходов к разработке, поэтому возникла потребность в стандартизации программных решений, в разделении дизайна и содержимого на две независимые составляющие. CMS действительно разделяют сайты на две составляющие: дизайн (внешний вид сайта в целом, отдельных страниц, конкретных блоков информации) и контент. Дизайн сайта, как правило "зашит" в шаблоны и изменяется значительно реже, чем контент.открывают изобилие технических возможностей в создании динамического веб-ресурса. Все серьезные сайты, содержащие большой объем информации и требующие постоянного ее обновления, используют системы обновления. Это и поисковые машины, и новостные серверы, и разнообразные каталоги. С помощью данных систем можно с легкостью добавлять разделы, размещать иллюстрации, управлять рассылками, публиковать закрытую информацию, доступ к которой есть только у определенных групп пользователей. И это лишь небольшой список всего того, чего можно добиться с помощью CMS.

1.1 Анализ основных функций современных систем управления сайтами

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

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

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

Функционал пользователя должен содержать следующее:

1.1)Каталог (развернутый вид - в центре экрана, и краткая навигация, расположенная на сайд-баре);

1.2)Прайс-лист (краткое отображение всех товаров по категориям);

.3)Меню оформления заказа;

.4)Поиск товара;

.5)Два меню отображения информации в шапке приложения (информация о магазине и доставке/ оплате товара)

Функционал администратора должен содержать следующее:

2.1)Модуль обеспечения авторизации (проверка логина и пароля);

2.2)Модуль для создания/ удаления/ редактирования каталогов (информации раздела, фото);

.3)Модуль добавления/ редактирования/ удаления товара (информации о нем, фото,);

.4)Модуль "Специального предложения" (товар который будет отображен на главной странице)

.5)Модуль Обзора полученных заказов;

.6)Модуль настройки интернет-магазина (общая, визуальная, доступа и информации о нем);

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

2. Исследование средств и технологий

2.1 Выбор языка программирования

Бейсик - семейство высокоуровневых языков программирования <https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F>.

Был разработан в 1964 году <https://ru.wikipedia.org/wiki/1964_%D0%B3%D0%BE%D0%B4> профессорами Дартмутского колледжа <https://ru.wikipedia.org/wiki/%D0%94%D0%B0%D1%80%D1%82%D0%BC%D1%83%D1%82%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%BB%D0%BB%D0%B5%D0%B4%D0%B6> Томасом Курцем <https://ru.wikipedia.org/wiki/%D0%9A%D1%83%D1%80%D1%86,_%D0%A2%D0%BE%D0%BC%D0%B0%D1%81> и Джоном Кемени <https://ru.wikipedia.org/wiki/%D0%9A%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8,_%D0%94%D0%B6%D0%BE%D0%BD_%D0%94%D0%B6%D0%BE%D1%80%D0%B4%D0%B6>.

Язык создавался как инструмент, с помощью которого студенты-непрограммисты могли самостоятельно создавать компьютерные программы для решения своих задач. Получил широкое распространение в виде различных диалектов, прежде всего как язык для домашних компьютеров <https://ru.wikipedia.org/wiki/%D0%94%D0%BE%D0%BC%D0%B0%D1%88%D0%BD%D0%B8%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80>. К настоящему моменту претерпел существенные изменения, значительно отойдя от характерной для первых версий простоты, граничащей с примитивизмом и превратившись в достаточно ординарный язык высокого уровня с типичным набором возможностей. Используется как самостоятельный язык для разработки прикладных программ, главным образом, работающих под управлением ОС Windows различных версий. Также широко распространён в качестве встроенного языка прикладных программных систем различного назначения и в качестве языка для программируемых калькуляторов <https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B9_%D0%BA%D0%B0%D0%BB%D1%8C%D0%BA%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80>.

Недостатки

·Поддержка операционных систем только семейства Windows <https://ru.wikipedia.org/wiki/Windows> и Mac OS X <https://ru.wikipedia.org/wiki/Mac_OS_X> (Исключение - VB1 for DOS <https://ru.wikipedia.org/wiki/DOS>).

·Отсутствие полноценного механизма наследования реализации <https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)> объектов [7] <https://ru.wikipedia.org/wiki/Visual_Basic>. Существующее в языке наследование позволяет наследовать только интерфейсы <https://ru.wikipedia.org/wiki/COM-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81>, но не их реализацию.

·Практически все встроенные функции языка реализованы через библиотеку времени исполнения <https://ru.wikipedia.org/wiki/Runtime_library>, которая, в свою очередь, производит много "дополнительной" работы по проверке и/или преобразованию типов, что замедляет скорость работы приложений.

Язык сильно привязан к своей среде разработки и к операционной системе MicrosoftWindows, являясь исключительно инструментом написания Windows-приложений. Привязка к среде заключается в том, что существует большое количество средств, предназначенных для помощи и удобства программирования: встроенный отладчик, просмотр переменных и структур данных на лету, окно отладки, всплывающие подсказки при наборе текста программы (IntelliSense <https://ru.wikipedia.org/wiki/IntelliSense>). Все эти преимущества делают бесполезным и даже невозможным использование VisualBasic вне среды разработки, например в обычном текстовом редакторе

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

Особенностями языка являются строгая типизация <https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%BE%D0%B3%D0%B0%D1%8F_%D1%82%D0%B8%D0%BF%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F> и наличие средств структурного (процедурного) программирования <https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D0%B4%D1%83%D1%80%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>. Паскаль был одним из первых таких языков. По мнению Вирта, язык должен способствовать дисциплинированному программированию, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис автор постарался сделать интуитивно понятным даже при первом знакомстве с языком.

Тем не менее, первоначально язык имел ряд ограничений: невозможность передачи функциям массивов <https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%81%D1%81%D0%B8%D0%B2_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)> переменной длины, отсутствие нормальных средств работы с динамической памятью <https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%8F%D0%B5%D0%BC%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C>, ограниченная библиотека ввода-вывода <https://ru.wikipedia.org/w/index.php?title=%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D0%B2%D0%B2%D0%BE%D0%B4%D0%B0-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B0&action=edit&redlink=1>, отсутствие средств для подключения функций, написанных на других языках, отсутствие средств раздельной компиляции и т.п. Подробный разбор недостатков языка Паскаль того времени был выполнен Брайаном Керниганом <https://ru.wikipedia.org/wiki/%D0%9A%D0%B5%D1%80%D0%BD%D0%B8%D0%B3%D0%B0%D0%BD,_%D0%91%D1%80%D0%B0%D0%B9%D0%B0%D0%BD_%D0%A3%D0%B8%D0%BB%D1%8C%D1%8F%D0%BC> в статье "Почему Паскаль не является моим любимым языком программирования" [9] <https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%81%D0%BA%D0%B0%D0%BB%D1%8C_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)> (эта статья вышла в начале 1980-х, когда уже существовал язык Модула-2 <https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B0-2>, потомок Паскаля, избавленный от большинства его пороков, а также более развитые диалекты Паскаля). Некоторые недостатки Паскаля были исправлены в ISO-стандарте 1982 года, в частности, в языке появились открытые массивы, давшие возможность использовать одни и те же процедуры для обработки одномерных массивов различных размеров.

Однако многие недостатки языка не проявляются или даже становятся достоинствами при обучении программированию. Кроме того, по сравнению с основным языком программирования в академической среде 1970-х <https://ru.wikipedia.org/wiki/1970-%D0%B5> (которым был Фортран <https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D1%82%D1%80%D0%B0%D0%BD>, обладавший гораздо более существенными недостатками), Паскаль представлял собой значительный шаг вперёд. К 1980-м годам Паскаль стал основой для многочисленных учебных программ, в отдельных случаях на его основе были созданы специализированные обучающие языки программирования, так, в начале 1980-х годов в СССР для обучения школьников основам информатики и вычислительной техники Андрей Ершов <https://ru.wikipedia.org/wiki/%D0%95%D1%80%D1%88%D0%BE%D0%B2,_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2%D0%B8%D1%87> разработал алголо-паскалеподобный "учебный алгоритмический язык <https://ru.wikipedia.org/wiki/%D0%A3%D1%87%D0%B5%D0%B1%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA>".

Наиболее известной реализацией Паскаля, обеспечившей широкое распространение и развитие языка, является TurboPascal фирмы Borland <https://ru.wikipedia.org/wiki/Borland>, выросшая затем в объектный Паскаль для DOS (начиная с версии 5.5) и Windows и далее в Delphi, в которой были внедрены значительные расширения языка.

Диалекты Паскаля, применяемые в TurboPascal для DOS и Delphi для Windows, стали популярны из-за отсутствия других успешных коммерческих реализаций.

Недостатки

·Компилятор рассчитан на реальный режим DOS, который сейчас практически не используется.

·Недостаточно полно реализовано объектно-ориентированное программирование.

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

Аббревиатура PHP означает "HypertextPreprocessor (Препроцессор Гипертекста)". Синтаксис языка берет начало из C, Java и Perl. PHP достаточно прост для изучения. Преимуществом PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемыхweb-страниц.

Важным преимуществом языка PHP перед такими языками, как языков Perl и C заключается в возможности создания HTML документов с внедренными командами PHP.

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

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

Язык PHP постоянно совершенствуется, и ему наверняка обеспечено долгое доминирование в области языков web-программирования, по крайней мере, в ближайшее время.

Возможности PHP очень большие. Главным образом, область применения PHP сфокусирована на написание скриптов, работающих на стороне сервера; таким образом, PHPспособен выполнять всё то, что выполняет любая другая программа CGI. Например, обрабатывать данных форм, генерировать динамические страницы, отсылать и принимать cookies. Но PHPспособен выполнять и множество других задач.

2.1.1 Особенности применения язык программирования PHP

Когда я впервые узнал о программировании в Интернете, Perl + CGI были доминирующими платформами. С тех пор, PHP действительно стала ведущей платформой для разработки, по крайней мере свободного программного обеспечения. Почему PHP занимает лидирующее позицию в популярности. Благодаря удобству использования PHP для веб разработки, многие останавливают свой выбор именно на этой платформе. Как язык программирования, PHP прост. Его поддержка объектно-ориентированности "значительно улучшилась" за последние годы, по сравнению с тем каким этот язык программирования был в течение длительного времени.

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

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

Так почему же PHP. Вот лишь часть того, что вы можете делать с PHP:

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

Используйте PHP для разработки ваших собственных сценариев, разработке фирменных или персональных сайтов, или для особо одарённых, появиться возможность зарабатывать деньги написанием скриптов на Вашем собственном веб-сайте или на сайтах для фрилансеров! Грамотный разработчик может разбогатеть путем предоставления полезных скриптов, которые увеличивают стоимость и продуктивность веб-сайта.

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

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

Чтобы понять, мы должны посмотреть на нескольких ключевых атрибутов PHP. По иронии судьбы, PHP вырос и получил развитие, благодаря тому. что его создателям пришлось заняться "исправлением" его первоначальных недостатков. Это еще предстоит выяснить, будут ли они в состоянии сделать это без потери базовых качеств, которые позволили им добиться успеха и занять первое место по частоте применения данного языка в веб-разработке. Или, может быть, они создадут абсолютно другую новую веб-платформу.

2.1.2 Преимущества языка программирования PHP

1.PHP имеет большую базу доступных интернет-приложений. Есть проекты с открытым кодом, которые имеют поддержку и широкий функционал, такие как WordPress и Drupal. Есть большое количество CMS, которые просты в использовании, даже для неискушённого в плане программирования пользователей. Есть отличные, коммерчески поддерживаемые приложения, таких как SugarCRM и VBulletin. Википедия является одним из крупнейших сайтов в Интернете и ее код MediaWiki свободно доступен для использования или для изучения. Весьма вероятно, что если есть тип веб-приложение, которое вы хотите использовать, кто-то уже написал что-то подобное на PHP. Хотя вам не нужно знать РНР для установки и использования этих приложений, немного знаний о PHP позволяет вам получить больше от этих ценных ресурсов. Знание PHP является полезным, даже если вы не являетесь PHP программистом. Основной фактор успеха PHP программирования - доступность и простота.

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

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

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

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

2.1.2 Существуют три основных области, где используется PHP

Создание скриптов для выполнения на стороне сервера. PHP наиболее широко используется именно таким образом. Все, что вам понадобится, это парсерPHP (в виде программы CGI или серверного модуля), веб-сервер и браузер. Чтобы Вы могли просматривать результаты выполнения PHP-скриптов в браузере, вам нужен работающий веб-сервер и установленный PHP.

Создание скриптов для выполнения в командной строке. Вы можете создать PHP-скрипт, способный запускаться вне зависимости от веб-сервера и браузера. Все, что вам потребуется - парсерPHP. Такой способ использования PHP идеально подходит для скриптов, которые должны выполняться регулярно, например, с помощью cron (на платформах *nix или Linux) или с помощью планировщика задач (TaskScheduler) на платформах Windows. Эти скрипты также могут быть использованы в задачах простой обработки текстов. Дополнительная информация находится здесь.

Создание приложений GUI, выполняющихся на стороне клиента. Возможно, PHP является не самым лучшим языком для создания подобных приложений, но, если вы очень хорошо знаете PHP и хотели бы использовать некоторые его возможности в своих клиент-приложениях, вы можете использовать PHP-GTK для создания таких приложений. Подобным образом Вы можете создавать и кросс-платформенные приложения. PHP-GTK является расширением PHP и не поставляется вместе с дистрибутивом PHP. Если вы заинтересованы, посетите сайт PHP-GTK.доступен для большинства операционных систем, включая Linux, многие модификации Unix (такие, как HP-UX, Solaris и OpenBSD), MicrosoftWindows, MacOSX, RISCOS, и многих других. Также в PHP включена поддержка большинства современных вебсерверов, таких, как Apache, MicrosoftInternetInformationServer, PersonalWebServer, серверов Netscape и iPlanet, сервера OreillyWebsitePro, Caudium, Xitami, OmniHTTPd и многих других. Для большинства серверов PHP поставляется в качестве модуля, для других, поддерживающих стандарт CGI, PHP может функционировать в качестве процессора CGI.

Таким образом, выбирая PHP, мы получаем свободу выбора операционной системы и веб-сервера. Кроме того, у вас появляется выбор между использованием процедурного или объектно-ориентированного программирования или же их сочетания.способен не только выдавать HTML. Возможности PHP включают формирование изображений, файлов PDF и даже роликов Flash (с использованием libswf и Ming), создаваемых "на лету". PHP также способен выдавать любые текстовые данные, такие, как XHTML и другие XML-файлы. PHP способен осуществлять автоматическую генерацию таких файлов и сохранять их в файловой системе вашего сервера, вместо того, чтобы отдавать клиенту, организуя, таким образом, кэш динамического содержания, расположенный на стороне сервера.

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

Таблица 2.1 - Поддержка PHP различных баз данных

Adabas DIngresOracle (OCI7 и OCI8) dBaseInterBaseOvrimosEmpressFrontBasePostgreSQLFilePromSQLSolidHyperwaveDirect MS-SQLSybaseIBM DB2MySQLVelocisInformixODBCUnixdbm

Также в PHP включена поддержка DBX для работы на абстрактном уровне, так что мы можем работать с любой базой данных, использующих DBX. Кроме того, PHP поддерживает ODBC (OpenDatabaseConnectionstandard), таким образом, мы можем работать с любой базой данных, поддерживающей этот всемирно признанный стандарт.также поддерживает "общение" с другими сервисами с использованием таких протоколов, как LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (на платформах Windows) и многих других. Кроме того, мы получаем возможность работать с сетевыми сокетами "напрямую". PHP поддерживает стандарт обмена сложными структурами данных WDDX. Обращая внимание на взаимодействие между различными языками, следует упомянуть о поддержке объектов Java и возможности их использования в качестве объектов PHP. Для доступа к удаленным объектам мы можем использовать расширение CORBA.включает средства обработки текстовой информации, начиная с регулярных выражений Perl или POSIX Extended и заканчивая парсером документов XML. Для парсинга XML используются стандарты SAX и DOM. Для преобразования документов XML мы можем использовать расширение XSLT.

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

2.2 Cистема управления базами данных MySQL

- это популярная система управления базами данных (СУБД), очень часто применяемая в сочетании с PHP.

База данных представляет собой структурированную совокупность данных. Эти данные могут быть любыми - от простого списка предстоящих покупок до перечня экспонатов картинной галереи или огромного количества информации в корпоративной сети. Для записи, выборки и обработки данных, хранящихся в компьютерной базе данных, необходима система управления базой данных, каковой и является ПО MySQL. Поскольку компьютеры замечательно справляются с обработкой больших объемов данных, управление базами данных играет центральную роль в вычислениях. Реализовано такое управление может быть по-разному - как в виде отдельных утилит, так и в виде кода, входящего в состав других приложений.- это система управления реляционными базами данных. В реляционной базе данных данные хранятся не все скопом, а в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости. Таблицы связываются между собой при помощи отношений, благодаря чему обеспечивается возможность объединять при выполнении запроса данные из нескольких таблиц. SQL как часть системы MySQL можно охарактеризовать как язык структурированных запросов плюс наиболее распространенный стандартный язык, используемый для доступа к базам данных.- это ПО с открытым кодом. Применять его и модифицировать может любой желающий. Такое ПО можно получать по Internet и использовать бесплатно. При этом каждый пользователь может изучить исходный код и изменить его в соответствии со своими потребностями.

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

Технические возможности СУБД MySQL - MySQL является системой клиент-сервер, которая содержит многопоточный SQL-сервер, обеспечивающий поддержку различных вычислительных машин баз данных, а также несколько различных клиентских программ и библиотек, средства администрирования и широкий спектр программных интерфейсов (API). Мы также поставляем сервер MySQL в виде многопоточной библиотеки, которую можно подключить к пользовательскому приложению и получить компактный, более быстрый и легкий в управлении продукт. Доступно также большое количество программного обеспечения для MySQL, в большей части - бесплатного.

2.3 Особенности применения зыкаJavaScript

- это объектно-ориентированный скриптовый язык программирования.

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

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

Язык программирования JavaScript был разработан БренданомЭйком (BrendanEich) в NetscapeCommunications как язык сценариев для обозревателей NetscapeNavigator, начиная с версии 2.0. В дальнейшем к развитию этого языка подключилась корпорация Microsoft, чьи обозреватели InternetExplorer поддерживают JavaScript, начиная с версии 3.0. Версия Microsoft получила название JScipt, поскольку JavaScript является зарегистрированной маркой фирмы Netscape. В 1996 г. ECMA <#"justify">1.Это название является исторически первым, и под ним данный язык наиболее известен широкому кругу пользователей.

2.Соответствующий тип MIME, а именно "text/javascript", распознается всеми обозревателями, которые поддерживают сценарии на данном языке, в отличие от JScript или ECMAScript.

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

2.4 Среда разработки - PHPExpertEditor

Все web-дизайнеры, программисты и просто случайные кодокопатели работают сhtml, php и прочими кодами. Не смотря на то, что редактировать их можно, в общем-то и простым блокнотом, всё равно гораздо удобнее использовать специализированные программы, которые знают нужный Вам тип кода, подсвечивают синтаксис различными цветами и имеют ряд удобных удобностей, которых в блокноте попросту нет.

Эта программа разработана Украинской компанией Ancord Development Group. По этому, команда разработчиков жители бывшего СССР, мы получаем возможность пользоваться программой бесплатно, всего лишь пройдя регистрацию. Все остальные вынуждены выложить из своего кошелька 35 евро, что согласитесь не так мало.Expert Editor - действительно удобный и приятный редактор для PHP, Perl, Python, HTML, Java Script, TXT и других файлов с поддержкой кодировки UTF-8. Первое, что действительно удобно - это настраиваемая подсветка синтаксиса, т.е. можно выбрать тип языка с которым Вы работаете и в соответствии с ним код будет подсвечиваться разными цветами.

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

Есть встроенный проводник, т.е. не надо жать Файл - > Открыть и выбирать файл, а можно сделать всё прямо в окне программы. В общем, возможности можно перечислять бесконечно, но на мой взгляд это единственный реально заслуживающий внимания и работы с ним бесплатный, русский, функциональный и приятный редактор кода.

Программа разработана специально для PHP мастеров и имеет встроенный отладчик PHP. PHP ExpertEditor имеет встроенный HTTP сервер и позволяет запускать PHP, Perl, Python, скрипты. Вы также можете использовать любой внешний HTTP сервер. Проверка синтаксиса PHP, встроенный браузер, FTP клиент с поддержкой SFTP, Кодовый и файл эксплорер, поддержка проектов, настраиваемые шаблоны кода, настраиваемая подсветка кода, и многие другие функции значительно облегчают работу разработчика. Также он не привередлив к ресурсам компьютера, тем самым работает быстро даже на "слабых компьютерах.

Рисунок 2.1 - Пользовательский интерфейс PHPExpertEditor

интернет магазин язык программирование

3. Разработка

3.1 Разработка архитектуры системы

Выбор архитектуры осуществляется с учетом функциональности и характеристик обрабатываемой информации, на этом основание была выбрана архитектура "клиент-сервер".

На уровне сервера достаточно четко можно выделить следующие компоненты:

·Слой представление, предназначенный для работы с данными пользователя;

·Слой бизнес-логика, на котором располагаются модули приложения;

·Слой Базы Данных, предназначенный для хранения данных;

Таким образом была определена модель клиент-серверного взаимодействия - "Тонкий клиент":

Рисунок 3.1 - Архитектура "клиент-сервер"

.2 Разработка базы данных

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

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

Рисунок 3.3 - Физическая модель базы данных

На рисунках 3.4, 3.5, 3.6 и 3.7 показаны настройки таблиц, сделанные в PHPMyAdmin для базы данных.

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

Рисунок 3.4 - Таблица данных - categories

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

Рисунок 3.5 - Таблица данных - ordered_carts

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

Рисунок 3.6 - Таблица данных - orders

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

Рисунок 3.7 - Таблица данных - products

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

Рисунок 3.8 - Таблица данных - special_offers

3.3 Разработка диаграммы функциональности приложения

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

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

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

Диаграмма активности;

Диаграмма классов;

Диаграмма связей;

Диаграмма компонентов;

Диаграмма составных структур;

Диаграмма развертывания;

Диаграмма обзора взаимодействий;

Диаграмма объектов;

Диаграмма пакетов;

Циклограмма;

Диаграмма машин состояния;

Диаграмма синхронизации;

Диаграмма прецедентов.

Функционал приложения разделен на две части:

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

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

Рисунок 3.9 - Диаграмма вариантов использования

3.4 Разработка пользовательского интерфейса

3.4.1 Анализ области

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

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

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

средства отображения информации, отображаемая информация, форматы и коды;

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

устройства и технологии ввода данных;

диалоги, взаимодействие и транзакции между пользователем и компьютером;

обратная связь с пользователем;

поддержка принятия решений в конкретной предметной области;

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

Есть несколько простых правил, позволяющих интерфейсу быть понятым клиенту:

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

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

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

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

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

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

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

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

"Новинки" (товары, недавно поступившие в продажу);

"Специальные предложения" (товары, на которые по каким-либо причинам снижены цены);

"Товары дня" (самые модные товары);

"Лидеры продаж" (наиболее покупаемые товары).

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

. Расчёт стоимости и вывод цен должен осуществляться минимум в двух валютах, гривнах и долларах.

. В электронном магазине могут быть и информационные разделы:

с данными о магазине (сфера деятельности, адрес, контактные телефоны и т.д.);

с информацией по доставке товара;

с информацией по скидкам;

новости магазина;

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

прочая полезная информация.

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

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

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

редактировать разделы магазина (новости, статьи, вопросы и ответы, отзывы и вопросы к товарам и пр.);

редактировать специальные разделы магазина (новинки, специальные предложения, товары дня, лидеры продаж);

редактировать контактную информацию Интернет магазина;

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

составлять и рассылать письма с новостями магазина подписчикам;

просматривать историю заказов и статистику покупателей;

изменять курс валюты на витрине магазина.

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

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

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

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

3.5 Описание web-страниц и их функциональность

Интерфейс приложения можно разделить на две составляющие:

1)Интерфейс пользователя:

Главная страница - на ней находятся: поиск, и навигация по каталогам;

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

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

Страница информации о товаре - предоставляет информацию о товаре (фотография и детальное описание), возможность оценки товара и возможность перенести товар в корзину кликнув на соответствующую ссылку;

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

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

2)Интерфейс администратора

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

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

Страница "Каталог" - делится на:

Страница Категории и товары - позволяет администратору создавать/редактировать/удалять категории и товары;

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

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

Страница настроек делится на:

Страница общих настроек - позволяет администратору редактировать информацию о названии магазина, urlмагазина, контактный email адрес магазина, еmail, на который будут отправляться уведомления о заказах, а также информацию о валюте действующей в интернет магазине - обозначению (например $), и код валюты (например USD).

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

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

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

Рисунок 3.10 - Карта сайта

.6 Примеры пользовательского интерфейса

Рисунок 3.11 - Главная страница пользователя

Рисунок 3.12 - Информация о товаре

Рисунок 3.13 - Корзина

Рисунок 3.14 - Форма заполнения информации о покупателе

Рисунок 3.15 - Добавление Категорий и товаров

Рисунок 3.16 - Полученные заказы

3.7 Механизм шаблонов

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

Дизайн настраивается в шаблонах, которые представляют собой HTML файлы, расположенные во вложенной папке templates. Содержимое файлов-шаблонов представляет собой HTML-код со вставками специальных тэгов Smarty, оформленных в фигурных скобках {} - это различные условия {if}, циклы{section} и т.п.

Основной шаблон пользовательской части index. tpl.html (этот шаблон определяет внешний вид магазина). Администратор может открыть этот файл в текстовом или HTML редакторе (например PHPExpertEditor) и внести необходимые изменения (возможно изменить цветовое оформление, логотипы и т.п. - любые элементы дизайна). Для этого администратор должен обладать базовыми навыками работы с HTML и/или опыт работы с HTML редактором.

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

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

Рисунок 3.17 - Модульная структура

Наиболее часто используемые файлы:. inc. php - объявление констант для настройки соединения с БД;. php - включает функции для работы с БД;. inc. php - объявление основных констант;. inc. php - объявление констант оформления;. php - содержит наиболее используемые функции;_functions. php - содержит наиболее используемые функции древа категорий;. php - проверяет авторизацию;. inc. php - объявление констант таблиц БД.

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

1.Введение

.1 Наименование программы(система управления контентом) интернет маркета.

.2 Краткая характеристика области применения

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

Основание для разработки

.1 Основания для проведения разработки

Основание для разработки Системы - задание на бакалаврскую работу кафедры "Компьютерные системы и сети Национального аэрокосмического университета им. Н.Е. Жуковского "ХАИ.

.2 Наименование и условное назначение(система управления контентом) интернет маркета.

. Назначение разработки

.1 Функциональное назначение

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

.2 Эксплуатационное назначение

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

Требования к системе

.1 Требования к системе в целом

.1.1 Требования к структуре и функционированию системы

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

.1.2 Требования к численности и квалификации персонала

Установкой приложения должен заниматься минимум один человек справами администратора, который должен обладать знаниями MySQL и PHP. Управление приложением должно производиться минимум одним пользователем с правами администратора.

Клиентские пользователи должны обладать базовыми навыками работы с web-приложениями. Требования к их количеству не предъявляются.

.1.3 Показатели назначения

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

.1.4 Требования к эргономике и технической эстетике

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

.1.5 Требования к эксплуатации и техническому обслуживанию, ремонту и хранению компонентов приложения

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

а) Организации бесперебойного питания технических средств;

б) использование лицензионного ПО;

в) своевременное обновление ПОс сайта производителя;

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

.1.6 Требования к защите информации от несанкционированного доступа

Объектами защиты в приложении являются:

а) пароль администратора;

б) информация о товаре;

в) информация о заказчике товара.

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

)предоставлять доступ в администраторскую часть только после ввода пароля;

2)обеспечение хранения конфиденциальной информации в зашифрованном виде;

)обеспечить передачу информации по открытым каналам связи в зашифрованном виде;

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

4.1.7 Требования по защите информации при авариях, требования по защите влияния от внешних воздействий

Необходимо предусмотреть возможность резервирования информации во избежание её потери при авариях (катастрофы природного и техногенного характера).

.1.8 Требования по стандартизации и унификации

Приложение должно соответствовать современным принципам/технологиям проектирования.

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

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

.2 Требования к функциям (задачам), выполняемым приложением

Приложение должно обеспечивать выполнение следующих модулей:

)Интерфейс пользователя;

.1)Каталог (развернутый вид - в центре экрана, и краткая навигация, расположенная на сайд-баре);

1.2)Прайс-лист (краткое отображение всех товаров по категориям);

.3)Меню оформления заказа;

.4)Поиск товара;

.5)Два меню отображения информации в шапке приложения (информация о магазине и доставке/ оплате товара)

2)Интерфейс администратора;

2.2)Модуль для создания/ удаления/ редактирования каталогов (информации раздела, фото);

.3)Модуль добавления/ редактирования/ удаления товара (информации о нем, фото,);

.4)Модуль "Специального предложения" (товар который будет отображен на главной странице)

.5)Модуль Обзора полученных заказов;

.6)Модуль настройки интернет-магазина (общая, визуальная, доступа и информации о нем);

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

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

а) функция каталога (наименование каталога/подкаталогов, отображение фото, информация о каталоге);

б) функция навигации по каталогу.

.2.2 Для выполнения задачи 1.2) необходимо реализовать следующие функции:

а) функция прайс-листа (наименование каталога, наименование товара, цена).

.2.3 Для выполнения задачи 1.3) необходимо реализовать следующие функции:

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

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

в) Меню контактной информации для связи с клиентом (включает пункты оформления информации о клиенте, делятся на обязательные (Ф.И. О) и необязательные (адрес) пункты);

.2.4 Для выполнения задачи 1.4) необходимо реализовать следующие функции:

а) функция поиска товара;

.2.5 Для выполнения задачи 1.5) необходимо реализовать следующие функции:

а) Модуль перевода меню (русский и английский, по умолчанию - русский);

.2.6 Для выполнения задачи 1.6) необходимо реализовать следующие функции:

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

б) Меню информации - "Доставка и оплата - На этой странице возможно разместить информацию о порядке доставки и оплаты заказов в интернет-магазине.

.2.7 Для выполнения задачи 2.1) необходимо реализовать следующие функции:

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

.2.8 Для выполнения задачи 2.2) необходимо реализовать следующие функции:

а) Функция "категории, позволяет добавлять/редактировать/удалять каталоги; после нажатия кнопки "добавить, открывается окно в котором необходимо заполнить информацию о каталоге и выбрать логотип.

.2.9 Для выполнения задачи 2.3) необходимо реализовать следующие функции:

а) Функция "товары, позволяет добавлять/редактировать/удалять товары; после нажатия кнопки "добавить, открывается окно в котором необходимо заполнить информацию о товаре и загрузить 3 вида фото. В самом меню доступны функции изменения цены, доступности товара на складе и включения его в список продаж, также имеется кнопка, для переноса товара в специальные предложения.

.2.10 Для выполнения задачи 2.4) необходимо реализовать следующие функции:

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

.2.11 Для выполнения задачи 2.5) необходимо реализовать следующие функции:

а) Функция "Заказы Включает в себя таблицу с заполненными данными клиентов, о купле того или иного товара, дате и времени заказа, возможность удалить заказ после его выполнения.

.2.12 Для выполнения задачи 2.6) необходимо реализовать следующие функции:

а) Вкладка "общие" включает в себя: изменения названия сайта, url, контактный емейл магазина и емейл на который будут приходить уведомления о полученных заказах. Также включает в себя настройки валют: обозначение валюты (например $), и код валюты (например USD).

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

в) Функция "доступ к администрированию" - позволяет изменить данные для входа в администраторскую часть (логин и пароль)

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

.2.13 Для выполнения задачи 2.7) необходимо реализовать следующие функции:

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

.3 Требования к видам обеспечения

) Программное:

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

а) Windows Server или Linux

б) Apache web-server

в) MySQLServer

г) PHP как модуль web-сервера версии 4.3.0 и выше

д) PHP редактор

е) интернет браузер поддерживающий протокол http.

) Аппаратное:

а) минимальный необходимый процессор - 133 МГц;

б) ОЗУ - 128мб;

в) доступное дисковое пространство - не менее 300 Мб;

г) графический адаптер, для вывода изображения на экран.

) Организационно-методическое:

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

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

Порядок контроля и приемки системы

Порядок выполнения и приемки этапов разработки приложения должен соответствовать требованиям ГОСТ 21.101-97.

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

Техническая документация при поставке должна соответствовать ЕСПД и ГОСТ 2.114-95.

Настоящее ТЗ может уточнятся и дополнятся по согласию сторон.

Требованию к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие

) Запуск web-сервера Apache;

) Создание учетной записи администратора;

) Установка приложения

. Требования к документированию

4. Технологическая часть

4.1 Современные методы и средства тестирования web-приложений

Тестирование программного обеспечения - процесс исследования, испытания программного продукта <https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5>, имеющий две различные цели:

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

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

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

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

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

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

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

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

Такой процесс формальной проверки, или верификации <https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D1%80%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F>, может доказать, что дефекты отсутствуют с точки зрения используемого метода. (То есть нет никакой возможности точно установить или гарантировать отсутствие дефектов в программном продукте с учётом человеческого фактора, присутствующего на всех этапах жизненного цикла программного обеспечения <https://ru.wikipedia.org/wiki/%D0%96%D0%B8%D0%B7%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D1%86%D0%B8%D0%BA%D0%BB_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F>.)

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

Качество программного обеспечения <https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F> можно определить как совокупную характеристику исследуемого ПО с учётом следующих составляющих:

·надёжность <https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D0%B4%D1%91%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C>

·сопровождаемость <https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F>,

·практичность,

·эффективность,

·мобильность,

·функциональность.

Состав и содержание документации, сопутствующей процессу тестирования, определяется стандартом IEEE 829 <https://ru.wikipedia.org/w/index.php?title=IEEE_829&action=edit&redlink=1>-1998.

Тестирования программного обеспечения

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

По объекту тестирования

·Функциональное тестирование <https://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>

·Тестирование производительности <https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8>

·Нагрузочное тестирование <https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>

·Стресс-тестирование <https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%B5%D1%81%D1%81-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F>

·Тестирование стабильности <https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8>

·Конфигурационное тестирование <https://ru.wikipedia.org/w/index.php?title=%D0%9A%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&action=edit&redlink=1>

·Юзабилити-тестирование <https://ru.wikipedia.org/wiki/%D0%AE%D0%B7%D0%B0%D0%B1%D0%B8%D0%BB%D0%B8%D1%82%D0%B8-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>

·Тестирование интерфейса пользователя <https://ru.wikipedia.org/w/index.php?title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&action=edit&redlink=1>

·Тестирование безопасности <https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D0%B8>

·Тестирование локализации <https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8>

·Тестирование совместимости <https://ru.wikipedia.org/w/index.php?title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8&action=edit&redlink=1>

По знанию системы

·Тестирование чёрного ящика <https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE_%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%B5%D0%B3%D0%B8%D0%B8_%D1%87%D1%91%D1%80%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D1%89%D0%B8%D0%BA%D0%B0>

·Тестирование белого ящика <https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%B0%D1%82%D0%B5%D0%B3%D0%B8%D1%8F_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BF%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF%D1%83_%C2%AB%D0%91%D0%B5%D0%BB%D0%BE%D0%B3%D0%BE_%D1%8F%D1%89%D0%B8%D0%BA%D0%B0%C2%BB>

·Тестирование серого ящика <https://ru.wikipedia.org/w/index.php?title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%B5%D1%80%D0%BE%D0%B3%D0%BE_%D1%8F%D1%89%D0%B8%D0%BA%D0%B0&action=edit&redlink=1>

По степени автоматизации

·Ручное тестирование <https://ru.wikipedia.org/wiki/%D0%A0%D1%83%D1%87%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>

·Автоматизированное тестирование <https://ru.wikipedia.org/wiki/%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>

·Полуавтоматизированное тестирование <https://ru.wikipedia.org/w/index.php?title=%D0%9F%D0%BE%D0%BB%D1%83%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&action=edit&redlink=1>

По степени изолированности компонентов

·Модульное тестирование <https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>

·Интеграционное тестирование <https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>

·Системное тестирование <https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>

По времени проведения тестирования

·Альфа-тестирование <https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D1%8C%D1%84%D0%B0-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>

·Дымовое тестирование <https://ru.wikipedia.org/wiki/Smoke_test> (англ. <https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA> smoketesting)

·Тестирование новой функции <https://ru.wikipedia.org/w/index.php?title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D0%BE%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8&action=edit&redlink=1> (newfeaturetesting)

·Подтверждающее тестирование <https://ru.wikipedia.org/w/index.php?title=%D0%9F%D0%BE%D0%B4%D1%82%D0%B2%D0%B5%D1%80%D0%B6%D0%B4%D0%B0%D1%8E%D1%89%D0%B5%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&action=edit&redlink=1>

·Регрессионное тестирование <https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>

·Приёмочное тестирование <https://ru.wikipedia.org/w/index.php?title=%D0%9F%D1%80%D0%B8%D1%91%D0%BC%D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&action=edit&redlink=1>

·Бета-тестирование <https://ru.wikipedia.org/wiki/%D0%91%D0%B5%D1%82%D0%B0-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>

По признаку позитивности сценариев

·Позитивное тестирование <https://ru.wikipedia.org/w/index.php?title=%D0%9F%D0%BE%D0%B7%D0%B8%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&action=edit&redlink=1>

·Негативное тестирование <https://ru.wikipedia.org/w/index.php?title=%D0%9D%D0%B5%D0%B3%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&action=edit&redlink=1>

По степени подготовленности к тестированию

·Тестирование по документации (формальное тестирование)

·Интуитивное тестирование (англ. <https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA> adhoctesting)

4.1.1 Существующие подходы к тестированию Web-приложений

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

Существует много решений, позволяющих записывать сценарии поведения пользователя (т.е. цепочку ссылок, по которым осуществлялся переход) - IBM RationalRobot, HP WinRunner, Empirix e-TEST и другие. Записанный единожды сценарий может далее воспроизводиться автоматически. Однако создание сценариев - трудоемкое занятие, причем отдельной задачей является анализ требований к приложению с целью определить, какие именно сценарии должны быть созданы для обеспечения хорошего качества тестирования. Некоторые инструменты (например, компонент PureAgent в системе PureTest) позволяют создавать сценарии на основе действий реальных пользователей, работающих с приложением. Однако и при таком подходе при достаточно большом количестве пользователей встает вопрос о выборе из множества возможных сценариев относительно небольшого набора, который, тем не менее, обеспечит хорошее качество тестирования.

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

Многие инструменты анализируют получаемые в процессе тестирования страницы, извлекая из них ссылки на другие части приложения и имитируя переход по ним (опять же, с дальнейшим анализом получаемых страниц; например, для таких целей предназначен компонент 'WebCrawler', входящий в PureTest). Таким образом, осуществляется переход по всем ссылкам, которые могут быть достигнуты, начиная с определенной страницы. Поскольку все части приложения, как правило, взаимосвязаны, то в идеале, начав с некоторой стартовой страницы и посетив все достижимые из нее ссылки, можно протестировать всю функциональность приложения, доступную пользователю. Однако число ссылок может быть чрезвычайно велико, и лавинообразно расти с увеличением числа посещенных страниц. К сожалению, современные средства перехода по ссылкам достаточно примитивны и просто осуществляют переходы по всем встреченным ссылкам (ввиду чего они часто используются при нагрузочном тестировании). Настройка либо доработка инструментов для более "интеллектуального" выбора ссылок, по которым надо осуществлять переходы, требует тщательного анализа самого приложения.

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

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

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

·'URL' - проверка ссылки, на которой оказался пользователь после совершения определенных действий, записанных в сценарии;

·'Title' - проверка названия страницы;

·'Elements' - проверка числа элементов в DOM-модели страницы;

·'ByteSize' - проверка размера страницы;

·'LastModifiedDate' - проверка даты последнего изменения страницы;

·'Checksum' - проверка контрольной суммы для текста страницы;

·'Text' - проверка выделенных участков текста страницы;

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

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

Можно отметить, что несмотря на достаточно большое количество доступных проверок, ни одна из них не пригодна в случае, когда изменяется содержательная часть страницы - часть проверок (такие, как 'Title' и 'URL') могут вообще не зависеть от этой составляющей документа, а другие ('ByteSize', 'Checksum', 'ScreenRectangle') с большой вероятностью сообщат об ошибке (т.е. об отличии полученного на новых данных результата от эталонного), но такие сообщения скорее всего не будут свидетельствовать о реальном нарушении функциональности приложения.

Существуют и более сложные подходы к разработке тестов для Web-приложений, позволяющие абстрагироваться от различных аспектов, связанных непосредственно с языком разметки HTML, и генерировать тесты на основе формальной модели данных, передаваемых приложению - см., например, [10 <#"center">4.1.2 Тестирование "белого ящика" и "чёрного ящика"

В зависимости от доступа разработчика тестов к исходному коду тестируемой программы различают "тестирование (по стратегии) белого ящика <https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE_%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%B5%D0%B3%D0%B8%D0%B8_%D0%B1%D0%B5%D0%BB%D0%BE%D0%B3%D0%BE_%D1%8F%D1%89%D0%B8%D0%BA%D0%B0>" и "тестирование (по стратегии) чёрного ящика <https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE_%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%B5%D0%B3%D0%B8%D0%B8_%D1%87%D1%91%D1%80%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D1%89%D0%B8%D0%BA%D0%B0>".

При тестировании белого ящика (также говорят - прозрачного ящика), разработчик теста имеет доступ к исходному коду программ и может писать код, который связан с библиотеками тестируемого программного обеспечения. Это типично для модульного тестирования, при котором тестируются только отдельные части системы. Оно обеспечивает то, что компоненты конструкции - работоспособны и устойчивы, до определённой степени. При тестировании белого ящика используются метрики покрытия кода <https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B5_%D0%BA%D0%BE%D0%B4%D0%B0> или мутационное тестирование <https://ru.wikipedia.org/wiki/%D0%9C%D1%83%D1%82%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>.

При тестировании чёрного ящика, тестировщик имеет доступ к программе только через те же интерфейсы <https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81>, что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования. Например, тестирующий модуль может виртуально нажимать клавиши или кнопки мыши в тестируемой программе с помощью механизма взаимодействия процессов, с уверенностью в том, все ли идёт правильно, что эти события вызывают тот же отклик, что и реальные нажатия клавиш и кнопок мыши. Как правило, тестирование чёрного ящика ведётся с использованием спецификаций или иных документов, описывающих требования к системе. Обычно в данном виде тестирования критерий покрытия <https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D1%82%D0%B5%D1%80%D0%B8%D0%B9_%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%BF%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F> складывается из покрытия структуры входных данных, покрытия требований <https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B5_%D1%82%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B9> и покрытия модели (в тестировании на основе моделей <https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9>).

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

Если "альфа-" и "бета-тестирование" относятся к стадиям до выпуска продукта (а также, неявно, к объёму тестирующего сообщества и ограничениям на методы тестирования), тестирование "белого ящика" и "чёрного ящика" имеет отношение к способам, которыми тестировщик достигает цели.

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

4.2 Тестирование функциональности

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

Таблица 4.1 - Тестовые наборы для проверки функциональности авторизации

№ ТестаДействиеОжидаемый результат Отметка о выполнении1Ввод логина и пароля Login: admin Password: admin (ввод корректной информации) Авторизация и вход на страницу администраторапроверено2Ввод логина и пароля Login: anonim Password: admin (ввод некорректной информации - неверный логин) Сообщение о неправильно введенном логине или паролепроверено 3Ввод логина и пароля Login: admin Password: password (ввод некорректной информации - неверный пароль) Сообщение о неправильно введенном логине или паролепроверено

Таблица 4.2 - Тестовые наборы для проверки администрирования каталога и товаров

№ ТестаДействиеОжидаемый результат Отметка о выполнении1Выбор "Категории и товары"Вывод меню редактирования каталога и товаровпроверено2Выбор "Добавить" категориюВывод формы для заполнения данных для новой категориипроверено3Заполнить форму и выбрать "Сохранить"Создание новой категориипроверено№ ТестаДействиеОжидаемый результат Отметка о выполнении4Выбор "Edit"Вывод формы для редактирования данных о категориипроверено 5 Выбор "добавить" товар Вывод формы для заполнения данных для нового товара проверено6Заполнить форму и выбрать "Сохранить"Добавление нового товара в выбранной категориипроверено7Выбор "кнопки - для удаления товара"Удаление выбранного товарапроверено8Выбор названия товараВывод формы для редактирования данныхпроверено9Выбор "кнопки - специальные предложения"Перенос товара в меню "специальные предложения"проверено

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

№ ТестаДействиеОжидаемый результат Отметка о выполнении1Поиск товара по фразе, например: AMD Вывод товара, в названии или описании которого упоминается данная фраза. проверено2Поиск товара по фразе, заведомо несуществующейВывод сообщения о том, что ничего не найденопроверено

Таблица 4.4 - Тестовые наборы для проверки функциональности закупки

№ ТестаДействиеОжидаемый результат Отметка о выполнении1Выбор категории: например AMDВывод товаров в данной категории и описание категориипроверено2Выбор товара: например процессор Athlon IIВывод информации о товарепроверено3Нажатие на кнопку "в корзинуВывод корзиныпроверено4Установка количества товаров равным 20, и нажать кнопку обновитьСумма заказа умножится на 20проверено5Установка количества товаров равны мили меньше 0, и нажать кнопку обновитьКорзина очиститсяпроверено6Подтверждение заказаВывод формы для заполнения контактной информациипроверено7Ввод информации во все поля которые обязательные для заполненияДобавление данных о заказе и покупателе в Базу Данныхпроверено8Заполнение не всех обязательных полейВывод сообщения о незаполненных поляхпроверено

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

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

5.1 Маркетинговые исследования предприятия

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

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

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

К числу внутренних факторов успеха интернет-магазина относятся прежде всего Сервис, Ассортимент и Цены. О приоритетности этих факторов можно долго спорить. С экономической точки зрения, для людей с невысокими доходами (к числу которых относятся многие россияне) определяющим фактором будут цены. Но давайте посмотрим на портрет рунетчика - в большинстве своем это офисные работники, руководители предприятий, специалисты, небедные студенты и учащиеся. Люди более-менее обеспеченные. И поэтому для них важнее Сервис и Ассортимент. И за это они готовы переплачивать. Например, Ozon.ru - один из крупнейших интернет-магазиноврунета. Но многие товары в нем дороже, чем в других магазинах, например, в Bolero.ru. Тем не менее, продуманная ценовая политика - одна из составляющих успеха, пусть и занимающая третье место после Сервиса и Ассортимента.

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

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

5.2 Расходы по созданию и размещению магазина в сети интернет

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

Таблица 5.2.1 - Расчет электроэнергии для девятичасового рабочего дня.

Наименованиекол-вокВт/часкВт в сутки (примерно) кВт в месяцКомпьютер10,171,5345,9Освещение30,369,72291,6Сплит10,76,3189ИТОГО: 1,23526,5

Для предприятий 1 кВт / ч= 0,24

В месяц 0.24*526,5= 126,36 гривен.

В сети интернет магазин планируется разместить на ресурсах провайдера города Луганска НПЦ "Микроэлектроника", что обеспечит удобное обслуживание и рекламную ссылку на магазин с главной страницы сайта провайдера <#"justify">Таблица 5.2.2 - Расчет ежемесячных затрат на содержание интернет - магазина.

НаименованиеСумма, грн. Зарплата программиста1600Зарплата курьера605Электроэнергия126,36Хостинг75Интернет100Прочие расходы200Итого: 2706,36Пост = 2706,36 - постоянные ежемесячные расходы.

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

Годовая сумма амортизационных отчислений рассчитывается по формуле:

,

где

Ф - первоначальная стоимость основных фондов по видам, грн.;

NA - норма амортизации по видам основных фондов, в %.

Годовую сумму амортизационных отчислений отразим в таблице 4.2.3

Таблица 5.2.3 - Расчет годовой суммы амортизационных отчислений.

Элементы основных фондов. Кол-воСтоимость, грн. Сумма грн. Норма амортиза-ции, %Амортизацион-ные отчисления, грн. Компьютер13500350020%700Сплит система13200320020%640Помещение13,6м240054403%163,2ИТОГО: 1503,2

Таким образом, годовая сумма амортизационных отчислений составляет 1503,2 гривны.

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

,

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

А = =41,2 грн.

Заработная плата программиста составляет 1600 грн. Соответственно, затраты на заработную плату включаемые в себестоимость программы с учетом работы над программой в течение 12 дней составят:

,

где ЗПпр - заработная плата в месяц программиста, грн.;

Тфакт - число календарных дней на разработку интернет - магазина;

Д - число дней в периоде (месяц).

ЗПпр = = 727,3 грн.

Таблица 5.2.4 - Расчет ежемесячных материальных затрат.

НаименованиеСумма, грн/мес. Электроэнергия126,36Хостинг75Интернет100Прочие расходы200Итого: 501,36

Зм= 501,36 гривен в месяц

Следовательно, затраты на период разработки программного продукта рассчитаем по формуле:

Зпр= ,

где Зм - ежемесячные затраты, грн.;

Тфакт - число календарных дней на разработку интернет - магазина;

Д - число дней в периоде (месяц).

Зпр = 50136*10/22=227

Рассчитаем себестоимость программного продукта по формуле:

Сст - себестоимость разработки программы

Сст = Зпр + ЗПпр + А

Сст = 227,9+727,3+41,2 = 996,4 гривен.

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

Сст ≈ 1000 гривен.

Исходя из нормального уровня рентабельности 20% мы можем определить цену разработанной нами программы:

,

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

Ц=1000+100*20/100=1200

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

5.3 Выводы

В результате расчета затраты на создание данного программного продукта составили 2703 грн. и 2706,36 - постоянные ежемесячные расходы.

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

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

В Украине главным нормативно-законодательным документом, определяющим требования безопасности и санитарно-гигиенические требования к организации рабочих мест операторов ЭВМ и работников, выполняющих обслуживание и ремонт ЭВМ, являются "Правила охраны труда во время эксплуатации ЭВМ, утверждённые приказом Держнаглядохоронпраці от 10 февраля 1999 г №21 и зарегистрированные в Министерстве юстиции Украины 17 июня 1999 г под №382/3675. Этот документ устанавливает основные правила охраны труда и содержит ссылки другие нормативные документы.

6.1 Метеорологические условия при работе

Согласно ГОСТ 12.1.005-88 оптимальные параметры микроклимата для выполнения работы должны находиться в пределах, указанных в таблице 4.1.

Категорию работы учитываем по физической нагрузке. Работу сотрудников отдела отнесём к категории Iб (напряжённая работа).

Таблица 6.1 - Оптимальные нормы температуры, относительной влажности и подвижности воздуха

Категория РаботыПериод годаТемпература t, °СОтносительная влажность, %Скорость движения воздуха V, м/сНапряжённая работаХолодный22-2440-600,1Напряжённая работаТеплый23-2540 - 600,1

Для обеспечения вышеуказанных оптимальных метеорологических условий в помещениях предусмотрена система отопления, вентиляции и кондиционирования согласно СНиП 2.04.05-90.

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

Режим работы кондиционера должен обеспечить максимально возможное поступление наружного воздуха, но не менее 50 % от производительности кондиционера.

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

Качественный состав воздуха: содержание кислорода в помещениях должно быть в пределах 21-22 %. Двуокись углерода не должна превышать 0,1 %, озон - 0,1 мг/м3, аммиак - 0,2 мг/м3, фенол - 0,01 мг/м3, хлористый винил - 0,005 мг/м3, формальдегид - 0,003 мг/м3.

6.2 Освещение

Работоспособность оператора ЭВМ во многом зависит от освещения. Неудовлетворительное освещение количественно или качественно утомляет не только зрение, но и вызывает утомление организма в целом, оказывает влияние на производительность труда оператора.

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

Естественное освежение

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

Все производственные помещения с постоянным нахождением в них людей, в соответствии с санитарными нормами и правилами СНиП II-4-79, имеют естественное освещение.

Искусственное освещение

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

В качестве источников света рекомендуется использовать люминесцентные лампы мощностью 40 Вт или энергоэкономные мощностью 36 Вт типа ЛБ, ЛХБ, или ЛЕЦ как наиболее эффективные и приемлемые с точки зрения спектрального состава, цветовая температура (Тца) излучения которых находится в диапазоне 3500-4200 °К.

Согласно СниПII-4-79, допустимая величина дискомфорта, одного из качественных параметров ОУ регламентируемого для ограничения прямой блёскости, не должна превышать 15. При проектировании ОУ следует пользоваться инженерным методом оценки слепящего действия ОУ по дискомфорту. Величина коэффициента пульсации не должна превышать 10 %, для чего следует применять многоламповые светильники с компенсирующими ПРА, осуществлять расфазировку светильников при электромонтаже ОУ. Для освещения дисплейного класса рекомендуется применять светильники серии ЛП013, ЛП031, ЛП033 исполнение 001 и 006, ЛС002, ЛС004. С металлической экранирующей решеткой и непрозрачными боковинами.

Расчет естественного освещения

Расчет естественного освещения сводится к выбору вида освещения, определению (выбору) коэффициента естественной освещенности и расчету площадей светопроёмов. Выполним расчёт необходимой площади светопроёмов для помещения с размерами в плане a х b = 4 х 10 м и высотой H = 3 м. Количество рабочих мест n = 4. При нормах 6 м2 на одного человека имеем:

= a * b = 4*10 = 40 м2>24 м2. (4.1)

Расчет проведём по методике, изложенной в справочной и методической литературе. В расчетах использованы нормативные материалы по производственному освещению (СНиП II - 4 - 79).

В основу расчета положена известная зависимость:

, (4.2)

откуда искомая площадь светопроёмов:

, (4.3)

где Sn = 40 м2 - площадь помещения;min = 15 - нормируемый параметр при боковом освещении;

ŋ =15 - световая характеристика;з = 1,2 - коэффициент запаса;зд = 1,0 - коэффициент, учитывающий затемнение окон, противостоящими зданиями;1 = 2,2 - коэффициент, учитывающий влияние отраженного света при боковом освещении;

τ0 - коэффициент светопропускания.

Определим коэффициент светопропускания:

(4.4)

где τ1,τ2,τ3,τ4,τ5 - коэффициенты, принимаемые из справочного материала.

Найденные данные подставим в формулу (5.3) и получим результат:


Помещение методистов имеет одно окно с размерами 2 х 1,3 м, что не удовлетворяет нормам естественного освещения. Габариты помещения не позволяют увеличить площадь бокового оконного проёма до расчётного значения.

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

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

Расчет Общего искусственного освещения

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

Рассчитаем общее люминесцентное освещение для помещения, если освещаемая поверхность по формуле (4.1) составляет 40 м2, а высота подвеса светильников относительно рабочей плоскости стола (hc) составляет 2,5 м. Расчетная схема представлена на рисунке 4.1.

Рисунок 6.1 -

Похожие работы на - Разработка web-приложения и базы данных интернет-магазина

 

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