applepiofmyeye / pe

0 stars 0 forks source link

DG -- Unnecessary repetition in the flow of parsing commands #8

Open applepiofmyeye opened 7 months ago

applepiofmyeye commented 7 months ago

The activity diagram seems to be a summary of the sequence diagram / represented in a different way. There are certain new information added in the activity diagram such as the high-level inclusion of how the UI updates, but the other labels seem to repeat the sequence diagram

activity diagram: Screenshot 2023-11-17 at 5.30.50 PM.png sequence diagram: Screenshot 2023-11-17 at 5.33.42 PM.png

Given how there is already a run down of the sequence diagram, the activity diagram might be unnecessary for readers

nus-pe-bot commented 7 months ago

Team's Response

The Activity Diagram shows the overarching flow of activities, with how UI responds to some activities. The Sequence Diagram focuses on how objects interact with one another over time. They serve different purposes and it affects neither the quality of the diagrams nor the documentation.

Items for the Tester to Verify

:question: Issue response

Team chose [response.NotInScope]

Reason for disagreement: Thank you for the information, I understand the different uses of the diagrams.

What I think has not been addressed was my point that the repetition of how the activity diagram mentions:

  1. UnmarkCommandParser is initialised,
  2. the instance parses arguments,
  3. the UnmarkCommand instance is initialised,
  4. the LogicManager executes the command,
  5. the initialisation of the CommandResult instance,
  6. returning the CommandResult instance,
  7. parsing the CommandResult instance..

this does not show an "overarching flow of activities" as you have mentioned, but instead repeats the details already being mentioned in your sequence diagram. I did mention that it is good that the activity diagram mentions UI -- something different from the sequence diagram, but a huge bulk of it is just regurgitating the steps. Furthermore, the activity diagram should show a higher level of abstraction given it starts with the User's interaction with the product. It is a poor choice to use an activity diagram for this sequence of steps.

For each step above, I have indicated which steps have already been mentioned:

telegram-cloud-photo-size-5-6260257538406726943-y.jpg

telegram-cloud-photo-size-5-6260257538406726955-y.jpg

Thus, the diagrams are clearly repetitive, with close to no value added in the activity diagram. 80% of the activity diagram is a duplicate of the sequence diagram, only a tiny part being about the relationship between the user and UI. The choice for an activity diagram to contain low-level information as such is a poor documentation choice and affects the quality of documentation. The repetition shows poor documentation quality as there are many other more useful details that could have been included in this portion, but this choice was made instead. The flow of the activity diagram also shows a lack of holistic understanding of the product from a higher level of abstraction, and shows inability to abstract useful relationships from different entities in your code base.