UML не слишком хорошо оборудован, чтобы справляться с такими вещами, но вы все равно можете использовать его, чтобы сообщить о своем дизайне, если вы хотите сделать какое-то умственное картирование. Вы можете найти изоморфизм между большинством динамических концепций и статической объектной моделью UML.
Например, вы можете рассматривать замыкание как объект, реализующий интерфейс одного метода. Вероятно, полезно моделировать такие интерфейсы как нечто более конкретное, чем интерфейс Callable {call (args [0 .. *]: Object): Object} .
Утиная печать также может использоваться как интерфейс. Если у вас есть метод, который берет что-то, что может крякать, смоделируйте его как объект, который является специализацией интерфейса _interface Quackable {quack ()}.
Вы можете использовать свое воображение для других концепций. Имейте в виду, что целью дизайна диаграмм является передача идей. Так что не будьте чрезмерно педантичны в отношении моделирования всего на 100%, подумайте, что вы хотите, чтобы ваши диаграммы сказали, убедитесь, что они говорят это, и устраните любые посторонние детали, которые бы разбавили сообщение. И если вы используете некоторые понятия, которые не очевидны для вашей целевой аудитории, объясните их.
Кроме того, если UML действительно не может обработать то, что вы хотите сказать, попробуйте другие способы визуализации вашего сообщения. UML - это только хороший выбор, потому что он дает вам общий словарный запас, поэтому вам не нужно объяснять каждую концепцию на диаграмме.