СОДЕРЖАНИЕ
1. Аналитический обзор разработки АСУ
1.2 Основные понятия и определения
1.3 Общее описание разрабатываемой АСУ
1.5 Анализ предметной области разработки
2. Разработка базы данных для системы
2.2 Построение концептуальной (инфологической) модели БД
2.3 Построение логической схемы БД
3. Разработка клиентского приложения
3.1 Выбор языка и среды программирования
3.2 Требования к клиентскому приложению
3.2.2 Требования к функционалу
3.3 Проектирование клиентского приложения
3.3.3 Выбор шаблонов проектирования
3.3.4 UML диаграмма классов с учетом выбранных шаблонов
3.3.5 Построение блок-схем алгоритмов подпрограмм
4.1 Общие сведения по разработке сайта
4.2 Выбор языков программирования
5.1 Тестирование клиентского приложения
5.1.3 Заказы. Перевод в поставки
5.1.4 Поставки. Установка цены продажи на товар
5.1.5 Тестирование продажи товара
5.1.8 Тестирование анализа продаж товаров
5.1.6 Тестирование отмены продажи товара
5.1.9 Тестирование функции «Остатки»
5.1.10 Тестирование подпрограммы для работы с пользователями сайта
5.2.1 Правильность выполнения функций по нажатию кнопок и переходов по гиперссылкам
5.2.2 Правильность выполнения SQL-запросов к БД
5.2.3 Тестирование слайдера «Slick»
6. Внедрение продукта в производство
Оглавление
Введение
. Аналитический обзор разработки АСУ
.1 Постановка задачи
.2 Основные понятия и определения
.3 Общее описание разрабатываемой АСУ
.4 Анализ существующих АСУ
.5 Анализ предметной области разработки
. Разработка базы данных для системы
.1 Анализ и выбор СУБД
.1.1 SQLite
.1.2 MySQL
.1.3 PostgreSQL
.2 Построение концептуальной (инфологической) модели БД
.3 Построение логической схемы БД
. Разработка клиентского приложения
.1 Выбор языка и среды программирования
.2 Требования к клиентскому приложению
.2.1 Требования к интерфейсу
.2.2 Требования к функционалу
.3 Проектирование клиентского приложения
.3.1 Архитектура
.3.2 Выделение компонентов
.3.3 Выбор шаблонов проектирования
.3.4 UML диаграмма классов с учетом выбранных шаблонов
.3.5 Построение блок-схем алгоритмов подпрограмм
. Разработка сайта
.1 Общие сведения по разработке сайта
.2 Выбор языков программирования
.2.1 HTML
.2.2 CSS
.2.3 PHP
.2.4 SQL
.3 Структура сайта
.4 Дизайн сайта
.4.1 Слайдер Slick
. Тестирование АСУ
.1 Тестирование клиентского приложения
.1.1 Страница авторизации
.1.2 Страница «Информация»
.1.3 Заказы. Перевод в поставки
.1.4 Поставки. Установка цены продажи на товар
.1.5 Тестирование продажи товара
.1.6 Тестирование отмены продажи товара
.1.7 Тестирование отчётов
.1.8 Тестирование анализа продаж товаров
.1.9 Тестирование функции «Остатки»
.1.10 Тестирование подпрограммы для работы с пользователями сайта
.2 Тестирование сайта
.2.1 Правильность выполнения функций по нажатию кнопок и переходов по гиперссылкам
.2.2 Правильность выполнения SQL-запросов к БД
.2.3 Тестирование слайдера «Slick»
. Внедрение продукта в производство
Заключение
Список использованных источников
Приложения
Введение
В нашу жизнь стремительно входят новейшие технологии, которые улучшают производство, предоставляют возможности для коммуникации между людьми. Информационные технологии позволяют автоматизировать многие рутинные действия в жизни человека. Основными целями автоматизации являются:
) Сокращение численности персонала;
) Увеличение продукции;
) Повышение качества производства;
) Ускорение работы персонала;
) Снижение расходов сырья;
) Повышение безопасности;
В моем случае объектом автоматизации является магазин автомобильных
запчастей. Целью работы является разработка автоматизированной системы
управления для магазина автозапчастей. Данный магазин пользуется интернет -
платформой для работы магазина, что является для них не самым удобным подходом
для автоматизации, поэтому возник вопрос о разработке собственной
автоматизированной системы управления.
Определим задачи, которые нужно решить для достижения поставленной цели:
. Произвести анализ предметной области.
. Выявить основные информационные потоки предприятия.
. Выбрать процессы предприятия, которые можно и нужно автоматизировать.
. Обеспечить достоверность информации о материальных компонентах, применяемых в производстве.
. Улучшение эргономики труда операторов процесса.
. Выбрать способы и средства для разработки программного обеспечения.
. Выдвинуть требования к программному продукту.
. Разработать ПО согласно выдвинутым требованиям.
. Произвести тестирование программного продукта.
Информационная система (ИС) - система, главными задачами которой являются хранение, распространение, поиск и обработка информации.
Автоматизация - применение технических средств, экономико-математических методов и систем управления, освобождающих человека частично или полностью от непосредственного участия в процессах получения, преобразования, передачи и использования энергии, материалов или информации.
Автоматизированная система управления - это система «человек-машина», которая должна обеспечивать автоматизированный сбор и обработку информации для оптимизации процесса управления. В отличие от автоматических систем, где человек полностью удалён из контура управления, АСУ предполагает активное участие человека в контуре управления.
Система позволяет частично автоматизировать деятельность магазина автозапчастей. Программный продукт должен предоставить пользователю удобный обзор информации из БД о товарах, заказах, поставках, поставщиках, клиентах, продажах и возможность осуществлять манипуляции над этими данными. Также должна присутствовать отчетность о работе магазина за конкретный промежуток времени. Особенности разрабатываемого продукта: удобный и интуитивно понятный для пользователя интерфейс, многофункциональность и работа в связке с сайтом, который можно администрировать как раз из клиентского приложения. Сайт будет разработан для того, чтобы предоставить покупателям возможность удаленно просматривать ассортимент магазина, информацию о магазине, а также возможность зарезервировать любой товар на 3 дня, после чего товар удалится из резерва и вернется на склад. Перегрузить сайт будет крайне сложно, т.к. хакеру предстоит зарегистрироваться и авторизоваться на сайте достаточно большое количество раз.
В ходе выполнения работы был проведен анализ уже существующих АСУ с
требуемым функционалом. Существует несколько аналогов подобной системы:-
сервис, который имеет функционал, схожий с разрабатываемым ПП, имеет достаточно
удобный интерфейс[1]. Недостатки: высокая стоимость использования. Интерфейс представлен
на рисунке 1.1 [1].
Рисунок 1.1. Интерфейс web сервиса «CloudShop»
Retail - Сервис, который имеет очень большой функционал по работе с
клиентами, поставщиками, товарами и т.д., построен за счет интересных идей с
использованием новейших алгоритмов. Но имеет такие недостатки: высокая
стоимость использования, а также невозможность работы с локальной БД, а
основным хранилищем является облако. Это безусловно удобно, но я считаю, что
это небезопасно. Интерфейс представлен на рисунке 1.2 [2]
Рисунок 1.2. Интерфейс программы «ABM Retail»
Еще одной из похожих АСУ является 1С, но, к сожалению, имеет высокую стоимость, что не устраивает заказчика [3].
Найденные аналоги имеют интуитивно понятный интерфейс для пользователей, доступность информации, совместимы с различными платформами, обеспечивают высокую скорость работы пользователя.
Несмотря на все преимущества представленных систем, заказчик отказывается их использовать по финансовым соображениям. В соответствии с этим было принято решение о разработке новой системы.
Для анализа предметной области мною были учтены особенности работы магазина и требования заказчика.
Магазин предназначен для продажи автозапчастей, как новых, так и Б/У, автомобильной электроники, аккумуляторов, аксессуаров и т.д. Не имеет филиалов. Покупатель проходит стандартную процедуру покупки товара, приходя в магазин. Если потенциальный покупатель находится достаточно далеко и не имеет возможности прийти в магазин, но запчасти, которые он хочет купить есть на складе магазина, клиент может зарезервировать их на срок в три дня, после чего сможет выкупить зарезервированный товар, назвав продавцу свой логин на сайте [8].
АСУ предполагает три роли пользователей: администратор, продавец, пользователь сайта.
Администратор занимается работой с сайтом, товарами, клиентской базой, а также имеет возможность просматривать отчетность работы магазина.
Продавец может работать с таблицами БД, продавать и заказывать в магазин товары.
Пользователи сайта могут просматривать ассортимент товара и резервировать выбранные товары на срок в три дня.
Для хранения данных, которыми пользователи смогут манипулировать в будущем, понадобится база данных. Поэтому нужно произвести обзор существующих СУБД. По требованиям заказчика в обзоре будет участвовать только бесплатное ПО [4].
Эта система достаточно просто встраивается в приложения. Базируется на файлах и имеет большое количество различных инструментов для работы с БД. Данные хранятся в файлах и обращение происходит непосредственно к ним. Поэтому SQLite работает достаточно быстро и ее можно назвать достаточно мощной из-за множества библиотек. Преимущества SQLite:
. Файловая структура. Легко переносится на разные ПК, потому что БД состоит из одного файла.
. Используемые стандарты. Используются стандарты SQL.
. SQLite предлагает всё что необходимо для тестирования и разработки, так как состоит всего из одного файла и библиотеки написанной на языке C. Недостатки SQLite:
. Отсутствие системы пользователей - более крупные СУБД включают в свой состав системы управления правами доступа пользователей.
. Невозможно увеличить производительность.
Самая распространенная полноценная серверная СУБД. MySQL имеет огромное количество функций. Отлично подходит для работы с сайтами и другими веб - приложениями. Имеет большое количество различных инструментов для разработки, хотя в ней не реализован полный функционал SQL. Преимущества MySQL:
. Простота в работе. Имеет достаточно простую установку, понятный интерфейс.
. Богатый SQL - функционал.
. Имеет большое количество стандартных функций, обеспечивающих безопасность.
. Отлично работает с большими объемами данных, также хорошо масштабируется.
. Увеличена производительность за счёт упрощения некоторых стандартов. Недостатки MySQL:
. Присутствуют ограничения функционала, которые иногда необходимы в особо требовательных приложениях.
. Невысокая надёжность БД.
. Медленная разработка - Хотя MySQL технически открытое ПО, существуют жалобы на процесс разработки.
Данная СУБД считается самой профессиональной по сравнению с СУД, рассмотренными выше. Свободно распространяется, максимально соответствует SQL - стандартам. От других СУБД PostgreSQL отличается поддержкой востребованного объектно-ориентированного и/или реляционного подхода к базам данных. Например, полная поддержка надежных транзакций, т.е. атомарность, последовательность, изолированность, прочность. Данная СУБД имеет высокую производительность из-за применения мощных технологий. Параллельность достигнута не за счет блокировки операций чтения, а благодаря реализации управления многовариантным параллелизмом (MVCC), что также обеспечивает соответствие ACID. PostgreSQL очень легко расширять своими процедурами, которые называются хранимые процедуры. Достоинства PostgreSQL:
. Открытое ПО соответствующее стандарту SQL - PostgreSQL - бесплатное ПО с открытым исходным кодом. Эта СУБД является очень мощной системой.
. Большое сообщество - существует довольно большое сообщество в котором вы запросто найдёте ответы на свои вопросы
. Большое количество дополнений - несмотря на огромное количество встроенных функций, существует очень много дополнений, позволяющих разрабатывать данные для этой СУБД и управлять ими.
. Расширения - существует возможность расширения функционала за счет сохранения своих процедур.
. Объектность - PostrgreSQL это не только реляционная СУБД, но также и объектно-ориентированная с поддержкой наследования и много другого.
Недостатки PostgreSQL:
1. Производительность - при простых операциях чтения PostgreSQL может значительно замедлить сервер и быть медленнее своих конкурентов, таких как MySQL
. Популярность - по своей природе, популярностью эта СУБД похвастаться не может, хотя и присутствует довольно большое сообщество.
. Хостинг - в силу выше перечисленных факторов иногда довольно сложно найти хостинг с поддержкой этой СУБД.
Были соотнесены преимущества и недостатки каждой СУБД. Принято решение использовать MySQL из-за ее многофункциональности, простоты установки, а также эта система отлично подойдет для разработки сайта.
Рисунок 2.1. Концептуальная модель БД