Технологии от BoldSoft: новый взгляд на проектирование ИС
Константин Берлинский
30.11.2002
Одной из наиболее тривиальных задач, решаемых многими
коллективами программистов, является построение информационной системы для
автоматизации бизнес-деятельности предприятия. Все архитектурные компоненты
(базы данных, сервера приложений, клиентское ПО, аппаратная часть и средства
связи) хорошо известны и не создают трудностей при создании и сопровождении.
Однако существует один немаловажный фактор, делающий разработку чрезвычайно
трудным и утомительным процессом.
Таким фактором являются изменяющиеся требования бизнеса и,
соответственно, наличие в системе огромного числа сложных и хаотично
переплетённых бизнес-правил. Если на начальном этапе построения ИС они занимают
сравнительно небольшое время для изучения, то этап развития становится настоящим
"кошмаром сопровождения", увеличивая энтропию продукта и ведущее к его
устареванию и разрушению.
На данный момент, наиболее популярным инструментом построения
офисных приложений в СНГ, является, по моему мнению, Borland Delphi. И многих
разработчиков наверняка заинтересуют продукты, интегрируемые с этой средой, для
решения вышеуказанной проблемы. Самую развитую технологию предоставляет сейчас
компания BoldSoft из Швеции. Ниже будет дан общий обзор архитектуры, созданной
этой перспективной компанией, кстати, недавно включённой в состав Borland
Software Corporation. [1]
Приложение, на основе которого будет дан анализ, взято из
учебных материалов, доступных на сайте BoldSoft [2]. Это программа по управлению
человеческими ресурсами компании. Далее представлена UML-модель приложения "HRManager",
построенная в Rational Rose (рис.1).
Рисунок описывает следующие концепции АИС:
- существуют компании (Company) и её отделения (Department);
- отделения являются бизнес-подразделениями (BusinessUnit) компаний;
- компании и отделения производные от понятия "рабочее место" (WorkPlace);
- служащие (Employee) работают (worksFor) в отделении, причём один из них
является менеджером (manager), т.е. управляет (manages) служащими своего
отделения;
- менеджер может управлять несколькими отделениями;
- для менеджера в любой момент времени доступен список работников тех
подразделений, которыми он управляет;
- для каждого работника известны данные человека, которым он управляется (Managed
By);
- служащие (employs) образуют группу работников (Employment);
- менеджеры образуют группу управляющих (Management);
- работники отделений компании образуют её рабочую силу (WorkForce);
- компании и отделения имеют названия (name) и атрибут, показывающий
ежемесячные затраты (monthlyCost), складывающиеся из суммы зарплат за месяц (monthlySalary)
работников штатной единицы;
- должна быть возможность одновременного изменения зарплаты (AdjustSalary)
всем работникам штатной единицы на определённый процент (Percent);
- для каждого отделения устанавливается пороговое значение высокой зарплаты
(highSalaryThreshold) и служащие, достигшие этого порога, считаются
высокооплачиваемыми (highlyPaidEmployees);
- в каждой компании есть список высокооплачиваемых сотрудников (TopSalaries);
- работник характеризуется именем (firstName), фамилией (lastName) и полным
именем (fullName), образуемое как имя и фамилия, записанных через пробел.
Надо признать, что требования к системе, выполненные в виде
качественно сделанного текста на английском языке, напрямую превращаются в
классы модели (обычно, подлежащее предложений), их атрибуты (существительные) и
методы (сказуемое и глаголы), а также связи между ними (существительные).
Классы Company и Department унаследованы от класса WorkPlace
(реализуются бизнес-правила № 1 и 3).
Класс HRClassesRoot является суперклассом для WorkPlace и
Employee.
Описание остальных связей модели приведено ниже (таб. 1).
Таблица 1 – Семантическое описание связей модели
RoleA |
RoleB |
Название |
N |
Название |
N |
1. |
BusinessUnit |
company |
1 |
departments |
0..* |
2 |
2. |
Management |
manager |
0..1 |
manages |
0..* |
4,5 и 9 |
3. |
Employment |
employs |
0..* |
worksFor |
0..1 |
4 и 8 |
4. |
Managed By |
manager |
0..1 |
employees |
0..* |
6 и 7 |
5. |
Workforce |
employer |
0..1 |
employees |
0..* |
10 |
6. |
TopSalaries |
highPaying
Employer |
0 |
highlyPaid
Employees |
0..* |
13 и 14 |
N – множественность связи.
Бизнес-правило №11 реализуют атрибуты классов WorkPlace/monthlyCost
и Employee/monthlySalary соответственно. БП №12 обеспечивается наличием метода
WorkPlace/AdjustSalary(Percent: Integer). И, наконец, последнее БП №15
выполняется с помощью полей класса Employee – firstName, lastName, fullName и
специального OCL-выражения, автоматически вычисляющего полное имя служащего.
Для того чтобы использовать настройки BoldSoft, командой из
среды Rational Rose "Tools/Model Properties/Replace" необходимо подгрузить
специальный файл (обычно это \\…\BoldSoft\BfDR31D6Ent\Rose\BfD.pty). После
этого, для каждой связи, при необходимости, нужно открыть раздел её свойств и
записать в поля BoldA/DerivationOCL и BoldB/DerivationOCL OCL-выражения,
соответствующие определённым БП.
Список необходимых OCL-выражений, приведён далее (таб. 2).
Таблица 2 – OCL-выражения для ассоциативных связей
№ |
Название ассоциации |
OCL-выражение для RoleA |
OCL-выражение для RoleB |
1. |
Managed By |
manages.employs |
worksFor.manager |
2. |
Workforce |
worksFor.company |
departments.employs |
3. |
TopSalaries |
Employee.emptyList |
- |
Необходимо также настроить параметры, специфичные для
BoldSoft (DeleteAction, Embed, ExpressionName) и выполнить другие, достаточно
простые действия, для получения функционального приложения [2].
Хотелось бы обратить внимание на то, что построение
аналитической модели – "каркаса" проекта одинаково возможно как в среде Borland
Delphi - через встроенный Bold UML Model Editor (рис.
2), так и в самой Rose. Во втором случае, необходимо чтобы в проекте Delphi
в обязательном порядке присутствовали компоненты BoldModel и BoldUMLRoseLink.
После этого можно реализовывать процесс "round-trip
engineering" (поочередное обновление модели или программного кода). Команда
редактора "Export via Link" обновляет модель из кода, "Import via Link"
производит обратный процесс. Таким образом, синхронизируется дизайн системы и её
реализация, эффективно используются как многочисленные возможности визуальных
сред разработки (например, Borland Delphi или C++ Builder), так и мощь
CASE-инструментов построения моделей (например, Rational Rose).
Когда аналитическая модель построена, остается только
разместить нужные компоненты на формах и настроить свойства соответствующих
объектов [2]. Конечный результат приведён на
рис. 3.
Программа поддерживает все бизнес-правила, описанные в
функциональных требованиях к системе. При смене выделения компании или отдела,
автоматически происходит обновление списка работников. Такие функции, как
изменение зарплаты всем работникам штатной единицы или повышение служащего до
уровня менеджера отделения, реализованы через всплывающие меню.
Возможно динамическое изменение уровня, достигнув который,
работники подразделения считаются высокооплачиваемыми (атрибут
highSalaryThreshold). При этом, программа запоминает все установленные настройки
и при последующей загрузке восстанавливает их. Для каждого экземпляра класса,
Bold "по умолчанию" поддерживает возможность просмотра его атрибутов. Так,
например, двойным кликом по служащему можно вызвать форму, где указаны его
свойства и параметры установленных связей (рис.
4).
В учебном примере, для того, чтобы не "нагружать" приложение
ненужными подробностями взаимодействия с базами данных, введённая информация
сохраняется в XML-файл. Однако Bold, с одинаковой легкостью, позволяет
генерировать схему БД. Для того чтобы этим воспользоваться, необходимо создать
алиас (например, в SQL Explorer), а затем, командой в редакторе модели "Tools/Generate
Database", сгенерировать структуру БД (рис.
5).
При создании физической модели базы, Bold основывается на
атрибутах классов модели и, кроме того, добавляет служебные таблицы и поля (рис.
6).
В заключение хотелось бы отметить, что, несмотря на некоторые
недостатки, свойственные любой молодой и развивающейся технологии, архитектура
Bold обладает значительным потенциалом и отличными перспективами. Основными
достоинствами Bold, являются:
- единое хранилище бизнес-правил ИС, что значительно облегчает их создание и
дальнейшее сопровождение;
- бизнес-логика ИС преобразуется в связи между классами и описывается с
помощью языка OCL, а не рассеяна по DB-компонентам, обработчику
ApplicationEvents.OnIdle() и различным функциям OnClick() и OnChange();
- хорошая интеграция с CASE-инструментарием Rational Rose – популярным
средством моделирования бизнес-процессов;
- качественное выполнение кодогенерации и реинжиниринга;
- "прозрачное" отображение сущностей модели и их связей на компоненты Bold в
Delphi/C++Builder;
- поддержка "вычисляемых" полей;
- генерация схемы БД, основанной на модели классов.
Опытный читатель-практик, несомненно, найдёт и другие
полезные возможности BoldSoft. Пока же остается надеяться, что компания Borland,
"доведёт до ума" эту, безо всякого сомнения, перспективную архитектуру, и
многочисленные разработчики получат долгожданную возможность "правильного"
проектирования, основанного на бизнес-объектах, а не на устаревшей практике
разработок в стиле "code and fix".
Литература
http://www.borland.com/l
http://doc.boldsoft.com/
Константин Берлинский (berlicon@yahoo.com)
— системный аналитик Департамента информационных технологий при Правительстве
Республики Молдова (Кишинев).
|
|
Коротко
о системе Е-МАСТЕР |
Е-МАСТЕР®
— система управления корпоративной информацией.
Е-МАСТЕР®
включает в себя возможности систем класса ECM (Enterprise
Content Management).
Система обеспечивает:
- Совместное создание и согласование документов
- Каждый документ может быть обсужден как при
помощи прикрепленного к нему мини-форума, так
и в главном форуме
- Разработанный документ может быть направлен
на согласование по указанному маршруту
- Хранение документов любых форматов
- Хранение и передача документов в зашифрованном
виде
- Встроенные системы восстановления после сбоев
и резервного копирования
- Поиск документов
- Возможность поиска по ключевым словам и другим
атрибутам документов (автор, дата создания…)
- Возможность поиска с помощью навигации по
рубрикам
- Управляемый доступ к документам
- Возможность установки доступа к документам
для различных категорий пользователей
- Возможность введения ограничений на работу
с документами
- Функциональный интерфейс пользователя
- Веб-интерфейс, позволяющий просматривать
карточки и скачивать файлы из системы хранения
документов
- Удаленный доступ или работа пользователя
из любой точки мира (при условии подключения
к Интернету).
|
|
Система FLAMORY™ |
FLAMORY™ — уникальный программный продукт, позволяющий сохранять историю действий пользователя на компьютере, таких, например, как работа в приложениях Windows, посещения сайтов и д.р.
Сохраненные последовательности действий, далее, можно просмотреть, сохранить в файл и передать коллегам. FLAMORY позволяет аккумулировать и делиться знаниями.
Работая с FLAMORY, обмен опытом, обучение новых сотрудников, обсуждения технологий, становятся, как никогда ранее, простой и удобной, в практических аспектах, задачей.
FLAMORY™ разрабатывается при участии специалистов KMSOFT.
Скачать бета-версию можно по этой ссылке.
|
|