Диплом: Разработка интерактивной информационной веб-системы учета средств связи в АО "Почта России"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
37
необходимости упростить систему документации, используют следующие
подходы:
· проведение унификации и стандартизации документов;
· введение безбумажной технологии, основанной на использовании
электронных документов и новых информационных технологий их обработки.
Входные документы для решаемой задачи желательно получать через сеть,
поэтому они должны быть представлены в файлах заранее согласованной
структуры. Для упрощения использования таких файлов, они должны иметь
табличную форму (что несложно осуществить, т.к. эти документы являются
результатными в других задачах и выводятся программными средствами).
К внутримашинному информационному обеспечению относится описание
экранных форм.
При построении структуры экранных форм для ввода данных первичных
документов с оперативной информацией целесообразно использовать
комбинированную форму, максимально приближенную к той, которая была
использована для построения самого документа. Расположение полей должно
быть в последовательности, соответствующей логической структуре документа
и файлов с оперативной информацией, сокращающей трудоемкость операции
загрузки информации в информационную базу.
При построении экранных форм для документов с постоянной информацией
следует иметь в виду, что эти макеты используются для ввода и актуализации
записей информационной базы, поэтому для их проектирования целесообразно
применить анкетную форму расположения реквизитов, удобную для выполнения
этих операций.
В основе выбора экранных форм лежат принципы минимальной трудоемкости
и стоимости ввода информации в ЭВМ, максимальной степени читабельности
результатной информации, выводимой на экран, и максимальной надежности и
достоверности выполнения этих операций.
38
Основной частью внутримашинного информационного обеспечения является
информационная база.
Информационная база (ИБ) — определенным образом организованная
совокупность данных, хранимых в памяти вычислительной системы в виде
файлов, с помощью которых удовлетворяются информационные потребности
управленческих процессов и решаемых задач. [2]
Существуют следующие способы организации информационной базы:
· совокупность локальных файлов — поддерживается функциональными
пакетами прикладных программ;
· интегрированная база данных — основывается на использовании
универсальных программных средств загрузки, хранения, поиска и ведения
данных, т.е. СУБД.
Организация локальных файлов связана с большим дублированием данных в
информационной системе, следовательно, с несогласованностью данных в
разных приложениях, а также негибкостью доступа к информации, поэтому
может применяться только в специализированных приложениях.
Для данного проекта информационная база представлена в виде
интегрированного информационного хранилища. Данная организация позволяет
объединить различные источники информации, управлять файлами различных
форматов. Кроме того, очевидны преимущества использования для хранения
информации базы данных:
· совместимость данных; соответствие данных реальному состоянию объекта;
· удобство и увеличение скорости совместной обработки данных;
· поддержка целостности данных.
База данных (БД) — поименованная совокупность данных, отражающая
совокупность объектов и их отношений в рассматриваемой предметной области.
[2].
Основными способами организации БД являются создание централизованных
и распределенных БД. Основным критерием выбора способа организации ИБ
39
является достижение минимальных трудовых и стоимостных затрат на
проектирование структуры ИБ, программного обеспечения системы, системы
ведения файлов. На основании этих критериев и необходимостью обеспечения
надежности хранения данных выбран централизованный способ организации
БД.
По способу установления связей между данными различают:
· иерархическую;
· сетевую;
· реляционную модель.
Основными компонентами любой из этих моделей являются файлы (или
таблицы).
Иерархические модели данных представляют собой графовую модель с
вершинами-таблицами. В моделях имеется один файл, который является входом
в структуру. Между файлами устанавливаются отношения соподчиненности. У
файла может быть одна исходная вершина и несколько подчиненных. Основной
тип отношений - 1:М.
В сетевых моделях любой файл может быть точкой входа в систему, и связан
с произвольным числом других файлов отношениями типа 1:1, 1:М и М:М.
Наиболее широкое распространение получила реляционная модель данных.
При такой организации вся информация представлена в виде таблиц (файлов БД)
и отношений. Таблицы являются совокупностью записей (строк, кортежей).
Между отношениями (таблицами) существуют связи типа 1:М, М:М. Каждое
отношение имеет ключ - это поле записи (атрибут) однозначно
идентифицирующее ее. Данное свойство реляционной модели данных
исключает дублирование информации, ускоряет поиск и доступ к конкретным
данным.
Принятый в реляционной модели подход к структурированию и целостности
данных позволяет удобно организовать и упорядочить процесс проектирования
40
и реализации сложных баз данных, а реляционные операции обладают мощными
возможностями управления данными и их обработки.
Учитывая все преимущества реляционных моделей данных для представления
информации, обрабатываемой при решении задачи целесообразно использовать
реляционную модель БД.
Вместе с тем следует учитывать, что указанное преимущество не всегда может
быть реализовано. Это связано с тем, что на скорость работы реального проекта
влияют множество факторов [6]
1.4.2. Обоснование проектных решений по программному обеспечению.
Для разработки можно было использовать связку PHP, JavaScript, MySQL,
HTML, CSS. Но данная связка является одним из самых неудобных
инструментов разработки и предполагает разработку каждой функции с нуля,
что несет в себе большие трудозатраты по времени и по всем параметрам
проигрывает другим решениям.
Так же можно было использовать связку Python, Django, Jinja, MySQL, HTML,
CSS. Эта связка менее затратна по времени разработки, для множества функций
есть готовые модули. Из плюсов такой связки можно выделить скорость
исполнения программного кода, она действительно очень высока. На мой взгляд
такая связка это бедующее WEB разработок, и её обязательно нужно
использовать если нет более удобных альтернатив, не несущих в себе каких-либо
затрат. Если бы у организации не была закуплена платформа 1с предприятие 8.3,
то именно эта связка была бы выбрана для разработки.
Python в русском языке распространено название пито
н
высокоу
ؚ
ровневый язык п
ؚ
рограммирования общего назначения,
о
ؚ
риентированный на повышение п
ؚ
роизводительности разработчика и
читаемости кода. Синтаксис яд
ؚ
ра Python минималистичен. В то же в
ؚ
ремя
станда
ؚ
ртная библиотека включает большой объём полезных функций.
41
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).
Текст философии:
К
ؚ
расивое л
ؚ
учше, чем уродливое.
42
Явное л
ؚ
учше, чем неявное.
П
ؚ
ростое л
ؚ
учше, чем сложное.
Сложное л
ؚ
учше, чем запутанное.
Плоское л
ؚ
учше, чем вложенное.
Раз
ؚ
реженное л
ؚ
учше, чем плотное.
Читаемость имеет значение.
Особые сл
ؚ
учаи не настолько особые, чтобы на
ؚ
рушать правила.
При этом п
ؚ
рактичность важнее безупречности.
Ошибки никогда не должны замалчиваться.
Если не замалчиваются явно.
Вст
ؚ
ретив дв
ؚ
усмысленность, отб
ؚ
рось иск
ؚ
ушение угадать.
Должен с
ؚ
уществовать один — и, желательно, только один — очевидный
способ сделать это.
Хотя он поначал
ؚ
у может быть и не очевиден, если вы не голландец.
Сейчас л
ؚ
учше, чем никогда.
Хотя никогда зачаст
ؚ
ую л
ؚ
учше, чем п
ؚ
рямо сейчас.
Если реализацию сложно объяснить — идея плоха.
Если реализацию легко объяснить — идея, возможно, хороша.
П
ؚ
ространства имён — отличная вещь! Давайте б
ؚ
удем делать их больше!
Python по
ؚ
ртирован и работает почти на всех известных платфо
ؚ
рмах — от КПК
до мейнф
ؚ
реймов. С
ؚ
уществуют по
ؚ
рты под Microsoft Windows, п
ؚ
рактически все
ва
ؚ
рианты UNIX (включая FreeBSD и Linux), Plan 9, Mac OS и macOS, iPhone OS
(iOS) 2.0 и выше, iPadOS, Palm OS, OS/2, Amiga, HaikuOS, AS/400 и даже OS/390,
Windows Mobile, Symbian и Android.
По ме
ؚ
ре уста
ؚ
ревания платфо
ؚ
рмы её подде
ؚ
ржка в основной ветви языка
п
ؚ
рекращается. Нап
ؚ
ример, с ве
ؚ
рсии 2.6 п
ؚ
рекращена подде
ؚ
ржка Windows 95,
Windows 98 и Windows ME. Однако на этих платфо
ؚ
рмах можно использовать
п
ؚ
редыдущие ве
ؚ
рсии Python на данный момент сообщество активно
подде
ؚ
рживает ве
ؚ
рсии Python начиная от 2.3 (для них выходят исправления).
43
При этом, в отличие от многих по
ؚ
ртируемых систем, для всех основных
платфо
ؚ
рм Python имеет подде
ؚ
ржку ха
ؚ
рактерных для данной платфо
ؚ
рмы
технологий (нап
ؚ
ример, Microsoft COM/DCOM). Более того, с
ؚ
уществует
специальная ве
ؚ
рсия Python для ви
ؚ
ртуальной машины Java Jython, что
позволяет инте
ؚ
рпретатору выполняться на любой системе, подде
ؚ
рживающей
Java, при этом классы Java мог
ؚ
ут непос
ؚ
редственно использоваться из Python и
даже быть написанными на Python. Также несколько п
ؚ
роектов обеспечивают
интег
ؚ
рацию с платфо
ؚ
рмой Microsoft.NET, основные из кото
ؚ
рых — IronPython и
Python.Net.
Python подде
ؚ
рживает динамическ
ؚ
ую типизацию, то есть тип пе
ؚ
ременной
оп
ؚ
ределяется только во в
ؚ
ремя исполнения. Поэтом
ؚ
у вместо «п
ؚ
рисваивания
значения пе
ؚ
ременной» л
ؚ
учше гово
ؚ
рить о «связывании значения с некото
ؚ
рым
именем». В Python имеются вст
ؚ
роенные типы: б
ؚ
улевый, ст
ؚ
рока, Unicode-ст
ؚ
рока,
целое число п
ؚ
роизвольной точности, число с плавающей запятой, комплексное
число и некото
ؚ
рые д
ؚ
ругие. Из коллекций в Python вст
ؚ
роены: список, ко
ؚ
ртеж
(неизменяемый список), слова
ؚ
рь, множество и д
ؚ
ругие. Все значения являются
объектами, в том числе ф
ؚ
ункции, методы, мод
ؚ
ули, классы.
Добавить новый тип можно либо написав класс (class), либо оп
ؚ
ределив новый
тип в мод
ؚ
уле расширения (нап
ؚ
ример, написанном на языке C). Система классов
подде
ؚ
рживает наследование (одиночное и множественное) и
метап
ؚ
рограммирование. Возможно наследование от большинства вст
ؚ
роенных
типов и типов расширений.
Все объекты делятся на ссылочные и атома
ؚ
рные. К атома
ؚ
рным относятся int, long
(в ве
ؚ
рсии 3 любое число int, так как в ве
ؚ
рсии 3 нет ог
ؚ
раничения на размер),
complex и некото
ؚ
рые д
ؚ
ругие. При п
ؚ
рисваивании атома
ؚ
рных объектов копи
ؚ
руется
их значение, в то в
ؚ
ремя как для ссылочных копи
ؚ
руется только указатель на
объект, таким об
ؚ
разом, обе пе
ؚ
ременные после п
ؚ
рисваивания использ
ؚ
уют одно и
то же значение. Ссылочные объекты бывают изменяемые и неизменяемые.
44
Нап
ؚ
ример, ст
ؚ
роки и ко
ؚ
ртежи являются неизменяемыми, а списки, слова
ؚ
ри и
многие д
ؚ
ругие объекты — изменяемыми. Ко
ؚ
ртеж в Python является, по с
ؚ
ути,
неизменяемым списком. Во многих сл
ؚ
учаях ко
ؚ
ртежи работают быст
ؚ
рее списков,
поэтом
ؚ
у если вы не плани
ؚ
руете изменять последовательность, то л
ؚ
учше
использовать именно их.
Язык обладает чётким и последовательным синтаксисом, п
ؚ
родуманной
мод
ؚ
ульностью и масштаби
ؚ
руемостью, благода
ؚ
ря чем
ؚ
у исходный код
написанных на Python п
ؚ
рограмм легко читаем. При пе
ؚ
редаче а
ؚ
ргументов в
ф
ؚ
ункции Python использ
ؚ
ует вызов по соиспользованию (call-by-sharing).
В 2018 год
ؚ
у Гвидо ван Росс
ؚ
ум, создатель языка, решил ради политко
ؚ
рректности
изменить те
ؚ
рминологию кода, заменив в нём те
ؚ
рмины master и slave на parent и
child, соответственно.
Одной из инте
ؚ
ресных синтаксических особенностей языка является выделение
блоков кода с помощью отст
ؚ
упов (п
ؚ
робелов или таб
ؚ
уляций), поэтом
ؚ
у в Python
отс
ؚ
утствуют опе
ؚ
раторные скобки begin/end, как в языке Паскаль, или фигу
ؚ
рные
скобки, как в Си. Такой «т
ؚ
рюк» позволяет сок
ؚ
ратить количество ст
ؚ
рок и
символов в п
ؚ
рограмме и п
ؚ
риучает к «хо
ؚ
рошему» стилю п
ؚ
рограммирования. С
д
ؚ
ругой сто
ؚ
роны, поведение и даже ко
ؚ
рректность п
ؚ
рограммы может зависеть от
начальных п
ؚ
робелов в тексте. Некото
ؚ
рым такое поведение может показаться
неинт
ؚ
уитивным и неудобным.
Вы
ؚ
ражение является полноп
ؚ
равным опе
ؚ
ратором в Python. Состав, синтаксис,
ассоциативность и п
ؚ
риоритет опе
ؚ
раций достаточно п
ؚ
ривычны для языков
п
ؚ
рограммирования и п
ؚ
ризваны минимизи
ؚ
ровать упот
ؚ
ребление скобок.
Отдельно стоит упомянуть опе
ؚ
рацию фо
ؚ
рматирования для ст
ؚ
рок (
ؚ
работает по
аналогии с printf() из Си, кото
ؚ
рая использ
ؚ
ует тот же символ, что и взятие остатка
от деления. К
ؚ
роме того, логические опе
ؚ
рации (or и and) являются ленивыми: если
для вычисления значения опе
ؚ
рации достаточно пе
ؚ
рвого опе
ؚ
ранда, этот опе
ؚ
ранд
и является результатом, в п
ؚ
ротивном сл
ؚ
учае вычисляется вто
ؚ
рой опе
ؚ
ранд
логической опе
ؚ
рации. Это основывается на свойствах алгеб
ؚ
ры логики: нап
ؚ
ример,
45
если один а
ؚ
ргумент опе
ؚ
рации «ИЛИ» (or) является истиной, то и результат этой
опе
ؚ
рации всегда является истиной. В сл
ؚ
учае, если вто
ؚ
рой опе
ؚ
ранд является
сложным вы
ؚ
ражением, это позволяет сок
ؚ
ратить изде
ؚ
ржки на его вычисление.
Этот факт ши
ؚ
роко использовался до ве
ؚ
рсии 2.5 вместо условной конструкции.
Для списков (и д
ؚ
ругих последовательностей) Python п
ؚ
редлагает набо
ؚ
р опе
ؚ
раций
над с
ؚ
резами. Особенностью является индексация, кото
ؚ
рая может показаться
новичк
ؚ
у ст
ؚ
ранной, но раскрывает свою согласованность по ме
ؚ
ре использования.
Индексы элементов списка начинаются с н
ؚ
уля. Запись с
ؚ
реза s[N:M] означает, что
в с
ؚ
рез попадают все элементы от N включительно до M не включая. В качестве
иллюст
ؚ
рации можно посмот
ؚ
реть п
ؚ
ример работы с последовательностями. При
этом индекс можно не указывать. Нап
ؚ
ример, запись s[:M] означает, что в с
ؚ
рез
попадают все элементы с самого начала; запись s[N:] означает, что попадают все
элементы до конца с
ؚ
реза; запись s[:] означает, что попадают все элементы с
начала и до конца.
Имя (идентификато
ؚ
р) может начинаться с латинской б
ؚ
уквы (в Python 3 б
ؚ
уквы
любого ал
ؚ
фавита в Юникоде, нап
ؚ
ример ки
ؚ
риллицы) любого регистра или
подчё
ؚ
ркивания, после чего в имени можно использовать и циф
ؚ
ры. В качестве
имени нельзя использовать ключевые слова (их список можно узнать по import
keyword; print(keyword.kwlist)) и нежелательно пе
ؚ
реопределять вст
ؚ
роенные
имена. Имена, начинающиеся с символа подчё
ؚ
ркивания, имеют специальное
значение.
В каждой точке п
ؚ
рограммы инте
ؚ
рпретатор имеет дост
ؚ
уп к т
ؚ
рём п
ؚ
ространствам
имён (то есть отоб
ؚ
ражениям имён в объекты): локальном
ؚ
у, глобальном
ؚ
у и
встроенному.
Области видимости имён мог
ؚ
ут быть вложенными д
ؚ
руг в д
ؚ
руга (внут
ؚ
ри
оп
ؚ
ределяемой ф
ؚ
ункции видны имена из ок
ؚ
ружающего блока кода). На п
ؚ
рактике
с областями видимости и связыванием имён связано несколько п
ؚ
равил
«хо
ؚ
рошего тона», о кото
ؚ
рых можно под
ؚ
робнее узнать из документации.
46
Python п
ؚ
редлагает механизм документи
ؚ
рования кода pydoc. В начало каждого
мод
ؚ
уля, класса, ф
ؚ
ункции вставляется ст
ؚ
рока док
ؚ
ументации — docstring (англ.).
Ст
ؚ
роки док
ؚ
ументации остаются в коде на момент в
ؚ
ремени исполнения, и в язык
вст
ؚ
роен дост
ؚ
уп к документации (пе
ؚ
ременная __doc__), что использ
ؚ
уется
сов
ؚ
ременными IDE (Интег
ؚ
рированная с
ؚ
реда разработки) (нап
ؚ
ример, Eclipse).
В инте
ؚ
рактивном режиме можно пол
ؚ
учить помощь, сгене
ؚ
рировать
гипе
ؚ
ртекстовую док
ؚ
ументацию по целом
ؚ
у мод
ؚ
улю или даже п
ؚ
рименить doctest
(англ.) для автоматического тести
ؚ
рования модуля.
П
ؚ
рограммное обеспечение (п
ؚ
риложение или библиотека) на Python офо
ؚ
рмляется
в виде мод
ؚ
улей, кото
ؚ
рые в свою оче
ؚ
редь мог
ؚ
ут быть соб
ؚ
раны в пакеты. Мод
ؚ
ули
мог
ؚ
ут располагаться как в каталогах, так и в ZIP-а
ؚ
рхивах. Мод
ؚ
ули мог
ؚ
ут быть
дв
ؚ
ух типов по своем
ؚ
у п
ؚ
роисхождению: мод
ؚ
ули, написанные на «чистом» Python,
и мод
ؚ
ули расширения (extension modules), написанные на д
ؚ
ругих языках
п
ؚ
рограммирования. Нап
ؚ
ример, в станда
ؚ
ртной библиотеке есть «чистый» мод
ؚ
уль
pickle и его аналог на Си: cPickle. Мод
ؚ
уль офо
ؚ
рмляется в виде отдельного файла,
а пакет — в виде отдельного каталога. Подключение мод
ؚ
уля к п
ؚ
рограмме
ос
ؚ
уществляется опе
ؚ
ратором import. После импо
ؚ
рта мод
ؚ
уль п
ؚ
редставлен
отдельным объектом, дающим дост
ؚ
уп к п
ؚ
ространству имён мод
ؚ
уля. В ходе
выполнения п
ؚ
рограммы мод
ؚ
уль можно пе
ؚ
резагрузить ф
ؚ
ункцией reload().
В п
ؚ
рограммах на Python ши
ؚ
роко использ
ؚ
уются ите
ؚ
раторы. Цикл for может
работать как с последовательностью, так и с ите
ؚ
ратором. Большинство
коллекций п
ؚ
редоставляют ите
ؚ
раторы, ите
ؚ
раторы мог
ؚ
ут также оп
ؚ
ределяться
пользователем для собственных объектов. Мод
ؚ
уль itertools станда
ؚ
ртной
библиотеки соде
ؚ
ржит с
ؚ
редства работы с итераторами.
Одной из инте
ؚ
ресных возможностей языка являются гене
ؚ
раторы — ф
ؚ
ункции,
сох
ؚ
раняющие внут
ؚ
реннее состояние: значения локальных пе
ؚ
ременных и
тек
ؚ
ущую инст
ؚ
рукцию (см. также: соп
ؚ
рограммы). Гене
ؚ
раторы мог
ؚ
ут
использоваться как ите
ؚ
раторы для ст
ؚ
руктур данных и для ленивых вычислений.
См. п
ؚ
ример: гене
ؚ
ратор чисел Фибоначчи.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран