jayasting98 / pe

0 stars 0 forks source link

`VersionControl` Diagram in DG can be broken up and/or made bigger #9

Open jayasting98 opened 2 years ago

jayasting98 commented 2 years ago

This diagram contains multiple sub-components. Perhaps it might be better to only show the façade classes, then show the classes within each sub-component in their own diagram.

image.png

nus-pe-bot commented 2 years ago

Team's Response

We felt that there was no better way to represent the relationship between the classes.

Items for the Tester to Verify

:question: Issue response

Team chose [response.Rejected]

Reason for disagreement: I disagree with the rejection. For one thing, even if there were no better way to represent the relationship between the classes, it does not mean that it is no longer a problem; a problem should remain a problem even if there was no solution. So this should remain a bug.

Another point is that I feel that there actually is a better way to show this; not everything here needs to be shown all at once.

A possibility:

  1. An overall diagram
    1. Maybe similar to an architecture diagram, showing only the components, not the actual classes within them. So only have VersionedModel, Reader, Writer, Utils, Object, and Storage.
    2. Alternatively, use a class diagram, but only show the main classes. For example:
      • In Reader, that's only VersionControlGeneralReader and VersionControlObjectReader
      • In Writer, that's only VersionControlGeneralWriter and VersionControlObjectWriter
      • In Objects, that's only VcObject
      • In Utils, that's only HashComputer
  2. Then use many smaller diagrams for each sub-component with further details like more minor classes, and possibly other classes from other subcomponents that are interacted with
    1. For example, in the Reader subcomponent diagram, show only the classes VersionControlGeneralReader, VersionControlObjectReader, CommitReader, LabelReader, TreeReader, VersionControlReader from VersionedModel, and Commit, Label and Tree from Objects.
    2. It may even suffice to have just XYZReader instead of CommitReader, LabelReader, TreeReader, and XYZObject instead of Commit, Label and Tree.