Issue 12369: qualifiers (uml2-rtf) Source: No Magic, Inc. (Mr. Nerijus Jankevicius, nerijus(at)nomagic.com) Nature: Uncategorized Issue Severity: Summary: Are qualifiers displayed at opposite end of association than role name (or multiplicity) or near the role name (or multiplicity)? E.g. composition diamond is displayed at opposite end, multiplicity value – at the same end. How about qualifiers? UML 2.1.2 page 124: qualifier : Property [*] An optional list of ordered qualifier attributes for the end. Notation (page 128): The qualifier is attached to the source end of the association. What is the “source of the association” ??? Look at figure from UML spec (first sample): Are these qualifiers owned in association end typed by Bank or Person? Resolution: Revised Text: Actions taken: March 20, 2008: received issue Discussion: End of Annotations:===== m: "Nerijus Jankevicius" To: X-Mailer: Microsoft Windows Mail 6.0.6000.16480 Subject: qualifiers Date: Thu, 20 Mar 2008 17:01:38 +0200 Guys, I'm confused. I looked at different UML tools and several UML books, but can't find an answer. Are qualifiers displayed at opposite end of association than role name (or multiplicity) or near the role name (or multiplicity)? E.g. composition diamond is displayed at opposite end, multiplicity value . at the same end. How about qualifiers? UML 2.1.2 page 124: qualifier : Property [*] An optional list of ordered qualifier attributes for the end. Notation (page 128): The qualifier is attached to the source end of the association. What is the .source of the association. ??? Look at figure from UML spec (first sample): Are these qualifiers owned in association end typed by Bank or Person? Thanks. -- Nerijus Jankevicius SysML Product Manager OMG-Certified UML Professional No Magic Lithuanian Development Center Savanoriu pr. 363, LT 49425 Kaunas P.O. box 2166, LT- 3000, Kaunas Phone: +370-37-324032 Fax: +370-37-320670 e-mail: nerijus@magicdraw.com WWW: http://www.magicdraw.com -- MagicDraw - Architecture made simple! image001.wmz DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; bh=xQOD5CWI9isfh+EW53DpQimwwOjpyxFy57LnFvxg+KU=; b=c9kJq20mpEYJkuZ6CoO8bWce3rV+VirpbEfeVDGSqvMtFLb/8Ilu4QiLR/0Fx8CV2qERabtQ9ZOFAcyF5XUIqJG5XJ026mQawWwZ7+QQQOe86ZAkbhgn16NTw4geskScMCa8hpeu4SD6Ei2YOqJM9XScONqZhK5KM5DAGFUU0L0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=rt5yEyUvn0S/ren4oZPA92iLPimYcN68H1jSP+aUdKcAVfB2R2HMU/yJiaqi94B1hENpfpLsN/CldARcmPGYzSJ46wEDYm85ydM0uyKe0ryvGOPiCp+Qmft4YL5kRF99j0EUk7mmgLvz2wE779O+ObERybHE4UZF2tkcNw6MKQk= Date: Sat, 22 Mar 2008 15:04:00 -0400 From: "Bran Selic" To: "Nerijus Jankevicius" Subject: Re: qualifiers Cc: uml2-rtf@omg.org Yes, this does sound confusing and warrants an issue -- and a resolution. So, I am hoping Nerijus will raise the issue officially and then propose a resolution. Actually, a qualifier is a Property that is not owned by a Classifier but by a Property; i.e., it is a property of a Property. This is the only case where we support multi-level properties (although it would have been useful for modeling ports on parts as well). In case of the Bank-Person example, a Person instance has an attribute of type Bank and it is this attribute that owns the "accountNo" qualifier Property. The Bank class is completely oblivious to the qualifier. Cheers...Bran 2008/3/20 Nerijus Jankevicius : Guys, I'm confused. I looked at different UML tools and several UML books, but can't find an answer. Are qualifiers displayed at opposite end of association than role name (or multiplicity) or near the role name (or multiplicity)? E.g. composition diamond is displayed at opposite end, multiplicity value . at the same end. How about qualifiers? UML 2.1.2 page 124: qualifier : Property [*] An optional list of ordered qualifier attributes for the end. Notation (page 128): The qualifier is attached to the source end of the association. What is the "source of the association" ??? Look at figure from UML spec (first sample): Are these qualifiers owned in association end typed by Bank or Person? Thanks. -- Nerijus Jankevicius SysML Product Manager OMG-Certified UML Professional No Magic Lithuanian Development Center Savanoriu pr. 363, LT 49425 Kaunas P.O. box 2166, LT- 3000, Kaunas Phone: +370-37-324032 Fax: +370-37-320670 e-mail: nerijus@magicdraw.com WWW: http://www.magicdraw.com -- MagicDraw - Architecture made simple! Content-Type: application/x-ms-wmz; name=image001.wmz Content-ID: X-Attachment-Id: 0.1 Content-Type: image/gif; name=image002.gif Content-ID: X-Attachment-Id: 0.2 image0011.wmz Subject: RE: qualifiers Date: Sat, 22 Mar 2008 19:17:37 -0400 X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: qualifiers Thread-Index: AciMUAxDhOiQ0+D7SsaKAMdyQgwM/AAIc8kg From: "Ed Seidewitz" To: "Bran Selic" Cc: Bran . OK, I.ll have to agree that this is confusing, because your interpretation isn.t how I understand it at all. My understanding is that the qualifier acts as a kind of index on the opposite association end. So, if you know the bank and the account no., then you identity zero or one person. If you know the chessboard and the rank and file, then you identify exactly one square. With this interpretation, it doesn.t really make sense for the qualified end to be the Bank or Chessboard end. I believe that the intent of the description .source end of the association. is to mean the end that is navigated from. That is, the Bank or Chessboard end. However, the qualifier itself is actually on the opposite end navigated to. This would be consistent with the semantics of qualifiers in UML 1. -- Ed -------------------------------------------------------------------------------- From: Bran Selic [mailto:bran.selic@gmail.com] Sent: Saturday, March 22, 2008 3:04 PM To: Nerijus Jankevicius Cc: uml2-rtf@omg.org Subject: Re: qualifiers Yes, this does sound confusing and warrants an issue -- and a resolution. So, I am hoping Nerijus will raise the issue officially and then propose a resolution. Actually, a qualifier is a Property that is not owned by a Classifier but by a Property; i.e., it is a property of a Property. This is the only case where we support multi-level properties (although it would have been useful for modeling ports on parts as well). In case of the Bank-Person example, a Person instance has an attribute of type Bank and it is this attribute that owns the "accountNo" qualifier Property. The Bank class is completely oblivious to the qualifier. Cheers...Bran 2008/3/20 Nerijus Jankevicius : Guys, I'm confused. I looked at different UML tools and several UML books, but can't find an answer. Are qualifiers displayed at opposite end of association than role name (or multiplicity) or near the role name (or multiplicity)? E.g. composition diamond is displayed at opposite end, multiplicity value . at the same end. How about qualifiers? UML 2.1.2 page 124: qualifier : Property [*] An optional list of ordered qualifier attributes for the end. Notation (page 128): The qualifier is attached to the source end of the association. What is the "source of the association" ??? Look at figure from UML spec (first sample): Are these qualifiers owned in association end typed by Bank or Person? Thanks. -- Nerijus Jankevicius SysML Product Manager OMG-Certified UML Professional No Magic Lithuanian Development Center Savanoriu pr. 363, LT 49425 Kaunas P.O. box 2166, LT- 3000, Kaunas Phone: +370-37-324032 Fax: +370-37-320670 e-mail: nerijus@magicdraw.com WWW: http://www.magicdraw.com -- MagicDraw - Architecture made simple! DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; bh=jhhnkUcROb33ZeXFQYuuW44Gf/1OGTRvpI/ftP8/qsY=; b=KFUr5M1my0nIG86cySHesgiRB/vLpfEx5V6XtHHzx/oYhU8J7NGkLH+dbS2DfBFDcOE36gqWcftLWZZ8Nc443WEkdpQHvFmPBwJNWGabHNsBIzJD6kxlP8E3Lh2f9ebCIO70iD05dnuXzUdPqYfphqedrMMZaynz6zixqq6xXyo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=Oc0fHQqLp5BxO9LZjsIendFCUGZch6djm49AL2TPmX4WogmJ5sv1ut6G2haXm62hJP5LUFxG63pI9qKv9IAmtLtJEegn0mokvSNe0dZWZqwdgxELCt9+fFnFNF9TCI7Zo0DNnVDvowriWhiNsjEPkDOzuRSzIQd1YxnJrfmIn8c= Date: Sat, 22 Mar 2008 19:26:02 -0400 From: "Bran Selic" To: "Ed Seidewitz" Subject: Re: qualifiers Cc: uml2-rtf@omg.org Hmmm. I was going by the metamodel but, I suppose that is not conclusive either. It certainly sounds strange to me that Bank would need to have attributes for all possible qualifiers. Surely qualifiers are defined not by the qualified classifier but by the one to whom the qualification applies? However, I cannot say that I am positive about this. Qualifiers were always a bit of a fuzzy bit. Definitely an issue. Cheers...Bran On Sat, Mar 22, 2008 at 7:17 PM, Ed Seidewitz wrote: Bran . OK, I'll have to agree that this is confusing, because your interpretation isn't how I understand it at all. My understanding is that the qualifier acts as a kind of index on the opposite association end. So, if you know the bank and the account no., then you identity zero or one person. If you know the chessboard and the rank and file, then you identify exactly one square. With this interpretation, it doesn't really make sense for the qualified end to be the Bank or Chessboard end. I believe that the intent of the description "source end of the association" is to mean the end that is navigated from. That is, the Bank or Chessboard end. However, the qualifier itself is actually on the opposite end navigated to. This would be consistent with the semantics of qualifiers in UML 1. -- Ed -------------------------------------------------------------------------------- From: Bran Selic [mailto:bran.selic@gmail.com] Sent: Saturday, March 22, 2008 3:04 PM To: Nerijus Jankevicius Cc: uml2-rtf@omg.org Subject: Re: qualifiers Yes, this does sound confusing and warrants an issue -- and a resolution. So, I am hoping Nerijus will raise the issue officially and then propose a resolution. Actually, a qualifier is a Property that is not owned by a Classifier but by a Property; i.e., it is a property of a Property. This is the only case where we support multi-level properties (although it would have been useful for modeling ports on parts as well). In case of the Bank-Person example, a Person instance has an attribute of type Bank and it is this attribute that owns the "accountNo" qualifier Property. The Bank class is completely oblivious to the qualifier. Cheers...Bran 2008/3/20 Nerijus Jankevicius : Guys, I'm confused. I looked at different UML tools and several UML books, but can't find an answer. Are qualifiers displayed at opposite end of association than role name (or multiplicity) or near the role name (or multiplicity)? E.g. composition diamond is displayed at opposite end, multiplicity value . at the same end. How about qualifiers? UML 2.1.2 page 124: qualifier : Property [*] An optional list of ordered qualifier attributes for the end. Notation (page 128): The qualifier is attached to the source end of the association. What is the "source of the association" ??? Look at figure from UML spec (first sample): Are these qualifiers owned in association end typed by Bank or Person? Thanks. -- Nerijus Jankevicius SysML Product Manager OMG-Certified UML Professional No Magic Lithuanian Development Center Savanoriu pr. 363, LT 49425 Kaunas P.O. box 2166, LT- 3000, Kaunas Phone: +370-37-324032 Fax: +370-37-320670 e-mail: nerijus@magicdraw.com WWW: http://www.magicdraw.com -- MagicDraw - Architecture made simple! Content-Type: image/gif; name=image002.gif Content-ID: X-Attachment-Id: 0.2 Content-Type: image/gif; name=image001.gif Content-ID: X-Attachment-Id: 0.1 Subject: RE: qualifiers Date: Sat, 22 Mar 2008 23:19:17 -0400 X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: qualifiers Thread-Index: AciMdDYmUILKEuAiS9WaSb63OfrCAQAASeqA From: "Ed Seidewitz" To: "Bran Selic" Cc: Bran . I think part of the confusion comes from talking about the associated classes, rather than the association ends. The diagrams below add end names to the examples from the spec: Even though accountNo is drawn next to Bank, it is really a qualifier on accountHolder. That is, it is a property of the accountHolder association end. The bank association end doesn.t come into it. If you want to navigate from Bank to Person, you need to specify the accountNo in order to identify a unique Person. Otherwise, the multiplicity on accountHolder would have to be *, not 0..1. If you navigate from Person to Bank, on the other hand, then accountNo doesn.t actually come into it. You have to first identify the bank, and the appropriate accountNo (or maybe more than one) follows form that. Similarly, rank and file are properties of the square association end. If you want to navigate from Chessboard to Square, you need to specify rank and file. The navigation from Square to Chessboard, on the other hand, is independent of rank and file. So, the issue here is really that the notation for the qualifier is simply at the opposite end of the association from where the metamodel puts its representation! -- Ed Subject: RE: qualifiers Date: Sat, 22 Mar 2008 23:21:35 -0400 X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: qualifiers Thread-Index: AciMdDYmUILKEuAiS9WaSb63OfrCAQAASeqAAAfXktA= From: "Ed Seidewitz" To: By the way, Nerijus will recognize that I draw my pictures using MagicDraw . which, correctly, places the qualifiers as shown, even though I created them on the accountHolder and square ends. I bet his question comes because someone was complaining about this! -- Ed -------------------------------------------------------------------------------- From: Ed Seidewitz Sent: Saturday, March 22, 2008 11:19 PM To: 'Bran Selic' Cc: uml2-rtf@omg.org Subject: RE: qualifiers Bran . I think part of the confusion comes from talking about the associated classes, rather than the association ends. The diagrams below add end names to the examples from the spec: Even though accountNo is drawn next to Bank, it is really a qualifier on accountHolder. That is, it is a property of the accountHolder association end. The bank association end doesn.t come into it. If you want to navigate from Bank to Person, you need to specify the accountNo in order to identify a unique Person. Otherwise, the multiplicity on accountHolder would have to be *, not 0..1. If you navigate from Person to Bank, on the other hand, then accountNo doesn.t actually come into it. You have to first identify the bank, and the appropriate accountNo (or maybe more than one) follows form that. Similarly, rank and file are properties of the square association end. If you want to navigate from Chessboard to Square, you need to specify rank and file. The navigation from Square to Chessboard, on the other hand, is independent of rank and file. So, the issue here is really that the notation for the qualifier is simply at the opposite end of the association from where the metamodel puts its representation! -- Ed Date: Sun, 23 Mar 2008 03:02:22 -0400 From: "Chonoles, Michael J" Subject: RE: qualifiers To: uml2-rtf@omg.org Thread-Topic: qualifiers Thread-Index: AciMdDYmUILKEuAiS9WaSb63OfrCAQAASeqAAAfXktAABuT74A== X-MS-Has-Attach: yes X-MS-TNEF-Correlator: X-OriginalArrivalTime: 23 Mar 2008 07:02:25.0975 (UTC) FILETIME=[D9B71C70:01C88CB3] While thinking of qualifiers as properties of the navigated-to class sometimes works, I remember one of Rumbaugh.s articles. in Object (or was it JOOP) where he explained that they were properties of the relationships (association). Indices like names are determined by the indexer or namer based on the relationship to the named. For example, adding a uni-directional relationship to a class, even if qualified, only impacts the source class, not the target class. My interpretation over the years was that a qualifier was a (potentially derived) property of the association (or association class) that partitioned the links into equivalence classes (which may have null or multiple cardinality). If the property was derivable directly from the target class attributes, that was fine, but attributes of the association class were also allowed. If there were no potential base attributes for the qualifier in the target class they had to be properties of the association class. If no association class was shown, it was still there, just hidden. Michael LMCO -------------------------------------------------------------------------------- From: Ed Seidewitz Sent: Saturday, March 22, 2008 11:19 PM To: 'Bran Selic' Cc: uml2-rtf@omg.org Subject: RE: qualifiers Bran . I think part of the confusion comes from talking about the associated classes, rather than the association ends. The diagrams below add end names to the examples from the spec: Even though accountNo is drawn next to Bank, it is really a qualifier on accountHolder. That is, it is a property of the accountHolder association end. The bank association end doesn.t come into it. If you want to navigate from Bank to Person, you need to specify the accountNo in order to identify a unique Person. Otherwise, the multiplicity on accountHolder would have to be *, not 0..1. If you navigate from Person to Bank, on the other hand, then accountNo doesn.t actually come into it. You have to first identify the bank, and the appropriate accountNo (or maybe more than one) follows form that. Similarly, rank and file are properties of the square association end. If you want to navigate from Chessboard to Square, you need to specify rank and file. The navigation from Square to Chessboard, on the other hand, is independent of rank and file. So, the issue here is really that the notation for the qualifier is simply at the opposite end of the association from where the metamodel puts its representation! -- Ed From: "Nerijus Jankevicius" To: "Ed Seidewitz" , Subject: Re: qualifiers Date: Wed, 26 Mar 2008 11:20:14 +0200 X-Mailer: Microsoft Windows Mail 6.0.6000.16480 Ed, >>So, the issue here is really that the notation for the qualifier is simply at the opposite end of the association from where the metamodel puts its representation! Thanks, it is exactly I was asking for. So, could you propose similar explanations to spec as resolution of this issue? Nerijus ----- Original Message ----- From: Ed Seidewitz To: uml2-rtf@omg.org Sent: Sunday, March 23, 2008 5:21 AM Subject: RE: qualifiers By the way, Nerijus will recognize that I draw my pictures using MagicDraw . which, correctly, places the qualifiers as shown, even though I created them on the accountHolder and square ends. I bet his question comes because someone was complaining about this! -- Ed -------------------------------------------------------------------------------- From: Ed Seidewitz Sent: Saturday, March 22, 2008 11:19 PM To: 'Bran Selic' Cc: uml2-rtf@omg.org Subject: RE: qualifiers Bran . I think part of the confusion comes from talking about the associated classes, rather than the association ends. The diagrams below add end names to the examples from the spec: Even though accountNo is drawn next to Bank, it is really a qualifier on accountHolder. That is, it is a property of the accountHolder association end. The bank association end doesn.t come into it. If you want to navigate from Bank to Person, you need to specify the accountNo in order to identify a unique Person. Otherwise, the multiplicity on accountHolder would have to be *, not 0..1. If you navigate from Person to Bank, on the other hand, then accountNo doesn.t actually come into it. You have to first identify the bank, and the appropriate accountNo (or maybe more than one) follows form that. Similarly, rank and file are properties of the square association end. If you want to navigate from Chessboard to Square, you need to specify rank and file. The navigation from Square to Chessboard, on the other hand, is independent of rank and file. So, the issue here is really that the notation for the qualifier is simply at the opposite end of the association from where the metamodel puts its representation! -- Ed