Разработка информационной системы для ООО "Магнум"

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 07.08.2018
Размер файла 612,2 K

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

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Федеральное агентство связи

Федеральное государственное бюджетное образовательное учреждение

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

Факультет Информационных систем и технологий

Направление (специальность) Информационные системы и технологии

Кафедра Информационных систем и технологий

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

(БАКАЛАВРСКАЯ РАБОТА)

Разработка информационной системы для ООО «Магнум»

Разработал Г.А. Андреев

Самара 2017

Реферат

Название

Разработка информационной системы для ООО «Магнум»

Автор

Андреев Геннадий Алексеевич

Научный руководитель

Кораблин М. А.

Ключевые слова

Автоматизация, информационная система, база данных, СУБД, С++, SQLite

Дата публикации

2017 год

Библиографическое описание

Андреев Г.А. Разработка информационной системы для ООО «Магнум» [Текст]: дипломная работа /А.Г. Андреев Поволжский государственный университет телекоммуникаций и информатики (ПГУТИ). Факультет информационных технологий (ФИСТ). Кафедра информационных систем и технологий (ИСТ): науч.рук. Кораблин М. А. - Самара. 2017. - 62 с.

Аннотация

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

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

Введение

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

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

Все вышесказанное определило актуальность темы работы - разработка информационной системы для ООО «Магнум».

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

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

Обосновать методы моделирования и разработки информационной системы;

Выбор инструментария необходимого для разработки системы;

Выбор операционной системы для развертывания и функционирования данной информационной системы;

Выбор языка программирования и среды разработки для создания системы;

Проведение мероприятий по внедрению продукта в рабочих условиях;

Объектом исследования является магазин "Iplace" предприятия

ООО «Магнум». Данная организация функционирует на рынке услуг по продаже с 2008г. В настоящий момент ООО «Магнум» владеет двумя магазинами "Iplace". К тому же, с 2016 года запущены новые монобрендовые салоны сотовых операторов Билайн, Теле2.

Предмет исследования - информационная система.

Основными источниками информации для написания работы послужили:

1. Федорова, Г.Н. Информационные системы [Текст]: учебник для студ. учреждений сред. проф. образования / Г.Н. Федорова. - М.: ИЦ Академия, 2013. - 208 c.

2. М. Саммерфилд, Qt Профессиональное программирование [Текст] / Саммерфилд М. - “Символ-Плюс” 2011 год - 560 с.

3. Ю. Избачков, Информационные системы [Текст]/Избачков Ю. - “Питер”, 2010 год - 544 c.

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

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

В первом разделе обоснованы методы моделирования и разработки информационной системы.

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

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

В заключении сделаны основные выводы и результаты по проделанной работе.

Глава 1. Методы моделирования и разработки информационной системы

1.1 Понятие автоматизации

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

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

1. повышение качества товаров и услуг;

2. защита предприятия от ошибок персонала;

3. эффективное управление складом и сырьевыми запасами;

4. упрощение системы информирования руководства об изменениях, происходящих в компании.

Таким образом, комплексная автоматизация управлением предприятием является экономически оправданной.

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

В основном выделяют четыре типа АИС:

Охватывающий один процесс в одной компании;

Объединяющий несколько процессов в одной компании;

Обеспечивающий функционирование одного процесса в масштабе нескольких взаимодействующих компаний;

Реализующий работу нескольких процессов или систем в масштабе нескольких компаний;

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

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

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

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

Информационное обеспечение (ИО) - это хранимые на предприятии потоки информации. Информация формируется в результате обработки данных. Любая система имеет дело с двумя видами информации: внешняя (информация о внешней среде) и внутренняя.

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

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

Информационная база состоит из 2-х взаимосвязанных частей: внемашинной и внутримашинной.

Внемашинная - это часть системы, воспринимаемая человеком без ЭВМ (документы, акты, счета, устная информация).

Внутримашинная содержится на машинных носителях и состоит из файлов.

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

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

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

Различают общее ПО (операционная система, системы программирования, сервисные программы) и прикладное ПО.

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

Такое структурное подразделение должно выполнять:

Сбор первичной информации.

Передачу или рассылку информации.

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

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

1.2 Формулирование требований к системе

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

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

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

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

