Which review comment is valid and applicable?

A framework developer has been given a requirement to create an extensible utility for solution developers to use to create collections.

The framework developer has submitted the following diagram fragment for review:

Which review comment is valid and applicable?
A . The upper limit of 10 for the Size of PhontyQueue is too small and should be increased to at least 20 to accommodate special cases.
B . The «bind» relationship between the concrete class Vector and the abstract class AbstractList is incorrect. It should be a Generalization relationship.
C . The Generalization relationship between the concrete class PriorityOueue and the abstract class AbstractQueue is incorrect. It should be a «bmd» relationship.
D . The template parameter Size cannot be added to a specialized class. It needs to be moved to the top of the hierarchy and added to AbstractCollection and AbstractQueue.

Answer: B

Explanation:

In UML, the «bind» relationship is used to specify that a class is a template instantiation of a template class, where actual parameters are bound to the formal parameters of the template class1. However, in the case of the relationship between a concrete class like Vector and an abstract class like AbstractList, the correct relationship should be Generalization, not «bind».

Generalization is a taxonomic relationship between a more general classifier and a more specific classifier. Each instance of the specific classifier is also an instance of the general classifier1.

Thus, Vector being a concrete implementation of AbstractList, should inherit from AbstractList, which

is correctly represented by a Generalization relationship in UML.

The other options can be evaluated as follows:

Option A: The upper limit for the size of PhontyQueue is a design decision that should be based on the requirements and use cases of the application. It is not inherently incorrect in UML to have a specific upper limit.

Option C: The Generalization relationship is correctly used

between PriorityQueue and AbstractQueue as it represents inheritance in UML.

Option D: While it is true that template parameters are typically defined at the top of the hierarchy, the statement is too absolute. In UML, template parameters can be added to specialized classes, but it depends on the specific design and requirements. Therefore, without additional context, this statement cannot be deemed universally valid.

In conclusion, the most applicable and valid review comment is option B, which correctly identifies the misuse of the «bind» relationship in the context of the class diagram provided.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments