Диплом: Организация корпоративных информационных систем (на примере ООО «Сула»)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
32
• эффективность,
• безопасность,
• выразительность,
• поддержка,
• расширяемость,
• поддержка методов параллельного программирования.
Кроссплатформенность - обеспечивает возможность сборки исходного
кода без его изменения доя различные аппаратные и программные систем. Под
аппаратными системами в первую очередь понимаются системы1 с различными
архитектурами процессора и объемом оперативной/постоянной памяти. Однако
наличие одинаковой аппаратной платформы1 еще не гарантирует
совместимость программного обеспечения. Как правило, современное
программное обеспечение разрабатывается с учетом работы на этой аппаратной
платформе некоторой операционной системы. Для языка программирования
кроссплатформенность означает наличие компилятора дои среды выполнения
под различные аппаратные и программные платформы^
Мультипарадигменность - поддержка языком различные парадигм
программирования, что позволяет писать код продукта в том ключе, который
более удобен доя конкретно решаемой задачи
Так, например, доя программирования общей архитектуры системы
хорошо подходит ООП парадигма, а код алгоритмов часто просто приходиться
писать в императивном стиле на языке низкого уровня, пожертвовав удобством
ради скорости выполнения.
Эффективность
Эффективность выполнения одной и тот же последовательности
операций написанного на различных языках крайне трудно оценить, как
минимум из-за различия в семантике языка однако можно с уверенностью
разделить языки по скорости выполнения генерируемого на их основе
машинного дои байт кода на три класса.
Компилируемые языки
33
Это языки компиляция которых порождает объектный код целевой
платформы. Такой объектный код являет непереносимым, в том плане, что он
предназначен доя исполнения на процессоре тот архитектуры, для которых
компилировала. Таким образом, доя каждой аппаратной платформы может
быть собран объектный код на основе программного кода продукта компилятор
данного языка в объектный код этот аппаратной платформы. Это позволяет.
Компилируемые языки работают быстрее интерпретируемых и
компилирующихся в байт-код.
Языки с компиляцией в байт-код
Такие языки транслируются в промежуточное представление - байт код
виртуальной машины, который можно рассматривать как аналог ассемблера
доя целевой виртуальной машины. Как правдой содержат средства JIT
компиляции, что почти уравнивает их по скорости выполнения с
компилируемыми языками.
Интерпретируемые языки
Программный код написанной на этот категории языков работает
медленнее всего. Причина в том что в случае компиляции в машинный дои
байт код компилятор строит абстрактное синтаксическое дерево на основе всей
информации о программе, которое анализируется и затем оптимизируется.
Интерпретатор лишен возможности проанализировать весь программный код
целиком, он вынужден анализировать команды построчно и интерпретировать
их, каждую в отдельности.
Безопасность
Многие конструкции языка могут содержать потенциальные опасности
их использования. Возможности низкоуровневого доступа к памяти,
преобразование типов операции с указателями, отсутствие обработки
исключений, и встроенной проверки критических ситуаций, такта как выход за
границы массива обращение к неинициализированным данным приводат к
тому, что код становится небезопасным. Во время выполнения такой код может
выполнить недопустимую операцию дои привести к краху ОС Для
34
параллельных программных систем факторами уменьшающими безопасность
кода является отсутствие механизмов синхронизации потоков разделяемых
переменных, атомарных операций и других языковых средств
Выразительность языка
Язык накладывает множество ограничений при
проектировании архитектуры ПО. Языковые конструкции одновременно
ограничивают программиста и в то же время предоставляют ему некоторый
уровень абстракции. Так например, программы, написанные в опеперативном
стиле на ассемблере предоставляют неограниченный контроль над машиной, но
в то же время, код на языке ассемблера труден доя восприятия человеком, его
сложно модифицировать и поддерживать. Это происходит по причине того что
ассемблерные инструкции описывают элементарные операции над данными, в
то время как программист представляет логику работы более абстрактно.
За структурным программированием появились объектно-
ориентированное и др. При всем этом разнообразии рассматриваемые далее
языки за исключением C, относятся к объектно-ориентированному типу но при
этом поддерживают и оперативную и функциональную парадигмы, однако
большинство кода на такта языках пишется в объектно-ориентированном стиле.
ООП парадигма прочно задала свое место в разработке программных систем
благодаря основным принципам: наследованию, инкапсуляции, полиморфизму
и абстрагированию. Так же как все структурные языки имеют реализации
цикла, ветвления, так и все ООП языки так или иначе реализует языковые
средства доя организации сокрытия функционала за некоторым интерфейсом,
полиморфного поведения объектов языке и обеспечения низкой связанности
компонентов. Однако все языки делают это по- своему.
В настоящее время программисты не испытывают недостатка в выборе
средств программирования: существует множество различных языков, как
универсальных, используемых во многих сферах программирования и
способных работать на нескольких аппаратных и программных платформах,
так и специализированные, ориентированные на определенную область
35
разработки, как, например, PROLOG - язык программирования высокого
уровня, предназначенный для реализации систем и программ искусственного
интеллекта. Существует множество различных классификаций языков
программирования: по уровню семантики (языки высокого и низкого уровня),
по используемым парадигмам программирования, по безопасности и по ряду
других характеристик. Совокупность требований к разрабатываемой системе и
определяет выбор средств ее реализации на этапе проектирования;
учитываются требования к ее быстродействию, надежности, информационной
безопасности.
Цель данной работы - провести сравнительный анализ свойств языков
Python и PHP. Условно можно разделить эту работу на две основные части:
- теоретическая часть, содержащая краткий обзор возможностей
языков программирования и сферы их применимости,
- практическая часть, содержащая данные о проведенном
эксперименте с приведением кода программ, выполняющих аналогичные
действия, написанных на исследуемых языках, выходные данные и их
непосредственный анализ, включающий сравнительную характеристику
времени выполнения программы, объем исполняемых файлов и нагрузку на
память ЭВМ.
В результате по полученным данным можно сделать обобщенный вывод
о характеристиках языков и степени их различия.
Одним из распространенных средств разработки является
высокоуровневый язык программирования Python. Python имеет поддержку
различных парадигм программирования (структурного,
объектноориентированного функциональное и других); в нем используется
динамическая типизация переменных, обеспечивается периодическое
освобождение памяти от неиспользуемых объектов. Python обладает
достаточно лаконичным синтаксисом, с более высоким уровнем абстракции, по
сравнению с PHP, и позволяет передать такое же количество информации в
меньшем объеме исходного кода.
36
Python является языком общего назначения, поэтому может применяться
практически в любой области разработки ПО (standalone, клиент-сервер, Web-
приложения) и в любой предметной области. Кроме того, Python легко
интегрируется с уже существующими компонентами, что позволяет внедрять
Python в уже написанные приложения. [1]
Также Python обладает развитой системой модулей, как стандартных,
также написанных на Python, а, следовательно, обладающих теми же
преимуществами, такими как кроссплатформенность, и позволяющих
реализовывать наиболее общие задачи, так и специфических, применяемых в
том случае, когда необходимо решать более широкий круг задач.
В среду исполнения Python входит только интерпретатор, который
одновременно является и компилятором, однако компилирует исходный код
Python непосредственно в машинный код целевой платформы. Существуют три
известных реализации среды исполнения для Python: CPython, Jython и
Python.NET. [1]
Ввиду широкого ряда функциональных возможностей Python может
использоваться в самых различных сферах; с его помощью можно
осуществлять разработку web-приложений, автоматизированных
информационных систем, научных вычислительных комплексов, графических
пакетов.
PHP - язык программирования общего назначения, созданный
преимущественно для работы над web- приложениями, для генерации HTML-
страниц и работы с базами данных. PHP обладает Си-подобным синтаксисом,
также является мультипарадигмальным и кроссплатформенным, ядро PHP
также реализует средства для автоматического управления памятью; вся
выделенная память возвращается системе после завершения работы скрипта [2].
Динамические библиотеки PHP предоставляют широкие возможности
для работы с базами данных, поддерживается DBX для работы на абстрактном
уровне, стандарт ODBC; осуществляется коммуникация с использованием
различных протоколов (IMAP, SNMP, POP3, HTTP и другие); также PHP
37
обеспечивает работу с сокетами, динамической графикой, криптографическими
библиотеками. [3]
Наиболее широкое применение PHP находит при разработке web-
приложений: подавляющее большинство сайтов и сервисов разработано именно
с его помощью. Множество различных web- фреймворков и CMS-систем имеет
в своей основе именно PHP.
Итак, Python и PHP в целом имеют схожие исходные характеристики.
Необходимо рассмотреть их возможности при реализации конкретной задачи.
По быстродействию программа, написанная на Python, уступает
аналогичной на PHP в 3,5 раза, однако, загружает память в 1,5 раза меньше.
Необходимо подчеркнуть, что приведенные данные носят приближенный
характер ввиду возможных погрешностей измерения характеристик при
использовании методов с ограниченной точностью. Тем не менее они
позволяют дать общее представление о производительности кода и в
соответствии с поставленными задачами и требованиями, предъявляемыми к
ним, сделать выбор в сторону того или иного языка. Можно также выделить,
что PHP оправданно широко используется в web-программировании, учитывая
скорость выполнения его скриптов. В целом полученные результаты
соответствуют известным раннее выводам о характеристиках данных языков.
Следовательно, для реализации рассмотренной ИС выбираем язык
программирования php.
2.2 Описание программного обеспечения автоматизированной
информационной системы
В системе используются следующие входные документы:
Заявка на оказание услуг;
Список монтажных бригад;
Список водителей и автомашин;
Список должностей;
38
Список оказываемых услуг;
Список районов города;
Список работ.
Описание входных документов приведено в таблице 5.
Таблица 4 - Описание входных документов
Наименование
Реквизитный состав
Заявка на оказание услуг
Дата;
Наименование услуги;
Адрес.
Список монтажных бригад
ФИО;
Должность;
Разряд;
Табельный номер
Список водителей и автомашин
ФИО водителя;
Марка и госномер автомобиля.
Список должностей
Наименование должности
Список оказываемых услуг
Наименование услуги
Список районов города
Наименование района;
Удаление от склада в км;
Время , затрачиваемое на дорогу
Список работ
Наименование работы
Все документы могут поступать как бумажной, так и в электронной
формах.
В системе используются справочники, приведенные в таблице 6.
Таблица 5 - Перечень используемых справочников
Название
справочник
а
Ответственный
за ведение
Средний
объём
справочник
а в записях
Средняя
частота
актуализаци
и
Средний
объем
актуализации
, %
Водители
Администратор
разрабатываемо
й ИС
100
1 раз в месяц
10
Должности
Администратор
разрабатываемо
й ИС
10
1 раз в месяц
10
Инструмент
Администратор
разрабатываемо
й ИС
50
1 раз в месяц
10
39
Продолжение таблицы 5
Название
справочник
а
Ответственный
за ведение
Средний
объём
справочник
а в записях
Средняя
частота
актуализаци
и
Средний
объем
актуализаци
и, %
Расходные
материалы
Администратор
разрабатываемо
й ИС
500
1 раз в неделю
25
Услуги
Администратор
разрабатываемо
й ИС
50
1 раз в неделю
25
Район
Администратор
разрабатываемо
й ИС
50
1 раз в неделю
25
Работы
Администратор
разрабатываемо
й ИС
500
1 раз в неделю
25
Оборудован
ие
Администратор
разрабатываемо
й ИС
50
1 раз в неделю
25
Сотрудники
Администратор
разрабатываемо
й ИС
50
1 раз в неделю
25
Справочник Водители включает в себя следующие реквизиты:
Фамилия
Имя и отчество
Номер и серия ВУ
Наименование автомобиля
Номер машины
Дата регистрации
Справочник Должности включает следующие реквизиты:
Краткое наименование
Наименование
Справочник Инструмент включает следующие реквизиты:
Наименование
Марка (модель)
В наличии
Выдано
40
Справочник Расходные материалы включает следующие реквизиты:
Тип
Марка (модель)
В наличии
Выдано
Справочник Услуги включает следующие реквизиты:
Краткое наименование
Наименование
Справочник Район включает следующие реквизиты:
Наименование
Краткое наименование
Расстояние
Время в дороге
Справочник Работы включает следующие реквизиты:
Краткое наименование
Наименование
Нормативное время для исполнения
Справочник Оборудование включает следующие реквизиты:
Наименование
Описание
В наличии
Выдано
Справочник Сотрудники включает следующие реквизиты:
Фамилия
Имя и отчество
Табельный номер
Код должности
Разряд
41
Логин
Пароль
Дата регистрации
Оперативной является информация о заявках на выполнение услуг, а
также о нарядах, формируемых для выполнения заявок. Данная информация
хранится в соответствующих таблицах, таких , как Заявки и Наряд. Структура
реквизитов таблиц представлена ниже.
Реквизиты Таблицы Заявки:
ФИО принявшего заявку
Имя и отчество
Наименование услуги
Район
ФИО выполнившего сотрудника
Время исполнения
Дата выполнения
Примечание
В состав таблицы Наряды входят следующие реквизиты:
Номер наряда
Район
Номер заявки
ФИО исполнителя
ФИО водителя
Госномер и марка автомобиля
Дата выдачи
ФИО сформировавшего наряд
В результате решения задачи формируются результатные документы,
описание которых приведено в таблице 6.

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

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Agile-методология в управлении проектами на примере ООО «Ресурсный центр «Академия КлассИнфо»
Aвтoмaтизaция пpoцecca вeдeния инфopмaциoннoй бaзы o дoлжнocтяx и вaкaнcияx c укaзaниeм тpeбoвaний к уpoвню знaний и нaвыкoв кaндидaтoв для гpуппы кaдpoв вoйcкoвoй чacти 3474»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
Cовершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)
Event - менеджмент: реализация проекта (на примере ООО "АГРОПАК")