Как написать программу автоматизации

Глава I. Теоретические основы создания системы автоматизации деятельности таксопарка 4

1.1 Анализ деятельности таксопарка 4

1.2 Анализ существующих программ автоматизации деятельности диспетчера такси 6

1.3 Выбор жизненного цикла автоматизированной информационной системы 7

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

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

Глава II. Разработка программы для автоматизации деятельности таксопарка 11

2.1 Анализ требований заказчика 11

2.2 Проектирование системы автоматизации деятельности таксопарка 12

2.3 Создание программы «Автоматизированное рабочее место диспетчера такси» 19

Список литературы 23

Введение

До появления программ такого типа, все сведения о заказах, водителях и других производственных данных записывались на бумагу и как следствие могли содержать ошибки (неправильный номер дома или улицы, цена заказа и т.д.) или просто потеряться. АРМ диспетчера такси вносит сведения и базу данных о заказах и сотрудниках и может брать оттуда данные о районах, улицах и домах расположенных на этих улицах, что исключает такого рода ошибки. Специальных блок (не во всех программах) рассчитывает расстояние от пункта отправки до пункта назначения и умножает его на стоимость за 1 км, что дает однозначную цену заказа. Еще в некоторые АРМ можно вводить схемы маршрутов, по которым должны двигаться водители (чтобы не дать возможность «левого заработка»)

Программа для автоматизации действий Tinytask?

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

Сегодня на рынке существует несколько аналогичных программных продуктов: … Software 123 их программа АРМ диспетчера такси 2.0

F-Groupe Software их программный комплекс «Диспетчер такси»

Fastsoft их программа Диспетчер такси Стандартная версия (1.0.0.0)

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

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

Проанализировать существующие аналоги автоматизации деятельности диспетчера такси;

Выбрать СУБД и язык программирования;

Построить структуру СУБД;

Согласовать интерфейс с заказчиком;

Написать программный код;

Глава I. Теоретические основы создания системы автоматизации деятельности таксопарка

1.1 Анализ деятельности таксопарка

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

Заказы поступают по телефону к диспетчеру, он записывает необходимые данные в базу заказов. Дата и время поступления заказа диспетчер вводит сам или вводиться автоматически.

Клиент может сразу у диспетчера узнать стоимость заказа, и только потом заказывать.

