• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Class diagram technology agnostic

 
Antonio Rafael Rodrigues
Ranch Hand
Posts: 74
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I've been reading so many posts in the forum and here and there people say that the class diagram has to be technology agnostic.

It's clear (by many posts) that we have to indicate the type of beans (StatelessSessionBean, Local, Remote, ManagedBean, Named, Jsf Page) but, as we put this kind of information, the diagram isn't techonology agnostic anymore.

Well, what does 'technology agnostic' mean?

Thanks again.
 
Mike Degteariov
Ranch Hand
Posts: 145
8
Java Mac MySQL Database Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I think the solution should be Java EE 6 compliant, in the first place.
So it is perfectly OK to put EJBs and JSFs in it, and annotate them appropriately, since those are elements that make up JEE architecture.

Although not 100% sure, but I think the notion of "technology agnostic" solution came from previous versions of OCMJEA/SCEA exams, where people were using for the solution non standard (but widely popular) frameworks, like Spring, Struts, or Seam

So all details specific for that framework should have not been included into the diagram. Again, this is just a guess.

I think that as long as your solution is pure JEE, there is nothing to worry about.


 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 35277
384
Eclipse IDE Java VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I agree with Mike. My class diagram was absolutely not technology agnostic. It was clearly for a Java (and JSF) based app.
 
Antonio Rafael Rodrigues
Ranch Hand
Posts: 74
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Mike and Jeanne for your reply.

Just one point more about the class diagram: I have in it all the classes that I took from the domain diagram, but these classes don't have any attributes or operations. I don't think I should put anything in that, since that do it would require me more knowledge about the business. Am I right? Should I put any attributes or operations just to have some kind of representation?

Thanks again.
 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 35277
384
Eclipse IDE Java VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
While I don't think you need to put in all the attributes/operations, I do think you need to put some. Two reasons:
1) It shows you understand the domain
2) It provides a logical link to methods called in your sequence diagram
 
Antonio Rafael Rodrigues
Ranch Hand
Posts: 74
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank you Jeanne.
I'm going to put some attributes to give more meaning to the classes.
 
Andres Olarte
Ranch Hand
Posts: 46
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I would say that your class diagram seems to be as technology agnostic as possible to be easy to read.

For example, if you're a using a particular MVC framework, and all of your actions have to inherit from a framework provided abstract class, you have to note that. However, you shouldn't describe the details of this MVC framework in your class diagram. As per "The Law of Leaky Abstractions", all non-trivial abstractions, to some degree, are leaky. Just make sure that the details that leak through don't cloud the concepts you're trying to explain in your class diagram.

Second, if you need to make it evident that you're using a particular technology, make sure that you have a good reason and can justify your choice. This includes using Java EE technologies as well as third party technologies.

Good luck,

Andres
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic