Модель соединения сигнал-слот в Qt

Мне нравится документировать соединения с сигнальными слотами (например, соединения в особой ситуации) с помощью UML. Я использую Enterprise Architect, и когда у меня более 5 сигналов и/или слотов на класс, это становится очень запутанным. Я попробовал блок-схему и Схема компонента:

Блок-схемы. Я смоделировал свои классы как Процессы и использовал Порты для своих сигналов/слотов.

Диаграммы компонентов. Я использовал Компоненты для своих классов и Интерфейсы для слотов сигналов.

Есть ли у вас опыт моделирования сигналов/слотов и что бы вы посоветовали? Есть ли решения, которые лучше подходят для сигналов/слотов?

Чарли


person Charly    schedule 11.01.2012    source источник


Ответы (1)


Я всегда использовал диаграмму последовательности, потому что нашел систему "линий жизни", показывающую передача потока между объектами естественным образом соответствует шаблону сигналов/слотов. Цитата из статьи в Википедии, ссылка на которую приведена выше:

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

Кажется, согласен с этой точкой зрения, и это довольно легко читать.

Что касается порядка вызова слотов, документация Qt разъясняет это:

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

Время — это относительный термин, и его можно использовать для обозначения всего, что вы хотите: до тех пор, пока вы последовательны и четко понимаете, что вы сообщаете, никто не будет возражать.

person Liam M    schedule 11.01.2012
comment
Но диаграмма последовательности содержит гораздо больше информации, чем просто сигнал/слоты. Например. Я не знаю тайминга и последовательности сигнальных слотов. А если у меня есть 5 объектов, каждый из которых взаимодействует с другими - диаграмма последовательности быстро становится очень большой! - person Charly; 11.01.2012
comment
@Charly Я изменил свой ответ, вместо того, чтобы писать ответ здесь :). - person Liam M; 12.01.2012