Возрастная категория: 31-40
Я активно использую UML, так как он является фундаментальной вещью (не хочу употреблять слово "язык"), на которой можно построить:
1) процесс разработки ПО
2) способ мышления
Поясню.
Для большинства, UML - это некий язык с графической нотацией, который может как-то применяться при разработке ПО.
Я думаю тут все гораздо глубже.
UML на самом деле предлагает целый процесс разработки. Просто форма описания выбрана не стандартная. Нет деления на роли, к которым мы привыкли (при описании RUP попытались этот недостаток убрать).
Процесс разработки, который описыват UML, рассматривается с точки зрения того ЧТО надо разработать, а не с точки зрения того КТО разрабатывает. И это описание содержит все что ДОСТАТОЧНО сделать, чтобы полностью описать (построить) программную систему, т.е. такой минимальный джентельменский набор.
Конечно речь идет о разработке объектно-ориентированных программных систем.
Кроме этого, UML предлагает и некоторый новый способ мышления. По сути алгоритм, который позволяет связывать воедино термины разных уровней абстракции.
Поясню на примере.
Любой язык программирования работает на одном уровне абстракции (кстати очень низком). Когда программист пишет программу он оперирует переменными, классами, операциями и пр. На уровне языка это все безлико. Чтобы делать программу более понятной, программист дает названиям переменных, классов, операций осмысленные имена, поднимая тем самым уровень абстракции. Но он не может поднимать уровень описания выше некоторой границы. Например, до уровня понимания заказчика он дойти не может.
А UML это может.