I've just passed today the first part and downloaded my assignment. So far, I have only studied the materials to pass part I and I just took a look at the assignment chapter of the Cade-Sheil book. I'm kind of impressed because I thought that more details were required but the example diagrams seem to be drawn from a very high-level perspective. I'd like to ask some kinds of considerations if I have to include them.
1, My assignment has composite objects with some constraints that can be deducted from the business model, however, it says that there's an external system that implements validation logic. Shall I care about the way how composites are constructed at the client-side or may I leave some design parts unspecified here? GoF patterns were a requirement and these patterns are much lower-level patterns than Core J2EE patterns but Cade and Sheil don't go to such details.
2, Shall I care about design patterns (~ GoF) in general or just about higher level, architectural patterns (MVC, Core J2EE, ...)?
3, How detailed shall I be about classes? Only the most crucial ones? For example, in the book the web tier's classes are quite few, so I guess in a real implementation practically there would be some POJOs but it is not specified. Is this level of detail really enough on the exam?
4, What about unspecified requirements? E.g. my assignment does not say anything on security but it can be deducted that there is a role-based security model. How detailed shall I be about that? For example, I suppose I would include related forms in class and component diagrams but shall I include the login process in the beginning of each use case? And what about NFRs that cannot be deducted so easily? E.g. is manageability and high availability requirements? They are not mentioned but every modern enterprise applications should treat them.
In general, I was just expecting something much more complex and with more lower-level design decisions, like on SCJD, so it seems easier than I imagined and that's why I'm in doubt... At the same time, I'm afraid that I consider it easy because I'm missing some points... So please, help me clarifying these doubts.
I tried to keep my questions as general as possible and I hope it doesn't violate policies. If it does, please remove it asap.
Sun Certified Java SE 6 Programmer
Oracle Certified Professional, Java EE 5 Web Component Developer
Oracle Certified Professional, Java EE 5 Business Component Developer
Oracle Certified Professional, Java EE 5 Web Services Developer
Oracle Certified Professional, MySQL 5.0 Developer
Oracle Certified Professional, MySQL 5.0 Database Administrator
Tomorrow i'll take the first part of architect's exam and if everything goes well, then i'll try to get the assignment as soon as possible...if you like we can talk about how to go through the second part.
Anyway about the use of patterns, you can use the notation of 'collaboration' (UML distilled) and also that book provides good guidelines about use UML.
About security: the chapter about security from cade-sheil book says something about 'security model'. Take a look there ;)
At this respect i'm in similar situation like the yours.
I think architect is all about focus in general desing respect to infrastucture, cross-cutting concerns, QoS or NFR from where developers can build the app in a secure way and with warranties for QoS. So a more detailed design is better coming from a senior developer on top the designs, guidelines and plans provided by the architect.
"Architecture without code is empty; code without architecture is blind." [Martin Kalin]
Thanks Jaime, I read both of the books and they are really good indeed. At the moment I'm doing the last touches and will upload my assignment very soon. Now I feel more confident about the correctness of my solution, the problem was just that at first look I was unsure how much detail was necessary. Also, there are some parts, where the requirement also lacks details that are necessary for a more detailed solution. Good luck for the first part and of course, if you have questions, I'll be here!
Don't worry, it can be finished in 2-3 days I think if you dedicate all your time to the project. I was slower because I didn't have the full days so I finished it in 5-7 days and then I intentionally put it away for some time. It can help to spot errors or see the problem from a different perspective. Then I made a quick review, cleanud up the diagrams a bit, did a spellcheck, double-checked requirements on delivery, etc. Sure, I'll tell you when I get the result but I'll only take the essay on next week, probably Tuesday.