In a previous post I’ve shared my experiences on the first part of OCMJEA certification (multiple choice test) alongside some tricks and helpful links. Well, as several weeks have passed since then and I’m now through the remaining two parts (successfully, by the way – yaaay), it’s time for me to talk about parts two and three.
Let’s progress sequentially and start with part two.
As you probably know it already, part 2 comprises of solving a rather complex assignment – using the JavaEE technology stack. The assignment is described in a pdf file, where you can also find a domain model of the problem, several (3-6) use cases and your non-functional requirements.
A very important thing to mention here: do not change the domain model, unless you have a really good reason to do so. I’ve seen dozens of people complaining – on different forums – about failing the exam for changing the domain model. In a usual scenario the boxes presented in that model (along with their cardinalities) should be present in your class diagram – unchanged.
It is important to include JSP files in your class diagram. This might seem a bit odd, because usually JSPs are not indicated in class diagrams, but you can loose quite an amount of marks for not mentioning them.
Another common reason of failing is following blindly the sample solution from the preparation book. The exact problem is that the component and deployment diagrams are not detailed enough. I personally submitted two deployment and two component diagrams. There were high level diagrams (inspired by Cade’s book) and some low level – detailed diagrams. Basically, my low level component diagram was almost a duplication of my class diagram divided into two layers: UI (JSP files) and Business+DAO (almost everything else). For a good low level deployment diagram I took a look here.
For drawing my diagrams I used StarUML. At first, because in quite a little time it turned out not to be suitable for UML 2. So I switched to Enterprise Architect Trial Version. Now, as you probably know, the assignment has to be submitted as a jar file with a bunch of html and image files. Enterprise Architect Trial keeps putting a watermark on every image file exported; this, however, seems not to affect grading.
Another frequent question is how detailed the class diagram and sequence diagrams should be. I included signatures, return values even some explanatory notes when I felt they were needed. It is my understanding that the diagrams have to be detailed enough so one can easily get what is going on, but not so detailed that the diagrams become “noisy“.
Design decisions. Well, the only important thing here is to justify your decisions. In my case (I had a webshop; webshops imply checkout which in turn imply shopping carts) a serious design decision of using stateless session beans + HttpSession objects instead of stateful session beans (in that case this combo scaled better). I clearly justified my choice in the Risks chapter, when dealing with performance. The same is true with regard to Assumptions. Things not covered in the problem description are open questions (some people panic about); interfaces, means of communication, session bean types are left to be decided freely upon.
It is important to clearly state how you addressed non-functional requirements. As you are required to deliver an n-tier system, it is likely there will be a requirement on performance. You should explain how that “every transaction runs within three seconds” requirement is met.
I’ve read somewhere that a usual assignment needs 25-35 hours to be completed. I think it can be solved in less time, provided that one has enough knowledge (and perhaps experience) of the enterprise technologies (I think I solved it in like 20 hours).
Take care to follow the naming conventions described in the problem statement. Now the assignment can be submitted and Part3 can be scheduled.
Well, Part3 is not rocket science. There are eight general questions; you can expect to see questions like:
- What kind of web framework did you use
- How did you solve persistence
- Where and for what did you use enterprise beans
- Where would you need to restructure your design given you are facing an extremely high load
- Through what kind of interfaces does the app talk to external systems
The time frame (2 hours if I remember correctly) seems very long, but if you write in details about your design it is just enough. After pressing “Send”, you just need to wait 4-6 weeks (less, if you are lucky) and you are certified.
I think that’s all I wanted to say.
Good luck, have fun!