Учим говорить по-русски: AllFusion Component Modeler (ранее Paradigm Plus)

Козодаев Алексей

Программный продукт компании Computer Associates AllFusion Component Modeler (ранее Paradigm Plus) CASE-средство для проектирования, визуализации и поддержки качественных информационных систем. Обеспечивая расширенную поддержку совместного проектирования и многократного использования компонентов модели, Component Modeler существенно увеличивает производительность команды разработчиков. Component Modeler упрощает создание стратегически важных, многозвенных приложений масштаба предприятия, способных адаптироваться к меняющимся потребностям бизнеса.

Текущей является версия продукта - 4.1, service pack 1. В данный момент времени компанией Computer Associates проводится программа бета-тестирования новой версии продукта - AllFusion Component Modeler 5.0.

Можно достаточно долго говорить о достоинствах данного продукта, среди которых:

  • полноценная поддержка UML версии 1.3
  • механизм Model Xpert Engine интерактивно проверяющий строимую модель на предмет соответствия всем каноном языка UML
  • прямое и обратное генерирование кода
  • и многое, многое другое

однако в данной статье речь пойдет о другом - о настройке AllFusion Component Modeler для корректной поддержки русского языка.

Для хранения информации о моделях AllFusion Component Modeler использует "средства" MSDE (MSDE входит в установочный пакет AllFusion Component Modeler). MSDE (Desktop Engine) - редакция MS SQL Server 2000, в которую включены только механизмы обработки пользовательских запросов и не включены графические инструменты администрирования и многие другие функциональные возможности полнофункциональных редакций MS SQL Server 2000.

Однако для реализации технологии описанной в данной статье необходимо использование полнофункциональной редакции MS SQL Server 2000 (так как редакция MSDE не обладает необходимыми функциональными возможностями).

Итак, при установке AllFusion Component Modeler требуется наличие именованной инсталляции MS SQL 2000 имя_сервера\ACM (в случае отсутствия таковой программа установки предлагает установить MSDE). В процессе установки в именованной инсталляции MS SQL 2000 имя_сервера\ACM создается база данных ACM. Однако на данном этапе происходит копирование файлов AllFusionCM.mdf и AllFusionCM.log, а не создание этих файлов непосредственно в момент установки и последующего запуска скрипта, формирующего необходимые таблицы, хранимые процедуры и набор данных. В результате копирования мы получаем базу данных ACM, поддерживающую только латиницу, то есть параметр базы данных Collation name имеет значение SQL_Latin1_General_CP1_CI_AS.

Для полноценной поддержки русского языка необходимо произвести следующие шаги:

1) установить именованную инсталляцию MS SQL Server 2000 имя_сервера\ACM с поддержкой русского языка (Server Collation - Cyrillic_General_CI_AS)
2) установить AllFusion Component Modeler с базой данных ACM
3) с помощью SQL Server Enterprise Manager в базу данных ACM внести следующие изменения:

а) в таблице RTblRelships изменен тип данных для колонки DstNameLong с text на ntext
б) в таблице RTblSumInfo изменен тип данных для колонки Comments с text на ntext

4) выполнить генерацию SQL-скрипта по всем объектам баз ACM
5) далее с помощью любого текстового редактора открыть полученный скрипт и удалить все строчки COLLATE SQL_Latin1_General_CP1_CI_AS. Т.е. если в скрипте присутствовала команда для создания таблицы следующего содержания:

CREATE TABLE [dbo].[RTblRelships] (
[OrgID] [binary] (8) NOT NULL ,
[Z_OrgBrID_Z] [int] NOT NULL ,
[Z_OrgVS_Z] [int] NOT NULL ,
[Z_OrgVE_Z] [int] NOT NULL ,
[Z_OrgLClock_Z] [int] NULL ,
[DstID] [binary] (8) NOT NULL ,
[Z_DstBrID_Z] [int] NOT NULL ,
[Z_DstVS_Z] [int] NOT NULL ,
[Z_DstVE_Z] [int] NOT NULL ,
[Z_DstLClock_Z] [int] NULL ,
[OrgTypeID] [binary] (8) NOT NULL ,
[RelTypeID] [binary] (8) NOT NULL ,
[DstTypeID] [binary] (8) NOT NULL ,
[PrevDstID] [binary] (8) NULL ,
[DstName] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[DstNameLong] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Z_RelFlags_Z] [smallint] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
После внесения изменений эта же команда должна выглядеть так:
CREATE TABLE [dbo].[RTblRelships] (
[OrgID] [binary] (8) NOT NULL ,
[Z_OrgBrID_Z] [int] NOT NULL ,
[Z_OrgVS_Z] [int] NOT NULL ,
[Z_OrgVE_Z] [int] NOT NULL ,
[Z_OrgLClock_Z] [int] NULL ,
[DstID] [binary] (8) NOT NULL ,
[Z_DstBrID_Z] [int] NOT NULL ,
[Z_DstVS_Z] [int] NOT NULL ,
[Z_DstVE_Z] [int] NOT NULL ,
[Z_DstLClock_Z] [int] NULL ,
[OrgTypeID] [binary] (8) NOT NULL ,
[RelTypeID] [binary] (8) NOT NULL ,
[DstTypeID] [binary] (8) NOT NULL ,
[PrevDstID] [binary] (8) NULL ,
[DstName] [varchar] (200) NULL ,
[DstNameLong] [ntext] NULL ,
[Z_RelFlags_Z] [smallint] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

т.е. фактически удаляется не вся строка с COLLATE SQL_Latin1_General_CP1_CI_AS, а только вхождение данных символов в строку.

6) создать базу данных с именем ACM_RUS и параметром Collation Name равным Cyrillic_General_CI_AS (возможен любой другой вариант, если потребуется поддержка другого языка).
7) с помощью SQL Query Analyzer в базу данных ACM_RUS загрузить полученный ранее скрипт без COLLATE SQL_Latin1_General_CP1_CI_AS
8) с помощью MS SQL Server Enterprise Manager выполнить экспорт данных из таблиц базы ACM в таблицы новой базы ACM_RUS
9) с помощью программы Repository Manager входящей в состав AllFusion Component Modeler выполнить настройку связи с новым репозиторием
10) при запуске AllFusion Component Modeler необходимо в окне выбора Workspace, нажав на кнопку "Select Repository…", переключится на новый репозиторий и указать новый рабочий каталог для хранения рабочих моделей.

После этих действий можно использовать многочисленные функциональные возможности AllFusion Component Modeler для построения информационных систем используя как латинские, так русские символы в своих моделях.

Данное техническое решение найдено преподавателем учебно-консультационного центра компании Interface Ltd Матвеевым Денисом.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=4249