Файл: ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ И ИСПОЛЬЗОВАНИЯ АВТОМАТИЗИРОВАННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ.pdf
Добавлен: 28.06.2023
Просмотров: 172
Скачиваний: 3
- Ведение остатков запчастей для автомобилей на складе;
- Ввод, редактирование и удаление данных о приходе запчастей на склад;
- Ввод, редактирование и удаление данных о выдаче запчастей со склада;
- Возможность формирования карточки по каждой запчасти с данными о приходе, перемещении и списании.
- Модуль «Работы»:
- Ввод, редактирование и удаление данных о проводимых работах с автомобилями ;
- Ввод, редактирование и удаление данных о выдаче запчастей со склада для проведения данных работ;
- Контроль состояния работ и ввода данных об окончании работ.
- Модуль «Отчеты»:
- Выдача отчета за период о проведенных работах в разрезе автомобилей.
- Выдача отчета за период о проведенных работах в разрезе видов работ.
- Выдача отчета за период об использованных запчастях для выполнения работ.
Структура приложения показана на рисунке 3.1.
Рисунок 3.1 Структура приложения
Сервер приложений разработан при помощи технологии C++ XE2 DataSnap. Передача данных между клиентом и сервером осуществляется через протокол TCP.
Сервер приложений взаимодействует с базой данных через СУБД Microsoft Access. Подключение к базе данных выполняется через технологию ADO.
В структуре сервера можно выделить две основные части: Модуль управления сервером (TdmServer) и модуль предоставления данных (TdssmRemoteData). Описание модулей приведено ниже.
Таблица 3.1 Структура сервера приложений
№ |
Название модуля |
Описание |
Функции |
1 |
TdmServer |
Содержит компоненты для подключения к системе управления базами данных (через ADO) и компоненты для организации сервера приложений (передача данных выполняется через протокол TCP). |
Подключение к СУБД. Управление сервером приложений (установка соединений с клиентскими приложениями, аутентификация пользователей, передача данных клиентам). |
2 |
TdssmRemoteData |
Модуль системы, который определяет доступные клиенту данные и функциональность системы. Экземпляр данного модуля создается для каждого подключенного клиента. |
Авторизация. Предоставление данных; Предоставление функциональности; |
Модуль управления сервером
При инициализации данного модуля автоматически выполняется инициализация соединения с базой данных. Параметры соединения содержаться в файле Settings.ini. Если соединение с базой данных по каким-то причинам не удалось установить, то сервер выдаст сообщение о невозможности дальнейшей работы, т.е. успешное подключение к базе данных обязательное условии запуска сервера.
Рисунок 3.2 Состав модуля TdmServer
Как уже отмечалось ранее, сервер передает данные по протоколу TCP (за это отвечает компонент DSTCPServerTransport). Потому, для сервера должен быть задан порт прослушивания. В нашем случае он имеет значение 6000.
При подключении, на сервере создается отдельный поток. Клиент в обязательном порядке передает данные для выполнения аутентификации (логин и пароль), проверку которых выполняет компонент DSAuthenticationManager. В случае успешного прохождения процедуры аутентификации, для передачи данных между сервером и клиентом, DSServer создаст интерфейс взаимодействия. Этим интерфейсом является экземпляр класса TdssmRemoteData.
В случае ошибки аутентификации сервер вызывает исключение и уничтожает поток, который был создан для данного подключения.
Таблица 3.2 Описание класса «TdmServer»
Field Summary |
|
public TADOConnection |
adoConnection |
public TDSAuthenticationManager |
DSAuthenticationManager |
public TDSServer |
DSServer |
public TDSServerClass |
DSServerClass |
public TDSTCPServerTransport |
DSTCPServerTransport |
internal TIniFile |
FSettings |
Property Summary |
|
public TIniFile |
Settings |
Method Summary |
|
public Sub |
DataModuleCreate(Sender: TObject) |
public Sub |
DSAuthenticationManagerUserAuthenticate(Sender: TObject; Protocol: string; Context: string; User: string; Password: string; valid: Boolean; UserRoles: TStrings) |
public Sub |
DSServerClassGetClass(DSServerClass: TDSServerClass; PersistentClass: TPersistentClass) |
public Sub |
DSTCPServerTransportConnect(Event: TDSTCPConnectEventObject) |
public Sub |
DSTCPServerTransportDisconnect(Event: TDSTCPDisconnectEventObject) |
public function Integer |
ExecQuery(SQL: String) |
public function TADOQuery |
GetQuery(SQL: String) |
public function TADOTable |
GetTable(TableName: String) |
public function Integer |
GetUserKey(Login: String; Password: String; Blocked: Boolean; UserType: Integer) |
Интерфейс взаимодействия
Как было сказано выше, экземпляр класса TdssmRemoteData создается после успешной аутентификации и служит для предоставления клиентскому приложению определенных данных и функциональности сервера.
Рисунок 3.3 Состав модуля TdssmRemoteData
Цепочка передачи данных между клиентом и сервером выглядит так:
- Компонент подключения к БД (TADOConnection);
- Набор данных (TADOTable или TADOQuery);
- Провайдер набора данных (TDataSetProvider);
- Компонент клиентского соединения (TSQLConnection);
- Клиентский компонент соединения с провайдером данных (TDSProviderConnection);
- Клиентский набор данных (TClientDataSet).
Пункты 1, 2, 3 – выполняются на стороне сервера, а пункты 4, 5, 6 – на стороне клиента. Компоненты класса TDataSetProvider служат для определения прав доступа и настройки параметров передачи данных клиенту. В его настройках можно указать такие параметры как: доступность набора данных для клиента, режим «только чтение», запрет редактирования, запрет вставки, запрет удаления и т.д.
Таблица 3.3 Структура клиентского приложения
№ |
Название модуля |
Описание |
Функции |
1 |
TdmData |
Основа клиентского приложение. |
Подключение к серверу приложений. Подключение клиентских наборов данных. Управление пользовательскими наборами данных. Передача изменений, сделанных пользователем в данных, на сервер. |
2 |
TdmReport |
Модуль отчетов. |
Развертывание генератора отчетов FastReport. Подключение наборов данных к генератору отчетов. Вычисление отчетов. Экспорт вычисленных отчетов в различные форматы. |
Основой клиентской части является модуль TdmData. Модуль выполняет следующие функции: соединение с сервером; управление предоставленными сервером наборами данных; получение доступа к функциональности сервера (создание проекции интерфейса взаимодействия «TdssmRemoteData»).
Для подключения к серверу используется компонент SQLConnection. В качестве параметров подключения мы указываем: тип подключения (DataSnap); IP-адрес сервера; порт подключения (6000); протокол взаимодействия (в нашем случае TCP); логин и пароль пользователя.
Для доступа к функциональности и данным сервера используется специальный компонент DSProviderConnection, который необходим для подключения клиентского набора данных (TClientDataSet) к провайдеру набора данных (TDataSetDrovider).
После успешного подключения к серверу выполняется активация доступных наборов данных (открытие набора данных).
После открытия набора пользователь может редактировать набор данных через визуальные компоненты (такие как TDBGrid, TDBEdit, TDBMemo, TDBImage, TDBNavigator и т.д.), разработанные специально для работы с базами данных. Но визуальные компоненты подключаются не напрямую к клиентскому набору данных, а используют специальный «посредник» (объект класса TDataSource) который призваны унифицировать использование визуальных компонентов с различными типами наборов данных.
Клиент также получает доступ к интерфейсу взаимодействия сервера TdssmRemoteData. На стороне клиента, через компонент DSProviderConnection, создается «проекция» класса TdssmRemoteData, в которую входят все методы серверного класса со спецификатором public. Класс «проекция» инициализируется сразу после подключения клиента к серверу.
Все отчеты системы сконцентрированы в модуле TdmReport и формируются при помощи генератора отчетов «FastReports». Простота в использовании, высокая производительность и надежность генератора отчетов делают его непревзойденным лидером в своей области. Концентрация всех отчетов в одном модуле, а также использование компонента TActionManager позволяет с легкостью вызывать отчеты из различных модулей интерфейса системы. Ядро Fast Reports позволяет экспортировать созданные отчеты в различные форматы: PDF, XLS, ODT, RTF и т.д.
ЗАКЛЮЧЕНИЕ
Архитектура информационной системы — это, по своей сути, концепция, определяющая модель, структуру, выполняемые функции и взаимосвязь компонентов информационной системы. При разработке архитектуры системы реализуются следующие компоненты: спецификации требований к проектируемой системе; конструирование концептуальной модели предметной области; спецификации обработки данных в проектируемой системе; спецификации пользовательского интерфейса системы; спецификации деятельности в предметной области с учетом внедрения системы.
В рамках разработки или разделения ИС часто возникают проблемы, которые связаны с математическим и алгоритмическим описанием представленных задач. От уровня формализации зачастую зависит производительность работы системы и процесс автоматизации, отражаемый частотой участия человека в рамках выбора решения на основе полученных данных. И чем конкретнее математическое описание задачи, тем больше шанс компьютерного анализа и ниже роль человека в самом процессе решения. Это и показывает уровень автоматизации задачи.
ИС, применяемые в рамках решения частично распределённых задач, делятся на 2 вида: генерирующие управленческие отчеты и направленные на анализ данных (нахождение, группировку, агрегацию, фильтр).
ИС, реализующие управленческие отчеты, поддерживают данными самого пользователя, т. е. дают доступ к БД и ее информации, а также ее частичную обработку. Процедуры работы с данными в ИС должны включать некие возможности: сочетание комбинаций данных, принимаемых из разных источников; оперативное добавление или вычитание какого-то источника данных и мгновенное направление источников в режиме поиска; контроль данными с применением средств СУБД; зависимость данных этого типа на логическом уровне с другими БД, включенными в подсистему ИО; постоянный контроль потока данных для пополнения БД.
Процедуры перемещения данных в ИС должна давать такие возможности: сочетание комбинаций данных, принимаемых из разных источников; оперативное добавление или вычитание какого-то источника данных и мгновенное направление источников в режиме поиска; контроль данными с применением средств СУБД; зависимость данных этого типа на логическом уровне с другими БД, включенными в подсистему ИО; постоянный контроль потока данных для пополнения БД.
Спроектированная в данной курсовой работе информационная система позволит менеджеру компании более внятно представлять предстоящий объем задач, выполняемых монтажными бригадами и соответственно более оперативно и правильно распределять его между бригадами, учитывая их загруженность, в удобном виде получать отчётность по их работе.
Следовательно, цель курсовой работы следует полагать достигнутой.
СПИСОК ЛИТЕРАТУРЫ
- Баклин Д. Профессиональное программирование приложений для iPhone и iPad / Джин Баклин ; [пер. с англ. ООО "Айдиономикс"].
- Алистер Коберн, Современные методы описания функциональных требований к системам, М. , Лори, 2017 г., 288 с.
- Баодин Лю, Теория и практика неопределенного программирования, М., Бином. Лаборатория знаний, 2017 г, 416 с.
- Барт Бэзинс, Эйми Бэкил, Зеппе Ванден Бруке, Java для начинающих. Объектноориентированный подход, М., Питер, 2018 г, 688 с.
- Березин С.А., Березин Б.А., Начальный курс С и С++, М., ДиалогМИФИ, 2017 г., 288 с.
- Брайан У. Керниган, Деннис М. Ритчи, Язык программирования C, М., Вильямс, 2017 г, 288 с.
- Брайан У. Керниган, Роб Пайк, Практика программирования, М., Вильямс, 2017 г., 288 с.
- Бунаков П.А., Лопатин А. В, Практикум по решению задач на ЭВМ в среде Delphi. Учебное пособие, М., ИнфраМ, 2018 г, 304 с.
- Васильев Р.А, Калянов Г.А., Левочкина Г.А., Стратегическое управление информационными системами, М, Интернетуниверситет информационных технологий, Бином. Лаборатория знаний, 2017 г, 512 с.
- Вон Вернон, Реализация методов предметноориентированного проектирования, М, Вильямс, 2017 г, 688 с.
- Габасов Р.А., Кириллова Ф.А., Методы линейного программирования. Часть 1. Общие задачи, М., Либроком, 2018 г, 176 с.
- Габасов Р.А., Кириллова Ф.А., Методы линейного программирования. Часть 3. Специальные задачи, М., Либроком, 2018 г, 368 с.
- Головин И. Г., Захаров В. Б., Мостяев А. И. Влияние тенденций современного общества на процесс создания, распространения и поддержки программ для мобильных устройств // Научный взгляд в будущее. 2016. Т. 4, № 2. С. 4151.
- Гольштейн Е.А., Юдин Д.А., Специальные направления в линейном программировании, М, Красанд, Editorial URSS, 2018 г, 526 с.
- Грацианова Т.А., Программирование в примерах и задачах, М., Лаборатория знаний, 2018 г, 368 с.
- Данилин А.А., Слюсаренко А. В., Архитектура и стратегия. "Инь" и "янь" информационных технологий, М, Интернетуниверситет информационных технологий, 2017 г, 506 с.
- Джеффри Рихтер, CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C#, М., Питер, 2017 г, 896 с.
- Джон Скит, C# для профессионалов. Тонкости программирования, М., Вильямс, 2017 г, 608 с.
- Джоэл Грас, Data Science. Наука о данных с нуля, М, БХВПетербург, 2018, 336 с.
- Дональд Эрвин Кнут, Искусство программирования. Том 2. Получисленные алгоритмы, М., Вильямс, 2017 г, 832 с.
- Дональд Эрвин Кнут, Искусство программирования. Том 3. Сортировка и поиск, М., Вильямс, 2017 г., 824 с.
- Дронов В.А., Laravel. Быстрая разработка современных динамических Webсайтов на PHP, MySQL, HTML и CSS, Спб, БХВПетербург, 2018 г, 768 с.
- Иванова Г.А., Технология программирования, М, КноРус, 2018 г, 336 с.
- Исаев Г.А, Теоретикометодологические основы качества информационных систем, М. ИнфраМ, 2018 г. 258 с.
- Кузнецов А. С., Ченцов С. В, Многоэтапный анализ архитектурной надежности и синтез отказоустойчивого программного обеспечения сложных систем, М, ИнфраМ, 2018 г, 144 с.
- Ли Атчисон, Масштабирование приложений. Выращивание сложных систем, М, Питер, 2018 г, 256 с.
- М. Тим Джонс, Программирование искусственного интеллекта в приложениях, М., ДМК Пресс, 2018 с., 312 с.
- Макаровских Т.А., Панюков А. С., Языки и методы программирования. Создание простых GUIприложений с помощью Visual С++, М., Ленанд, 2018 г, 144 с.
- Мартин Фаулер, Предметноориентированные языки программирования, М., Вильямс, 2017 г, 576 с.
- Окулов С.А., Пестов О.Г, Динамическое программирование, М., Бином. Лаборатория знаний, 2017 г, 296 с.
- Панюкова Т.А. Панюков А.С., Языки и методы программирования. Путеводитель по языку С++, М., Ленанд, 2018 г, 216 с.
- Подбельский В.А, Курс программирования на языке Си, М., ДМК Пресс, 2018 г, 384 с.
- Поль М. Дюваль, Стивен Матиас, Эндрю Гловер, Непрерывная интеграция. Улучшение качества программного обеспечения и снижение риска, М., Вильямс, 2017 г, 240 с.
- Стенли Б. Липпман, Жози Лажойе, Барбара Э. Му, Язык программирования C++. Базовый курс, М, Вильямс, 2017 г, 1120 с.
- Стивен Прата, Язык программирования C++. Лекции и упражнения, М., Вильямс, 2017 г, 1248 с.
- Стивен С. Скиена, Алгоритмы. Руководство по разработке, Спб, БХВПетербург, 2018 г, 720 с.
- Фредерик Брукс, Проектирование процесса проектирования. Записки компьютерного эксперта, М., Вильямс, 2017 г, 464 с.
- Царев Ю.Р, Мультиверсионное программное обеспечение. Алгоритмы голосования и оценка надёжности: Монография, М, ИнфраМ, 2018 г, 118 с.
- Эрик Эванс, Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем, М. , Вильямс, 2017 г, 448 с.
- Выбор языка программирования // Центр разработки для Windows [Официальный вебсайт]. [Электронный ресурс]URL: https://docs.microsoft.com/ruru/windows/uwp/porting/getting startedchoosingaprogramminglanguage.( дата обращения 01.01.2019)