Содержание
ВВЕДЕНИЕ
1. АНАЛИЗ ИНФОРМАЦИИ И ПОСТАНОВКА ЗАДАЧ
1.1 Язык PHP
1.1.1 Области применения
1.1.2 Синтаксис
1.2 База данных MySQL
1.2.1 Происхождение MySQL
1.2.2 Платформы
1.2.3 История выпусков
1.3 Обзор различных CMS интернет магазинов
1.3.1 osCommerce
1.3.2 VirtueMart
1.3.3 Magento
1.4 Presta Shop
1.4.1 Преимущества
1.4.2 Функциональность
1.5 Формат представления данных XML
1.5.1 Язык XML
1.5.2 Логическая и физическая структура документа
1.5.3 Объявление XML
1.5.4 Элемент и его разметка
1.5.5 Эффективность использования XML
1.6 Office Open XML
1.6.1 Стандартизация
2. РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
2.1 Структура программного обеспечения
2.2 Подключение к базе данных
2.3 Подключение к файловой системе
2.4 Формирование каталога
3. ФОРМАТ XLS
4. СТИЛИ ФОРМАТИРОВАНИЯ КАТАЛОГА ПРОДУКЦИИ
4.1 Стили форматирования текста
4.2 Организация структуры каталога
4.3 Добавление изображений в каталог
4.4 Макросы
5. ОСНОВНЫЕ ПОЛОЖЕНИЯ РАСЧЁТА СТОИМОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
5.1 Определение объема программного обеспечения
5.2 Расчет трудоемкости программного обеспечения
5.3 Расчет заработной платы разработчиков программного обеспечения
5.4 Расчет отчислений, налогов и затрат
5.5 Расчет себестоимости, отпускной цены и прибыли
6. ЭКСПЕРТНЫЙ МЕТОД ОЦЕНКИ УСЛОВИЙ ТРУДА
ЗАКЛЮЧЕНИЕ
СПИСОК ИМПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ А
Под веб-приложением понимается любые программные комплексы, имеющие возможность подключения к ним по глобальным, либо локальным сетям ,и обладающими возможностью обрабатывать пользовательские запросы и давать на них ответы. Все труднее представить себе программные продукты, которые не имеют веб-интерфейса, кроме того приложения, написанные ранее без использования веб-технологий все чаще переделываются с использованием таковых. Поэтому программы становятся веб-ресурсами, а проектирование и собственно прикладное программирование становятся важным навыком современного инженера.
Интернет технологии проникают во все сферы жизни общества. Одним из направлений развития предприятий, реализующих продукцию, либо услуги стало создание интернет-каталогов и интернет-магазинов. Создание подобных ресурсов экономит время, как работников самого предприятия, так и конечных пользователей, благодаря автоматизации работы с каталогами продукции. Нет необходимости стоять в длинных очередях и не надо беспокоиться о наличии какого-либо товара. Также существует возможность автоматизации процесса покупки товара.
Заказав товар, вы оговариваете с менеджером условие и время доставки, возможную упаковку товара и его стоимость. Оплата проводится или через вашу кредитную карту, либо через банковский счет или по наличному расчету.
Также актуальной является задача предоставления актуального каталога продукции конечному пользователю. Он должен знать количество, качество и стоимость товара в реальном времени. Для этого существует необходимость разработки программного обеспечения, для мониторинга состояния склада и баз данных предприятия и предоставления ссылок для доступа к этому каталогу конечного пользователя.
В данном дипломном проекте разработано программное обеспечение для
мониторинга каталога продукции предприятия, анализа склада, получения
информации об актуальной стоимости товара, с учетом налоговой политики.
Информация предоставляется в удобном для пользователя виде, доступном для
просмотра на большом количестве электронных платформ, как мобильных, так и
стационарных.
Веб-технологии плотно вошли в нашу жизнь, и для их развития и поддержки
работоспособности было разработано большое число технологий для организации
соединения между пользователем и сервером, для отображения ответа сервера в
виде, удобном для пользователя, а также средств разработки, созданных для
ускорения и удешевления процесса разработки и поддержки веб-приложений,
рассмотрим технологии, которые мы использовали в ходе дипломного
проектирования.
(англ. PHP: Hypertext Preprocessor - «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools - «Инструменты для создания персональных веб-страниц»; произносится пи-эйч-пи) -скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.
Язык и его интерпретатор разрабатываются группой энтузиастов в рамках
проекта с открытым кодом. Проект распространяется под собственной лицензией,
несовместимой с GNU GPL.
В области программирования для сети Интернет PHP - один из популярных сценарных языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.
Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них:
· автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
· взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase,ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);
· автоматизированная отправка HTTP-заголовков;
· работа с HTTP-авторизацией;
· работа с cookies и сессиями;
· работа с локальными и удалёнными файлами, сокетами;
· обработка файлов, загружаемых на сервер;
· работа с XForms.
В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в июне 2013 года PHP находился на 5 месте среди языков программирования. К крупнейшим сайтам, использующим PHP, относятся Facebook, Wikipedia и др.
Входит в LAMP - распространённый набор программного обеспечения для
создания и хостинга веб-сайтов (Linux, Apache, MySQL, PHP).
Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.
Для работы программы не требуется описывать какие-либо переменные, используемые модули и т. п. Любая программа может начинаться непосредственно с оператора PHP.
Простейшая программа Hello world на PHP выглядит следующим образом:
<?php
echo 'Hello, world!';
?>
Также возможен более короткий вариант вывода строки:
<?= 'Hello, world!' ?>
Открывающий тег вида <?= используется для сокращённой записи
конструкций используемых для вывода строки.исполняет код, находящийся внутри
ограничителей, таких как <?php ?>. Всё, что находится вне ограничителей,
выводится без изменений. В основном это используется для вставки PHP-кода в
HTML-документ, например, так:
<html>
<head>
<title>Тестируем PHP</title>
</head>
<body>
<?php echo 'Hello, world!'; ?>
</body>
</html>
Помимо ограничителей <?php ?>, допускается использование дополнительных вариантов, таких как <? ?> и <script language="php"> </script>. Кроме того, до версии 6.0 допускается использование ограничителей языка программирования ASP <% %> (конструкции <? ?> и <% %> могут быть выключены в конфигурационном файле php.ini).
Имена переменных начинаются с символа $, тип переменной объявлять не нужно. Имена переменных, функций и классов чувствительны к регистру. Константы также чувствительны к регистру. Переменные обрабатываются в строках, заключённых в апострофы или двойные кавычки, и heredoc-строках (строках, созданных при помощи оператора <<<).рассматривает переход на новую строку как пробел, так же как HTML и другие языки со свободным форматом. Инструкции разделяются с помощью точки с запятой (;), за исключением некоторых случаев, после объявления конструкции if/else и циклов.
Переменные в функцию можно передавать как по значению, так и по ссылке (используется знак &).поддерживает три типа комментариев: в стиле языка Си (ограниченные /* */), C++ (начинающиеся с // и идущие до конца строки) и оболочки UNIX (с # до конца строки).
Дальше мы разберем MySQL,
так как она является одной из самы распространенных системой управления базами
данных.
- свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.
Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типаMyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.
февраля 2008 года Sun Microsystems приобрела MySQL AB за $1 млрд, 27 января 2010 года Oracle приобрела Sun Microsystems за$7,4 млрд и включила MySQL в свою линейку СУБД.
Сообществом разработчиков MySQL созданы различные ответвления кода, такие
как Drizzle, OurDelta, Percona Server, и MariaDB. Все эти ответвления уже
существовали на момент поглощения компании Sun корпорацией Oracle.
MySQL возникла как попытка применить mSQL к собственным разработкам компании: таблицам, для которых использовались ISAM - подпрограммы низкого уровня. В результате был выработан новый SQL-интерфейс, но API-интерфейс остался в наследство от mSQL. Откуда происходит название «MySQL» - доподлинно неизвестно. Разработчики дают два варианта: либо потому, что практически все наработки компании начинались с префикса My, либо в честь девочки по имени My, дочери Майкла Монти Видениуса, одного из разработчиков системы.
Логотип MySQL в виде дельфина носит имя «Sakila». Он был выбран из
большого списка предложенных пользователями «имён дельфина». Имя «Sakila» было
отправлено Open Source-разработчиком Ambrose Twebaze.
MySQL портирована на большое количество платформ: AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer,UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Server 2003, WinCE, Windows Vista и Windows 7. Существует также порт MySQL к OpenVMS. Важно отметить, что на официальном сайте СУБД для свободной загрузки предоставляются не только исходные коды, но и откомпилированные и оптимизированные под конкретные операционные системы готовые исполняемые модули СУБД MySQL.
MySQL 4.0
Несмотря на то, что версия 4.0 является устаревшей, она всё ещё имеет значительное распространение. Основные возможности этой версии:
· практически полная реализация ANSI SQL-99, плюс расширения;
· межплатформенная совместимость;
· независимые типы таблиц (MyISAM для быстрого чтения, InnoDB для транзакций и ссылочной целостности);
· транзакции;
· поддержка SSL;
· кэширование запросов;
· репликация: один головной сервер на одного подчинённого, много подчинённых на одного головного;
· полнотекстовая индексация и поиск с использованием типа таблиц MyISAM;
· внедрённая библиотека базы данных;
· поддержка Юникода (UTF-8);
· таблицы InnoDB, обеспечивающие соответствие требованиям ACID;
· встроенный сервер, позволяющий включать MySQL в автономные приложения.4.1
Рекомендованной версией на 2005 год является MySQL 4.1 вышла 27 октября 2004. Она содержит следующие нововведения:
· вложенные запросы и производные таблицы.
· новая система кодировок и сортировок;
· более быстрый и гибкий протокол клиент-сервер с поддержкой подготовленных запросов, обеспечивающий их оптимальное исполнение;
· новая программа установки и настройки для Microsoft Windows и Linux;
· защищённые через OpenSSL соединения клиент-сервер;
· высоко-оптимизированная библиотека, которая может быть использована в сторонних программах;
· полноценная поддержка Юникода (UTF-8 и UCS2);
· стандартные пространственные типы данных GIS, для хранения географической информации;
· улучшенный полнотекстовый поиск и система помощи.5.0
Версия MySQL 5.0 вышла 24 октября 2005 года, в этой версии значительно расширена функциональность, которая ставит MySQL в один ряд с коммерческими СУБД. Если раньше СУБД MySQL обвиняли в недостаточной поддержке стандарта SQL, то с появлением пятой версии этой популярной базы данных, появилась практически полная поддержка стандарта SQL. MySQL 5.0 содержит следующие нововведения:
· хранимые процедуры и функции;
· обработчики ошибок;
· курсоры;
· триггеры;
· представления;
· информационная схема (так называемый системный словарь, содержащий метаданные).5.1
Версия MySQL 5.1 продолжает путь к стандарту SQL:2003. MySQL 5.1 содержит следующие нововведения.
· Сегментирование - возможность разбить одну большую таблицу на несколько частей, размещенных в разных файловых системах, основываясь на определенной пользователем функции. При определенных условиях это может дать серьёзное увеличение производительности и, кроме того, облегчает масштабирование таблиц.
· Изменено поведение ряда операторов, для обеспечения большей совместимости со стандартом SQL2003.
· Построчная репликация (англ. row-based replication), при которой в бинарный лог будет записываться только информация о реально измененных строках таблицы вместо оригинального (и, возможно, медленного) текста запроса. Построчную репликацию можно использовать только для определенных типов sql-запросов, в терминах MySQL - смешанная репликация (англ. mixed replication).
· Встроенный планировщик периодически запускаемых работ. По синтаксису добавление задачи похоже на добавление триггера к таблице, по идеологии - на crontab.
· Дополнительный набор функций для обработки XML, реализация поддержки XPath.
· Новые средства диагностики проблем и утилиты для анализа производительности. Расширены возможности по управлению содержимым лог-файлов, логи теперь могут быть сохранены и в таблицах general_log и slow_log. Утилита mysqlslap позволяет провести нагрузочное тестирование БД с записью времени реакции на каждый запрос.
· Для упрощения операции обновления подготовлена утилита mysql_upgrade, которая выполнит проверку всех существующих таблиц на предмет совместимости с новой версией, и при необходимости выполнит надлежащие корректировки.