Книга "Гибкая разработка программного обеспечения, принципы, шаблоны и практики" рассматривает многие компоненты диаграмм UML и описывает их использование при проектировании ОО-архитектуры. Для некоторых диаграмм авторские предложения сводились к тому, чтобы «все было просто». Например, диаграммы сценариев использования предпочтительны только для написанных сценариев использования. Альтернатива для сложных диаграмм состояний предлагается в форме таблицы перехода состояний.
В начале книги автор описывает несколько принципов построения ОО, таких как принцип инверсии зависимостей и единая ответственность. Они не имеют ничего общего с UML. UML - это средство коммуникации, цель которого - позволить визуализировать архитектуру. Различные компоненты UML имеют разные диаграммы классов объектов для архитектуры, диаграммы объектов, как объекты взаимодействуют друг с другом, диаграммы последовательности для взаимодействия с объектами (и самим собой) с течением времени.
Так отвечает ли UML за успех ОО-дизайна? Я думаю, что появление UML показывает, что дизайн ОО стоит, потому что UML должен использоваться для представления дизайна ОО. Таким же образом диаграмма Джексона использовалась для структурного программирования.