In a class diagram, is there a way of specifying that a class is an internal class of another class ?
Or is it considered as a pure implementation choice ?
Per UML 1.4. 2 a declaring (nesting) class and a nested class could be shown connected by a line, with an "anchor" icon on the end connected to the declaring class. An anchor icon is a cross inside a circle.
Inner (nested) classes are represented in UML with an association adorned with a crossed circle, as shown in Figure 3-21.
I would recommend you to use the class with main method only to init your application. In this case you don't need to include it into your diagram. But if the class that contains the main method is also part of the your application, the answer is yes you should do it.
In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the relationships among objects.
Consider using a nesting relationship (a line with a '+' in a circle at the parent end).
Since UML isn't supposed to be directly implementation specific, I'd use a naming convention, such as:
OuterClass vs OuterClass::InnerClass
I would imagine if you're hoping to reverse-engineer or code-generate to/from UML that different tools would us different techniques (if they support it at all).
A quick test of some reverse engineering using Enterprise Architect (EA v7) confirms that they use the above InnerClass::OuterClass
syntax when processing some C# with a public inner class.
For this kind of thing you have separate Diagrams showing the internal structure or processing of a class.
usually, those extra diagrams are activity diagrams to show processing. Sometimes one per method. You might also have an internal sequence diagram showing the API interactions.
No reason you can't have an additional class diagram to show internal structure of a class.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With