Разработка концепции АИС

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

Основная задача - обеспечение представления о АИС "Поиск нужной продукции" при её проектировании и поддержание целостности при реализации проекта (взаимосвязанность и координация АИС и её интеграционных решений). А также описание полной совокупности решений по системе в целом и её частям в объёме, достаточном для дальнейшего выполнения работы.

На данном этапе рассматриваются:

изучение объекта автоматизации.

проведение необходимых научно - исследовательских работ.

разработка вариантов концепции АИС.

оформление отчетов и утверждение концепций.

Глава 2. Выбор средств реализации

2.1 Сравнительный анализ интегрированных сред разработки

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

Необходимо провести сравнительный анализ следующих редакторов разработки кода программного обеспечения: Visual Studio, Lazarus, Qt creator.

2.1.1 Visual Studio

Для создания программного обеспечения: написания кода, анализа качества кода и производительности, тестирования, от планирования до разработки пользовательского интерфейса, развертывания в средах клиентов, откладки и сбора данных телеметрии по использованию необходим набор инструментов, предназначенный для максимально эффективной совместной работы; все они доступны в интегрированной среде разработки (IDE) Visual Studio.

Microsoft Visual Studio (MVS) - это хорошая среда разработки приложений под ОС Windows. Visual Studio включает такие компоненты как Visual Basic, Visual C++, Visual C#, Visual F#, JavaScript.

Создавать веб сайты, используя Visual Studio. Она также идеально подходит для разработки больших проектов. Ей присуще множество положительных черт:

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

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

* её редактор подсвечивает синтаксис и выполняет форматирование кода, что делает код читабельнее. Также редактор MVS способен завершать автоматически некоторые структуры кода.

С каждой новой версией эта среда приобретает все больше и больше полезных функций, но, при этом, становиться все сложнее. Одной из новых функций является отображение открытых файлов в виде вкладок, в связи этого наблюдается очевидная экономия места на экране и скорость и удобство перемещения между открытыми файлам. При этом, если в файл были внесены изменения, но он еще не был сохранен рядом с именем на вкладке появляется символ *. Также новой возможностью при размещении элементов помимо мыши является использования "клавиш со стрелочками". С помощью кнопки Shift можно регулировать размеры по ширине и высоте нажимая на стрелки вниз/вверх, вправо/влево. Невидимые элементы теперь располагаются отдельно. Новой возможностью при работе с Toolbox является то, что единожды добавленные компоненты остаются на нем для всех проектов, вне зависимости от того, используются ли они в них или нет. Оставив комментарий, он немедленно отобразится в списке задач окна Task List с описанием и указанием на строку, в которой был оставлен комментарий. Также есть возможность добавить задачу в список и установить ей приоритет, при этом ставить/снимать галочки, символизирующие выполнение задачи. С помощью Command можно получать и устанавливать значения переменных и свойств элементов управления. Достаточно трудоёмко каждый раз набирать длинные строки, но с помощью ключевого слова alias мы можем назначить псевдоним любой команде.

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

Visual Studio позволяет разрабатывать различных типов приложения, от простых приложений до больших и сложных систем, обслуживающих предприятия и центры обработки данных. Существует возможность создавать: веб-сайты и веб-службы на основе ASP.NET, JQuery, AngularJS и других популярных платформ; приложения и игры, которые выполняются не только на платформе Windows, но и на Android и iOS; игры и графические приложения для разных устройств Windows, включая Xbox, с поддержкой DirectX; приложения для самых разных платформ и устройств, включая, но не ограничиваясь: Office, Sharepoint, Hololens, Kinect и "Интернета вещей".

Позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE,.NET Framework, Xbox, Windows Phone.NET Compact Framework и Microsoft Silverlight.

Microsoft Visual Studio на сегодняшний день является одним из лучших средств разработки приложений. Оболочка позволяет писать расширения, макросы и нестандартные мастера проектов. MVS -- это действительно высококлассная IDE, которой пользуются большинство профессионалов для разработки приложений под ОС Windows [5,6].

2.1.2 MonoDevelop

MonoDevelop IDE - свободная среда разработки, которая предназначена для создания приложений на языках C#, C, C++, Java, Visual Basic.NET, CIL, Nemerle, Boo. MonoDevelop является частью проекта Mono. Изначально это был порт SharpDevelop на Mono/GTK+, но с того времени проект далеко ушёл от своего начального состояния.

Основные возможности MonoDevelop:

Настраиваемая подсветка синтаксиса;

Автоматическое дополнение кода;

Выделение блоков кода с возможностью их сворачивания/разворачивания;

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

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

удобная навигация по коду (навигация по классам, методам, свойствам);

визуальный редактор форм для проектов на Gtk#;

создание нескольких раскладок интерфейса и переключение между ними;

множество стандартных шаблонов проектов;

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

работа с базами данных;

создание приложений с GUI, поддерживающим несколько языков;

интеграция с Subversion для управления исходным кодом;

поддержка NUnit для создания Unit-тестов;

автоматическое создание документации;

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

возможность интеграции с Microsoft Visual Studio и.NET Framework (в среде Microsoft Windows).

MonoDevelop - это интегрированная среда разработки (IDE), поставляемая вместе с Unity. Поддерживает такие языки программирования, как C#, Visual Basic.Net, C, C++ (до версии 4.0 в Windows), Vala.

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

2.2 Qt creator

Qt - кросс-платформенный инструментарий разработчика прикладного программного обеспечения, широко используемый для создания графических интерфейсов. Он написан на C++ и предоставляет мощные расширения этого языка. Также доступны интерфейсы для других языков программирования, таких как Python (PyQt), Ruby (Korundum/QtRuby) и Perl (PerlQt). Существует проект Jambi для Java, но его развитие вскоре будет прекращено.

И так как у нас будет задействована библиотека Qt, то и IDE будет использована от тех же разработчиков, которая разработана специально для работы с этой библиотекой.

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

Библиотека Qt состоит из различных модулей, которые подключаются при помощи директивы #include. В состав входят:

QtCore -- классы ядра библиотеки Qt, они используются другими модулями.

QtGui -- модуль содержит компоненты графического интерфейса.

QtNetwork -- модуль содержит классы для работы с сетью. В него входят классы для работы с протоколами FTP, HTPP, IP и другими.

QtOpenGL -- модуль содержит классы для работы с OpenGL.

QtSql -- содержит классы для работы с различными базами данных с использованием языка SQL.

QtSvg -- содержит классы, позволяющие работать с данными Scalable Vector Graphics (SVG).

QtXml -- классы для работы с XML.

QtScript -- классы для работы с Qt Scripts.

2.3 Выбор системы управления базами данных

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

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

Для разрабатываемой системы будем использовать встраиваемую СУБД, так как:

Наши данные будут размешены на одном ПК вместе с приложением;

Устанавливать полную версию СУБД слишком затратно по памяти;

Работать с приложением будет только один клиент;

Не потребуется синхронизация данных.

Из наиболее известных встраиваемых СУБД которые имеет многолетнюю историю мне знакомы:

2.3.1 Firebird

Firebird (FirebirdSQL) - компактная, кроссплатформенная, свободная система управления базами данных (СУБД), работающая на GNU/Linux, Microsoft Windows и разнообразных Unix платформах. В качестве преимуществ Firebird можно отметить многоверсионную архитектуру, обеспечивающую параллельную обработку оперативных и аналитических запросов, компактность, высокую эффективность и мощную языковую поддержку для хранимых процедур и триггеров.

Среди недостатков: отсутствие кеша результатов запросов, полнотекстовых индексов.

2.3.2 CakePHP 3

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

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

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

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

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

Имена таблиц будут заданы во множественном числе

Имя поля первичного ключа будет id

Имена полей внешних ключей будут основаны на соответствующих именах таблиц с последующим добавлением _id

Важно отметить, что CakePHP 3 позволяет легко переопределить соглашения, принятые по умолчанию.

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

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

Используя преимущества класса ContainableBehavior в CakePHP, вы можете, через ассоциации вашей модели, определить, какие таблицы и поля в вашей базе данных должны быть выбраны с помощью SQL запроса. Благодаря ORM становится легко и быстро создавать сложные SQL запросы на нескольких уровнях вложенности.

Между прочим, класс ContainableBehavior является отличным примером того, как CakePHP может упростить и модернизировать процесс веб-разработки на PHP. Он позволяет искать и фильтровать данные понятным и единообразным способом, а также может помочь увеличить скорость работы приложения и улучшить его общую производительность.

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