Автоматизированная информационная система учёта заказов | База Данных СТО (C#)

Потом из списка свободных водителей выбирает того, кто будет выполнять заказ (если в машинах встроены маяки выбирает того кто ближе к месту), или водитель сам отвечает по обратной связи, что примет заказ. После подтверждения водителем диспетчер ставит водителю статус «Занят», точнее это происходит автоматически, когда статус заказа «Выполняется», потому что в бланке каждого заказа ставиться исполнитель.

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

В случае, когда заказ отменяется, клиент попадает в «Чёрный список», то есть он не имеет право пользоваться услугами данного таксопарка. Диспетчер вносит имя того водителя, который должен был выполнять отмененный заказ в специальный список, который регламентирует по чьей вине заказ сорвался.

Например: водитель опоздал на время назначенное клиентом, и вследствие услуги такси стали неактуальными, в таком случае водитель пишет объяснительную записку, но это не спасает его от взысканий. Может быть так, что клиент просто передумал, но не предупредил диспетчера, в таком случае водитель всё равно пишет объяснительную записку, но никаких взысканий к нему не применяется. В этих случаях водитель сам оповещает диспетчера о том, что заказ аннулирован. Еще может быть случай, когда клиент передумал, но предупредил диспетчера, тот связывается с водителем и перенаправляет его на другой заказ. Во всех случаях статус заказа ставиться «Отменен».

Читайте также:
Какое расширение имеют файлы программы excel

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

Эти отчеты поступают к администратору, на основании этого всего администратор формирует общий отчет (сводный отчет) за определенную дату.

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

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

Проблемы, которые могут возникнуть при осуществлении данной деятельности такие:

Потеря данных диспетчером, или неправильная их трактовка.

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

Не корректная форма представления отчетов и т.д.

Пути решения этих проблем могут быть следующие:

Использование стандартных форм для заполнения данных и ввода/вывода отчетов

Использование систем ГИС и математических формул для определения оптимальных маршрутов из пункта в пункт и их стоимости

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

Источник: studfile.net

автоматизация

Автоматизация (ранее известная как OLE-автоматизация) позволяет одному приложению управлять объектами, реализованными в другом приложении, или выделять объекты для управления.

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

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

  • Автоматизация (локальная).
  • Удаленная автоматизация (через сеть с использованием DCOM).

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

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

Особое значение имеет поддержка, предоставляемая автоматизацией пользователям и поставщикам решений. За счет доступа к функциональным возможностям приложений через стандартный и четко определенный интерфейс автоматизации позволяет создавать комплексные решения на одном общем языке программирования, например Visual Basic, а не прибегать к различным связанным с конкретными приложениями макроязыкам.

Многие коммерческие приложения, например Microsoft Excel и Microsoft Visual C++, допускают автоматизацию большей части своих функциональных возможностей. Например, в Visual C++, можно написать макросы VBScript для автоматизации построений, аспектов редактирования кода или задач отладки.

Передача параметров в автоматизации

Одна из сложностей при создании методов автоматизации заключается в обеспечении согласованного безопасного механизма для передачи данных между серверами и клиентами автоматизации. Для передачи данных автоматизация использует тип VARIANT . Тип VARIANT является помеченным объединением. У него есть элемент данных для значения (это анонимное объединение C++) и элемент данных, указывающий тип сведений, хранящихся в объединении. Тип VARIANT поддерживает ряд стандартных типов данных: 2- и 4-байтовые целые числа, 4- и 8-байтовые числа с плавающей запятой, строки и логические значения. Кроме того, он поддерживает типы HRESULT (коды ошибок OLE), CURRENCY (числовой тип с фиксированной запятой) и DATE (абсолютные дата и время), а также указатели на IUnknown интерфейсы и IDispatch .

Читайте также:
Какой программой сжать видео для телефона

Тип VARIANT инкапсулирован в класс COleVariant . Поддерживаемые классы CURRENCY и DATE инкапсулированы в классы COleCurrency и COleDateTime .

Примеры автоматизации

  • AUTOCLIK Используйте этот пример, чтобы освоить приемы автоматизации и изучить основы удаленной автоматизации.
  • ACDUAL Добавляет сдвоенные интерфейсы в приложение сервера автоматизации.
  • CALCDRIV Приложение клиента автоматизации для реализации MFCCALC.
  • INPROC Демонстрирует приложение внутрипроцессного сервера автоматизации.
  • CALCDRIV Приложение клиента автоматизации для реализации INPROC.
  • MFCCALC Демонстрирует приложение клиента автоматизации.

Что вы хотите узнать больше о

  • Клиенты службы автоматизации
  • Серверы автоматизации
  • OLE
  • Active — технология

Что Вы хотите делать

  • Добавление класса автоматизации
  • Использование библиотек типов
  • Доступ к серверам автоматизации
  • Написание клиентов автоматизации на C++

Источник: learn.microsoft.com

Как разработать приложение для автоматизации почти не умея программировать. Придется выучить IDE…

Хочешь создать свой проект в «железе», который перевернет мир с ног на голову? Или автоматизировать управление светом в коридоре. При этом ты не специалист в программировании микроконтроллеров, но разобрался с arduino и тем как моргать её светодиодами и только узнал о полевых транзисторах, симисторах, 1-Wire. Теперь хочешь управлять всем этим хозяйством и предоставить доступ через интернет и хранить данные в облаке.

Или ты дружишь с паяльником, гуру программирования ПЛК, снифишь PDU в modbus. Но компьютер с Windows и SCADA слишком дорог для проекта или не подходит почему-то еще… И хочется запускать программу на одноплатном компьютере Raspberry PI с доступом к ее переферии GPIO, I2C.

Методы визуального программирования

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

Блок-схемы/Дружелюбный русский алгоритмический язык, который обеспечивает наглядность(ДРАКОН)/Р-схемы и т.п. Что я отлично запомнил по программированию в школе и первых курсах института, так это блок-схемы. Рисование блок-схем подходят для занятий студентов, чтобы как и у солдат, все свободное время было занято работой.

Еще одно их применение — обучение программированию на листе бумаге. Ну и наконец, кто-то работает и рисует такие диаграммы, чтобы сдать госпроект по ЕСПД/ГОСТ. Посочувствуем им!

CASE инструментарий — сотни их за заоблачные деньги и часто с сомнительной пользой. Особенно много таких систем используется архитекторами ПО и баз данных.

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

Язык релейно-контактной логики. Этот язык должен быть близок инженерам и тем кто программирует ПЛК. Программирование лифта — один из типичных примеров использования.

Среда визуального программирования LabVIEW позволяет делать достаточно сложные системы визуально и тесно связана с аппаратным обеспечением National Instruments. Понравился пример того как AndreyDmitriev в комментариях на хабре реализовали задачу в визуальном редакторе для сравнения сложности с Delphi решением и обзор LabVIEW. В эту же категорию попадает и Simulink для Matlab, как подсказали в комментариях.

Reactive Blocks

В этой же статье про Reactive Blocks используется модифицированная UML диаграмма деятельности, которая приспособлена под компоненты проекта и из которой генерируется код. Разработчики сделали plugin для Eclipse со своей моделью, анализатором схем и событиями компонент.

Проект доступен бесплатно для open source проектов, с вполне логичным ограничением. Все созданные вами в IDE Building Blocks станут доступными всем под open source лицензией.

Идеология Reactive Blocks

Это визуальное конструирование приложения из готовых существующих кирпичиков — building block, которые скрывают всю сложность взаимодействия с «железом» и облачными сервисами.

Читайте также:
Что представляет собой программу или комплекс программ

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

Так же как и не стоит делать из диаграммы — спагетти диаграмму из сотни и тысяч элементов. В этом случае можно поддиаграмму оформить в виде точно такого компонента-строительного блока. В случае open source решения, вы публикуете свой блок, чтобы сообщество также могло использовать его в своих проектах.

Есть возможность автоматически упаковать свое приложение в пакет (OSGI bundle) для платформы Eclipse Kura. Тогда возможен перезапуск приложения без перезапуска контейнера, доступна консоль для администрирования, а также множество сервисов этой IoT платформы и вся мощь существующих компонентов и запускать это на Raspberry PI или Beagleboard Black.

Установка Reactive Blocks

Есть вариант скачать специальную сборку eclipse+Reactive Blocks сразу готовую к запуску со страницы для Windows, Mac OS X или Linux. Другой вариант, если у вас есть установленный Eclipse Neon(4.6)/Mars(4.5)/Luna(4.4)/Kepler(4.3) — нужно указать Update-Site и установить плагин.

В любом случае для сборок Linux, основанных на debian, нужно установить пакет libwebkitgtk-1.0 перед запуском среды разработки:

sudo apt install libwebkitgtk-1.0

Для использования в готовой сборке JDK, отличной от доступной в системе по-умолчанию, нужно добавить строчки в файл reactiveblocks.ini:

-vm PATH_TO_YOUR_JDK/bin/java

Знакомство с Reactive Blocks

Для доступа к серверу компонент пришлось пройти авторизацию и аутентификацию с помощью Google аккаунта.

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

Мне показался очень интересным пример сигнализации на RaspberryPI с использованием акселерометра.

Поигравшись с разными примерами, посмотрев на содержимое Building Blocks под капотом. Особенно интересно было обнаружить там уже знакомую мне библиотеку OpenIMAJ.

Лично для себя я не нашел преимуществ Reactive Blocks по сравнению с разработкой под Apache Camel с его компонентами rhiot и возможностями визуализации. Про что скоро опубликую пост и даже рабочий пример уже готов! В своей публикации на хабре Управляем автоматом на Groovy/Java. Как ЧПУ станку в домашней мастерской не превратиться в мульт героев «двое из ларца» я использовал Apache Camel для управлением ЧПУ станком.

Попытка скрестить BeagleBoard Black GPIO с Reactive Blocks была безуспешной.

Так как библиотека для работы с GPIO SilverThings/bulldog не смогла работать в режиме обработки прерывания. Можно конечно опрашивать порт ввода в цикле — но это как-то не правильно. Завел багрепорт #96 для этой библиотеки.

Встроенные в процессор BeagleBoard Black RPU подходят для real time задач где не место java с ее GC STW паузами.

Для java программистов, в отличии от инженеров по электронике, возникают мысли по практическому использованию Bitreactive IDE в сложных проектах и надо разбираться:

  • как происходит одновременная работа над одной диаграммой нескольких человек;
  • как происходит рефакторинг проекта с множеством диаграмм;
  • зачем было делать свой сервер для хранения компонент, когда уже есть maven совместимые репозитарии;
  • как увидеть diff для разных версий диаграммы?
  • как разрабатывать тесты и делать mock для компонент. Вроде как есть генерация для jUnit, но надо углубляться в практику тестирование реальных приложений.

Выводы

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

Это решение больше подойдет для инженеров не специалистов в ПО, которые не хотят вникать в тонкости программирования на java, но хотят использовать всю мощь существующих компонент для связи с «облачными» сервисами IoT, мультимедиа и работы с java библиотеками, обернутыми в building block.

  • Программирование
  • Java
  • Разработка для интернета вещей

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru