Генератор меню - диалогового взаимодействия

ИНСТРУМЕНТАЛЬНЫЕ ДИАЛОГОВЫЕ ПРОГРАММНЫЕ СРЕДСТВА ДЛЯ СОЗДАНИЯ ИНФОРМАЦИОННО-РАСЧЕТНЫХ ПРИЛОЖЕНИЙ.

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

Ключевые слова:инструментальные средства, диалоговые системы, технология программирования, информационно-расчетные задачи

Введение.

Одной из характерных особенностей развития средств проектирования и разработки программных комплексов на современном этапе является появление разнообразных эффективно используемых средств автоматизации создания программных приложений. Среди них можно выделить работы по созданию CASE технологий [2], паттернов проектирования [3], и работы по объектно-ориентированным средствам описания моделей программных систем [4,5]. Большая часть этих работ имеет универсальную направленность и как правило не учитывает или недостаточно учитывает специфику предметной области, приводя к

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

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

так называемых информационно-расчетных задач. К информационно –

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

 

Специализированная интегрированная среда разработки.

Понятие интегрированной среды разработки определяется как совокупность средств и методов, предназначенных для автоматизации процессов проектирования и разработки программных приложений. Понятие интегрированной среды, появившееся еще в процедурных системах программирования, впоследствии оказалось очень важным и неотъемлемым атрибутом технологии объектно-ориентированного программирования. Интегрированная среда разработки традиционно включает в себя средства описания и реализации многоуровневых моделей программных систем, различные библиотеки классов, инструментальные средства программирования и генераторы программ. В этом разделе предлагается подход к конструированию специализированной интегрированной среды разработки для информационно-расчетных приложений. В качестве основных компонент упомянутой среды разработки рассматриваются формульный интерпретатор, генераторы экранных форм и меню- диалога, а также специализированная библиотека классов. Реализация всех этих компонент выполнена на основе СУБД Visual FoxPro [1,6] и прошла практическую апробацию на серии коммерческих приложений по автоматизации задач бухгалтерского учета.

Формульный интерпретатор.

Характерной особенностью большинства информационно-расчетных задач является довольно частое изменение методик расчета (например, изменение налоговых ставок, индексация заработной платы, изменение статистических показателей и т.п.). В связи с этим возникает необходимость параметризации формул расчета путем их отделения от программной части, обеспечивающей инвариантность программ по отношению к упомянутым изменениям. Таким образом, при изменении методик расчета достаточно только изменения формул расчета, представляющих параметрическую среду для так называемого формульного интерпретатора. Реализация формульного интерпретатора в СУБД Visual FoxPro основывается на представлении множества формул F в виде таблицы, структура которой определяется кортежем (списком полей): < P_ORDER(N,5), P_COND(С,60) , P_OBJ(C,10), P_FORM(C,60) , P_COMM(C,80) > , где P_ORDER -порядковый номер формулы, P_COND - логическое выражение, определяющее условие применимости формулы, P_OBJ -наименование объекта присваивания (левая часть формулы - имя поля или имя локальной переменной), P_FORM - выражение, определяющее правую часть формулы, P_COMM- комментарий . Предлагаемая ниже программная конструкция реализует алгоритм формульного интерпретатора (реализация представлена с использованием языка Visual FoxPro ).

select T

go top

DO WHILE !eof()

select F

go top

DO WHILE !eof()

vcond=alltrim(P_COND)

vobj=alltrim(P_OBJ)

vform=alltrim(P_FORM)

select T

IF &vcond && Проверка условия применимости формулы

IF UPPER(substr(vobj,1,1))='X'

&vobj=&vform && Если объект-переменная

ELSE

replace &vobj with &vform && Если объект-поле памяти

ENDIF

ENDIF

select F

skip

ENDDO

select T

skip

ENDDO

Приведенная выше программа построена с учетом следующих особенностей:

- вместо множества таблиц в качестве объекта интерпретации

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

- операция присваивания результата вычисления формульного

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

- выполнение программы предусматривает предварительную упорядоченность таблицы формул F по полю P_ORDER.

Генератор экранных форм.

Основой создания генератора экранных форм является спецификация

экранной формы, представляющая из себя множество спецификаций структур таблиц, связанных с соответствующей экранной формой. Спецификация экранной формы определяется как SPEC = {ST1, ST2,…, STn},

где множество T1,T2,…, Tn составлено из всех таблиц, связанных с соответствующей экранной формой, а ST – это спецификация структуры таблицы T. В СУБД Visual FoxPro спецификация структуры таблицы определяется в виде таблицы со следующей структурой:

Field_name(C,10) - имя поля ;

Field_type (C,1) - тип поля ;

Field_len (N,3) -длина поля ;

Field_dec (N,3) -количество цифр после десятичной

точки (если поле имеет тип NUMERIC)

Field_recv (C,80) - имя реквизита

Field_dom (C,80) - область определения поля

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

Генератор меню - диалогового взаимодействия.

Генератор меню – диалога позволяет автоматизировать создание различных меню - диалоговых приложений на основе сценария меню – диалога. Сценарий меню – диалога представляет из себя множество записей S={s1, s2, …,sn}. Каждая запись si = < t, l1, l2,…, lk, m1, m2,…, mk > ,(i=1..n), где t – текст меню – диалога, li (i=1..k) – номер записи для меню, отображаемого после выбора i-ого элемента меню, mi (i=1..k) – ссылка на модуль(метод), запускаемый после выбора i-ого элемента меню. В СУБД Visual FoxPro сценарий меню-диалога представляется в виде таблицы со следующей структурой:

TMENU (MEMO) – текст меню;

Link1(N,5),Link2(N,5),Link3(N,5), Link4(N,5),Link5(N,5), Link6(N,5),

Link7(N,5),Link8(N,5),Link9(N,5),Link10(N,5) – номера записей меню, отображаемых после выбора соответствующего элемента меню;

Meth1(MEMO),Meth2(MEMO),Meth3(MEMO),Meth4(MEMO),Meth5(MEMO), Meth6(MEMO),Meth7(MEMO),Meth8(MEMO), Meth9(MEMO), Meth10(MEMO) – ссылки на модули, запускаемые после выбора соответствующего элемента меню.

В данной реализации размер меню ограничен 10-ю элементами. Для эффективного управления сеансом меню – диалога реализованы следующие функции:

stop - функция для завершения сеанса меню-диалога;

reset - функция, позволяющие возвратиться к начальному меню;

back – функция для возврата к предыдущим шагам выполнения

процесса меню- диалога