Веб Дизайн - статьи

       

Преобразование Бизнес Модель в Модель сообщений


UML Модель сообщений специфицирована как тип сообщения и состоит из: классов сообщений, атрибутов и соответствий (ассоциаций). Эти термы формально определены в UML и представляют класс сообщений, который является подкласс формального класса UML. Эти термы используют различные формы обычного UML класса, т.к. сообщение может состоять из атрибутов форм одного или более классов.

Правило 1. Классы сообщений должны быть структурно иерархически взаимосвязаны. Корневой класс всегда должен быть определен. Создавая корневой класс предпочтительно ему дать имя БМ сообщения, например при моделировании EDIFACT сообщения CusDec (таможенная декларация), классу предпочтительно дать имя CustomDeclaration. Ниже изображен формальный UML класс - CustomDeclaration

Секции и подсекции в БМ могут быть разделены на категории по:

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

Ниже приведен пример создания корневой секции сообщения CusDec. В таблице приняты следующие сокращения:

O = Optional / Необязательный DE = элемент данных справочника UN/EDIFACT

R = Requred / Обязательный CL = значение из списка кодов справочника

D = Dependent / Зависимый

Секция А - Message Information (информация о сообщении)



Наименование терма, ссылка на Элемент данныхO/R/DЗначение клалификатора, примечаниеЭлемент данных клалификатор
А 1 идентификация документа&nbsp 
A1-1 Document type codedR"914" = Customs declarationCL 1001 - 335
A1-2 Document issue dateR CL 2005 - 137
A1-3 Customs procedureR1 - export, 2 -importCL 8323
A1-4 Customs Declaration numberR CL 3035 - CM
A1-5 Carrier booking numberDPrimary key, if not CUCL 1153 - BN
A1-6 Invoice reference numberD CL 1101- 935
A1-7 Consignor reference numberDPrimary key, If not BNCL 1153 - CU
A1-8 Reference to previous messageD CL 1153 - ACW
A1-9 Message senderOFor return purposesCL 3035 - MS
A1-10 Message receiverOFor on-distributionCL 3035 - MR
A2 функции сообщения  DE 1225
A2-1 OriginalD CL 1225 - 9
A2-2 ReplaceD CL 1225 - 5
A2-3 CancellationD CL 1225 - 1
A3 идентификация Edifact   
A3-1 Message typeOFixed "CUSDEC"DE 0065
A3-2 Message type versionOFixed " D"DE 0052
A3-3 Message type releaseOFixed "98A"DE 0054
A3-4 Controlling agencyOFixed "UN"DE 0051
A3-5 MIG identityOFixed "SE0023"DE 0057
A3-6 Message reference numberO DE 0062



Таблица 2

Аналогичным образом строятся остальные секции БМ.

Правило 2. Создать класс сообщений для каждой необязательной секции. Имя класса сообщений должно быть эквивалентно имени секции.

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

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

Правило 3 (необязательное). Секция может быть перенесена, при соблюдении следующих условий:


  • максимальное кол-во соответствий = 1 (не повторяющихся), и
  • существует только одна родительская ассоциация.


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

Правило 4. Создание единственной ассоциации (соответствия).

Единственное соответствие создается из сообщения родительского класса к дочернему классу сообщения при отсутствии множественной ссылочности.



"Соответствие" в сообщение имеет только одно направление - от родительского класса к дочернему. Возможно представления множественных соответствий. Множественные соответствия записываются как Min..Max Например по одной таможенной декларации возможно провести от одного до : (десяти) контейнеров. В этом случае соответствия представится как 0..9. Множественность должна описываться в конце дочерней секции.

Правило 5. Создание множественного соответствия.

Множественные соответствия создаются для класса сообщений, включающие подсекции категории списка ролей.



Каждое множественное соответствие дает свое имя роли. Имя роли определяется как имя терма данных в подсекции категории списка ролей. Каждое имя роли будет заменено дочерним именем класса, сгенерированным в XML/DTD или схемы XML. Использование нотации UML "+" показывает, что имя роли имеет атрибут "public".


На рисунке ниже изображено альтернативное изображение UML модели.



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

Данные термов в секции могут быть категоризированны как: необязательный терм данных, имя роли и значение кода (см таблицу 2). Возращаясь к примеру в таблице 2 значение терма (терм кодов) A1-3 (Customs procedure ) в справочнике кодов 8323 имеет значение 1- export и 2- import, значение CU для роли A1-7 (Consignor reference number ) по справочнику кодов 1153 , а значение для данных A1-2 (Document issue date ) является датой принятия документа (например 12/12/2000).