Основным моментом здесь является то, что до CakePHP 3, ORM получала бы, по умолчанию, любые связанные таблицы при выполнении запроса.

Одной из потрясающих возможностей CakePHP являются встроенные библиотеки - Компоненты и Хелперы - которые избавляют разработчиков от выполнения многих скучных, повторяющихся и монотонных задач. В контексте MVC, Компоненты помогают улучшить разработку контроллеров, а Хелперы (вспомогательные классы) -- упростить логику и код.

Вот некоторые полезные Хелперы:

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

NumberHelper: предоставляет удобные методы для отображения чисел в различных общепринятых (или собственных) форматах и с разной степенью точности.

информационная система продажа

2.3.3 SQLite

SQLite- компактная встраиваемая реляционная база данных. Исходный код библиотеки передан в общественное достояние. В 2005 году проект получил награду Google-O'Reilly Open Source Awards. Благодаря архитектуре движка возможно использовать SQLite как на встраиваемых системах, так и на выделенных машинах с гигабайтными массивами данных.

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

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

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

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

Максимальная длина любой строки или BLOB поля или ряда;

Максимальная длина SQL выражения;

Максимальное количество колонок в определении таблицы или результате выборки, или индексе, или выражениях с операторами ORDER BY или GROUP BY;

Максимальная глубина разобранного дерева любого выражения;

Максимальное количество термов в объединенном выражении с SELECT;

Максимальное количество инструкция программы виртуальной машины выполняемого SQL выражения;

Максимальное количество аргументов функции;

Максимальное количество присоединенных баз;

Максимальная длина шаблона как аргумента операторов LIKE или GLOB;

Максимальное количество переменных в SQL выражении, которое можно связать;

Максимальная глубина рекурсии триггеров;

Сама библиотека написана на языке Си, но существует большое количество привязок к другим языкам программирования. Таким как C++, Java, C#, VB.NET, Python, Perl, Ruby, Haskell, Scheme, Smalltalk, Parser и также ко многим другим.

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

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

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

Языки программирования делятся на 2 типа:

1. языки низкого уровня

2. языки высокого уровня

Низкоуровневый язык программирования (язык программирования низкого уровня) -- язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (например, Java, Microsoft.NET) процессора. Для обозначения машинных команд обычно применяется мнемоническое обозначение. Это позволяет запоминать команды не в виде последовательности двоичных нулей и единиц, а в виде осмысленных сокращений слов человеческого языка (обычно английских).

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

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

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

2.4.1 C++

Язык программирования С++ был создан в начале 1980-х годов, его создатель сотрудник фирмы Bell Laboratories -- Бьёрн Страуструп. Разработка языка началась в 1979 году. Целью создания C++ было дополнение C возможностями, удобными для масштабной разработки ПО, с сохранением гибкости, скорости и портабельности C.

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

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

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

Каждый элемент С++ заимствовался из других языков отдельно и независимо от остальных элементов (ничто из предложенного С++ за всю историю его развития не было новшеством в Computer Science), что сделало язык чрезвычайно сложным, со множеством дублирующихся и взаимно

противоречивых элементов, блоки которых основаны на разных формальных базах.

Достоинства:

* Высокая совместимость с языком Си;

* Вычислительная производительность;

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

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

* Шаблоны (дают возможность построения обобщённых контейнеров и алгоритмов для разных типов данных);

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

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

К числу недостатков можно отнести:

* Тяжелое наследие;

* Необходимость следить за памятью;

* Сложный синтаксис;

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

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

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

кодирования, но и глубокого понимания принципов работы с памятью, программными объектами, устройствами и абстракциями, с ними связанными. Среди приложений, написанных на C++ или содержащих код на С++, можно увидеть проекты таких крупных компаний, как Apple, Facebook, Google, HP, Microsoft, MySQL Server [12].

2.4.2Ruby

Ruby-динамический, интерпретируемый, высокоуровневый язык программирования.

