This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I just did some googling around and found this article by steve phelan.
"As one or two people have emailed me for advice, I thought I'd pop up a few notes here on my take on how to approach parts 2 and 3 of the Java 2 Architect Certification. Note that I don't cover part 1 - that part is more than adequately covered by Aaron's notes and the messages on this group.
I'm not sure if Aaron or somebody wants to pull these notes out and add them to a document in the files section of some sort?..
What follows is *my* approach to parts 2 & 3. I'm not saying this is how *you* should do it, but all I know is that this approach got me an over 90% score, which is more than good enough (in fact you only need 70% to pass). Please, please do not email with specific questions on design approaches and choices: that's what you are supposed to be doing as part of the certification. Do note, however, that there are many, many ways to 'skin a cat': Sun aren't hung up on you building the 'perfect' solution - it doesn't exist - but they are keen for you to show *why* you made certain decisions, and what the pro's and con's of different approaches you considered were.
Anyway, here goes...
Read all the requirements documents supplied very, VERY carefully. The requirements supplied by Sun are, IMHO, incomplete, contradictory and confusing in places. Give yourself TIME to digest these documents - say at least a couple of weeks. Re-read them over and over again and MAKE NOTES as you go along of any assumptions you make - and YOU WILL have to make some assumptions.
Document your project submission properly. Don't just send off your submission with a quick list of what your diagrams are called and where they are located (you don't need this anyway as you'll HTML anchor them from your readme). Instead, write a proper, long HTML document that explains your approach. I had a section one which was my analysis of the project materials supplied, a section two which was my working assumptions coming out from the analysis (i.e. section one), a section three which was my design approach, and finally a section four which contained a brief description of my diagrams and HTML links to them. Make this document NEAT - get a decent HTML tool (i.e. don't just rely on Word) and TEST the neatness of your layout in at least two browsers. It may sound stupid, but you've no idea how many extra marks good, clean presentation can get you...
Don't get lost in the detail. I can't believe how much 'guess the detail' is exchanged in messages on the group! Remember, the submission is about OVERALL ARCHITECTURE, not how many EJBs/Beans/Servlets/JSPs/Classes/Methods etc., etc. you need, or whether Fly-By-Night should be doing this, or that, or the other. Don't loose sight of the BIG PICTURE - as that's what you are supposed to be presenting: a well-considered, reasonable, flexible architecture that serves the main goals of the requirements.
Just because someone else on the group used an EJB/JSP/Servlet etc. where you used something different doesn't mean that your approach is wrong. Likewise, just because someone else has 50 more classes on their diagrams than you doesn't mean that you are missing something (in fact, I probably had half the number of classes I saw some people coming up with). Ditto the level of detail: don't litter you classes and diagrams with every method/attribute in the world; keep them simple, to the point, and easy to digest (remember, someone you'll never, ever meet has to read them and mark them - the last thing you'll want to do is confuse that individual.)
Books. I used the following three books *only* for part 2 & 3. I don't believe you need any others. Obviously if you don't understand these books when you read them, then you do need some others! However if you can't understand these 3 books, you shouldn't really be attempting the certification in the first place...
Book 1: The Unified Modeling Language User Guide (Addison Wesley) - Booch, Rumbaugh & Jacobson. This book will help you with your diagrams no end. This is a longer book than Martin Fowler's UML distilled (also recommended if you are new to UML and want a quick taste) - and it repeats itself a lot - but it has better coverage of Component diagrams and stereotypes (er, and everything else UML).
Book 2: Designing Enterprise Applications with the Java2 Platform, Enterprise Edition (Sun Microsystems Press). This book is a fairly easy read, and is the SUN BIBLE on architecturing J2EE applications. I would call you A FOOL if your submission did not follow the basic approaches detailed in the book (even if you don't agree with them.) The way I look at it, there is NO WAY Sun can fail your submission when you base it heavily on there own architecture book. :-)
NB. The above book has a final chapter that talks about the Sun Java Petstore demo. Get yourself the latest copy of the code from the Sun site, and note that it has changed a bit from that listed in the book (esp. the use of XML to drive the request, event and screen processing). Study the petsore demo code and the book HARD. This took me weeks to go through in detail, but I learnt a lot. And hey, it's free! :-)
Book 3: Java 2 Platform Enterprise Edition Platform and Component Specifications (Sun Microsystems Press). OK, you don't really NEED this, but I find I can't live without it. It is the printed version of the Servlet/JSP/EJB specs. on the Sun site. I found it more convenient to have them in one book than download everything and print it all out. This book goes into way more detail than you'll need for the project, but it's always good when you want some clarification on low-level detail.
Diagrams. Keep them clean and simple. I used Rational Rose. You can get a demo disk off them or download it from their site. This is the same tool that Sun used for the diagrams they supplied, and it's easy to save your work directly as HTML. Sorry I can't offer any more advice on other UML tools as Rational is the only one I've ever used.
Use UML notes, stereotypes and sensible naming conventions to add clarity to your diagrams. Make sure you document your naming conventions in the document I listed above as part of your submission.
Panic: Just three diagrams for the whole project submission! How on earth do I explain the universe of my submission in just three documents?!!!
Like I said earlier, keep it SIMPLE. Don't put on any extraneous classes. For instance, I didn't put ANY GUI classes (JSP, Swing, etc.) on my Sequence Diagram. Why? Well, they just made the bloody thing too big! At the end of the day the GUI interface is just a 'request generator', so why not just show requests as the start of your sequence diagram elements? Better still, what about translating requests to events? All that machinery could clutter the diagram even further. So, LEAVE IT OFF. Just show events as the entry points on your Sequence diagrams...
You see, in two simple steps you've halved the size of the Sequence diagram, leaving you to concentrate on showing how the Use Case Text's are actually processed by your 'back end' application architecture - and remember that's what you are being marked on: your ARCHITECTURE, not the VASTNESS of your diagrams. (NB. I got 100% for my Sequence diagram, so I must have got something right...:-))
Follow the same approach for all your diagrams - i.e. make sure they are logically consistent. This is pretty easy in Rose, as all your classes, etc. are stored in a repository, from which you select to place on your diagrams. A simpler tool may not offer this, so make sure you keep the consistency by checking all your diagrams side-by-side (and print them out first).
Follow-up exam. Take it as soon as you make your submission. Take a copy of the document you submitted along with your submission to the test centre and re-read it a couple of times before taking the exam (you won't be able to take this document in with you to the examining room, of course). The aim here is to make sure your exam replies are consistent with your submission.
The exam questions are quite easy and fairly broad. Like the project, Sun wants you to concentrate on higher-level architectural choices, and the pro's and con's of various approachs, particularly the approach you chose for your submission. You will not be asked any detailed questions on EJBs/JSPs/etc., so relax! :-)
The exam should take you no more than 10-15 minutes. I wasted time by not reading all the questions first, and therefore ended up repeating myself and having to go back and cut-n-paste answers around. Do yourself a favour and read all the questions first - I think there are only 4-5 of them anyway. Don't write too much. For detail, refer the examiner to the appropriate sections of the document you submitted.
Spend some (most) of the huge amount of extra time you'll have left over by re-reading your answers and cleaning them up: layout, spelling, consistency and getting the detail balance right. Maybe expand some of your replies by detailing a few alternative approaches to those you used in your submission, and why you rejected them. Maybe also add a few notes on the 'real world' implications of your approach: for instance, if you keep state in stateful EJBs, would this state automatically propagate across clustered servers in a highly scalable solution? If not, what alternative would you suggest in this scenario?
Anyway, that's it. My guide to parts 2 & 3. Really, if you read the books I listed above - especially Book 2 - and spend plenty of time studying the project requirements and the Sun Petstore demo there is no way you should fail. It's all down to plain hard work. How much it will take will vary from person to person, but I put over 100 hours or so, spread over a couple of months or more. Don't rush it, it costs too much money when you fail! Enjoy the experience, and make sure you take away from it much more than just the piece of paper that says you are a Sun Certified Archtiect.
All the best,
--Experts do you think ..that this is the way to go ???