Конвертирование
разработок, выполненных в среде MS DOS, в проекты MS WINDOWS
В.В. Зенков,
с.н.с,
к.т.н., zenkov-v@yandex.ru,
ИПУ РАН, г. Москва
В некоторых случаях для
переделки проектов, выполненных в среде MS DOS, на
современные инструментальные средства целесообразно создавать
специализированные конвертеры для автоматизации процесса. Обсуждаются принципы
разработки конвертера на конкретном примере проектов, выполненных средствами
системы ФРАГМЕНТ в среде MS DOS.
If
we need to make over MS DOS Software project into modern development computer tools, then
it is advisable to produce special converter for process of automation in some
cases. Converter development principles are discussed by the example of
projects which realized by means of the original FRAGMENT system in MS DOS
environment.
Немало программных продуктов, созданных в прошлом
для работы в операционной системе MS DOS, работают и по сей день, вызывая у пользователей и
разработчиков желание перепрограммировать их с помощью современных
инструментальных средств MS WINDOWS. Если
программный продукт не велик по размеру, то переделка его не является
проблемой, в отличие от громоздких, использовавших к тому же при своей разработке некие
инструменты, не нашедшие широкого применения, специалистов по которым уже и
разыскать непросто. Если такой специалист есть и, к счастью, он владеет
инструментарием современной MS WINDOWS, например компонентами MS OFFICE, Visual Basic и
т.п., то существует принципиальная возможность разработать конвертер для
автоматического передела старых проектов в новые.
Целесообразность разработки конвертера зависит от соотношения трудозатрат на
его разработку и трудозатрат на прямое перепрограммирование программных
продуктов, созданных старым инструментарием. При этом трудность разработки
конвертера определяется, в основном,
устаревшим инструментарием.
На примере построения конвертера проектов,
созданных в прошлом на основе системы Фрагмент, сформулированы принципы
выполнения такой работы.
Инструментальное средство – система Фрагмент [1] - было создано в 80-х годах
прошлого века в среде MS-DOS. С его помощью были
выполнены проекты различного назначения, среди которых: проекты для управления производством в нефтехимии,
нефтепереработке, в цементной промышленности [2, 3], геоинформационные
системы (ГИС) для городского теплоснабжения [4] и т. п.
Возможности системы ФРАГМЕНТ достаточно обширны:
- создание и ведение реляционных баз данных с
соответствующими процедурами и средствами импорта-экспорта в DBF-формате;
- средства разработки диалогового интерфейса
пользователя проекта;
- средства
для создания геоинформационных элементов проекта
(ввод и редактирование карт, импорт-экспорт их в DXF-формате, связь с базами
данных, визуализация файлов инфракрасного сканирования поверхности в
совокупности с картой местности с расположенными на ней объектами проекта).
Система Фрагмент написана на Фортране, часть
модулей написаны на языке Ассемблера.
В силу сложности системы Фрагмент, принципы и опыт
разработки конвертера для проектов, выполненных ее средствами, на наш
взгляд, будут полезны при выполнении
аналогичных работ, и это даст новую жизнь хорошо зарекомендовавшим себя, но в
инструментальном смысле морально устаревшим проектам.
Отметим, прежде всего, что проект, созданный
конвертером, это лишь первое приближение к конечному продукту в силу
ограниченности по современным представлениям того инструментария, который
использовался при создании старого проекта.
Но это, как правило, полностью работоспособный
проект, эквивалентный устаревшему проекту, только сделанный на новых средствах.
Далее предстоит его доработка специалистами,
владеющими современными инструментальными средствами. Им, возможно, понадобятся
знания об исходном инструментарии и правилах его использования, но не настолько
глубокие, чтобы служить препятствием в работе.
Будем исходить из того, что старый проект:
·
работает с базами данных;
·
имеет диалоговый интерфейс в виде форм и программ, выполняемых при
появлении форм и обрабатывающих события, связанные с действиями пользователя по
этим формам;
·
имеет элементы ГИС (отрисовка карт, справки из
баз по объектам карты и т.п.).
Выберем в качестве новой среды разработки проекта:
- базу данных MS Office Access. Если ее возможности недостаточны,
например, для многопользовательской работы или для работы с большими объемами
информации, то замена ее на более мощную может быть выполнена на последующих,
ручных, этапах работы в некоторых случаях достаточно просто, например, при
переходе на SQL Server;
- в качестве языка программирования выберем MS Visual Basic (VB)
[5], комфортный и достаточный, поскольку старый проект не использует
объектно-ориентированный стиль программирования. Очень важным обстоятельством VB-проектов
является то, что все компоненты проекта (сам проект, его формы и модули)
представляются в символьном виде с хорошо документированной структурой,
что позволяет конвертеру собирать их из
постоянных файлов-заготовок, содержащих, например, reference-ссылки, и переменных
частей, генерируемых конвертером автоматически;
- в качестве ГИС-инструментария для
реализации геоинформационных задач следует
использовать какую-нибудь подходящую ГИС. Не стоит создавать программный
комплекс для воспроизведения функций старой ГИС. Ограниченность набора этих
функций будет препятствием на пути модернизации проекта. Новую ГИС нужно
выбрать с учетом перспектив модернизации. Например, понадобится включить в
проект работу с трехмерными изображениями, которые в старой ГИС отсутствовали.
Мы в своей работе выбрали ГИС ПАНОРАМА. Многие ее
средства бесплатно можно скачать в интернете и опробовать,
другие же доступны за умеренную плату.
2.1 База данных
В системе ФРАГМЕНТ, база данных – это файл, содержащий
как сами данные во фрагментах базы, так и диалоги интерфейса с пользователем
проекта – в других фрагментах базы. Данные могут быть двух видов: таблицы и
данные произвольной структуры. Диалоги интерфейса представляют собой данные
произвольной структуры. При конвертации файла базы данных системы ФРАГМЕНТ из
таблиц создаются таблицы в заданной базе Access, а из данных произвольной
структуры (и диалогов) создаются отдельные файлы в заданной папке.
Преобразования баз данных выполняются отдельной
операцией конвертера. Эта операция – первая при конвертировании проекта.
2.2 Создаваемый конвертером
проект
Он располагается в двух папках, создаваемых
пользователем.
В одной папке (папке проекта) помещается VBP-файл
проекта с заданным именем, MDB-файлы баз Access,
сгенерированные формы и стандартные модули проекта. В подпапке Kart
помещаются файлы карт и прочие файлы, обслуживающие функции ГИС.
В другой папке (рабочей) располагаются файлы,
сгенерированные из фрагментов произвольной структуры. В их число входят и
файлы, сгенерированные из фрагментов-диалогов.
2.3 Диалоги
В системе ФРАГМЕНТ диалог состоит из разделов. А
раздел из кадров, появляющихся на дисплее. При конвертации старого диалога в VB-проекте
создаются соответствующие формы – frm-файлы. Каждый кадр диалога
ФРАГМЕНТ преобразуется в свой frm-файл проекта со своими
процедурами обработки событий формы Load, Unload и пр. Таблица, выдаваемая в кадре,
представляется в форме элементом управления DataGrid, содержащим все поля таблицы и связанным с элементом Adodc. Лишние поля удаляются из формы на последующем
ручном этапе доводки проекта вместе с завершающим дизайном формы.
Вычисления, привязанные к кадру диалога, при
конвертации преобразуются в операторы процедуры формы Form_Load. Операции,
выполняемые при закрытии кадра диалога преобразуются в операторы
процедуры формы Form_Unload. В упомянутых процедурах
производятся, соответственно, ввод данных для полей формы и запись в базу и в
файлы измененных в форме данных.
Некоторые кадры диалога ФРАГМЕНТ (темные кадры)
предназначены только для выполнения некоторых операций без появления самого
кадра на дисплее. Таких кадров в диалоге может быть достаточно много. При
конвертировании для них не создаются соответствующие невидимые формы проекта, а
процедуры Load и Unload для них помещаются в стандартный модуль
проекта ModuleRab. Этим существенно
повышается скорость выполнения проекта.
Переходы условные и безусловные между формами
осуществляются с помощью вспомогательных процедур переходов, помещаемых в
стандартный модуль проекта ModuleViz и специальных команд,
вставляемых конвертером в процедуры Unload.
При наличии большого количества невидимых форм, в
циклах подобный прием с упомянутыми модулями существенно ускоряет работу
созданного проекта. Так, например, в
первом варианте конвертера в созданном им проекте, в котором последовательно из
таблицы с помощью цепочки невидимых VB-форм отрисовывались
на карте несколько тысяч геологических скважин, на работу уходило 40 мин. на машине с тактовой частотой 534
МГц и 256 МБ ОЗУ. В проекте, созданном усовершенствованным
конвертером с упомянутыми модулями ModuleRab и ModuleViz, работа выполнялась за 7 мин.
2.4 Стандартные модули
проекта
Конвертер создает несколько стандартных модулей
проекта. О ModuleRab и ModuleViz было сказано выше. Они генерируются
конвертером. Модуль ModuleFR содержит вручную
переписанные с Fortran’а на Visual Basic
процедуры системы ФРАГМЕНТ. При конвертации этот модуль копируется в каждый
новый проект без изменений.
Модули F_Mapapix, F_Pan_GIS и Mapprint содержат процедуры ГИС
ПАНОРАМА, дополненные специфическими для функций системы ФРАГМЕНТ процедурами.
Они так же копируются в каждый новый проект в неизменном виде.
Кроме того, в системную папку Windows устанавливается набор библиотек ГИС ПАНОРАМА.
Изложенные принципы создания конвертера проектов,
выполненных в среде MS DOS, отработаны на примере
разработки конвертера проектов, выполненных с применением системы ФРАГМЕНТ, и
подтвердили свою работоспособность.
1. Зенков В.В. Диалоговая система
ФРАГМЕНТ для работы с данными. – Управляющие системы и машины, № 4, 1980, с.
68-72.
2. Зенков В.В., Поляков О.А.,
Юрченко В.Е. Компьютерная информационная поддержка принятия решения в задачах
управления стабилизацией горного сырья / Материалы конференции «Управление в
технических системах», УТС-2010, 3-я мультиконференция
по проблемам управления, 12-14 октября 2010. Санкт-Петербург, 2010. С. 179-183.
3. Юрченко В. Е., Поляков О.
А., Степанов А. Е. Геолого-маркшейдерская компьютерная технология “АНКАР” –
опыт эксплуатации на различных предприятиях / Сб. тезисов выступлений
участников Всероссийского Юбилейного симпозиума маркшейдеров – “ВЮСМ-2000”. М.:
ЦС СМР, 2000. С. 34-35.
4. Зенков В.В., Добротворцев
Ю.М., Паньшин А.С. и др. Справочная система для районных теплосетей. Журнал
Приборы и системы управления, № 5, 1998 г.
5. Visual Basic 6.0 Наиболее полное руководство для
профессиональной работы в среде Visial Basic
6.0. 950 стр. Санкт-Петербург “БХВ-Петербург”, 2003
г.