Hi,
Both of you are right!
The role diagram can be used in analysis if it has a meaning
in the domain you are modeling. Yet, it is also a way to implement the
XOR constraint you have put in analysis or high level design. Before
you do code generation you may want to replace this constraint with
a way to managing it (though the role is not the only way to realize
this constraint).
Regards,
Thomas
PS: I was missing the cardinality in my role diagram:
+---------+0..n 1+---------------+
| class A |-------->| <<interface>> |
+---------+ | class R |
+---------------+
/_\
|
+------+------+
| |
+---------+ +---------+
| class B | | class C |
+---------+ +---------+
Personally I prefer this implementation rather than managing the XOR in class
A and having class A have two links (usually pointers) one to class B and class C,
which does not make the code very clear.
At 2/22/01 06:23 AM -0800, Picarello, Anthony wrote:
>This might be where the line between analysis and design gets fuzzy... My
>point is the "Role" diagram alone is sufficient to convey the intended
>information in both the analysis and design diagrams...
>
>The XOR diagram says: Objects of Class A will have a link to either an
>Object of Class B, or an Object of Class C, but not both.
>
>The Role diagram says: an Object of Class A will have a link to some object
>that agrees to fulfill the interface specified by Class R. In no way does
>the Role diagram display the "mechanism" that allows A to talk to either an
>instantiated B or C (e.g. some sort of Factory perhaps). So, its a suitable
>Analysis diagram, and a suitable Design diagram because it says what the
>developer is supposed to code create in code.
>
>Also, I see the structure of the Role diagram as analogous to a diagram
>showing Class A with a relationship to an abstract class X, with two
>concrete classes B and C inheriting from X (with a constraint of XOR).
>
>-Tony
>
>
>
>-----Original Message-----
>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
>Sent: Wednesday, February 21, 2001 3:56 PM
>Cc: [EMAIL PROTECTED]
>Subject: RE: (ROSE) XOR-Constraints
>
>
>
>
>Eh!
>
>Absolutely disagree, unless I am seriously misunderstanding the examples.
>
>The second 'role' diagram is one way (of many) of implementing the first.
>
>Les.
>
>
>
>I am curious... why the two different diagrams? The "Role" diagram conveys
>the same information as the "XOR" diagram. In my opinion, the "Role"
>diagram is not necessarily a design-only diagram, and can be used in
>analysis.
>
>Opinions?
>
>-------------------------------------------------
>Tony Picarello
>Engineer
>Science Applications International Corp.
>
>Voice: 407-207-2791
>Fax: 407-282-4530
>Email: mailto:[EMAIL PROTECTED]
>
>
>
>
>
>-----Original Message-----
>From: Thomas Chapuis [mailto:[EMAIL PROTECTED]]
>Sent: Wednesday, February 21, 2001 9:54 AM
>To: [EMAIL PROTECTED]
>Subject: RE: (ROSE) XOR-Constraints
>
>
>
>Hi,
>
>When you're in analysis or high level design I think it's better to do what
>Huseyin Angay suggest:
>
> +---------+
> | class A |
> +---------+
> | |
> |-{XOR}-|
> V V
> +---------+ +---------+
> | class B | | class C |
> +---------+ +---------+
>
>When in low level design (just before code generation for that particular
>class)
>one possible solution is to delegate the XOR management to a "role class":
>
> +---------+
> | class A |
> +---------+
> |
> V
> +---------+
> | class R | class R is a "role" and is "realized" in B XOR C
> +---------+
> /_\
> |
> +---+---+
> | |
> +---------+ +---------+
> | class B | | class C |
> +---------+ +---------+
>
>Regards,
>
>Thomas
>
>At 2/20/01 10:00 AM +0000, Angay, Huseyin (Huseyin)** CTR ** wrote:
>
>>Hi Jan..
>>
>>I guess you are referring to the XOR constraint between associations. That
>>is, there is a link to an instance of one class or another, but not both.
>>
>>You can show this as a dependency between the two associations. Name the
>>dependency {xor}.
>>
>>Note that I used the expression "show" rather than "model" as Rose ignores
>>this dependency as far as code generation is concerned. It is a visual
>clue
>>for the developers only. The attributes will be generated for both
>>associations (which is correct). You will need to manually manage the code
>>that ensures the exclusivity.
>>
>>
>>Best regards,
>>Huseyin Angay
>>
>>Karabash Ltd.
>>www.karabash.co.uk
>>
>>> ----------
>>> From: [EMAIL PROTECTED][SMTP:[EMAIL PROTECTED]]
>>> Reply To: [EMAIL PROTECTED]
>>> Sent: 19 February 2001 11:05
>>> To: [EMAIL PROTECTED]
>>> Subject: (ROSE) XOR-Constraints
>>>
>>>
>>>
>>>
>>>
>>> Hy,
>>> has anybody an idea to model XOR-Constraints with Rose.
>>>
>>> viele Grüße Jan
>>>
>>> Jan Binder
>>> DB AG - Lufthansa Systems AS
>>> PFI CIO Datenmanagement
>>> Mainzer Landstr. 222-224
>>> Telefon 069/265-30690
>>> Telefax 069/265-30400
>>> Mobil 0172/4144356
>>> e-mail [EMAIL PROTECTED]
>>>
>>>
>>> ************************************************************************
>>> * Rose Forum is a public venue for ideas and discussions.
>>> * For technical support, visit http://www.rational.com/support
>>> *
>>> * Admin.Subscription Requests: [EMAIL PROTECTED]
>>> * Archive of messages:
>>> http://www.rational.com/products/rose/usergroups/rose_forum.jtmpl
>>> * Other Requests: [EMAIL PROTECTED]
>>> *
>>> * To unsubscribe from the list, please send email
>>> *
>>> * To: [EMAIL PROTECTED]
>>> * Subject:<BLANK>
>>> * Body: unsubscribe rose_forum
>>> *
>>>
>*************************************************************************
>>>
>>************************************************************************
>>* Rose Forum is a public venue for ideas and discussions.
>>* For technical support, visit http://www.rational.com/support
>>*
>>* Admin.Subscription Requests: [EMAIL PROTECTED]
>>* Archive of messages:
>http://www.rational.com/products/rose/usergroups/rose_forum.jtmpl
>>* Other Requests: [EMAIL PROTECTED]
>>*
>>* To unsubscribe from the list, please send email
>>*
>>* To: [EMAIL PROTECTED]
>>* Subject:<BLANK>
>>* Body: unsubscribe rose_forum
>>*
>>*************************************************************************
>
>************************************************************************
>* Rose Forum is a public venue for ideas and discussions.
>* For technical support, visit http://www.rational.com/support
>*
>* Admin.Subscription Requests: [EMAIL PROTECTED]
>* Archive of messages:
>http://www.rational.com/products/rose/usergroups/rose_forum.jtmpl
>* Other Requests: [EMAIL PROTECTED]
>*
>* To unsubscribe from the list, please send email
>*
>* To: [EMAIL PROTECTED]
>* Subject:<BLANK>
>* Body: unsubscribe rose_forum
>*
>*************************************************************************
>************************************************************************
>* Rose Forum is a public venue for ideas and discussions.
>* For technical support, visit http://www.rational.com/support
>*
>* Admin.Subscription Requests: [EMAIL PROTECTED]
>* Archive of messages:
>http://www.rational.com/products/rose/usergroups/rose_forum.jtmpl
>* Other Requests: [EMAIL PROTECTED]
>*
>* To unsubscribe from the list, please send email
>*
>* To: [EMAIL PROTECTED]
>* Subject:<BLANK>
>* Body: unsubscribe rose_forum
>*
>*************************************************************************
>
>
>
>
>
>************************************************************************
>* Rose Forum is a public venue for ideas and discussions.
>* For technical support, visit http://www.rational.com/support
>*
>* Admin.Subscription Requests: [EMAIL PROTECTED]
>* Archive of messages:
>http://www.rational.com/products/rose/usergroups/rose_forum.jtmpl
>* Other Requests: [EMAIL PROTECTED]
>*
>* To unsubscribe from the list, please send email
>*
>* To: [EMAIL PROTECTED]
>* Subject:<BLANK>
>* Body: unsubscribe rose_forum
>*
>*************************************************************************
>************************************************************************
>* Rose Forum is a public venue for ideas and discussions.
>* For technical support, visit http://www.rational.com/support
>*
>* Admin.Subscription Requests: [EMAIL PROTECTED]
>* Archive of messages:
>http://www.rational.com/products/rose/usergroups/rose_forum.jtmpl
>* Other Requests: [EMAIL PROTECTED]
>*
>* To unsubscribe from the list, please send email
>*
>* To: [EMAIL PROTECTED]
>* Subject:<BLANK>
>* Body: unsubscribe rose_forum
>*
>*************************************************************************
************************************************************************
* Rose Forum is a public venue for ideas and discussions.
* For technical support, visit http://www.rational.com/support
*
* Admin.Subscription Requests: [EMAIL PROTECTED]
* Archive of messages:
http://www.rational.com/products/rose/usergroups/rose_forum.jtmpl
* Other Requests: [EMAIL PROTECTED]
*
* To unsubscribe from the list, please send email
*
* To: [EMAIL PROTECTED]
* Subject:<BLANK>
* Body: unsubscribe rose_forum
*
*************************************************************************