What do the different lines and arrows mean?

Inheritance. Simply, Transmission<T> inherits from (or is a) IDisposable.
This solid line between Transmission<T> and Engine is modelling a field association. Transmission<T> has a field of type Engine.

This dotted line is modelling a consumption relationship.  Car consumes the Colors type inside one or more methods as a local variable or statically. The red colour indicates strong coupling to the other type and could be difficult to extend or replace with a mock in unit testing.
This is still modelling a consumption relationship however the black colour shows the relationship is a good loosely coupled relationship. This is because the relationship is to an interface so its easy to substitute a new implementation or mock in unit testing.

This is showing another field relationship. This time the colour black is indicating its a good loosely coupled relationship. Seeing as it is a value type. All value types, enumerations, and interfaces are considered trivial and will show as a black loosely coupled line.  You can also add types to a trivial list to show lines as black and therefore ok.

In this example the Colors type is being consumed as a local variable. By default this shows as a red strongly coupled relationship.  But by adding Colors type to the trivial list it changes the line colour to black.

The thicker a line is, the more the associated type is used by the other.  In this example the Car class uses the Color class many times. (Clicking on the line will reveal how many times its used and by what methods with the Car class). If a class is used by another as fields and as local variables or statically, the line will be a solid line. Clicking the line will reveal all the details.

No comments:

Post a Comment