Экономическая библиотека

Учебники по экономике

7.10. Средства настройки программ

  Разработчики много сил вкладывают в развитие средств адаптации своих программ под потребности пользователей. Те, кто ориентируется на массовое, «коробочное» распространение программных продуктов, стремятся сделать их как можно более «отчуждаемыми», снабдить дилеров и партнёров возможностью самостоятельно их перестраивать и создавать новые прикладные решения. Те же, кто сам внедряет свои разработки, создают вспомогательный инструментарий, главным образом, для собственных нужд.
  Средства настройки программ всё больше и больше «расслаиваются» по профессиональному принципу. Если раньше в бухгалтерских программах пользователю были предоставлены относительно несложные средства для настройки правил формирования типовых операций и расчёта показателей отчётности, то теперь в большинстве разработок кроме простого инструментария, ориентированного на конечных пользователей, имеются также и сложные механизмы, предназначенные для профессиональных внедренцев и программистов. Более того, чётко прослеживается тенденция «разделения» систем на разные слои. Нижний слой — ядро системы в машинном коде, доступ к которому есть только у производителя системы. Средний - составляющие её программы, написанные на специализированных языках, открытые для внесения изменений профессионалам, использующим средства вычислительной техники. Верхний слой — готовые настройки типовых операций, относительно простые формулы, определяющие алгоритмы расчёта показателей отчётов, которые в принципе может изменить даже относительно неопытный пользователь системы. Такое расслоение кода программ можно только приветствовать. Увлечение созданием мощного универсального «языка программирования для бухгалтера» начало затихать.
  Особенности «слоистого» построения программ рассмотрим на примере системы «Компас» для Windows (фирмы «Компас», Санкт-Петербург). Здесь только часть алгоритмов обработки данных реализована на уровне выполняемых модулей (нижний слой). Разработка и развитие этих модулей — прерогатива фирмы-производителя. В то же время у опытных программистов (внедренцев, пользователей) имеются возможности создавать свои и переделывать системные DLL-библиотеки, поставляемые разработчиками. У «Компаса» есть клиенты, которые, используя эти инструменты, очень многое переделали в системе, в ряде случаев мало что оставив от большинства её стандартных возможностей. Однако замена DLL-библиотек разработчика чревата неприятными последствиями, поскольку «Компас» в подобных случаях не поддерживает своего набора API-функций, которые сторонний программист мог бы использовать. Так что, создавая свои DLL- библиотеки, программист далее вынужден полностью полагаться на себя.
  Значительный «кусок» бизнес-логики разработки фирмы «Компас» выполняется хранимыми процедурами SQL-сервера (средний слой). Эта часть открыта для изменений, и модифицировать её уже намного проще, чем создавать свои DLL-библиотеки. В то же время понятно, что изменения в хранимые процедуры может вносить лишь специалист, который не только знаком с языком SQL, но и хорошо представляет себе структуру базы данных и принципы функционирования системы. Если пользователь модифицировал какие-либо стандартные SQL-запросы, то при установке новой версии программа будет запрашивать возможность замены пользовательских запросов на фирменные. Эта процедура сравнения и обновления запросов реализована, на наш взгляд, очень удачно.
  Большая часть логики выполнения прикладных функций реализована на встроенном языке системы (верхний слой). Это некое подобие языка Basic с огромным количеством встроенных функций, обеспечивающих в том числе и доступ к базе данных. На нём можно запрограммировать почти любую логику. Но это не всегда эффективно, а потому часть особо важных процедур прикладной обработки данных прописана в SQL-процедурах и даже в коде ехе-файла. Например, алгоритм расчёта подоходного налога жёстко встроен в систему. Разработчики объясняют это тем, что уж если такие алгоритмы поменяются, то всё равно придётся выпускать новую версию. То есть в отличие от системы программ «1С: Предприятие» или системы «Конкорд», где вся бизнес-логика реализуется на встроенном языке, здесь она как бы распределена по разным слоям системы. Интересно, что бизнес- процедуры на встроенном языке могут быть своеобразным «клеем», скрепляющим различные программные слои, поскольку из них можно вызывать встроенные функции, табличные, экранные формы, отчёты, SQL-запросы.
  В этой связи подход разработчиков к созданию уникальных доработок оригинален. Они часто используют не встроенные средства, а непосредственно коды исполняемого файла. В универсальных же модулях их создатели стараются как можно большую часть функционала вынести «наверх», реализуя его открытыми инструментальными средствами (встроенным языком или SQL-процедурами). Такой подход они мотивируют тем, что типовые модули должны быть открыты для перенастройки дилерам и пользователям, а в системах, сделанных по заказу одного-двух предприятий, можно всё встроить в закрытую часть кода, поскольку доработки всё равно будут делаться самими разработчиками и за отдельную плату.
  В системе есть редактор меню, с помощью которого можно для каждого рабочего места создать собственную систему меню и подключить к его пунктам вызов встроенных функций, табличных форм, запросов, бизнес- процедур на встроенном языке, отчётов, собственных DLL-процедур. Также имеется возможность создания своих пиктограмм или кнопок в экранных формах с подключением своих бизнес-процедур. Есть процедуры выполнения неявно происходящих событий (открытие/закрытие таблицы, формы и пр.).
  Всё только что сказанное касается инструментальных средств профессионального уровня. Вряд ли конечный пользователь, не являющийся программистом, захочет ими воспользоваться. Но наряду с ними имеются и более простые инструментальные средства, ориентированные на конечного пользователя. Так, в системе можно довольно легко добавлять новые поля в таблицы базы данных, добавлять, переставлять, управлять представлением колонок табличных форм просмотра, модифицировать и проектировать новые экранные формы. Если пользователь переопределил стандартную экранную форму, то при замене версий интеллектуальный инсталлятор уже не уничтожает её. Если добавлены новые поля базы данных, ничего не нарушается, поскольку встроенные алгоритмы программы узнают «свои» поля и работают только с ними. Средства настройки типовых операций в модулях ведения бухгалтерского учёта довольно прозрачны и являются очень гибкими. Пользователю вполне по силам настраивать даже довольно сложные операции, поскольку для настройки правил вычисления сумм проводок можно использовать огромное число предопределённых в системе переменных, имеющих более-менее ясное экономическое содержание. Есть в системе и диалоговый конструктор формул.
  Похожее «расслоение» программ наблюдается и на примере других систем автоматизации управления. Где-то больше выражены слои профессионального уровня, а где-то, наоборот, акцент делается почти исключительно на пользовательские средства настройки. С этой точки зрения следует обратить внимание на комплекс программ «Комтех» фирмы «Бухгалтерия Комтех», который разработчики позиционируют как «готовое решение для конечного пользователя».
  При создании инструментальных средств профессионального уровня в настоящее время прослеживаются две основные тенденции. Одни разработчики направляют усилия на создание полностью оригинальных инструментальных средств, на которых базируются прикладные решения. Это системы программ «1С: Предприятие», «Турбо Бухгалтер», «Инфо-Бухгалтер» и ряд других. Тысячи дилеров их фирм-производителей применяют имеющиеся специализированные языки программирования для развития типовых настроек, поставляемых с этими программами, либо даже для создания принципиально новых прикладных решений. В этих случаях всю ответственность за создание и развитие инструментальных средств несёт сам разработчик.
  Другой подход основан на том, чтобы максимально использовать стандартные для мировой ИТ-индустрии средства создания ПО. В этой связи следует отметить, что наиболее востребованным средством при создании современных систем обработки экономической информации является SQL — стандартный язык запросов, адресованных базам данных. Так что теперь многие разработчики встроенным языком описания прикладной области, не задумываясь, называют SQL. Например, в системе «Аккорд» фирмы «Атлант-Информ» вся бизнес-логика реализована в виде хранимых процедур
  СУБД Sybase. Структуры данных информационной базы разработчик не держит в секрете, поэтому если пользователь умеет применять язык SQL, то он может дополнять систему новыми функциями или изменять уже встроенные алгоритмы обработки данных. В этой связи нельзя не отметить следующее интересное решение. Пользователь может заменить системную процедуру, тогда в расчётах будет использоваться её новый вариант. Но процедура из комплекта поставки системы не изымается, и к ней всегда можно вернуться. При получении от разработчика новой версии обновляются только те процедуры, которые входили в поставку системы, пользовательские же не затрагиваются.
  Очень интересными являются решения, реализованные в программных продуктах фирмы «Фолио». Вместо того чтобы изобретать собственный язык описания расчётов и систему исполнения программ на этом языке, разработчики воспользовались готовыми решениями компании Microsoft. Теперь программисты предприятия-пользователя или дилеры фирмы для расширения функциональных возможностей системы могут применять язык VBScript, поддержка которого встроена во многие продукты Microsoft. Это очень логичное решение, поскольку VBScript представляет собой упрощённую версию языка Basic, который знают все специалисты, мало-мальски знакомые с программированием. Освоить VBScript, как правило, легче и быстрее, чем специфические специализированные языки, встроенные в прикладные программы. Нередко можно наблюдать такую картину: на предприятии имеется программист или даже группа программистов, но для того чтобы реализовать недостающие в приобретённом программном продукте возможности, приглашают экспертов сторонней внедренческой фирмы, услуги которой стоят недёшево. И всё потому, что программисты предприятия не имеют опыта работы со специализированными инструментальными средствами. Использование стандартных языков типа VBScript способно существенно помочь в преодолении этой проблемы. Для многих пользователей немаловажно и то, что поддержка этого языка осуществляется ведущим мировым производителем программного обеспечения - компанией Microsoft.
  Крайние полюса решений в построении инструментальных средств экономических программ представлены в разработках, которые можно охарактеризовать как средства быстрого «прототипирования» экономических приложений. Рассмотрим системы «Тектон-Дизайнер» фирмы «ИнтелГрупп» и «Storm2000» фирмы «ИВС-Софт».
  «Тектон-Дизайнер» предназначен для быстрого создания систем обработки экономической информации экспертом в предметной области, который не является программистом. Принцип работы состоит в следующем.
  Эксперт определяет, какие справочники, документы и отчёты необходимы для того, чтобы решать нужный спектр задач, и определяет их реквизитный состав. Встроенными средствами системы «рисуются» экранные формы, через которые будет производиться ввод и просмотр информации. На их основе система по своему «разумению» генерирует структуру таблиц базы данных. Поскольку в процессе «рисования» экранных форм эксперт указывает связи реквизитов одних форм с реквизитами других, то у системы появляется и информация для определения взаимосвязей таблиц. Расчётные алгоритмы описываются пользователем на встроенном высокоуровневом языке, при этом он оперирует заданными им самим понятиями предметной области, фактически — названиями реквизитов спроектированных им же документов. В результате без всякого представления о системах программирования, знания SQL, ODBC создаётся информационная система, выглядящая как полноценное Windows-приложение и функционирующая в архитектуре «клиент-сервер».
  Фирма может представить множество примеров приложений, построенных с помощью названной системы. Но, конечно, чтобы создавать качественные приложения, надо хорошо знать и понимать, как работает «Тек- тон-Дизайнер», а это требует определённых усилий и накопления опыта. Главное преимущество - возможность быстрого создания современной информационной системы непосредственно экспертом в предметной области. Естественно, автоматически формируемые структуры баз данных и производительность исполнения алгоритмов обработки данных при этом далеки от идеальных. Но разработчики сознательно идут на это, считая данные обстоятельства непринципиальными, так как не дело пользователя проектировать структуры и писать алгоритмы. После того как модель системы построена и опробована, её можно не спеша оптимизировать: описать неэффективно работающие алгоритмы на Delphi или с помощью SQL-процедур и т. д. Разработчики утверждают, что на всех объектах внедрения именно так и происходит. Специалисты приходят на предприятие, узнают, что требуется автоматизировать, за несколько дней (!) строят прототип системы, решающий наиболее важные задачи, запускают созданную модель в эксплуатацию, а потом постепенно, поблочно её оптимизируют, поскольку на больших объёмах данных использовать прототип, конечно же, нельзя.
  Другая разработка — система «Storm2000» фирмы «ИВС-Софт», напротив, ориентирована именно на программистов. Фактически, это CASE- технология, позволяющая быстро проектировать системы обработки данных. Основной целью её создания было желание поставить на поток разработку унифицированных автоматизированных информационных систем, основанных на трёхуровневой архитектуре «клиент-сервер» и построенных на основе компонентной модели (СОМ). Разработчики считают, что крупным предприятиям предпочтительнее самим создавать собственные системы автоматизации, чем пользоваться готовыми разработками. Чтобы быстро и эффективно разрабатывать программы, основанные на последних новациях информационных технологий, нужен соответствующий инструмент, который разработчики системы Storm попытались создать. Предполагается, что он должен быть интересен отделам АСУП и фирмам, занимающимся разработкой заказных экономических информационных систем.
  Технология «Storm2000» — это набор методических и архитектурных концепций, правил моделирования и кодирования, а также библиотеки системных компонентов и оригинальный кодогенератор программ на Visual Basic. Суть реализованного подхода состоит в том, что пользователь — разработчик ИС, применяя объектную методологию ОМТ (Object Modeling Technique), создаёт проект системы, отражающий предметную область. Модель строится в графической нотации (UML) с помощью CASE-инструмента COOL - Jex компании Sterling Software. Эта CASE-технология предназначена для больших команд разработчиков. В ее основе лежит репозито- рий, в котором хранится абсолютно вся информация по проекту с поддержкой версий и встроенным механизмом разграничения доступа.
  На основе построенной в графической нотации модели, дополненной некоторыми вспомогательными данными, автоматически генерируются модель базы данных, SQL-процедуры, необходимые для её создания, а также заготовки исходных текстов программ на языке Visual Basic и экранных форм ввода/просмотра информации. Заготовки программ автоматически генерируются таким образом, чтобы созданные на их основе программы соответствовали стандарту взаимодействия компонентов СОМ (Component Object Model), а собранные вместе компоненты образовывали систему, построенную в трёхуровневой архитектуре «клиент-сервер». Интересно отметить, что генерируемые заготовки программ включают код, необходимый для поддержки транзакций на уровне бизнес-логики.
  Далее автоматически сгенерированные программы и формы должны до- делываться прикладным программистом с помощью средств Visual Basic. Можно переделать формы, перетаскивая их элементы в более подобающие с точки зрения разработчика позиции, применяя другие средства оформления, дополняя формы вспомогательными элементами. Также нужно дописать бизнес-логику в сгенерированные программы. В заготовках программ отмечены места, куда нужно вписывать код, реализующий соответствующую бизнес-логику.
  После этого прикладные программы, формы и ядро «Storm2000» могут быть собраны в единый проект. На выходе получается система, построенная в трёхуровневой архитектуре «клиент-сервер» на основе компонентной модели. Она может использоваться совместно с любой СУБД, имеющей ODBC-драйвер и способной взаимодействовать с Microsoft Transaction Server 2.0. На текущий момент разработчики имеют опыт создания прикладных систем на основе своей технологии с применением Microsoft SQL Server и Oracle.

 
© www.eclib.net