I like these two approaches.  After just trying the first approach, I'll add
that you may want to define any exceptions that can be raised by classes
that implement the interfaces in one of the interfaces as well.  Placing
exception classes here (or another third package) helps define the contract
the interface is designed to support.

-----Original Message-----
From: Dunnavant, Todd
To: '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'
Sent: 4/3/01 1:07 PM
Subject: RE: (RUP) RE: (ROSE) Subsystem Interfaces in Rose


I'll drop back a couple of emails and try to address Chris' questions.

Chris, you are right when you say that interfaces normally should not be
owned by a specific subsystem, and when you say that RUP does not
suggest
where they should be owned in the model.  One approach, which is
documented
in the new version of our OOAD course, is for a given architectural
layer's
interfaces to be owned by a package within that layer.  If the
interfaces
are cross-layer, I like to elevate their ownership to a hierarchy of
packages that is owned by the "Design Model" package itself.  So, we end
up
with something like one of the following:

Logical View
        Design Model
                <<layer>> Business Services
                        Business Services Interfaces
                <<layer>> GUI Services
                        GUI Services Interfaces

or, in the case of cross-layer interfaces:

Logical View
        Design Model
                System-Level Interfaces
                <<layer>> Business Services
                        Business Services Interfaces
                <<layer>> GUI Services
                        GUI Services Interfaces

With regard to dependencies between packages and sub-systems, the rule
is to
create dependencies that are as flexible as possible.  This is why we
recommend using interface-based dependencies wherever feasible, rather
than
establishing dependencies to specific classes.   

********************************************************

R a t i o n a l 
the e-development company(tm) 

Todd Dunnavant 
Technical Lead, Texas/Oklahoma I District 
Office Phone #:  (281) 499-8789 
Fax Phone #:     (281) 499-6293 
E-mail address:   [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>  

Rational's Mission:  "To ensure the success of Customers who 
depend on software development and deployment." 
********************************************************



-----Original Message-----
From: Menard, Richard [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, April 03, 2001 10:47 AM
To: Chris Gardner; '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'
Subject: (RUP) RE: (ROSE) Subsystem Interfaces in Rose



What if you model each subsystem as a component?  Then within each
component, you can model the interface as a boundary class with public
methods.   All of the other methods of all the other classes in the
component are protected or private.

-----Original Message-----
From: Chris Gardner [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, April 03, 2001 11:16 AM
To: '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'
Subject: (ROSE) Subsystem Interfaces in Rose



My understanding is that subsystems should realize interfaces upon which
other subsystems are dependent.  Potentially, many subsystems can
realize a
single interface, thus allowing pluggable subsystems.

In the RUP model framework in Rose, I can't find a default place to put
the
subsystem interfaces.  Because many subsystems can realize the
interface,
the interface definition should not live in a specific subsystem
package.
It should live another package, upon which each subsystem depends.  Does
RUP
itself or the RUP model framework suggest another package of residence
for
such an interface definition?

BTW, I thought I read in RUP that a package should be dependent on a
subsystem or a subsystem dependent on a package.  Is either true?  If
so,
why?  Thanks.
************************************************************************
* 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
*
*************************************************************************

Reply via email to