Учёт движения поездов по железной дороге

СОДЕРЖАНИЕ

			

				Введение

				1. Анализ разрабатываемого программного продукта

				Описание предметной области «Железная дорога»

				Анализ используемого прикладного ПО

				Вид и классификация инструментальных средств, которые используются для создания прикладного ПО

				2. Проектирование программной системы

					Описание требований к системе

					Структура системы

				3. Реализация системы контроля движения железнодорожных поездов

				3.1 Описание разработанной системы, техническое обеспечение

				3.2 Организация взаимодействия клиентской программы с БД

				3.3 Разработка интерфейса пользователя

				3.4 Особенности запуска и работы с программой

				Выводы

				Список использованной литературы

				Приложения А

			
1. АНАЛИЗ РАЗРАБАТЫВАЕМОГО ПРОГРАММНОГО ПРОДУКТА

			

				Описание предметной области «Железная дорога»

				

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

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

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

			Свободный доступ к информации;

			Удобный и понятный для пользователя интерфейс приложения;

			Возможность редактировать базу данных в соответствии с текущим расписанием;

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

			Возможность заказывать билет через Интернет;

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

			Глоссарий предметной области

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

			Поезд — это сформированный и сцеплённый состав вагонов с одним или несколькими действующими локомотивами или моторными вагонами, имеющий установленные сигналы.

			Железнодорожная станция — объект железнодорожного транспорта, имеющий путевое развитие, позволяющее производить операции по приёму, отправке, скрещению и обгону поездов.

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

			Пассажирская железнодорожная станция предназначена для осуществления операций по обслуживанию пассажиров и организации движения пассажирских поездов

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

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

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

			Как правило, вокзалы встречаются на крупных железнодорожных станциях; в здании вокзала обычно размещают кассы, камеры хранения, зал ожидания, рестораны и т. д.

			Пассажир — человек, который не является членом экипажа и который перевозится транспортным средством в соответствии с гласным или негласным договором перевозки на каком-либо виде транспорта.

			

			Анализ используемого прикладного ПО

			

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

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

			Поэтому принято считать, что уже исходя из этого разрабатываемое Windows- приложение не является «бесполезным», потому как имеет одну четко сформировавшуюся цель и место применения. Вероятное использование данного продукта – терминалы на базе операционных систем семейства Windows любых железнодорожных вокзалов, либо официальные сайты с данным приложением, чтобы клиент имел свободный доступ к интересующей информации. Данная программа, используя стандартные компоненты, с успехом будет работать в ОС-ах Windows’98, 2000, ХР, не требуя при этом дополнительных инсталляций программного обеспечения.

			

			Вид и классификация инструментальных средств, которые используются для создания прикладного ПО

			

			Delphi – результат развития языка Turbo Pascal, который, в свою очередь, развился из языка Pascal. Pascal был полностью процедурным языком, Turbo Pascal начиная с версии 5.5 добавил в Pascal объектно-ориентированные свойства, а Delphi – объектно-ориентированный язык программирования с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, и воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию. Также отличительным свойством Delphi от С++ является отсутствие возможности располагать объекты в стеке (объекты, унаследованные из Turbo Pascal, располагаться в стеке могут) – все объекты попадают в динамически выделяемую область.

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

			Под базой данных (БД) обычно понимается именованная совокупность данных, отображающая состояние объектов и их отношений в рассматриваемой предметной области. Характерной чертой баз данных является постоянство: данные постоянно накапливаются и используются; состав и структура данных, необходимых для решения тех или иных прикладных задач, обычно постоянны и стабильны во времени; отдельные или даже все элементы данных могут меняться – но и это есть проявление постоянства – постоянная актуальность.

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

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

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

			Мощность и гибкость Delphi при работе с базами данных основана на низкоуровневом ядре – процессоре баз данных Borland Database Engine (BDE). Его интерфейс с прикладными программами называется Integrated Database Application Programming Interface (IDAPI). В принципе, сейчас не различают эти два названия (BDE и IDAPI) и считают их синонимами. BDE позволяет осуществлять доступ к данным как с использованием традиционного record-ориентированного (навигационного) подхода, так и с использованием set-ориентированного подхода, используемого в SQL-серверах баз данных. Кроме BDE, Delphi позволяет осуществлять доступ к базам данных, используя технологию (и, соответственно, драйверы) Open DataBase Connectivity (ODBC) фирмы Microsoft. Но, как показывает практика, производительность систем с использованием BDE гораздо выше, чем оных при использовании ODBC. ODBC драйвера работают через специальный “ODBC socket”, который позволяет встраивать их в BDE. Все инструментальные средства баз данных Borland - Paradox, dBase, Database Desktop - используют BDE. Все особенности, имеющиеся в Paradox или dBase, “наследуются” BDE, и поэтому этими же особенностями обладает и Delphi.

			
