гриша, речь идет не об умл в целом, а о диаграмме классов. которая явно натянута на концепт ооп в с++.
Я, честно говоря, из всех объектных языков серьёзно только на C++ и работал. Java изучал когда-то, даже сертификаты есть, но не пригодились.
Множественное наследование C++ применял в библиотеке, которая уже десять лет успешно используется в разных проектах.
В библиотеке реализован механизм обмена сообщениями, на момент разработки стояла задача платформенной независимости этого механизма. В процессе работы типового приложения создаются тысячи взаимодействующих объектов из очень ограниченного набора классов (около двух десятков), и для того, чтобы самому понять, как же они взаимодействуют, мне приходилось рисовать разные диаграммы. Об UML я тогда ничего не знал, но сейчас, просмотрев свою старую документацию, я понимаю, что тогда я разрабатывал аналоги:
- диаграммы классов (это было проще всего)
- диаграмм взаимодействия
- диаграмм последовательности
- диаграмм состояний
"Отношение ассоциации" у меня лично никаких вопросов не вызывает. Разве что само слово раздражало поначалу своим наукообразием, но не больше, чем "инкапсуляция" и "агрегация", не говоря уже о "полиморфизме". Есть стрелочка, она нужна для понимания взаимосвязи объектов, и всегда понятно, что она означает в данном конкретном случае. А относится она к классу "стрелочек", "заострённых палочек", или "графических обозначений отношения ассоциации в нотации диаграмм классов UML 2.0" - какая разница?
Это же как с алфавитом - когда я читаю текст, какая мне разница, из чего состоит слово - из "букв", "литер" или "графем"?