Composition arrows instead of aggregation arrows?
According to the feedback:
Deliverable: Design/class diagram
This is also much better this time, most of the diagram is correct. Only comment to be made is
that there are some instances where using "composition" arrows (filled diamond arrow)
might be more correct than using "aggregation" arrows (hollow diamond arrow).
E.g. between classes like game and move (can the move class exist without the game class?).
I agree that the Move class shouldn't exist without a game class (or at least the Board class), but this doesn't mean it can't. In theory, the existence of a Move does not depend on a game or even a Board, although in practice it needs a Board for its constructor - and it's theoretically meaningful to consider a Move that is not associated with a particular game. The Move class is only an example, of course - I could argue the case that there are no classes in this diagram that couldn't be meaningful without the classes which use them. This is why I find the "can" vs. "should" distinction an important one. Is the meaning of this feedback item "composition arrows should be used when the class shouldn't (or doesn't) exist without the class it's a part of"?
I'd be interested in knowing your take on this, @jonaprieto. Or in the least, I can point to this issue when we're done to show that we've at least considered it. For the time being, I will not be changing any of the aggregation arrows to composition arrows until I know more about the intention of the feedback item.