Я хочу, чтобы мои наброски дизайна и поведения программы стали более упорядоченными и имели общий язык с другими разработчиками.
Я посмотрел на UML, и в принципе это, кажется, то, что я ищу, но это кажется излишним. Информация, которую я нашел в Интернете, также кажется очень раздутой и академической.
Как я могу понять UML простым английским языком, достаточно, чтобы объяснить его своим коллегам? Каковы канонические ресурсы для понимания UML на уровне земли?
Ответы:
Понравились вопросы - те же, что я задавал себе:
Вот что я нашел:
Для начала: мой выбор был бы UML Distilled Фаулера . Как было упомянуто, это действительно перебор основ: определения, примеры, советы о том, когда определенный тип диаграммы следует или не следует использовать. Это также хороший справочник , если вы хотите сосредоточиться на определенной части UML, не читая книгу полностью.
Для более подробного, но в то же время простого английского введения: UML 2 для чайников подходит для меня и моих коллег. Он не только знакомит с UML, его синтаксисом и подробно использует, но и дает много советов о хороших методах программирования и проектирования.
Между этими двумя книгами иногда возникают различия в том, какой синтаксис принадлежит какой версии стандарта UML. Однако они незначительны и определенно несущественны для использования UML-диаграмм для передачи дизайнерских идей. (Например: допускает ли UML 2 дискретные кратности, т. Е. Показывает, что определенное свойство может иметь ровно X, Y или Z объектов, а не просто ноль, один, много или больше, например, X; когда имена участников должны быть подчеркнуты. ..)
Для совершенно не академического и менее многословного введения: в этом блоге есть статьи на различные части UML: http://blog.diadraw.com/category/uml/
Это не учебник, поэтому он далеко не исчерпывающий, но также использует не учебные истории и примеры, к которым относятся. Несколько доступных постов посвящены визуальному представлению UML-концепций, поэтому вы можете вообще пропустить чтение текста.
источник
Мне очень понравился UML Distilled Мартина Фаулера . Коротко и мило, и более чем достаточно для дискуссий на доске. Получите пару копий и передайте их всей команде.
источник
Одни только диаграммы не всегда полезны. Например, диаграмма варианта использования не может передать бизнес-правила в деталях. Диаграмма классов может быть очень полезна, поскольку вы можете генерировать код класса и библиотеки DLL из него.
Я считаю эти диаграммы наиболее полезными:
Есть так много полезных ресурсов, но проверьте их:
Правка-1 в ответ на комментарий Марка.
Хотя я не использую эти ресурсы изо дня в день, они служат кратким справочником по синтаксису UML. Вышеуказанные ресурсы выбраны, поскольку они обеспечивают быстрое и несколько полное представление диаграмм UML. Он показывает общие диаграммы и помогает новому пользователю UML быстро увидеть разницу между ними. Первый ресурс, видео, содержит подробную информацию о прецеденте и его связи с другими диаграммами. Предполагается, что вышеперечисленных ресурсов будет недостаточно для тех, кто хочет изучать UML или OOD. Я понимаю, что изучение таких тем не предназначалось для первоначального вопроса.
источник
Если вы удовлетворены всего лишь 10%, то вам не следует пытаться изучать это из книги UML. Скорее, вам лучше прочитать хорошую книгу по объектно-ориентированному анализу или шаблонам проектирования - эти книги дают вам 10%, которые вы ищете.
Если вы все же ищете учебник по UML, я бы порекомендовал эту веб-страницу , и особенно это эссе о диаграммах UML (это не реклама, я лично не имею никакого отношения к этому сайту). Просто просмотрите диаграммы и посмотрите на них: они в основном говорят сами за себя, и вы можете легко понять, что они изображают, если вы знакомы с ООП и вообще с дизайном и архитектурой программы.
Почему я рекомендую именно эту страницу? (спросили в комментарии)
Есть несколько причин, почему мне понравилось больше других:
источник
Карманный справочник UML 2.0 от O'Reilly немного более подробен, но, вероятно, является лучшим выбором, поскольку он достаточно мал, чтобы быстро найти то, что вам нужно, но все же содержит объяснения, когда они вам нужны. И это актуально, что не относится к "шпаргалкам UML" или справочным карточкам, которые я нашел в Интернете - они в основном описывают UML 1.x
источник
Есть три части к этому:
Получить официальную ссылку на UML
В любое время, когда вы изучаете новый «язык», получите справку, которую вы можете извлечь и использовать в любое время, будь то книга или онлайн-ресурс. UML Distilled небольшой, имеет отличные объяснения и множество четких диаграмм. Даже если вы не используете все функции, вы всегда можете вернуться и посмотреть на «правильный» способ выразить что-то.
Используйте UML для моделирования вещей
Теперь, когда у вас есть ссылка, начните использовать ее для моделирования некоторых небольших существующих систем или систем, которые вы начинаете использовать. Вы, вероятно, захотите придерживаться диаграмм классов, диаграмм последовательностей и диаграмм состояний для большинства ситуаций. Если есть что-то, в чем вы не уверены, перейдите по ссылке и найдите «правильное» использование - если это не поможет, попробуйте поиск в Google или спросите о переполнении стека. Так же, как программирование, практика - это ключ.
Используйте немного UML в реальных проектах
Когда вы начнете использовать UML со своей командой, помните, что это всего лишь инструмент для понимания системы, которую вы создали или создадите. Вы все равно должны проверить свою справочную информацию во время построения диаграмм, но сосредоточиться на передаче информации, не строго следуя правилам.
Вспомните свои школьные уроки письма. Ваш учитель, вероятно, считал кардинальным грехом начинать предложения словами «и», «но» или «или». По мере того, как вы стали больше писать и получили больший контроль над английским языком, вы узнали, как изменить правила для большего эффекта - вы перешли от следования правильному подходу к тому, который передавал то, что вы хотели сказать лучше всего. UML должен использоваться в промышленности точно так же.
источник
Я бы сказал, что если вы знаете UML, то все диаграммы дают вам разные взгляды на ваше приложение. Многие книги доступны.
Если вы не знаете UML, проще всего создать только диаграммы классов / последовательностей, которые были инвертированы из существующего кода. Вам просто нужно обратить существующий код в UML и добавить свои собственные заметки в диаграммы классов / последовательностей. Диаграммы классов предоставят статическое представление вашего приложения, диаграмма последовательности опишет потоки методов и, следовательно, поведение приложения. UML Работа сделана и без ошибок :)
источник