Ruby начал разрабатываться 24 февраля 1993 года и вышел в свет в 1995 году. Название навеяно языком Perl, многие особенности синтаксиса и семантики из которого заимствовано в Ruby: англ. pearl - «жемчужина», англ. ruby - «рубин». Целью разработки было создание настоящего объектно-ориентированного, лёгкого в разработке, интерпретируемого языка программирования. Этот язык полностью объектно-ориентированный. В нём все данные являются объектами, в отличие от многих других языков, где существуют примитивные типы. Каждая функция - метод. Переменные Ruby содержат не сами объекты, а ссылки на них. Присваивание - это не передача значения, а копирование ссылки на объект. Для программиста, привычного к распространённым гибридным языкам программирования, некоторые эффекты такого решения могут показаться неожиданными.

Имеет лаконичный и простой синтаксис, частично разработанный под влиянием Ада, Эйфель и Python.

Позволяет обрабатывать исключения в стиле Java и Python. Возможно переопределять операторы, которые на самом деле являются методами. Полностью объектно-ориентированный язык программирования. Все данные в Ruby являются объектами в понимании Smalltalk. Единственное исключение -- управляющие конструкции, которые в Ruby в отличие от Smalltalk не являются объектами. Не поддерживает множественное наследование, но вместо него может использоваться концепция «примесей», основанная в данном языке на механизме модулей.

Он работает для всех объектов Ruby, в том числе для внешних библиотек. Создавать расширения для Ruby на Си очень просто частично из-за сборщика мусора, частично из-за несложного и удобного API. Поддерживает замыкания с полной привязкой к переменным. Поддерживает блоки кода. Блоки могут использоваться в методах или преобразовываться в замыкания. Целые переменные в Ruby автоматически конвертируются между типами в зависимости от их значения, что позволяет производить целочисленные математические расчёты с бесконечной точностью. Не требует предварительного объявления переменных, но для интерпретатора желательно, чтобы переменным присваивалось пустое значение nil. Язык использует простые соглашения для обозначения области видимости. Может динамически загружать расширения, если это позволяет операционная система.

Имеет независимую от ОС поддержку невытесняющей многопоточности. Перенесён на множество платформ. Он разрабатывался на GNU/Linux, но работает на многих версиях Unix, DOS, Microsoft Windows, Mac OS, BeOS, OS/2[4].

2.4.3 Java

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

Три ключевых элемента объединились в технологии языка Java:

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

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

Java имеет ряд особенностей. Если исполняемый код, полученный из программ на других распространённых языках, обычно не пригоден для исполнения компьютером "другой платформы", то к исполняемому коду Java такое ограничение не относится. Правда, необходимо, чтобы для "целевой платформы" осуществлялась реализация так называемой Java-машины - среды исполнения JAVA-программ.

Программы на Java транслируются в байт-код Java, выполняемый виртуальной машиной Java (JVM) -- программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.

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

Также рассматриваемому языку программирования свойственны возможности:

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

* расширенные возможности обработки исключительных ситуаций;

* богатый набор средств фильтрации ввода-вывода;

* набор стандартных коллекций: массив, список, стек и т. п.;

* наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI);

* наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;

* встроенные в язык средства создания многопоточных приложений, которые потом были портированы на многие языки (например, python);

унифицированный доступ к базам данных:

* на уровне отдельных SQL-запросов -- на основе JDBC, SQLJ;

* на уровне концепции объектов, обладающих способностью к хранению в базе данных -- на основе Java Data Objects (англ.) и Java Persistence API;

* поддержка обобщений (начиная с версии 1.5);

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

* множество вариантов реализации многопоточных программ.

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

2.4.4 Python

Python - интерпретируемый объектно-ориентированный язык программирования высокого уровня, с динамической типизацией, автоматическим управлением памятью и удобным высокоуровневыми структурами данных, такими как словари, списки, кортежи. Поддерживает классы, модули, обработку исключений, а также многопоточные вычисления. Python обладает простым и выразительным синтаксисом. Язык поддерживает парадигмы программирования: аспектно-ориентированную, функциональную, структурную и объектно-ориентированную. Интерпретатор Python и возрастающая стандартная библиотека находятся в свободном доступе в виде исходников и двоичных файлов, для всех основных платформ и могут распространяться без ограничений. Интерпретатор можно легко расширить с помощью новых функций и типов данных, написанных на С/С++ (или других языках). Также его можно применять как язык расширений для настраиваемых приложений.

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

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

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

Сценарии Python легко могут взаимодействовать с другими частями приложения благодаря различным механизмам интеграции. Эта интеграция позволяет использовать Python для настройки и расширения функциональных возможностей программных продуктов. Интерпретатор Python поставляется вместе со стандартными интернет - модулями, которые позволяют программам выполнять разнообразные сетевые операции как в режиме клиента, так и в режиме сервера. Сценарии могут производить взаимодействия через сокеты, извлекать информацию из форм, отправленных серверным GCI - сценариям, передавать файлы по протоколу FTP, обрабатывать файлы XML, передавать, принимать, создавать и производить разбор писем электронной почты, загружать веб - страницы с указанных адресов URL, производить разбор разметки HTML и XML полученных веб - страниц и многое другое.

Стандартная реализация языка Python написана на переносимом ANSI С, благодаря чему он компилируется и работает практически на всех основных платформах. Этот язык используется таких операционных системах как, Linux и UNIX, Windows, DOS, Mac OS, BeOS, OS/2, VMS и QNX.

В настоящее время существуют три известных среды исполнения для Python: CPython, Jython, Python.NET[5].

2.4.5 PHP

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

Разработка PHP была начата в 1994 г., и вначале выполнялась одним человеком, Расмусом Лердорфом (Rasmus Lerdorf). Этот язык был принят рядом талантливых людей и претерпел три основных редакции, пока не стал широко используемым и зрелым продуктом, с которым мы имеем дело сегодня. К январю 2001 г., он использовался почти в пяти миллионах доменов, в которых в настоящее время используется PHP.

Язык PHP - это продукт с открытым исходным кодом (Open Source). У пользователя имеется доступ к исходному коду. Его можно использовать, изменять и свободно распространять другим пользователям или организациям.

Первоначально PHP являлось сокращением от Personal Home Page, но затем это название было изменено в соответствии с рекурсивным соглашением по наименованию GNU (Gnu`s Not Unix) и теперь означает PHP

Hypertext Preprocessor.

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

PHP исключительно эффективен. Используя единственный недорогой сервер, можно обслуживать миллионы обращений в день. Он обладает встроенной связанностью со многими системами баз данных. В дополнение к MySQL, в числе прочих можно непосредственно подключаться к базам данных PostgreSQL, mSQL, Oracle, InterBase и Sybase. Используя Open Database Connectivity Standart, можно подключаться к любой базе данных, для которых существует ODBC - драйвер. Это распространяется на продукты Microsoft и многих других компаний.

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

Пакет PHP можно можно использовать под управлением многих различных операционных систем. Код PHP можно создавать в среде таких бесплатных Unix - подобных операционных системах, как Linux и FreeBSD, коммерческих версий Unix типа Solaris и IRIX или различных версий Windows.

Вместо рутинного вывода HTML - кода командами языка, скрипт PHP содержит HTML с вкраплениями кода. Код PHP отделяется специальными начальным и конечным тегами <?php и ?>, которые позволяют переключаться в «PHP - режим» и выходить из него.

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

Глава 3 Разработка информационной системы

3.1 Проектирование базы данных

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

Рис. 3.1 - Даталогическая модель (ER-диаграмма) базы данных

Таблица 3.1

Структура таблицы «Товар»(tovar)

Название поля

Описание

Тип поля

Дополнительно

Id

Уникальный идентификатор

int

Автоинкримент, первичный ключ

Name_tovar

Наименование товара

text

Id_tovar

Идентификатор товара

Int

Price

цена

Real

colour

цвет

text

Таблица 3.2

Структура таблицы «модель»(model)

Название поля

Описание

Тип поля

Дополнительно

Id

Уникальный идентификатор

int

Автоинкримент, первичный ключ

Name_model

Название модели

Text

Characteristics

Характеристики

Text

Id_manufacturer

Идентификатор производителя

Int

Таблица 3.3

Структура таблицы «Товар на складе»(Tovar_na_sklade)

Название поля

Описание

Тип поля

Дополнительно

Id

Уникальный идентификатор

int

Автоинкримент, первичный ключ

Id_tovara

Идентификатор товара

Int

Quantity_s

Количество на складе

...

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

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