• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Class diagram technology agnostic

 
Ranch Hand
Posts: 75
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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.
 
Ranch Hand
Posts: 145
8
Mac MySQL Database Java Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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.


 
author & internet detective
Posts: 41878
909
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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: 75
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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
Posts: 41878
909
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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: 75
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thank you Jeanne.
I'm going to put some attributes to give more meaning to the classes.
 
Ranch Hand
Posts: 46
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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
 
reply
    Bookmark Topic Watch Topic
  • New Topic