Правило 5. Создание атрибутов для термов данных и кодов значений.

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



Когда атрибуты созданы, количество свойств может быть определено на информации из БМ. :


  • тип данных;
  • множественность;
  • допустимые значения;
  • бизнес правила;
  • комментарии
  • стандартные ссылки.


Тип данных используется в создании XML схемы и может иметь допустимые значения соответствующие определению схемы XML.

Множественность - используется в создании XML/DTD или схемы XML. Допускаются следующие два значения:


    0..1 - для необязательных (optional) атрибутов

    1..1 - для обязательных (mandatory) атрибутов


Допустимые значения используют определение одного или более допустимых значений кодов атрибутов. Например:


  • Таможенный режим TypeDeclaration - 1 "export" , 2 "import"
  • Вид перевозки EquipmentType - CN - контейнер, PL - паллеты;


Эти значения всегда используются при создании XML/DTD или схемы XML.



Бизнес правила могут быть определены для более сложных зависимостей в БМ. Хотя бизнес правила не используются при создании XML/DTD или XML схемы.

Комментарии о терме данных в БМ могут быть скопированы как комментарии атрибутов. Оны будут использованы для документирования.

Стандартные ссылки представляют уникальный идентификатор какточеку определения стандартного атрибута т.е. номер тага элемента данных UN/EDIFACT. Они могут быть использованы для документирования, а также и при создании XML/DTD и схемы XML как альтернативных атрибут имени.

Ниже на рис. 4 приведена диаграма классов UML бизнес модели сообщения CusDec:



Рис. 4

При автоматической генерации из БМ в XML/DTD или XML схема используется формальный алгоритм преобразования. Правила преобразования UML модели в XML/DTD или схеме XML осуществляюстя в соответсвии следующими правилами:
Модель сообщения XML/DTD XML Sсhema
Имя класса корневого сообщения Имя корневого элемента Имя типа корневого элемента
Имя роли Имя элемента Имя типа элемента
Множественное соответствие ?, *, +, (empty) Соответствие min и max
Имя атрибута Имя элемента Имя типа элемента
Тип данных атрибута - Тип данных или макс. длинна
Атрибут множественности ?, (empty) Соответствие min и max
Значение атрибутов допустимый список значений Допустимый список значений
При создании XML/DTD или схемы XML БМ специфицируется последовательно по секциям, начиная с корневой, и далее с подсекции и термов данных и должны быть сохранены в модели сообщения. Соответствия и атрибуты должны быть смоделированы в некоторой последовательности. Это возможно только для атрибутов, исключая соответствия. Ниже приведен пример XML/DTD, полученный в результате моделирования секции сообщения Customs.

<?xml version="1.0"> <!- section B 4 Customs --> <!ELEMENT Customs (CustomsIdentification, CustomsDetails) > <!ELEMENT CustomsIdentification (CustomsID ; код таможни CustomsRegion?, ; регион деятельности таможни CustomsType?, ; тип таможни CustomsPostName, ; наименование тамж.


Поста Address?)> ; адрес поста <!ELEMENT CustomsID (#PCDATA)> <!ELEMENT CustomsRegion (#PCDATA)> <!ELEMENT CustomsIype (#PCDATA)> ; "destination", "departure","border" <!ELEMENT CustomsPostName (#PCDATA)> <!ELEMENT CustomsDetalies (DataTimeRegistration, ; дата и время оформления TypeExamination?, ; вид досмотра SealExamination?, ; номер печати после досмотра InspectorName, ; ФИО инспектора SealNumber, ; номер личной печати TextDetalies?) > ; примечание <!ELEMENT DataTimeRegistration (Date, ; дата оформления Time?) ; время оформления <!ELEMENT TypeExamination (#PCDATA)> <!ELEMENT SealExamination (#PCDATA)> <!ELEMENT InspectorName (#PCDATA)> <!ELEMENT SealNumber (#PCDATA)> <!ELEMENT TextDetalies (#PCDATA) > <!ELEMENT Address (Province?, ; регион City, ; город Street?, ; улица HomeNumber?, ; номер дома OfficeNumber?, ; номер офиса Zip?)> ; почтовый индекс <!ELEMENT Date (#PCDATA) > <!ELEMENT Time (#PCDATA) > <!ELEMENT Province (#PCDATA) > <!ELEMENT City (#PCDATA) > <!ELEMENT Street (#PCDATA) > <!ELEMENT HomeNumber (#PCDATA) > <!ELEMENT OfficeNumber (#PCDATA) > <!ELEMENT Zip (#PCDATA) >


Содержание раздела