In April of 2013 I was approved in Java Architect Certification OCMJEA and today I would like to share my steps and study tips. I confess, of my thirties other certifications accumulated so far, this was the most difficult, time consuming and tiring than I ever did, but that was also the one that made me learn and grow as a professional.
Follow the books given to the study focused on the first phase of certification:
- Sun Certified Enterprise Architect for Java EE Study Guide by Mark Cade, Humphrey Sheil.
- Sun Certified Enterprise Architect for Java EE Study Guide (Exam 310-051) by Paul Allen, Joseph Bambara.
- Oracle Certified Master, Java EE Enterprise Architect Practice Guide by Amritendu De.
Even the three books with the same goal, each punctuates and reinforces different aspects. Another important detail is that this certification covers many other things that these books do not address. Therefore, it is important to first reading them to diagnose what will be necessary to study further.
During my studies I ended up doing a summary of all the necessary topics to be memorized to pass in the first phase. Thus, this summary may be used as memory card. The pdf can be download here.
About simulators, I lost a lot of time doing many simulators on the web but almost all are outdated. The only that was enough and it was worth it, this was the Whizlabs. See http://www.whizlabs.com/scea/mock-exam.html.
In the second phase of certification you are responsible for developing a complete design based on a requirements document. This document has described the scene of the corporation, the requirements of the product being developed and that you are being hired to be the architect responsible for the formulation and creation of this new solution. As with any project, the architect needs to analyze the scenario of the corporation, as well as your requirements and make design decisions.
My first tip is related to books that you can read to learn what are the most common design decisions in enterprise solutions and what are the pros and cons of each. Following books:
- POJO in Action by Chris Richardson – This book uses old versions of Java products and specifications, but the design decisions are still the same. I nominate as initial reading for candidates to learn the core basics of decisions, ignoring the old technology products used by the author.
- Patterns of Enterprise Application Architecture by Martin Fowler – This book is the most suitable for phase two where Martin Fowler describes each design decision for an enterprise solution, following with their pros and cons. It can even be used as a “cake recipe” for their design decisions during certification.
- Domain Drive Design by Erick Vans – This book addresses the main design is the fact that to build and document solutions without generating object-oriented bindings with technologies or platforms. Erick Vans teaches you to visualize and construct a solution purely object-oriented, regardless of platform or technology.
- Design Patterns: Elements of Reusable Object Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides – This book contains the catalog of basic object-oriented patterns that without any doubt you need to solve the solution to be delivered.
- Real World Patterns Rethinking Practices by Adan Bien – This book presents the study by Adan Bien retrofitting and retiring the old patterns of J2EE version to the most current versions of JEE6+. There you learned how and what patterns and continue using and those no longer.
Each book gives you knowledge to a part of the solution and would be much better if the candidate invested in reading these books before attempting certification, since the delivery time of the second phase is only six months.
Case Studies Phase 2
The next tip is about books that show examples of solutions developed for the second phase of the certification, while also serving as a case study for new candidates to have a basic understanding of how the thing is done:
- Enterprise JavaBean Enterprise 3.0 by Bill Burke (chapter 21) – In this book Bil Burke presents steps of how to develop a solution using EJB3 containing details and explanations that can be used to learn many details similar to the second phase.
- Sun Certified Enterprise Architect for Java EE Study Guide by Mark Cade and Humphrey Sheil – In this book the authors cover all parts of the certification, in the final chapters presenting a solution example with interesting details.
- Sun Certified Enterprise Architect for Java EE Study Guide (Exam 310-051) by Paul Allen and Joseph Bambara – In this book the authors also cover all parts of the certification, in the final chapters presenting a solution example with interesting details.
- Oracle Certified Master, Java EE Enterprise Architect Practice Guide by De Amritendu – This book is the latest on this certification that was released after I pass the which I have not had the opportunity to read, but like others, also have a sample solution in the final chapters.
- Epractizelab Simulator – Commercial Simulator that provides an example of a project and the solution can also be used as a study. As I did not buy, I can not comment whether it is good or not. See http://www.epractizelabs.com/certification/sun/scea-5-part23-exam.html
Creating the Solution
Here are a few tips to get you started your solution. Pay attention to the extraction of requirements:
- Description of the company’s history
- Description of legacy systems
- Description of use cases
- Description of necessary infrastructure
Documentation requirements of the certification is unclear, incomplete and can come up with some mistakes purposely. You may need to make some corrections and or assumptions in context to complement the design, making it implementable. This is precisely why a part of the solution delivery of a document design decisions that you must describe your assumptions and how they affect your final solution. Pay attention on the extraction of non-functional requirements and highlight the descriptions associated with each requirement. Examples:
- Number of demand for use of the solution
- Expected increase scalability
- Response time the end user.
- Response time communication in integrations with other systems.
The path of assumptions, you have two ways to go:
- Suppose something already exists in the proposed solution and thus do not do anything related to it and document this assumption.
- Suppose that something does not exist in the proposed solution and thus need to be considered when adding and architecture as part of their proposed solution. Beware that way, since you will be increasing your project and therefore opening more spaces for inconsistencies and errors.
My tip for this is: do not assume or invent things that add complexity to your project. Make assumptions of things that are missing in order to complement the possible lack of information. Resist the temptation to do fancy stuff.
Here are a few tips for building diagrams:
- The diagrams need to be decoupled from any particular technology or framework specific, vendor-independent.
- The essence of the diagrams is to present a solution that solves the problems proposed and not the technology infrastructure or frameworks adopted.
- Keep the diagrams at a high level. That is, do not worry about showing low level stuff like algorithms, details of API, etc.
- Start with the deployment diagram after classes, after sequence and then finally the components.
- Do not forget to go documenting all assumptions and design decisions that you are making along the construction of diagrams.
In the last phase of the certification, the candidate will need to answer eight questions related to the project developed. My tip here is: Answer the questions architectures during the design phase, while you produce the document-making. Below is a list of possible questions that you can find in the certification:
- How does your design handle availability? Why did you choose it? pros and cons of your approach?
- How does your design handle reliability? Why did you choose it? pros and cons of your approach?
- How does your design handle scalability? Why did you choose it? pros and cons of your approach?
- How does your design handle performance? Why did you choose it? pros and cons of your approach?
- How does your design handle security? Why did you choose it? pros and cons of your approach?
- How does your design handle extensibility? Why did you choose it? pros and cons of your approach?
- How does your design handle maintainability? Why did you choose it? pros and cons of your approach?
- Set of design patterns on which layer and why?
- How does your design support session/state handling?
- How does your design handle persistence?
- How does your client tier talk to business tier?
- How does your design handle Qos 5 Sec in peak time?
- How does your design handle transactions?
- How does your design handle authentication and authorization?
- What technology u have used in presentation and business tier why?
- How many SB’s you used and purpose of them?
- Why have you chosen framework If any If not why not ?
Do not make these answers in exact time to answer official certification that you will not have time for this. Making up the answers, you helped to get better prepared and may even show mistakes you made during project design, leading you refactor something.
I’m available for any possible doubt related to architecture or about the certification. I apologize for any English errors cause is my second language.
“The Lord will watch over your coming and going both now and forevermore.” Psalm 121:8