UML - Как управлять диаграммами больших классов? - PullRequest
11 голосов
/ 07 июня 2009

Для моего отчета о проекте мне нужно показать диаграмму классов созданного мной программного обеспечения, которое насчитывает около 20 классов! Проблема в том, что когда я рендерил диаграмму классов в jpeg-файле (используя StarUML или ArgoUMl или что-то еще), мы не можем видеть детали правильно (очень большая картинка из-за большого количества классов). Ну как правильно справиться с этой ситуацией? Так как отчет будет напечатан на страницах формата А4?

Спасибо!

Ответы [ 8 ]

21 голосов
/ 07 июня 2009

С 20 классами я бы ожидал, по крайней мере, 3 подсистемы (модули, слои), возможно, больше

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

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

Приятно печатать большие диаграммы на огромных листах бумаги (например, 500 таблиц на A0 ;-), но на самом деле это не очень полезно.

4 голосов
/ 07 июня 2009

Создание диаграммы классов, содержащей 20 классов, совершенно бесполезно - что это на самом деле показывает? При использовании диаграмм классов я никогда не создавал диаграмму, на которой было бы более 5-8 классов.

Вопрос, который нужно задать себе: «Какую полезную информацию я пытаюсь показать на этой диаграмме?». Не создавайте диаграмму классов ради этого!

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

2 голосов
/ 07 июня 2009

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

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

Bouml (http://bouml.free.fr) имеет все эти параметры рисования, и, как было сказано, имеет экспорт PNG и SVG

С наилучшими пожеланиями и счастливого моделирования

Bruno

2 голосов
/ 07 июня 2009

Есть несколько вещей, которые вы можете сделать:

  1. Большая бумага
  2. Не отображать сигнатуры методов
  3. Не отображать приватные методы
  4. Разделите вашу проблему на несколько пакетов
  5. Меньше классов на диаграмму

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

1 голос
/ 07 июня 2009

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

Вы можете , вероятно, рефакторинг с помощью FacadePattern. По сути это просто разбить вещи на модули. Например, Расписания, PayCheck, BonusRecord могут быть заточены в ManagementSystem. Продукт, заказ можно сгруппировать в OperationSystem и т. Д.

1 голос
/ 07 июня 2009

Используйте BOUML. ArgoUML и StarUML - это классика, о которой все упоминают, когда речь заходит о том, «есть ли бесплатное программное обеспечение UML?». Забавно, что историческое программное обеспечение не делает программное обеспечение неизвестным и неиспользованным. В случае Арго и Стар исторический коэффициент делает их известными и используемыми.

BOUML можно экспортировать в SVG. Это решит ваши проблемы. Я описал инструмент здесь

Благодаря SVG вы сможете быстро переключаться между птичьим и детальным обзором. Я делаю это с Firefox. Это быстро быстро.

PS. Я просто заметил, что вы хотите распечатать отчет. SVG тогда, вероятно, не то, что вы хотите: \

1 голос
/ 07 июня 2009

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

0 голосов
/ 07 июля 2014

Разделите ваши классы на несколько диаграмм! При создании модели UML у вас могут быть элементы модели, такие как классы, отображаемые (нет) на нескольких диаграммах. Диаграмма - это просто представление вашей модели UML, так что вы можете выделить модули в ваших конкретных диаграммах.

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