Are there any extension/alternative to UML when we speak about languages that uses reflection?
I mean, I try to express my project as an UML before write it, however I always come up with a “this method will be called through reflection where method name is loaded from a file” which obviusly breaks a lot of my diagrams.
Speaking about C#, using attributes can change a lot the way I develop something, so all my UML diagrams looks weird because a lot of things are not written (for example if a method has a given attribute).
Are there any visual language that helps you to express “reflection” in some way?
I found the solution for this by effectively thinking about what reflection represents in UML and OOP.
If you think strictly OOP you shouldn’t think about an object composed by properties (fields) and methods, instead you must imagine it as an object composed (as should be) by other objects.
That being said, it’s much easier imagine Methods and Properties like objects (so we will have UpdateMethod object or LengthProperty object) and yesin this way you have a place where you can put C# attributes, or you can give a meaning to C# delegates instead of function pointers.
This image should explain the concept which is hard to express only with words:

Obviusly UML needs to be improved because a widely used feature (reflection) must be supported in a better way, not like I used it (which isn’t so nice).