ianyong / pe

0 stars 0 forks source link

Developer Guide: Multiple multiplicity #17

Open ianyong opened 3 years ago

ianyong commented 3 years ago

image.png

The arrow from Command to Model appears to have its multiplicity defined twice.

nus-se-bot commented 3 years ago

Team's Response

Due to the limitation of PlantUML, the multiplicity from LogicDispatcherManager to Model can't be separated wide enough from the one from Command to Model.

Items for the Tester to Verify

:question: Issue response

Team chose [response.Rejected]

Reason for disagreement: > Due to the limitation of PlantUML, the multiplicity from LogicDispatcherManager to Model can’t be separated wide enough from the one from Command to Model.

Thanks for taking the time to explain this to me. I share the team's pain with regards to PlantUML's formatting; my own team spent many hours fiddling with PlantUML hidden links just to ensure that some of our diagrams did not have such weird formatting. As such, I have not reported instances where PlantUML generates quirky diagrams that are otherwise unambiguous and comprehensible to the reader. However, that is not what the class diagram suggests at all; the stray multiplicity is nowhere close to the arrow from LogicDispatcherManager to Model. In fact, in the class diagram, both multiplicities are unambiguously related to the arrow from Command to Model.

image.png

I am not sure if separating the two multiplicities through the use of hidden links or other formatting tools provided by PlantUML is truly impossible as the team suggests. Even if it were however, the team is not necessarily limited to using only PlantUML.

image.png

The limitations of the tool used to generate class diagrams is not a valid reason for having class diagrams that are not compliant with the notation covered in the module.

Notation incorrect or not compliant with the notation covered in the module.


:question: Issue severity

Team chose [severity.VeryLow] Originally [severity.Low]

Reason for disagreement: severity.VeryLow is defined as:

A flaw that is purely cosmetic and does not affect usage e.g., a typo/spacing/layout/color/font issues in the docs or the UI that doesn't affect usage.

Since both multiplicities are so close to the arrow from Command to Model to the point of touching the arrow, this flaw cannot be deemed to be purely cosmetic as it affects how the class diagram will be interpreted by the reader.

Rather, it should be at least severity.Low as it poses a minor inconvenience to the reader in trying to understand the the Logic component.

severity.Low is defined as:

A flaw that is unlikely to affect normal operations of the product. Appears only in very rare situations and causes a minor inconvenience only.