вторник, 18 ноября 2014 г.

Шаблон "Сборка документов из частей на основе моделей"

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

Давайте посмотрим на процедуру создания модели и убедимся в ее схожести с процедурой сборки документа из частей - файлов. Для каждого элемента этой процедуры (файла документа, каталога на диске) есть аналог в процедуре с использованием модели. Аналогом файлов в модели SysML будут выступать блоки. Аналогом каталогов на диске в модели SysML будут выступать пакеты. Пакеты физически содержат в себе блоки, также как каталоги на диске содержат в себе файлы. Блоки могут логически включать другие блоки (аналог включения в файл других файлов с помощью ссылок). Включаемые блоки могут физически находиться в любом пакете модели.

Каждый блок может включать в себя другие блоки. Другие блоки включают в себя еще какие-то блоки и так далее. При этом, любой блок может быть включен в произвольное количество блоков. В модели SysML включения между блоками можно визуально отобразить на диаграмме определения блоков. Стрелками с заштрихованным ромбом отображаются отношения включения.


В модели SysML блоки раскладываются по папкам произвольным образом, также как раскладывались по каталогам на диске файлы в предыдущем посте . Например, в браузере модели мы можем создать пакеты с названиями "Блоки первого уровня", "Блоки второго уровня", "Блоки третьего уровня" и разложить по ним созданные блоки.


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

Для каждого блока в браузере модели мы можем увидеть информацию о логически включенных в него блоках (см. рис. ниже). В этом представлении для каждого блока мы видим только один уровень включения.



В браузере модели MagicDraw есть чрезвычайно-полезное "Представление структуры". Оно отображает все уровни включения для блока, собирая для отображения информацию из всех уровней включенных блоков. Ниже показан такое представления, в котором для Блока А и Блока B отображена вся иерархия включения.


В MagicDraw я впервые увидел такое представление в браузере модели. Ни в Eclipse Papyrus, ни в Rational Rhapsody такого сборного представления модели нет. Для получения подобной информации в этих инструментах необходимо генерировать отчет по модели. В MagicDraw позволяет просмотреть всю информацию о структуре (все уровни) непосредственно в интерфейсе. Это чрезвычайно удобно в определенные моменты при создании модели. 

На основе любого элемента модели может быть опубликован документ, содержащий информацию о всех вложенных в него и рекурсивно ниже блоках.  Блоки могут содержать текстовые описания, которые тоже могут быть включены в опубликованный документ. Публикуя документы для различных элементов модели (например, Блока А или Блок B) мы будем получать несколько отличающиеся друг от друга документы, созданные на основе одного источника. Процесс создания таких документов в модели очень напоминает создание сборного документа в текстовом редакторе, но помимо этого еще позволяет визуально отобразить отношения между "частями документа" на диаграммах. 

Комментариев нет:

Отправить комментарий