Эта проблема обостряется, когда на рынке уже представлены аналогичные системы других фирм. Один из способов сокращения первоначальных вложений и снижения себестоимости - собственная технология создания прикладных информационных систем, позволяющая повысить качество и ускорить разработку ПО.
Большинство отечественных фирм-разработчиков финансовых программных продуктов предлагают не одну, а целый спектр систем, полностью автоматизирующих финансовую организацию, что гарантирует повышение конкурентоспособности, доли участия на рынке и, конечно, прибыли. Но, к сожалению, не все так просто. Недостаточно просто найти на рынке нишу с низкой конкуренцией, разработать и выпустить продукт, вовремя подготовить новые версии. Так можно "продвинуть" лишь несколько систем, ведь со временем встает вопрос, как эффективно управлять разработкой ряда одновременно создаваемых сложных программных комплексов. Кроме того, необходимо учитывать, что в финансовой организации может быть установлено несколько различных продуктов одной фирмы-разработчика и многие специалисты будут работать с несколькими системами одновременно. Организация-пользователь, естественно, ожидает, что их интерфейсы будут выполнены в одном стиле, а в основе работы программ - сходные принципы. В противном случае при установке каждой новой системы придется дообучать персонал, что по меньшей мере вызовет недоумение покупателя (ведь программы произведены одной фирмой). Поэтому все прикладные системы фирмы должны иметь единый стиль интерфейса, сходные принципы работы и легко интегрироваться друг с другом.
RAD-технология - "панацея от всех бед"?
На первый взгляд наиболее естественным способом решения почти всех описанных выше проблем кажется применение признанной во всем мире RAD-технологии. Она заключается в том, что организуются так называемые RAD-группы из шести-семи человек, состоящие из руководителя, системного аналитика и четырех-пяти программистов, которым даются четкие планы на все периоды разработки проекта со сроками от одной до двух недель. По завершении каждого этапа выпускается очередной "прототип" заказанной системы с полной документацией. Так, производя их один прототип за другим, фирма разрабатывает прикладную систему, однако каждый программный продукт создается практически с нуля. При программировании RAD-группа не использует технологические или прикладные наработки других групп. Созданные приложения могут совсем не иметь сходных черт, в наличии которых заинтересованы конечные пользователи.
Кроме того, RAD-технология в принципе не в состоянии обеспечивать разработку сложных продуктов, содержащих немало фрагментов, программирование которых занимает более двух недель. Эта технология ориентирована скорее на разработку достаточно простого заказного ПО, чем на промышленное производство информационных систем.
Решение от "Диасофт"
Компания разработала и применяет технологию производства программных продуктов, реализация которой обеспечивает деятельность группы системной поддержки (ГСП), необходимость создания которого базировалось на следующих тезисах:
- прикладные программисты не должны изучать особенности используемого инструментального средства, будь то Clarion for Windows, Borland Delphi или Power Builder;
- они могут не знать особенности конкретной СУБД, выбранной для реализации прикладной системы;
- им не нужно тратить время на решение технических проблем, требующих иной специализации в программировании.
Решением этих задач занимается ГСП, в котором сосредоточены ведущие специалисты фирмы очень высокой квалификации, причем как на прикладном, так и на системном уровне, а программисты проектов разрабатывают предметную часть системы, т. е. уделяют основное время созданию так называемого "бизнес-кода". Фактически этот отдел полностью берет на себя организацию производства программных продуктов и их сопровождения. Созданная его силами корпоративная технология переносится на все проекты, выполняемые с помощью одного инструментального средства, например Clarion for Windows или Borland Delphi. Результаты деятельности ГСП периодически выдаются в виде новых версий "корпоративного" инструментария. По мере их поступления группы, работающие над прикладными проектами, переводят на них свои разработки. Все созданные в ГСП методики включают в специализированную фирменную документацию по производству ПО, что позволяет в кратчайшие сроки привлечь к работе новых программистов. Реализация же любого прикладного проекта с технологической точки зрения теперь вообще не составляет труда.
При такой постановке дел ГСП задает оптимальный уровень себестоимости разработки и сопровождения прикладных систем, для поддержания которого можно вести работы по двум направлениям.
Первое можно назвать интенсивным или технологическим. Оно подразумевает доработку инструментария выбранной среды программирования. Это самый сложный и трудоемкий этап работы ГСП. Поскольку создаваемыми элементами будут пользоваться все программисты-разработчики прикладного ПО, их нужно тщательно выполнить и отладить, ведь именно они обеспечивают качества, необходимые для прикладных систем, т. е. единый стиль интерфейса, общие принципы работы приложений и др., а также значительно увеличивают скорость разработки типовых частей прикладных систем, например интерфейса. (Попутно отметим, что для нового поколения прикладных систем после долгих поисков и испытаний ГСП в качестве основного инструментального средства был выбран Clarion for Windows. Компания "Диасофт" на протяжении всего своего существования использовала разные версии Clarion и всегда добивалась успеха.)
При выборе второго направления - экстенсивного - ГСП разрабатывает общие части всех или нескольких прикладных проектов фирмы - систем отчетности, администрирования и т. д. Такая работа по двум направлениям позволяет создавать интегрированные в фирменный инструментарий универсальные фрагменты прикладных систем, которые смогут наследовать новые прикладные системы.
Плюсы и минусы подхода "Диасофт"
Сравним производство ПО на базе ГСП с RAD-технологией. Оно имеет свои плюсы и минусы. Минусы состоят в том, что у разработчиков прикладного проекта несколько снижается самостоятельность, работа их становится инерционной и зависимой, поскольку они должны периодически переходить на новые версии инструментария и оставаться в пределах некоторых технологических ограничений. Достоинства же очевидны. Сходство различных продуктов по целому ряду характеристик, их интегрируемость друг с другом, гарантированное качество разработок, возможность решения всех технических проблем в одном месте - ГСП. Преимущество такой организации производства заключается и в том, что разделение труда и узкая специализация разработчиков предполагают и более высокую их квалификацию. При наличии ГСП требуются только прикладные программисты, что повышает эффективность работы над проектом в целом и, следовательно, снижает себестоимость разработки.
В основе всего - словарная система
В основу технологии разработки ПО в компании "Диасофт" положена так называемая словарная система, которая обеспечивает также функционирование прикладных систем. Ее использование ускоряет процесс создания приложений в прикладных проектах фирмы. На базе этой системы разрабатывается большое число функциональных фрагментов основной прикладной системы, создаваемых как ГСП (общие части систем), так и прикладными программистами.
Словарная система классифицирует физические и логические компоненты предметной области прикладной системы с использованием таких понятий, как класс, поля класса, метод класса, иерархия, состояние и пр. Она позволяет на основе объектно-ориентированного подхода описать с помощью некоторых абстрактных понятий как предметную область, так и технологии, реализуемые в системе автоматизации.
Для банковских систем к элементарным классам относятся, в частности, такие понятия, как счет, документ, клиент, договор. Они могут иметь потомков, например, счет может быть родителем для таких классов, как корреспондентский счет, счет кассы, расчетный счет, ссудный счет и др. Полями такого класса, как счет, могут быть его характеристики - номер, наименование, дата открытия и закрытия. Короче говоря, вся относящаяся к нему информация. Одни поля класса являются полями БД информационной системы, другие вычисляются как на этапе разработки системы, так и в процессе ее функционирования. Под методами понимаются действия (операции), производимые с экземплярами класса. Например, функции открытие и закрытие счета, получение его сальдо на определенную дату. Экземпляры класса счет могут находиться во многих состояниях, простейшие из них - открыт и закрыт. Фактически словарная система - это БД со специально разработанным для нее редактором.
При ее создании использовалась технология UML (Unified Modeling Language), предложенная известными специалистами в области объектно-ориентированного проектирования Г. Бучем, И. Якобсоном и Д. Рамбо. Она активно продвигается американской фирмой Rational Software Corporation, занимающейся проектированием, разработкой и поддержкой ПО.
Трехзвенная архитектура
Другим важнейшим элементом корпоративной технологии компании "Диасофт" можно считать спроектированную ГСП стандартную архитектуру прикладной системы, создававшуюся с учетом того, что она не должна изменяться в течение четырех-пяти лет и приводить к появлению технических и технологических проблем, препятствующих доработке и расширению программного продукта.
В качестве стандарта выбрана архитектура, предполагающая разделение прикладной системы на три части: первая - интерфейс системы, т. е. заложенные в ней визуальные таблицы, формы и меню, вторая - это бизнес-логика (или, другими словами, прикладные функции) и стандартные функции доступа к базе данных, третья - собственно БД с хранимой в ней информацией. Такая структура обеспечивает отделение ее интерфейсной части от функциональной, благодаря чему можно применять UML-технологию при разработке и эксплуатации прикладного продукта, а также открывает доступ извне к его функциональности.
Интерфейс системы не имеет прямого доступа к БД. Для этого он использует компоненты бизнес-логики, которая, согласно технологии UML, представляет собой методы классов, описанных в словарной системе, а полями этих классов являются поля таблиц БД. Функции бизнес-логики для выполнения элементарнейших операций так же, как и интерфейс, используют стандартные функции доступа к БД.
Очевидно, что все "общение" системы с БД происходит исключительно посредством стандартных функций. Благодаря этому она приобретает ряд преимуществ. Во-первых, на уровне стандартных функций отслеживается целостность БД системы. При удалении записи, связанной с несколькими другими записями, стандартная функция в зависимости от выбранной разработчиком БД стратегии либо удаляет все записи, связанные с ней, либо отказывает в удалении. Во-вторых, использование стандартных функций делает конечную прикладную систему практически независимой от используемой СУБД. Кроме всего прочего, стандартные функции "отвечают" и за особенности работы с разными СУБД. Фактически это означает, что прикладные системы на основе этой технологии могут работать практически на любой СУБД (из допустимых для финансовых систем требуемого масштаба) и в любой архитектуре, как клиент-, так и файл-серверной. Если перекомпилировать систему с другим драйвером БД, то появится система, работающая на СУБД DB2/400, Informix, Oracle или Sybase SQL Server. В случае клиент-серверной архитектуры стандартные функции должны вызывать аналогичные по назначению функции самого SQL Server.
И к стандартным, и к прикладным функциям можно обратиться извне системы - из программ, написанных на языке DiasoftSCRIPT, с такими же возможностями доступа к БД, как и у Clarion. DiasoftSCRIPT - это мощное средство, позволяющее пользователям самостоятельно расширять функциональность прикладной системы в процессе эксплуатации. Нужно отметить, что пользователь, написавший программу на DiasoftSCRIPT, при всем желании не сможет разрушить БД приобретенной системы или выполнить те действия (функции), которые ему недоступны как пользователю. Это происходит благодаря тому, что в стандартных функциях системы, как, впрочем, и в прикладных (методах классов словарной системы), заложена проверка прав пользователя.
Несколько слов об администрировании
К числу общих блоков прикладных систем, разрабатываемых в ГСП, относится и система администрирования. Она также опирается на словарную систему, или, другими словами, в ней используется информация о структуре и классах прикладной системы. Объекты, фигурирующие в системе администрирования, разбиваются на четыре уровня: первый - сама прикладная система, например DiasoftBank 4x4; второй - ее модули ("Операции", "План счетов", "Клиенты" и др.); третий - классы, описанные в словарной системе; четвертый - экземпляры этих классов, например конкретные счета, конкретные договоры и т. д. В процессе проектирования и разработки в словарной системе определяются списки необходимых прав для каждого объекта администрирования. Некоторые из них являются стандартными и автоматически проверяются в стандартных функциях, а остальные проверяются бизнес-логикой системы. Согласно разработанной технологии, автоматическому администрированию подвергаются функции доступа к таблице БД, функции добавления, изменения и удаления записей.
Безопасность прежде всего
К программным продуктам, разработанным для финансовых организаций, предъявляются высокие требования по безопасности и сохранности коммерческой информации. Для обеспечения безопасности требуется решить две задачи: во-первых, обеспечить безопасность системы с точки зрения несанкционированного доступа, во-вторых, проконтролировать неквалифицированные действия пользователей.
Первая решается прежде всего правильным выбором технической платформы и операционной системы сервера, сетевого оснащения и СУБД. И хотя все это обеспечивает определенный уровень безопасности, в разработанной технологии предусмотрены дополнительные средства защиты, поддерживаемые самой прикладной системой. Для всех записей каждой таблицы БД рассчитывается контрольная сумма. При попытке изменить БД несанкционированным способом система диагностирует ошибку расчета контрольной суммы и выполняет какие-либо действия в зависимости от выбранной стратегии реакции на подобные ситуации. Контрольная сумма проверяется в стандартных функциях добавления и изменения. Кроме того, для контроля за правомочностью добавления и удаления информации из БД рассчитываются контрольные суммы для таблиц, выбранных администратором системы.
Неквалифицированные действия пользователей системы контролируются протоколированием всех изменений, выполненных в БД прикладной системы. Это, естественно, снижает производительность системы, поэтому, как и для расчета контрольных сумм таблиц БД, администратор может ограничить список протоколируемых сущностей.
Описанные средства позволят финансовой организации - пользователю системы - самостоятельно определять стратегию безопасности приобретенной системы и полностью контролировать доступ к системе извне.
И еще многое другое...
Словарная система, кроме описанного выше, позволяет решать множество других важных задач. Совершенно естественно желание пользователя любого программного продукта самостоятельно расширять БД. Словарная система ему такую возможность предоставляет. К каждому ее классу можно привязать так называемые гибкие классификаторы и с их помощью описывать дополнительные характеристики классов. В отличие от обыкновенных полей класса, представляющих собой поля таблиц БД, эти классификаторы, содержащие значения самого разного типа, можно добавлять в систему в процессе эксплуатации. Значение классификатора для каждого экземпляра класса может быть задано в той интерфейсной форме, в которой он создавался.
На словарную систему опираются и механизмы индивидуальной пользовательской настройки интерфейса. Так, в модуле "Операции" системы DiasoftBank 4x4 можно создавать произвольные визуальные формы ввода информации в систему. Они строятся средствами редактора визуальных форм, который при образовании полей разрабатываемой формы использует информацию о полях и методах классов. Это позволяет настраивать прикладную систему с учетом особенностей технологии работы конкретного финансового учреждения.
Одна из важнейших задач, стоящих перед разработчиками, состоит в наделении прикладной системы способностью создавать отчеты произвольной формы. Для ее решения на основе всего опыта компании была создана единая для всех прикладных проектов система отчетности, позволяющая выполнять отчеты для любого класса словарной системы. При создании отчета можно использовать стандартные системные поля, добавлять в образец отчета поля, алгоритм расчета которых описан на DiasoftSCRIPT, а также использовать гибкие классификаторы классов. Отчеты могут содержать любое нужное число группировок и итогов, формироваться с любыми сортировкой и фильтрованием (оно задается также средствами DiasoftSCRIPT), их можно развертывать вниз и вправо одновременно.
На основе словарной системы построены также системы поиска записей, расчета статистических характеристик, изменения параметров произвольных множеств записей, или, другими словами, система переноса, т. е. все общие механизмы, используемые во всех разрабатываемых прикладных системах.
Технология ведения версий
Все разработки в компании "Диасофт" ведутся с применением технологии ведения версий, которая дает возможность также решать задачи коллективной разработки приложений, что существенно повышает скорость и качество разработки. Из всего спектра продуктов, поддерживающих технологию ведения версий, компанией выбран Visual SourceSafe фирмы Microsoft, который позволил одновременно разрабатывать и дорабатывать несколько версий одного программного продукта.
Рассмотрим типичную ситуацию. Фирма выпустила программный продукт, работающий во многих банках, и через некоторое время одному из клиентов понадобилось его доработать. Естественно, что за время, прошедшее с момента выпуска используемой версии системы, группа разработчиков значительно ее изменила и доработала. Как можно поступить? Установить клиенту новую версию программного продукта и тем самым вовлечь его в процесс дообучения, конвертации БД и т. д.? Часто бывает так, что необходимые изменения производятся в программном продукте по заказу конкретного пользователя, и если они представляют интерес для других клиентов фирмы-разработчика, то как их перенести в новую версию? Эти проблемы и решают программные продукты, поддерживающие технологию ведения версий. Они позволяют восстановить все исходные тексты любой версии системы и предоставляют средства для переноса выполненных изменений в новую версию.
* * *
Технология создания прикладных информационных систем, используемая в "Диасофт", содержит все необходимые составляющие для производства конкурентоспособного ПО высокого уровня. n
ОБ АВТОРЕ: Геннадий Викторович Бережной - руководитель отдела разработки проекта DiasoftBank, тел.: (095) 232-35-94