Win a copy of The Little Book of Impediments (e-book only) this week in the Agile and Other Processes forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

component diagram - level of details

 
Wojciech Mazurek
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm working on a component diagram, I reviewed some topics on this forum, but I still don't know what level of details is required. I created a simple diagram (It's just an example and it doesn't reveal anything...) and I would like to ask you about your opinion.



On the left hand side the diagram is similar to that what's in Cade's book, but there are posts where 'provided'/'required' interfaces are mentioned and it seems we have to add them. Even if I decide to choose second option what level of details is required.

1) Is it enough, what's on the right hand side or I have to draw 4 interfaces on the dao when I expose 4 methods (create, read, update, delete)
2) On the right hand side I used <<use>> stereotype between jsf page and managed bean, the same for dao <-> db. If I specify interfaces, do I have to put something else here (instead of <<use>> which shouldn't be used for UML 2)?
 
Andres Olarte
Ranch Hand
Posts: 46
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I would say that the example on the left (with the <<use>>) is more than enough for this particular example. I only used the lollipop notation for higher level of decoupling. For example when interfacing with external systems (Webservice, JMS, etc...) or external intefaces (Java interfaces provided and implemented by components I did not control).

1) I think writing an interface for each method is overkill make your diagram hard to read.
2) I think <<use>> is very appropriate, specially in a component diagram. (I have never heard that you shouldn't use <<use>> in UML 2, but I might be wrong)

Good luck,

Andres
 
Wojciech Mazurek
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Andres Olarte wrote:I would say that the example on the left (with the <<use>>) is more than enough for this particular example. I only used the lollipop notation for higher level of decoupling. For example when interfacing with external systems (Webservice, JMS, etc...) or external intefaces (Java interfaces provided and implemented by components I did not control).

1) I think writing an interface for each method is overkill make your diagram hard to read.
2) I think <<use>> is very appropriate, specially in a component diagram. (I have never heard that you shouldn't use <<use>> in UML 2, but I might be wrong)

Good luck,

Andres


Thank you! One more question about interfacing with external systems. If our OrderService has to call an external system to get a a price, it might be JMS, WebService, then is it enough to denote an interface like I did on the second diagram or I have to put more details like JMS, etc?

 
Andres Olarte
Ranch Hand
Posts: 46
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
When contacting an external interface, I would put more detail, such as JMS, WebService, RMI, etc. If applicable, I would even describe the over the wire protocol (HTTPS, AMQP, etc.).

I would say that this might not apply to services provided by your app server or other components you don't have much control over. If you're using your app server's JMS broker, I think it would be overkill to describe if it uses AMQP, t3, or something else.

I think at the end of the day is a judgement call. Put enough detail so that it's obvious what you need to do accomplish your goal. Also add enough detail so that it's apparent that you understand what's going on.

Andres
 
Wojciech Mazurek
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Andres Olarte wrote:When contacting an external interface, I would put more detail, such as JMS, WebService, RMI, etc. If applicable, I would even describe the over the wire protocol (HTTPS, AMQP, etc.).

I would say that this might not apply to services provided by your app server or other components you don't have much control over. If you're using your app server's JMS broker, I think it would be overkill to describe if it uses AMQP, t3, or something else.

I think at the end of the day is a judgement call. Put enough detail so that it's obvious what you need to do accomplish your goal. Also add enough detail so that it's apparent that you understand what's going on.

Andres


Please correct me, if I'm wrong.. but you would see it in such form?



I'm curious because I thought that it will be sufficient to put details like JMS over HTTP(s) in a deployment diagram.

I would like to hear others' opinion as well.

Thank you Andres!
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic