Я думаю, що діаграми UML можуть бути корисними лише у тому випадку, якщо вони виражають щось із більш високим рівнем абстракції, ніж ваш код .
Написання UML лише для написання UML стає непотрібною бюрократією і робить проект та код менш пристосованими до змін, без жодної користі.
Наприклад, діаграма класів UML, що показує всі класи в пакеті, з усіма їх атрибутами та методами - те, що можна легко створити автоматично - взагалі не має значення: воно знаходиться на тому ж рівні абстракції, що і ваш код . Плюс, код, безумовно, стане кращим джерелом для цієї інформації, оскільки він завжди буде актуальним, і, ймовірно, він буде задокументований та організований таким чином, щоб легше було знати, які методи / атрибути / речі є більш важливими.
З іншого боку, якщо у вас є поняття більш високого рівня абстрагування, ніж те, що можна виразити в коді, документування цих даних на діаграмі може бути хорошою ідеєю.
Наприклад, діаграма, що показує абстрактні модулі вищого рівня в складній системі з їх залежностями та, можливо, невеликий опис їхніх обов'язків та те, який пакет / ім’я простору вони містять у вихідному коді, може бути дійсно корисним для нового члена команди що потрібно познайомити з проектом, або також можна визначити, куди слід кинути новий клас / функціональність.
Іншим прикладом корисної діаграми може бути діаграма послідовностей, що показує кроки високого рівня, які слід зробити в протоколі зв'язку. Можливо, кожен крок має невеликі химерності та складності, але, мабуть, достатньо описати їх у самому коді. Діаграма вищого рівня може допомогти програмісту легко зрозуміти «велику картину» речей, не потрібно турбуватися про складності кожної взаємодії.
У всякому разі, це лише деякі приклади; Є маса випадків, коли проста схема може бути дуже корисною. Просто пам’ятайте, що ви повинні робити їх лише тоді, коли ви не можете щось висловити в самому коді. Якщо ви виявите, що використовуєте діаграми UML для пояснення самого вихідного коду, замість цього зробіть код сорбування більше самодокументування.
Нарешті, деякі із загальних правил, що застосовуються до коду, можуть застосовуватися і до діаграм: уникайте повторень, будьте прості, не бійтеся змінювати речі (тільки тому, що щось задокументовано на діаграмі UML не означає, що це не може будьте змінені) і завжди думайте про те, хто буде читати / підтримувати ці діаграми в майбутньому (можливо, ваше майбутнє-я), коли їх пишете :)