Вложенная структурная схема UML

У меня есть какое-то устройство, состоящее из большого количества аппаратного и программного обеспечения. Чтобы прояснить поведение устройства, наша команда решила создать набор UML-диаграмм.

Основная схема должна описывать логическую связь между блоками с типами/параметрами интерфейсов. Но я не могу найти, как сделать диаграмму иерархической, вложенной. Например: на верхнем уровне я хочу показать передачу данных из хост-приложения в DDR, из DDR в какой-то блок конфигурации и из этого блока в блок обработки данных. Затем я хочу нарисовать цепочку математических блоков в блоке обработки и поставить порты из схемы верхнего уровня в качестве внешних портов.

Как я вижу, это не традиционное использование UML. Также я пытался использовать SysML, он предоставляет мне внешние порты, но внутренние блок-схемы — это не то, что я ищу. Итак, вопрос в том, можно ли создать такую ​​диаграмму, которую я описываю? Или диаграммы UML/SysML — это одноуровневые диаграммы?


person Ivan    schedule 23.11.2020    source источник
comment
Какая у вас проблема с SysML? Он точно определен для того, что вы пытаетесь спроектировать. Конечно, вы можете создать свой собственный профиль UML, вдохновленный SysML (что я и делал в прошлом проекте).   -  person qwerty_so    schedule 23.11.2020
comment
@qwerty_so похоже, что SysML не подходит для большой иерархии, IBD не может представить другой IBD (в нотации). Я в заблуждении?   -  person Ivan    schedule 25.11.2020


Ответы (2)


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

  • Чтобы показать общую картину с блоками и их интерфейсами, вы можете использовать схемы компонентов. ;
  • Чтобы показать вложенность некоторых небольших строительных блоков в более крупный компонент, вы можете использовать схема составной структуры;
  • Но если вы хотите показать поведение и процесс обработки, вам нужно использовать действие схема.

Затем задача состоит в том, чтобы связать эти диаграммы и показать, как большая картина разбивается на более простые более мелкие.

Наконец, если вы хотите показать, как программное обеспечение работает на аппаратной платформе и как аппаратные и программные части взаимодействуют друг с другом, вы можете рассмотреть диаграммы развертывания. Но вы также можете выбрать более легкую модель C4. Это позволяет представить структуру более высокого уровня вплоть до взаимодействий компонентов с помощью гибкой более легкой диаграммы, которая менее точна, чем UML, но может лучше справляться с неопределенностью. Затем компоненты C4 детализируются с использованием точных и более формальных моделей UML.

person Christophe    schedule 23.11.2020
comment
Конечно, я понимаю, что это не философия UML, а следующий шаг - диаграммы последовательности и отображение требований, поэтому нужен инструмент, подобный UML. Теперь я создал схему SysML с иерархическими внутренними блок-схемами, но это неправильный способ, потому что помещение блока в IBD - это не метод записи. Может С4 то, что мне нужно, попробую, спасибо. - person Ivan; 25.11.2020

Предлагается использовать IBD (не очень уверен в вашем обосновании, почему это не нормально). Части внутри IBD могут быть разложены до n-й степени, а ссылки/порты могут быть показаны пересекающими границы частей.

Границу части внутри IBD можно рассматривать как собственную рамку диаграммы IBD, и хотя формально она не является объектом диаграммы, она служит той же цели.

person tfitz    schedule 17.12.2020