Диаграммы классов - сомнительно полезны? - PullRequest
2 голосов
/ 14 августа 2010

Чем диаграмма класса на самом деле отличается от простого просмотра определения класса со всеми свернутыми функциями? Меня попросили написать кое-что, и я понял, что это все просто ... прочитайте источник ... у него есть комментарии. В чем смысл диаграммы классов, чем она отличается от даже незначительно прокомментированных определений и что делает хорошую диаграмму классов лучше других?

Изменить: Да, источник уже существует, и сделал это задолго до диаграмм классов.

Другое редактирование: люди говорили о визуальном, а не о текстовом вкусе. Это не определение диаграммы классов, которое мне дали. Это все еще чисто текстовое. Пример диаграммы классов представляет собой набор текста, который напоминает исходный код с вырезанными определениями функций. Вот почему я спросил. Если бы это была настоящая диаграмма, я бы понял.

Ответы [ 6 ]

3 голосов
/ 14 августа 2010

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

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

3 голосов
/ 14 августа 2010

Если у вас есть один или два класса, это не имеет значения. Если у вас сложная объектная модель, все меняется.

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

0 голосов
/ 14 августа 2010

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

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

Вот один простой пример, который я нашел в Google:

http://netbeans.org/images_www/articles/uml-class-diagram/Completed-Class-Diagram.gif

Некоторые инструменты (например, Microsoft Visual Studio) содержат инструменты, которые позволяют вам нарисовать диаграмму классов один раз и автоматически обновлять ее («синхронизировать») с кодом.Очень полезно.

0 голосов
/ 14 августа 2010

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

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

Не вкладывайте слишком много деталей в диаграммы.Это делает их запутанными.Вы хотите, чтобы они сообщали отношения, а не API и список методов.

Они также помогают увидеть, когда и где рефакторинг кода.Используйте диаграммы классов вместе с соответствующей документацией, и все будет готово.

0 голосов
/ 14 августа 2010

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

Редактировать

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

0 голосов
/ 14 августа 2010

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

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

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

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