Что нужно знать о UML?

18

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

Я посмотрел на UML, и в принципе это, кажется, то, что я ищу, но это кажется излишним. Информация, которую я нашел в Интернете, также кажется очень раздутой и академической.

Как я могу понять UML простым английским языком, достаточно, чтобы объяснить его своим коллегам? Каковы канонические ресурсы для понимания UML на уровне земли?

Ханно Фиц
источник
1
Мне больше понравился старый заголовок, по крайней мере, его начало: «Какие 10% наиболее полезны в UML?» В противном случае, хорошо редактировать!
Джои Адамс
если у вас уже есть документация, написанная, вероятно, уже в uml, вы просто не знакомы с тем, что они решили назвать вашим типом документации
Ryathal

Ответы:

4

Понравились вопросы - те же, что я задавал себе:

Как я могу понять UML простым английским языком, достаточно, чтобы объяснить его своим коллегам? Каковы канонические ресурсы для понимания UML на уровне земли?

Вот что я нашел:

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

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

Между этими двумя книгами иногда возникают различия в том, какой синтаксис принадлежит какой версии стандарта UML. Однако они незначительны и определенно несущественны для использования UML-диаграмм для передачи дизайнерских идей. (Например: допускает ли UML 2 дискретные кратности, т. Е. Показывает, что определенное свойство может иметь ровно X, Y или Z объектов, а не просто ноль, один, много или больше, например, X; когда имена участников должны быть подчеркнуты. ..)

Для совершенно не академического и менее многословного введения: в этом блоге есть статьи на различные части UML: http://blog.diadraw.com/category/uml/

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

рулон
источник
Эта ссылка в блоге хороша.
Ханно Фитц
8

Мне очень понравился UML Distilled Мартина Фаулера . Коротко и мило, и более чем достаточно для дискуссий на доске. Получите пару копий и передайте их всей команде.

Кевин Клайн
источник
1
+1 за упоминание этой книги, я совершенно забыл об этом, когда писал свой ответ!
Александр Галкин
2
Не могли бы вы немного подробнее рассказать о своем опыте с книгой?
В чем причина понижения голоса?
Кевин Клайн
1
Когда я стал руководителем команды, я первым делом купил копии этой книги для всех в моей команде. Это дало нам общий словарный запас для обсуждения наших проектов. Некоторые молодые ребята также сообщили, что это помогло им лучше понять схемы в различных книгах по шаблонам дизайна, которые они прочитали.
TMN
2
@kevincline Я обычно делаю ссылку на Amazon, потому что она преобразует ссылку в URL-адрес реферера для Stack Exchange. Если кто-то нажимает и покупает этот URL, Stack Exchange может заработать деньги. Найти название книги у вашего любимого продавца книг по вашему выбору также становится тривиально: с названием, автором и информацией ISBN от Amazon.
Томас Оуэнс
5

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

Я считаю эти диаграммы наиболее полезными:

  • Диаграмма вариантов использования
  • Диаграммы классов
  • Диаграмма деятельности
  • Диаграмма последовательности

Есть так много полезных ресурсов, но проверьте их:

Правка-1 в ответ на комментарий Марка.

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

Без шансов
источник
+1 для диаграмм класса , последовательности и активности . Диаграммы вариантов использования меня совсем не убеждают, кроме того, что они являются отличными обложками для отчетов, поскольку пользователям, похоже, нравятся картинки.
Sjoerd
@Sjoerd, спасибо за ваш комментарий. Как вы правильно указали, варианты использования любимы пользователями. Кроме того, диаграммы вариантов использования имеют много значений. Они позволяют вам идентифицировать актеров (первичных и вторичных) и позволяют обнаруживать «C-Case Cse Cases». Его связь с вашей диаграммой деятельности и диаграммой классов, которые создают единство в вашей спецификации. Помните, что они не являются заменой подробных бизнес-правил и полной документации по требованиям.
NoChance
Можете ли вы подробнее рассказать о своем опыте работы с этими ресурсами? Что с ними, а не с другими, помогло вам понять UML?
@MarkTrapp, спасибо за ваш комментарий и за изменения.
NoChance
2

Если вы удовлетворены всего лишь 10%, то вам не следует пытаться изучать это из книги UML. Скорее, вам лучше прочитать хорошую книгу по объектно-ориентированному анализу или шаблонам проектирования - эти книги дают вам 10%, которые вы ищете.

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

Почему я рекомендую именно эту страницу? (спросили в комментарии)

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

  1. Он представляет вам обзорную таблицу UML-диаграмм на самой первой странице.
  2. В этой таблице, кроме краткого описания каждого диграмм UML2.0, также есть очень полезный столбец «Приоритет обучения», который может помочь начинающему UML идентифицировать наиболее часто используемые диаграммы UML.
  3. Несмотря на то, что содержит диаграммы машинно-визуализации , а также, большинство диаграммы выглядят как быть рисованной (вероятно , они являются рисованной). Я воспринимаю это как признак того, что моделирование по-прежнему можно выполнять, используя только карандаш и бумагу, не нужно углубляться в ПО для визуализации UML с самого начала.
Александр Галкин
источник
Можете ли вы подробнее рассказать о своем опыте с этими рекомендациями? Что с ними, а не с другими, помогло вам понять UML?
1

Карманный справочник UML 2.0 от O'Reilly немного более подробен, но, вероятно, является лучшим выбором, поскольку он достаточно мал, чтобы быстро найти то, что вам нужно, но все же содержит объяснения, когда они вам нужны. И это актуально, что не относится к "шпаргалкам UML" или справочным карточкам, которые я нашел в Интернете - они в основном описывают UML 1.x

Майкл Боргвардт
источник
Можете ли вы подробнее рассказать о своем опыте с этой книгой? Что с этим, а не с другими книгами, помогло вам понять UML?
@Mark Trapp: в основном из-за того, что он маленький, поэтому вы можете быстро подобрать все самое необходимое, не теряясь в деталях и особых случаях.
Майкл Боргвардт
0

Есть три части к этому:

  1. Получить официальную ссылку на UML

    В любое время, когда вы изучаете новый «язык», получите справку, которую вы можете извлечь и использовать в любое время, будь то книга или онлайн-ресурс. UML Distilled небольшой, имеет отличные объяснения и множество четких диаграмм. Даже если вы не используете все функции, вы всегда можете вернуться и посмотреть на «правильный» способ выразить что-то.

  2. Используйте UML для моделирования вещей

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

  3. Используйте немного UML в реальных проектах

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

Вспомните свои школьные уроки письма. Ваш учитель, вероятно, считал кардинальным грехом начинать предложения словами «и», «но» или «или». По мере того, как вы стали больше писать и получили больший контроль над английским языком, вы узнали, как изменить правила для большего эффекта - вы перешли от следования правильному подходу к тому, который передавал то, что вы хотели сказать лучше всего. UML должен использоваться в промышленности точно так же.

derekerdmann
источник
0

Я бы сказал, что если вы знаете UML, то все диаграммы дают вам разные взгляды на ваше приложение. Многие книги доступны.

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

UML_GURU
источник