2. ПРОЕКТИРОВАНИЕ ПРОГРАММНОЙ СИСТЕМЫ

			

			2.1 Описание требований к системе

			

			Пассажир является действующим лицом данной системы. Ориентируясь на его потребности, можно предположить, что от разрабатываемой системы ему необходимы обеспечение возможности заказа/покупки билета и информация по расписанию. Заказ или покупка билета включает в себя сведенья о количестве мест в поезде всего, количестве бронированных мест и стоимости билета, также возможность получить дополнительную информацию по расписанию. Информация по расписанию включает в себя сведенья о номере рейса, названии начальной точки отправления (вокзала), конечной станции, времени отправления, времени прибытия. Данные требования можно представить в виде диаграммы прецедентов (рисунок 1).

			

			

				Рисунок 1 – Диаграмма прецедентов

				

				Описание структурных единиц информации

				В БД имеются 3 таблицы, в которых хранятся следующие сведения:

				Компании

				Индивидуальный номер компании

				Название компании

				Город базирования

				Станции

				Индивидуальный номер станции

				Название вокзала

				Населенный пунк

				Рейсы

				Индивидуальный номер рейса

				Количество мест

				Бронированные места

				Дни следования

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

			Входная и выходная информация

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

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

			Переход состояний

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

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

			ER-модель является одной из самых простых визуальных моделей данных. Она позволяет обозначить структуру «крупными мазками», в общих чертах. Это общее описание структуры называется ER-диаграммой или онтологией выбранной предметной области.

			

			

			Рисунок 2 –Диаграмма состояний

			

			2.2 Структура системы

			

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

				Для создания БД необходимо построить так называемую ER- диаграмму в виде совокупности связей, сущностей и атрибутов, изображенных в виде диаграммы ER –типов (рис.3).

				

				

				Рисунок 3 – Диаграмма ER-типов

				На данной диаграмме (см.рис. 3) описаны три сущности : Кампания, Рейс, Станция. Класс принадлежности этих сущностей – обязательный. Связь 1 – m:n. Связь 2 – n:m.

				Окончательный набор таблиц

				Для такой схемы обычно создаётся 5 таблиц, но есть возможность сократить количество таблиц с помощью приложения DataBase Desktop, создав таблицы Paradox.

			Paradox – это таблицы, а не базы данных. У Paradox в одном файле храниться одна таблица. К тому же индексы хранятся отдельно от таблицы, что накладывает определённые неудобства.

				Итак, база данных будет состоять из трех таблиц. В первой будут следующие поля (после тире стоит тип поля, а в скобках размер):

			Ключ 1 – autoincrement (ключевое)

			Индивидуальный номер – short

			Название компании – alpha (размер 15)

			Город базирования – alpha (размер 15)

			Соответственно 2-я:

			Ключ 1 – autoincrement (ключевое)

			Ключ 2 – Integer

			Индивидуальный номер – short

			Название вокзала – alpha (размер 15)

			Населенный пунк – alpha (размер 15)

			Наконец 3-я:

			Ключ 2 – autoincrement (ключевое)

			Ключ 3 – Integer

			Индивидуальный номер – short

			Количество мест – short

			Бронированные места – short

			Дни следования – alpha (размер 15)

			«Ключ 1» – это будет уникальное ключевое поле в обеих таблицах, поэтому поставить значок ключевого. «Ключ 2» во второй таблице будет связан с «Ключ 1», а «Ключ 3» – будет связан с таблицей 2 по «Ключ 1». Называются таблицы Companies.db, Stations.db и Flights.db. Для связи таблиц между собой можно сделать следующее, открыть таблицу Stations.db и из меню Table выбрать пункт Restructure. Должно открыться окно, которое уже было при создании полей таблицы (рисунок 4).

			

			

			Рисунок 4 – Окно редактирования полей таблицы Paradox

			

			Теперь в этом же окне можно вносить изменения, а именно добавлять индекс. В выпадающем списке Table properties выбрать Secondary Indexes (дополнительные индексы) и нажать кнопку Define (определить). Выбрать свой второй ключ и переместить его в список Indexed fields (индексированные поля). Для этого надо нажать кнопку с изображённой стрелкой вправо (рисунок 5). Можно нажимать OK. Сразу запросится имя индекса, введено Network12 и снова нажать OK. После этого сохранить таблицу.

			

			

				Рисунок 5 – Окно редактирования полей таблицы Paradox

			Аналогично создаем индексы для таблицы Flights.db. только вместо «Кey2» выбираем «Кey3», и имя индекса, введем Network23.

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

			Диаграмма модулей

			В данной программе действуют классы, которые являются компонентами Delphi. На рисунке 6 представлена диаграмма модулей данного программного продукта.

			

			

			Рисунок 6 – Диаграмма модулей программного продукта

		
