Содержание
ВВЕДЕНИЕ………………..........................……………….......................... 3
1 Анализ рынка………………..........................………………................. 4
2 Разработка информационной системы……………….......................... 6
2.1 Информация по языку Python 6
2.2 Философия Python 7
2.3 Сферы применения Python 8
2.4 Анализ языка программирования Python 9
2.5 Проектирование пользовательского интерфейса 10
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ……………………... 14
Программная инженерия (англ. software engineering) – область компьютерных технологий и наук, занимающаяся созданием программных систем. Эти системы могут быть настолько большими и сложными, что для работы и создания нужна сложенная команда разработчиков различных специальностей и квалификаций.
Целью курсовой работы является получение практических навыков в сфере современных информационных технологий и систем. А также изучение способов их создания при анализе рынка товаров и услуг.
Для достижения указанной цели предполагается решение следующих задач:
1. Подбор информации, которая характеризует деятельность выбранного магазина на данном сегменте рынка за некоторый период.
2. Определение основных показателей деятельности выбранного магазина.
3. Прогнозирование показателей деятельности графическими методами.
4. Разработка информационной системы и интерфейса для отдела сбыта магазина сотовой техники с использованием возможностей языка Python.
Объектом исследования данной курсовой работы является магазин мобильной электроники.
Предметом исследования является информационная система для отдела сбыта магазина.
Информационной базой исследований послужили: материалы из книг, интернета, различных научных статей и диссертаций. Методическую основу исследования составляет общенаучный и специальный подход к научному познанию с использованием методов, анализа и синтеза, экономико-математического.
1 Анализ рынка
Сегментом рынка является магазин мобильной электроники.
Данный вид магазинов представляет из себя некий склад мобильной техники, разных компаний, моделей и стоимости. В нём так же имеется большое количество всяких аксессуаров для телефонов.
Для того, чтобы провести анализ динамики цен и построить линию тренда, необходимо собрать информацию о продажах и ценах выбранных товаров за определенных период времени.
Сбор информации был произведён с января по декабрь 2018 года. После этого данные были представлены в табличном виде в Excel, для того чтобы в дальнейшем произвести анализ динамики цен и построить линию тренда.
Линия тренда - это один из способов, который используется при анализе данных. С помощью линии тренда можно составлять прогнозы вперед, назад или в обоих временных направлениях для заданного числа периодов. Все они вычисляются с помощью метода наименьших квадратов. Линией тренда можно дополнить:
1. линейчатые диаграммы;
2. гистограммы;
3. графики;
4. XY (точечные) диаграммы.
Вид линии тренда выбирается после того, как будет построен график на основе данных сводной таблицы путем его сравнения с графиками уравнений (функций), описывающих линии тренда. В зависимости от вводимых данных, мы можем выбрать один из следующих вариантов:
1. линейная;
2. логарифмическая;
3. полиномиальная;
4. экспоненциальная;
5. степенная;
6. скользящая средняя
В данной курсовой работе для построения линии тренда был выбран линейный тип. Линейная линия тренда - это прямая линия, наилучшим образом описывающая набор данных. Она применяется в самых простых случаях, когда точки данных расположены близко к прямой.
Линия тренда рассчитывается по следующей формуле:
y = m*x + b (1)
где m — угол наклона;
В результате прогнозирования изменения цены на товары магазина электроники был получен график цен показанный на рисунке 1.
Рисунок 1 – Динамика цен и линия тренда
Исходя из имеющихся данных, было получено следующее уравнение линии тренда, имеющее вид:
y = 2,7098x + 146,97 (2)
2 Разработка информационной системы
1
Python – высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций.
Python поддерживает структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное программирование. Основные архитектурные черты — динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений, высокоуровневые структуры данных. Поддерживается разбиение программ на модули, которые, в свою очередь, могут объединяться в пакеты.
Эталонной реализацией Python является интерпретатор CPython, поддерживающий большинство активно используемых платформ. Он распространяется под свободной лицензией Python Software Foundation License, позволяющей использовать его без ограничений в любых приложениях, включая проприетарные. Есть реализация интерпретатора для JVM с возможностью компиляции, CLR, LLVM, другие независимые реализации. Проект PyPy использует JIT-компиляцию, которая значительно увеличивает скорость выполнения Python-программ.
Python — активно развивающийся язык программирования, новые версии с добавлением/изменением языковых свойств выходят примерно раз в два с половиной года. Язык не подвергался официальной стандартизации, роль стандарта де-факто выполняет CPython, разрабатываемый под контролем автора языка. В настоящий момент Python занимает третье место в рейтинге TIOBE с показателем 8,5 %. Аналитики отмечают, что это самый высокий балл Python за все время его присутствия в рейтинге.
Разработчики языка Python придерживаются определённой философии программирования, называемой «The Zen of Python» («Дзен Пито́на», или «Дзен Па́йтона»). Её текст выдаётся интерпретатором Python по команде import this (работает один раз за сессию). Автором этой философии считается Тим Петерс (Tim Peters).
Текст философии:
1. Красивое лучше, чем уродливое.
2. Явное лучше, чем неявное.
3. Простое лучше, чем сложное.
4. Сложное лучше, чем запутанное.
5. Плоское лучше, чем вложенное.
6. Разреженное лучше, чем плотное.
7. Читаемость имеет значение.
8. Особые случаи не настолько особые, чтобы нарушать правила.
9. При этом практичность важнее безупречности.
10. Ошибки никогда не должны замалчиваться.
11. Если не замалчиваются явно.
12. Встретив двусмысленность, отбрось искушение угадать.
13. Должен существовать один — и, желательно, только один — очевидный способ сделать это.
14. Хотя он поначалу может быть и не очевиден, если вы не голландец
15. Сейчас лучше, чем никогда.
16. Хотя никогда зачастую лучше, чем прямо сейчас.
17. Если реализацию сложно объяснить — идея плоха.
18. Если реализацию легко объяснить — идея, возможно, хороша.
19. Пространства имён — отличная вещь! Давайте будем делать их больше!
Что касается сферы девопса и тестирования, то Питон является ключевым инструментом профессии, который обязателен для каждого адекватного специалиста. Питон в данном случае не учат, к нему приходят по необходимости.
Наиболее перспективными выглядят сферы веб-разработки и машинного обучения (аналитики), которые явно выделяют питон на фоне его конкурентов в виде PHP и Ruby. И если вы хотите изучить питон, то вам желательно сосредоточится именно на этих сферах и не тратить свое время на что-то другое. Под это есть вакансии, на этом можно построить стартап.
Все остальные сферы, хотя и предлагают определенные инструменты для решения проблем, но перспективность использования этих инструментов выглядит весьма сомнительно. И главное, найти оплачиваемую работу на эти сферы практически невозможно.
Чтобы ответить на этот вопрос, нужно вернуться к истории создания и философии Python. Как отмечалось выше, разработчик языка Гвидо ван Россум захотел создать «пайтон», так как другие языки казались ему слишком сложными и непонятными. Ван Россуму удалось сделать язык, который приносит удовольствие во время обучения и работы.
Python считается одним из лучших и удобных языков для обучения. Значит ли это, что изучать его легко? Скорее нет. Обучение программированию всегда требует дисциплины, прилежания, концентрации.
При выборе первого языка программирования главным преимуществом Python считается простой синтаксис. Среди недостатков можно отметить сложности, которые возникают у начинающих программистов при переходе на языки с более сложным синтаксисом.
Промежуточный итог: если вы только начинаете изучать программирование, Python — отличный выбор.
К плюсам Python, относятся его простота, большое количество библиотек для использования в самых различных областях, бесплатность и поддержка сообществом программистов.
Из минусов языка стоит отметить следующие моменты:
1. Низкая скорость выполнения программ, по сравнению с другими языками. Поначалу, программы на python выполнялись гораздо медленнее, чем аналогичные, написанные на Java или C++, однако эта проблема была решена созданием инструментов, которые переводят код с питона в байт-код (или код на C) и использованием виртуальных машин.
2. Копирование кода. При копировании кода с другого ресурса, в некоторых случаях, он может скопироваться без сохранения отступов. Поэтому код будет невалидным, а Вам придется долго добавлять табуляцию в каждую строчку.
3. Конвертация программы на python в exe. Программы на python имеют расширение *py. Для использования без интерпретатора, например, на Windows, его нужно конвертировать в файл с расширением *exe (для этого можно использовать приложение py2exe). Допустим, у Вас была программа, которое вычисляет три числа и выводит график при помощи MatPlotLib.
4. Unicode и русские символы. Другие программисты когда-то шутили про питонщиков, что единственная их проблема - это Unicode. Действительно, была такая проблема - её решили в Python 2, а в Python 3 её почему-то вернули обратно.
Перед тем как спроектировать логику и структуру системы необходимо определиться с задачами, которые она должна выполнять. В нашем случае система должна выполнять следующие требования:
1. Вводить цены на товар;
2. Сохранять данные в файл с использованием словаря;
3. Расчёт минимальной стоимости товара;
4. Расчёт максимальной стоимости товара;
5. Расчёт средней стоимости товара;
6. Прогнозирование цены на последующие периоды;
В данном случае есть текстовый файл, содержащий в себе словарь с 12 строками где каждая строка отвечают номеру месяца, с ценами за период с января по декабрь 2019 года, который обновляется при вводе пользователем новых цен.
Для прогнозирования цены было использовано уравнение линии тренда, полученное ранее в Excel. В данное уравнение пользователь подставляет значение периода, на который должен быть сделан прогноз, после чего выводится результат, округлённый до сотых.
Интерфейс пользователя, он же пользовательский интерфейс (UI — англ. user interface) — интерфейс, обеспечивающий передачу информации между пользователем-человеком и программно-аппаратными компонентами компьютерной системы.
Интерфейс должен быть наиболее прост и доступен пользователю. Существуют различные виды интерфейсов:
1. Визуальный;
2. Тактильный;
3. Жестовый;
4. Голосовой;
В данном случае был использован текстовый или же интерфейс командной строки.
Текстовый пользовательский интерфейс (англ. Text user interface, TUI) — разновидность интерфейса пользователя, использующая при вводе-выводе и представлении информации исключительно набор буквенно-цифровых символов и символов псевдографики. Характеризуется малой требовательностью к ресурсам аппаратуры ввода-вывода (в частности, памяти) и высокой скоростью отображения информации.
В данной программе он выглядит следующим образом (показано на рисунке 2).
Рисунок 2 – Интерфейс главного меню
Интерфейс содержит 6 пунктов, каждый из которых подробно описан ниже.
1. Ввод данных. Данный пункт позволяет пользователю изменить цену за определённый период времени.
2. Прогноз цены на 3 месяца. Данный пункт меню позволяет сделать прогноз цены на 3 месяца.
Пример работы пунктов 1-3 показан на рисунке 3,4.
3. Минимальная/Максимальная/Средняя цена.
Данные пункты позволяют пользователю рассчитать минимальную, максимальную и среднюю цену за весь период времени. Пример показан на рисунке 4.
4. Выход. Закрывает рабочую программу.
Рисунок 3 – Пример работы пункта 1
Рисунок 4 – Расчёт максимальной стоимости
Рисунок 5 – Расчёт средней стоимости
Рисунок 6 – Расчёт минимальной стоимости
ЗАКЛЮЧЕНИЕ
Python очень гибкий язык, так как он позволяет его пользователям свободно менять его части.
Целью курсовой работы являлось получение практических навыков в сфере современных информационных технологий и систем. А также изучение способов их создания при анализе рынка товаров и услуг.
Сегментом рынка являлся магазин сотовой техники
Чтобы достичь поставленной цели были решены следующие задачи:
1) Была подобрана информация, которая характеризовала деятельность выбранного магазина на данном сегменте рынка за определенный период.
2) Были определены основные показатели деятельности выбранного магазина.
3) Также мы спрогнозировали показатели деятельности с использованием графических методов.
4) И в итоге была разработана информационная система и интерфейс для отдела торговли книжного магазина с использованием возможностей языка Python.
Python является динамическим языком. В отличие от статических языков, подобных C++ или Java, методы и переменные в Python могут быть добавлены или переопределены во время выполнения программы.
Подводя итоги, можно сказать, что язык Python отлично подходит для выполнения поставленной задачи. Все цели были достигнуты.
1. Python. Разработка на основе тестирования. / Персивать Г. пер. с анг. Логунов А.В. – М.: ДМК Пресс, 2018. – 622 с.
2. Django 2 в примерах / Антонио М. пер. с анг. Д. В. Плотниковой. – М.: ДМК Пресс, 2019. – 408 с.
3. Элегантный SciPy / Харриет Д. пер. с анг. А.В. Логунова. – М.: ДМК Пресс, 2018. – 266 с.
4. Изучение сложных систем с помощью Python /Аллен Б. пер. с анг. Д.А. Беликова. –М.: ДМК Пресс, 2019. – 160 с.
5. Изучаем Pandas / Груздев А. пер. с анг.А.В. Груздева. – М.: ДМК Пресс, 2019. – 682 с.
6. Введение в анализ алгоритмов /Майкл С. пер. с анг.А.В. Логунова. – М.: ДМК Пресс, 2019. – 278 с.
7. Введение в рекурсивное программирование /Мануэль Р. пер. с анг.Е.А. Борисова. – М.: ДМК Пресс, 2019. – 436 с.: ил.
8. Анализ социальных медиа на Python / Марко Б. пер. с анг.А.В. Логунова. – М.: ДМК Пресс, 2018. – 288 с.
9. Python. Экспресс-курс. 3-е изд. /Седер Н. – Санкт-Петербург, 2019. – 480с. ISBN 978-5-4461-0908-1