2017-01-20 13 views
2

Является ли это плохой практикой для линий между различными классами для пересечения в диаграмме UML? Это дизайнерский запах? Означает ли это, что ваши классы слишком запутаны или независимы или что-то еще? Всегда ли/вообще неизбежно? Или я переусердствую это?UML Class Diagram - Это плохая практика для пересечения линий?

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

ответ

2

На мой взгляд, линия пересечения может быть неизбежным, но часто это происходит, когда я пытаюсь показать слишком много вещей с одной диаграммой. Я рассматриваю это как «коммуникационный» запах, а не как дизайнерский запах.

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

В вашем примере вы можете сломать свою диаграмму, следуя цветным областям, которые вы уже идентифицировали.

3

Это плохая практика для линий между различными классами, чтобы пересечь

Да, потому что это может препятствовать пониманию графика/диаграммы.

Является ли это всегда/как правило, неизбежно

Не все графы являются плоскими (см тестирование плоскостности), так что иногда это неизбежно.

Но проблема не такая простая, как «Я просто проложю линию вокруг». Существует множество правил и рекомендаций, которые составляют хороший макет или способствуют хорошей визуальной эстетике; чтобы назвать только некоторые из них:

  • линии пересечения (вы могли видеть в некоторых схемах небольшой мост, когда линии пересечения)
  • количество линии изгибов
  • общая длина линии
  • иерархии (обычно наследуемые линии должны быть нарисованы вверх)

Вы уже можете видеть, что некоторые из этих правил конкурируют; поэтому макетирование всегда является балансирующим действием. Если вас интересует более подробно, я предлагаю googling для «графической эстетики» или «автоматического (графического) макетирования».

К сожалению, большинство исследовательских работ, которые у меня есть, находятся за платной линией, поэтому я не могу ссылаться на pdf-файлы, но некоторые из них могут быть доступны для Google; например UML Diagram Layouting: the State of the Art или Aesthetics of Class Diagrams

+0

Я второй подход к мосту! –

1

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^