Issue 5980: Description of GeneralizationSet (uml2-superstructure-ftf) Source: Escape Velocity (Mr. Don Baisley, donbaisley(at)live.com) Nature: Uncategorized Issue Severity: Summary: The description of GeneralizationSet uses the words "general" and "specific" to mean "specific" and "general" respectively. The description also uses unclear terms like "maps to classifier" without identifying which association. Also, the semantics has: "All of the Generalization links that share a given general Classifier are divided into disjoint sets (that is, partitions) using the generalizationSet association." This statement is nonsense. First, the metamodel does not require all generalizations to be put into partitions using "the generalizationSet association". Second, partitions are not required by the metamodel to be disjoint - the same generalization can be in multiple generalization sets (as should be the case). Resolution: see above, resolved Revised Text: Actions taken: June 19, 2003: received issue March 8, 2005: closed issue Discussion: This issue is resolved in the following manner: 1) In the “Semantics” section of 7.8.1 Classifier, change the last sentence under the Package PowerTypes subheading from: “The powertypeExtent association relates a Classifier with a set of generalizations which a) have a common specific Classifier, and b) represent a subclass partitioning of that class. “ to: “The powertypeExtent association relates a Classifier with a set of generalizations which a) have a common specific Classifier, and b) represent a collection of subsets for that class. “ 2) In the “Semantics” section of 7.8.2 Generalization, under the Package PowerTypes subheading, change the second sentences from: “Each GeneralizationSet contains a particular set of Generalization relationships that collectively describe the way in which a specific Classifier (or class) may be partitioned.“ to: “Each GeneralizationSet contains a particular set of Generalization relationships that collectively describe the way in which a specific Classifier (or class) may be divided into subclasses. “ 3) The caption for Fig. 27 should be changed from: “Multiple subtype partitions (GeneralizationSets) example.”: to: “Multiple collections of subsets (GeneralizationSets) example.“ 4) The first sentence and the entire “Description” section of 7.17.3 GeneralizationSet, should be changed from: “A GeneralizationSet is an AutonomousElement (from Foundation :: Kernel :: PackagingNamespaces) whose instances define partitioned sets of Generalization relationships. Description Each Generalization is a binary relationship that relates a specific Classifier to a more general Classifier (i.e., a subclass). Each GeneralizationSet defines a particular set of Generalization relationships that describe the way in which a specific Classifier (or superclass) may be partitioned. For example, a GeneralizationSet could define a partitioning of the class Person into two subclasses: Male Person and Female Person. Here, the GeneralizationSet would associate two instances of Generalization. Both instances would have Person as the specific classifier, however one Generalization would involve Male Person as the general Classifier and the other would involve Female Person as the general classifier. In other words, the class Person can here be said to be partitioned into two subclasses: Male Person and Female Person. Person could also be partitioned into North American Person, Asian Person, European Person, or something else. This partitioning would define a different GeneralizationSet that would associate with three other Generalization relationships. All three would have Person as the specific Classifier; only the general classifiers would differ: i.e., North AmericanPerson, Asian Person, and European Person.“ to: “A GeneralizationSet is a PackageableElement (from Kernel) whose instances define collections of subsets of Generalization relationships. Description Each Generalization is a binary relationship that relates a specific Classifier to a more general Classifier (i.e., from a class to its superclass). Each GeneralizationSet defines a particular set of Generalization relationships that describe the way in which a general Classifier (or superclass) may be divided using specific subtypes. For example, a GeneralizationSet could define a partitioning of the class Person into two subclasses: Male Person and Female Person. Here, the GeneralizationSet would associate two instances of Generalization. Both instances would have Person as the general classifier, however one Generalization would involve Male Person as the specific Classifier and the other would involve Female Person as the specific classifier. In other words, the class Person can here be said to be partitioned into two subclasses: Male Person and Female Person. Person could also be divided into North American Person, Asian Person, European Person, or something else. This collection of subsets would define a different GeneralizationSet that would associate with three other Generalization relationships. All three would have Person as the general Classifier; only the general classifiers would differ: i.e., North AmericanPerson, Asian Person, and European Person.“ 5) In the “Semantics” section of 7.17.3 GeneralizationSet, change the first two sentences from: “The generalizationSet association designates the partition to which the Generalization link belongs. All of the Generalization links that share a given general Classifier are divided into disjoint sets (that is, partitions) using the generalizationSet association. Each partition represents an orthogonal dimension of specialization of the general Classifier.“ to: “The generalizationSet association designates the collection of subsets to which the Generalization link belongs. All of the Generalization links that share a given general Classifier are divided into subsets (e.g., partitions or overlapping subset groups) using the generalizationSet association. Each collection of subsets represents an orthogonal dimension of specialization of the general Classifier.“ 6) In the “Examples” section of 7.17.3 GeneralizationSet, change the first paragraph from: “In the illustration below, the Person class can be specialized as either a Female Person or a Male Person. Because this partitioning, or GeneralizationSet, is constrained to be complete and disjoint, each instance of Person must either be a Female Person or a Male Person; that is, it must be one or the other and not both. (Therefore, Person is an abstract class because a Person object may not exist without being either a Female Person or a Male Person.) Furthermore, Person’s can be specialized as an Employee. The generalization set here is expressed as {incomplete, disjoint}, which means that instances of Persons can be partitioned as Employees or some other unnamed collection that consists of all non- Employee instances. In other words, Persons can either be an Employee or in the complement of Employee, and not both. Taken together, the diagram indicates that a Person may be 1) either a Male Person or Female Person, and 2) an Employee or not. When expressed in this manner, it is possible to partition the instances of a classifier using a disjunctive normal form (DNF).“ to: “In the illustration below, the Person class can be specialized as either a Female Person or a Male Person. Because this GeneralizationSet is partitioned (i.e., is constrained to be complete and disjoint), each instance of Person must either be a Female Person or a Male Person; that is, it must be one or the other and not both. (Therefore, Person is an abstract class because a Person object may not exist without being either a Female Person or a Male Person.) Furthermore, Person’s can be specialized as an Employee. The generalization set here is expressed as {incomplete, disjoint}, which means that instances of Persons can be subset as Employees or some other unnamed collection that consists of all non-Employee instances. In other words, Persons can either be an Employee or in the complement of Employee, and not both. Taken together, the diagram indicates that a Person may be 1) either a Male Person or Female Person, and 2) an Employee or not. When expressed in this manner, it is possible to subset the instances of a classifier using a disjunctive normal form (DNF).“ 7) The caption for Fig. 72 should be changed from: “Multiple subtype partitions (generalization sets) and constraint examples.” to: “Multiple ways of dividing subtypes (generalization sets) and constraint examples.“ 8) In the “Examples” section of 7.17.3 GeneralizationSet, change the last four sentences in the fourth paragraph from: “While Tree may be partitioned in various ways (based on size or age, for example), in this example it is partitioned on the basis of species. Therefore, the integrity issue mentioned above is not really an issue here. Deleting the American Elm subtype from the Tree partition does not require also deleting the corresponding Tree Species instance, because the American Elm subtype and the corresponding Tree Species instance are the same object. Figures 23.4 and 23.5 depict another way of thinking about this. .” to: “While Tree may be divided into various collections of subsets (based on size or age, for example), in this example it is divided on the basis of species. Therefore, the integrity issue mentioned above is not really an issue here. Deleting the American Elm subtype from the collection of Tree subtypes does not require also deleting the corresponding Tree Species instance, because the American Elm subtype and the corresponding Tree Species instance are the same object. Figures 23.4 and 23.5 depict another way of thinking about this. .“ 9) In the “Examples” section of 7.17.3 GeneralizationSet, change the last paragraph from: “Labeling partitions with the power type becomes increasingly important when a type has more than one power type. The figure below is one such example. Without knowing which partition contains Policy Coverage Types and which Insurance Lines, clarity is compromised. This figure depicts an even more complex situation. Here, a power type is expressed with multiple partitions. For instance, a Policy can be subtyped as either a Life, Health, Property/Casualty, or some other Insurance Line. Furthermore, a Property/Casualty policy can be further subtyped as Automobile, Equipment, Inland Marine, or some other Property/Casualty line of insurance. In other words, the subtypes in the partitions labeled Insurance Line are all instances of the Insurance Line power type.” to: “Labeling collections of subtypes with the power type becomes increasingly important when a type has more than one power type. The figure below is one such example. Without knowing which subtype collection contains Policy Coverage Types and which Insurance Lines, clarity is compromised. This figure depicts an even more complex situation. Here, a power type is expressed with multiple collections of subtypes. For instance, a Policy can be subtyped as either a Life, Health, Property/Casualty, or some other Insurance Line. Furthermore, a Property/Casualty policy can be further subtyped as Automobile, Equipment, Inland Marine, or some other Property/Casualty line of insurance. In other words, the subtypes in the collection labeled Insurance Line are all instances of the Insurance Line power type.“ End of Annotations:===== From: "Baisley, Donald E" To: uml2-superstructure-ftf@omg.org, mu2i-ftf@omg.org Cc: James Odell Subject: UML 2 Issues Date: Thu, 19 Jun 2003 19:48:10 -0500 X-Mailer: Internet Mail Service (5.5.2656.59) While reviewing certification questions, I found the following issues in the UML 2 specification. 5. The description of GeneralizationSet uses the words "general" and "specific" to mean "specific" and "general" respectively. The description also uses unclear terms like "maps to classifier" without identifying which association. Also, the semantics has: "All of the Generalization links that share a given general Classifier are divided into disjoint sets (that is, partitions) using the generalizationSet association." This statement is nonsense. First, the metamodel does not require all generalizations to be put into partitions using "the generalizationSet association". Second, partitions are not required by the metamodel to be disjoint - the same generalization can be in multiple generalization sets (as should be the case). Regards, Don Baisley o no great mental effort is required in this. - Karl ClassesIssues6173_6183.doc OMG Issue No: 6183 Title:^I^IUML 2 Super/Metamodel::Kernel::DataTypes/missing renames Source: Bran Selic, IBM (bselic@ca.ibm.com) Summary:^I Kernel/DataTypes has association enumeration:Enumeration <--> literal:Enumeratio nLiteral with no renames redefinition while it is ownedLiteral:EnumerationLitera l every where else. Discussion: The syntax diagram that shows the association and rolenames that are the subject Associations User-Agent: Microsoft-Entourage/10.1.4.030702.0 Date: Mon, 31 May 2004 14:46:54 -0400 Subject: Powertype issues (5980, 6520, 7070, 7071) From: James Odell To: Hi all, After doing a search-and-destroy for inappropriate uses of the term ³partition,² am submitting the resolved issues 5980, 6520, 7070, and 7071 for you possible review and edification. Cheers, Jim Powertype issues.doc OMG Issue No: 5980 Title: Description of GeneralizationSet (uml2-superstructure-ftf) Source: "Baisley, Donald E" Summary: Description of GeneralizationSet The description of GeneralizationSet uses the words "general" and "specific" to mean "specific" and "general" respectively. The description also uses unclear terms like "maps to classifier" without identifying which association. Also, the semantics has: "All of the Generalization links that share a given general Classifier are divided into disjoint sets (that is, partitions) using the generalizationSet association." This statement is nonsense. First, the metamodel does not require all generalizations to be put into partitions using "the generalizationSet association". Second, partitions are not required by the metamodel to be disjoint - the same generalization can be in multiple generalization sets (as should be the case). Discussion: This issue is resolved in the following manner: 1) In the .Semantics. section of 7.8.1 Classifier, change the last sentence under the Package PowerTypes subheading from: .The powertypeExtent association relates a Classifier with a set of generalizations which a) have a common specific Classifier, and b) represent a subclass partitioning of that class. . to: .The powertypeExtent association relates a Classifier with a set of generalizations which a) have a common specific Classifier, and b) represent a collection of subsets for that class. . 2) In the .Semantics. section of 7.8.2 Generalization, under the Package PowerTypes subheading, change the second sentences from: .Each GeneralizationSet contains a particular set of Generalization relationships that collectively describe the way in which a specific Classifier (or class) may be partitioned.. to: .Each GeneralizationSet contains a particular set of Generalization relationships that collectively describe the way in which a specific Classifier (or class) may be divided into subclasses. . 3) The caption for Fig. 27 should be changed from: .Multiple subtype partitions (GeneralizationSets) example..: to: .Multiple collections of subsets (GeneralizationSets) example.. 4) The first sentence and the entire .Description. section of 7.17.3 GeneralizationSet, should be changed from: .A GeneralizationSet is an AutonomousElement (from Foundation :: Kernel :: PackagingNamespaces) whose instances define partitioned sets of Generalization relationships. Description Each Generalization is a binary relationship that relates a specific Classifier to a more general Classifier (i.e., a subclass). Each GeneralizationSet defines a particular set of Generalization relationships that describe the way in which a specific Classifier (or superclass) may be partitioned. For example, a GeneralizationSet could define a partitioning of the class Person into two subclasses: Male Person and Female Person. Here, the GeneralizationSet would associate two instances of Generalization. Both instances would have Person as the specific classifier, however one Generalization would involve Male Person as the general Classifier and the other would involve Female Person as the general classifier. In other words, the class Person can here be said to be partitioned into two subclasses: Male Person and Female Person. Person could also be partitioned into North American Person, Asian Person, European Person, or something else. This partitioning would define a different GeneralizationSet that would associate with three other Generalization relationships. All three would have Person as the specific Classifier; only the general classifiers would differ: i.e., North AmericanPerson, Asian Person, and European Person.. to: .A GeneralizationSet is a PackageableElement (from Kernel) whose instances define collections of subsets of Generalization relationships. Description Each Generalization is a binary relationship that relates a specific Classifier to a more general Classifier (i.e., from a class to its superclass). Each GeneralizationSet defines a particular set of Generalization relationships that describe the way in which a general Classifier (or superclass) may be divided using specific subtypes. For example, a GeneralizationSet could define a partitioning of the class Person into two subclasses: Male Person and Female Person. Here, the GeneralizationSet would associate two instances of Generalization. Both instances would have Person as the general classifier, however one Generalization would involve Male Person as the specific Classifier and the other would involve Female Person as the specific classifier. In other words, the class Person can here be said to be partitioned into two subclasses: Male Person and Female Person. Person could also be divided into North American Person, Asian Person, European Person, or something else. This collection of subsets would define a different GeneralizationSet that would associate with three other Generalization relationships. All three would have Person as the general Classifier; only the general classifiers would differ: i.e., North AmericanPerson, Asian Person, and European Person.. 5) In the .Semantics. section of 7.17.3 GeneralizationSet, change the first two sentences from: .The generalizationSet association designates the partition to which the Generalization link belongs. All of the Generalization links that share a given general Classifier are divided into disjoint sets (that is, partitions) using the generalizationSet association. Each partition represents an orthogonal dimension of specialization of the general Classifier.. to: .The generalizationSet association designates the collection of subsets to which the Generalization link belongs. All of the Generalization links that share a given general Classifier are divided into subsets (e.g., partitions or overlapping subset groups) using the generalizationSet association. Each collection of subsets represents an orthogonal dimension of specialization of the general Classifier.. 6) In the .Examples. section of 7.17.3 GeneralizationSet, change the first paragraph from: .In the illustration below, the Person class can be specialized as either a Female Person or a Male Person. Because this partitioning, or GeneralizationSet, is constrained to be complete and disjoint, each instance of Person must either be a Female Person or a Male Person; that is, it must be one or the other and not both. (Therefore, Person is an abstract class because a Person object may not exist without being either a Female Person or a Male Person.) Furthermore, Person.s can be specialized as an Employee. The generalization set here is expressed as {incomplete, disjoint}, which means that instances of Persons can be partitioned as Employees or some other unnamed collection that consists of all non-Employee instances. In other words, Persons can either be an Employee or in the complement of Employee, and not both. Taken together, the diagram indicates that a Person may be 1) either a Male Person or Female Person, and 2) an Employee or not. When expressed in this manner, it is possible to partition the instances of a classifier using a disjunctive normal form (DNF).. to: .In the illustration below, the Person class can be specialized as either a Female Person or a Male Person. Because this GeneralizationSet is partitioned (i.e., is constrained to be complete and disjoint), each instance of Person must either be a Female Person or a Male Person; that is, it must be one or the other and not both. (Therefore, Person is an abstract class because a Person object may not exist without being either a Female Person or a Male Person.) Furthermore, Person.s can be specialized as an Employee. The generalization set here is expressed as {incomplete, disjoint}, which means that instances of Persons can be subset as Employees or some other unnamed collection that consists of all non-Employee instances. In other words, Persons can either be an Employee or in the complement of Employee, and not both. Taken together, the diagram indicates that a Person may be 1) either a Male Person or Female Person, and 2) an Employee or not. When expressed in this manner, it is possible to subset the instances of a classifier using a disjunctive normal form (DNF).. 7) The caption for Fig. 72 should be changed from: .Multiple subtype partitions (generalization sets) and constraint examples.. to: .Multiple ways of dividing subtypes (generalization sets) and constraint examples.. 8) In the .Examples. section of 7.17.3 GeneralizationSet, change the last four sentences in the fourth paragraph from: .While Tree may be partitioned in various ways (based on size or age, for example), in this example it is partitioned on the basis of species. Therefore, the integrity issue mentioned above is not really an issue here. Deleting the American Elm subtype from the Tree partition does not require also deleting the corresponding Tree Species instance, because the American Elm subtype and the corresponding Tree Species instance are the same object. Figures 23.4 and 23.5 depict another way of thinking about this. .. to: .While Tree may be divided into various collections of subsets (based on size or age, for example), in this example it is divided on the basis of species. Therefore, the integrity issue mentioned above is not really an issue here. Deleting the American Elm subtype from the collection of Tree subtypes does not require also deleting the corresponding Tree Species instance, because the American Elm subtype and the corresponding Tree Species instance are the same object. Figures 23.4 and 23.5 depict another way of thinking about this. .. 9) In the .Examples. section of 7.17.3 GeneralizationSet, change the last paragraph from: .Labeling partitions with the power type becomes increasingly important when a type has more than one power type. The figure below is one such example. Without knowing which partition contains Policy Coverage Types and which Insurance Lines, clarity is compromised. This figure depicts an even more complex situation. Here, a power type is expressed with multiple partitions. For instance, a Policy can be subtyped as either a Life, Health, Property/Casualty, or some other Insurance Line. Furthermore, a Property/Casualty policy can be further subtyped as Automobile, Equipment, Inland Marine, or some other Property/Casualty line of insurance. In other words, the subtypes in the partitions labeled Insurance Line are all instances of the Insurance Line power type.. to: .Labeling collections of subtypes with the power type becomes increasingly important when a type has more than one power type. The figure below is one such example. Without knowing which subtype collection contains Policy Coverage Types and which Insurance Lines, clarity is compromised. This figure depicts an even more complex situation. Here, a power type is expressed with multiple collections of subtypes. For instance, a Policy can be subtyped as either a Life, Health, Property/Casualty, or some other Insurance Line. Furthermore, a Property/Casualty policy can be further subtyped as Automobile, Equipment, Inland Marine, or some other Property/Casualty line of insurance. In other words, the subtypes in the collection labeled Insurance Line are all instances of the Insurance Line power type.. Disposition: Resolved Unisys