3. РЕАЛИЗАЦИЯ СИСТЕМЫ КОНТРОЛЯ ДВИЖЕНИЯ ЖЕЛЕЗНОДОРОЖНЫХ ПОЕЗДОВ

				

				3.1 Описание разработанной системы, техническое обеспечение

				

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

			Назначение АСОИ состоит в следующем:

			Экономия личного времени;

			Высокая скорость при обработке информации;

			Возможность оперативно получать необходимую информацию по требованию потенциального пассажира.

			Техническое обеспечение

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

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

			Для эффективной работы программного продукта необходимо выполнение следующих требований к аппаратным и программным средствам:

			Процессор 1000 MHz,

			Видеокарта 32 Mb,

			128 Mb оперативной памяти,

			2 Mb дискового пространства для минимальной конфигурации,

			операционная система Windows 2000/NT/Millenium/XP,

			лазерная мышь,

			клавиатура,

			модем 56 Kb.

			

			3.2 Организация взаимодействия клиентской программы с БД

			

			Приложение разрабатывалось в среде Borland Delphi 7.0. Взаимодействие с БД осуществляется с помощью следующих компонентов, входящих в стандартный набор этой системы:

			ADOConnection;

			DataSource;

			ADOTable;

			DBGrid;

			ADOStoredProc;

			DBlookupcombobox:

			DBNavigator.

			Компонент ADOConnection (соединение с базой данных) имеет ряд свойств для настройки подключения к БД.

			Компонент ADOTable обеспечивает взаимодействие с таблицей БД. Для связи с требуемой таблицей нужно установить соответствующее значение свойствам DatabaseName, указывающему имя БД, и TableName, указывающему имя таблицы.

			Компонент DataSource является промежуточным звеном между компонентами ADOTable или StoredProc и визуальными компонентами (например, DBGrid). Чтобы связать компонент ADOTable и компонент DataSource, указывают название первого в свойстве DataSet последнего.

			Для представления пользователю полученных в результате работы данных в более удобной форме используют компоненты DBGrid (таблица).

			Компонент DBGrid используется только для представления данных, а добавление, редактирование и удаление данных осуществляется с помощью системы хранимых процедур.

			

			Разработка интерфейса пользователя

			

			Приведем список форм, из которых состоит приложение:

			Form – главная форма и используется для инициализации остальных форм приложения (рис.7).

			

			

			Рисунок 7 – Главная форма

			

			Password – форма, обеспечивающая безопасность доступа к приложению (рис.8).

			

			Рисунок 8 – Безопасный вход в систему БД

			

			Данная форма (см.рис.8) была придумана для наглядной демонстрации возможности защиты программы. При неправильном введении пароля появиться сообщение об ошибке (рис.9).

			

			

			Рисунок 9 – Сообщение об ошибке

			

			Modul – форма хранения таблиц базы данных, она является невизуальным элементом приложения.

			Zapros – форма формируемого запроса, находящего вокзалы по названию кампании (рис.10).

			

				

				Рисунок 10 – Поиск вокзала по названию компании

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

			Zapros 1 – форма формируемого запроса, находящего рейс по названию вокзала (рис.11).

			

				

				Рисунок 11 – Поиск рейса по вокзалу

				

			Zapros 2 – форма сортировки (рис.12)

			

			

				Рисунок 12 – Сортировка

			

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

			Zapros 3 – форма статического запроса, показывающего количество мест всего и забронированных в каждом рейсе (рис.13).




				Рисунок 13 – Информация по наличию билетов и возможности их заказа

			

			Help – форма справки о разработчике (рис.14).

			

				

				Рисунок 14 – «О разработчике»

				

			Svedeniya – форма информации о названии данного ПП и разработчике (рис.15).

				

				Рисунок 15 – «О программе»


3.5 Особенности запуска и работы с программой

			

			В начале работы необходимо запустить приложение Station.exe. Запустив приложение, пользователю откроется вспомогательная форма (см.рис. 8), которая обеспечивает безопасный вход в систему.

			После ввода пароля («1234») пользователь получает доступ к главной форме приложения (см.рис.7), где он может просмотреть информацию о поездах, кампаниях, их эксплуатирующих, номерах рейсов, вокзалах.

			После начала работы пользователю доступны следующие функции:

			- нажав на ссылку «Запрос», он может выбрать необходимый ему вид поиска: найти рейс по вокзалу (рис.17), найти вокзалы по компании (рис.18);

			отсортировать полученные результаты (рис.19);

			просмотреть информацию о наличии мест всего и забронированных

			нужной ему станции (см.рис.13);

			нажав на ссылку «Справка», он может получить информацию о программе (см.рис.15) и об авторе программы (см.рис.14);

			нажав на ссылку «Выход», пользователь снова попадает на вспомогательную форму.

			

			3.6 Пример работы приложения

			

				Пример работы программы показан на рисунке 16.

				

				Рисунок 16 – Пример работы запущенное приложение


Пример поиска рейса по вокзалу показан на рисунке 17.

				

				

				Рисунок 17 –Пример поиска рейса по вокзалу

				

				Пример поиска вокзала по компании показан на рис.18.

				

				

				Рисунок 18 – Пример поиска вокзала по компании

				

				Пример сортировки любой таблицы по её критериям показан на рис.19.

				

				

				Рисунок 19 – Пример сортировки таблиц

			
Выводы

				

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

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

				


Список ИСПОЛЬЗОВАНЙ литературы

				

				В. Гофман, Delphi. Быстрый старт – С.П.: «Питер», 2003. – 320 с.

				Р. Стивенс, Delphi. Готовые алгоритмы. 2-е издание – С.П.: «Питер», 2004. – 562 с.

				М. Фленов, Библия для программиста в среде Delphi. – С.П.: «Питер», 2002. – 420 с.

				М. Фленов, Delphi глазами хакера. – С.П. «Питер», 2003. – 312 с.

				К.Дж.Дейт, Введение в базы данных. – М.: Изд.дом «Вильямс»,2005. – 1328 с.

				Фаронов В.В., Шумаков П.В., Delphi 5 – Руководство разработчика БД. – М.: «Нолидж», 2000. – 640 с.