I've been looking around for a while to know how much details should I use on my class diagram, I know that might sound a redundant and old question, but I hope that I can get some helpful ideas.
I've developed my assignment's class diagram, and I've decided which patterns I want to use based on the requirements, but I'm a bit confused about whether I should add these patterns to the class diagram or it is enough to mention them on the text description. adding them to the class diagram will increase the number of the classes by almost ten items and will complicate the diagrams.
so basically my question is: can I keep the class diagram as clean/simple as possible and list all the patterns that I want on text only?
I have the same dilemma. Mark Cade does not have any of the design patterns on his diagrams, so maybe it is a clue that we can just mention them in our text. On the other hand, if you have a class in your sequence diagram (for example service locator class), I'd assume that you should add that class to class diagram.
I wouldn't skip any class in the class diagram.
class diagram should be complete in my opinion. for any any class which will result in a .java file in development process there should be a box in the diagram.
how should the developer know what to do if the diagram is incomplete? maybe he will not read extra notes.
If the class diagram is too complicated, there may be a simple reason for this. -> the desing is to complicated.
I would indeed skip unnecessary classes in design and not only in the diagram.
e.g. why use a service locator with JEE5 ???
anyhow I had an extra paragraph in my assignment (after the deliverables) and listed and constituted the used (and also not used) desing patterns.
but I can't say, if the reviewer took attention to this or stopped reading after the deliverables
Well, if one decides to use Spring MVC in the design, and allows the possibility of having web server run on different machine than app server, then I don't think J2EE dependency injection would work? Would it?
One can then use Spring DI based on spring JNDI look-up (described here: Spring JNDI, or alternatively one can use service locator design pattern.
Did I miss anything (apart from using Spring MVC for certification)?
-I wouldn't use Spring MVC in the SCEA design, I think sun/oracle would rather see a sun/oracle product (JSF)
-of course you can inject remote interfaces
-I think there is no need for remote interfaces. the web-server (for static contents) may run on another machine, but web and ejb-tier will run on the application server, so
there is no need for remote interfaces. this has big advances: objects will be transferd by reference not by value. -> transfer object become obsolet, not even perfomance reasons justify them