Tuesday, July 14, 2015

My experience on OCMJEA

In this post I Just want to share some of my experiences and impressions in the process of achieving the “Oracle Certified Master, Java EE 6 Enterprise Architect” certification, hoping this to be useful for those who are on their way of become certified.

First of all I have to say that I obtained my certification in the past 6 of July, and that I got a score of 153 over 160, which make me feel so happy.

Nowadays the certification path is composed by many steps that you can consult in this link.

Step 1: Complete the course

This step is not necessarily the first step you must complete, but I advise you to do it first because it can help you to clarify many useful concepts that you need to manage in the next steps. I took the “Architect Enterprise Applications with Java EE” course and I think it is a good option although I think is kind of expensive course. In my country, Colombia, I recommend calling directly to the Oracle call center and ask for discounts on the price of the course; I got a good discount.

Step 2: Pass Exam Java EE 6 Enterprise Architect Certified Master 1Z0-807

As I said before, I think that “Architect Enterprise Applications with Java EE” course can help you to clarify necessary concepts for the multiple choice exam. Besides that, I recommend you to follow one of the many study books available for this exam. I studied with the new Oracle study book:

OCM Java EE 6 Enterprise Architect Exam Guide (Exams 1Z0-807, 1Z0-865 & 1Z0-866) (Oracle Press) by Paul Allen and Joseph Bambara.

Although I found this book interesting (Not only for this step but for next steps: assignment and essay); I don’t think it is enough to pass the exam. So I strongly recommend you making as many mock exams as you can. You can find many mocks exams on the Internet.

The exam topics can be found in this link.

Step 3: Java (EE) Enterprise Architect Certified Master Assignment 1Z0-865

For me the assignment is the most important and difficult part of the exam. My assignment was “Factory Homes”.

First of all I recommend you to read the assignment very well (more than once) and that you take the time to fully understand the scope of the problem to solve.

On a high level, the assignment file is composed by the following sections:

1. Background: This section provides an overview of the business context of the problem you must resolve.

2. Workshop output: This is one of the most important sections because it actually contains several important aspects to be taken into account as restrictions, non-functional requirements, legacy systems, etc.

3. Business domain model: This section contains the basic business model on which we must work. Is vitally important to fully understand this model, because it will be the basis for building the class diagram.

4. Use case diagrams and specifications: This section contains the use cases that must be taken into account. Is important to understand the scope of these use cases and to recognize the actors involved in the system.

5. Deliverables: This section contains the description of the deliverables you must construct and how to send them: Class diagram, component diagram, deployment diagram, sequence diagrams, top three technical risks, assumptions and decisions.

Before start with the assignment I think is a good idea to select the UML tool you will use, I recommend you to select a tool that already provides support for UML 2.0 and that allows you to export the diagrams as images easily. I selected Visual Paradigm v12.0 (trial version) mainly for the reasons mentioned before, and I must say that this tool leaves me a good impression by its versatility and because it allows you to make everything you might need for the assignment.

Next I describe my tips on each of the deliverables:

Class diagram:

Start building your class diagram based on the business domain model given in the assignment file. Do not modify the proposed domain model because doing so would alter the scope of the requirements.

You must consider adding classes for representing the presentation tier components, like JSP or JSF pages. Also I think is important to include some utility packages and classes useful for your solution, like cache or logging. In my case I decided to use EhCache Framework for cache, and the Java Logging API for logging.

I also think is very useful the use of stereotypes for clarifying the purpose and nature of the proposed classes, you may use stereotypes like: ‘JSF Page’, ‘ManagedBean’, ‘Interface’, ‘Auxiliary’, etc.

Moreover it would be helpful for the construction of the sequence diagrams to add some classes to represent important JEE framework classes, like the Entity Manager. Remember that the class diagram must contain all the classes included in the sequence diagrams.

Component diagram:

For the component diagram y suggest to present it by tiers, so that it is clear the components that belong to each application tier. Also remember that components should expose well defined interfaces, so use and include them into the diagram. I prefer the lollipop notation to show the components exposed and consumed interfaces.

Also you can group component in subsystems in such a way components related to the same functional purpose are logically grouped.

The following links can help you to clarify some concepts about the component diagram.

http://www.agilemodeling.com/style/componentDiagram.htm
http://www.uml-diagrams.org/component-diagrams.html
http://agilemodeling.com/artifacts/componentDiagram.htm

Deployment diagram

In this diagram you should detail the hardware and software of your system, and the application components that run on those nodes. Before start building this diagram, you should think about your assignment restrictions like time and cost and about your assignment NFRs like reliability, availability, scalability, security, performance; and considering all these aspects, propose a scheme that allows satisfying them in the best way.

For example, you could consider a cluster topology with load balancing, running on dedicated servers in order to achieve good reliability and scalability, but also you could evaluate a cloud solution that may offer good flexibility and manageability at competitive prices. So, as I said before all depends on your non-functional requirement and restrictions and you should perform a trade-off between the options in order to choose the best for you.

The following links can help you to clarify some concepts about the deployment diagram.

http://www.agilemodeling.com/artifacts/deploymentDiagram.htm
http://www.uml-diagrams.org/deployment-diagrams-overview.html
http://www.uml-diagrams.org/deployment-diagrams-examples.html
http://aviadezra.blogspot.com/2009/09/uml-deployment-component-diagrams.html

Sequence diagram:

If you have carefully completed the class diagram, making sequence diagrams should be a simple and enjoyable work.

For these diagrams I just can advise you to remember that all the classes involved in the sequence diagrams should be present in the class diagram, and not to forget including in the sequence important application components like web pages, cache and logging.

Also remember to use of all the tools provided by UML to make a good sequence diagram, like “alt”, “loop”, “opt”, “ref” blocks, and make some comments if necessary.

The following links can help you to clarify some concepts about the sequences diagrams:

http://www.agilemodeling.com/artifacts/sequenceDiagram.htm
http://www.ibm.com/developerworks/rational/library/3101.html

Assumptions and decisions:

For this section I can only recommend you don’t let it for last, just go documenting your assumptions and decisions as you progress in solving the case.

I raised 12 assumptions of different nature, such as assumptions regarding the domain model, the use cases, the legacy systems, and as for the non-functional requirements.

As for architecture decisions, I raised 11 decisions justifying the choice of each of the framework, APIs, technologies and products used. For example, you may justify why select a server or database engine, why select some API to manage the cache or logging, etc.

Also in the architectural decisions you can justify why or why not use some kind of JEE framework component, so that it is easier for the evaluator to understand the proposed design and architecture.

Step 4: Java (EE) Enterprise Architect Certified Master Essay 1Z0-866

I strongly recommend you don’t miss much time after sending the assignment to present the essay.

The topics covered in the essay are not secret and focus primarily on how you solved the non-functional requirements associated with your assignment. Prepare well these points and your essay will be successful. Also in the case that English is not your native language (my case) try write a couple of test essays so that you can memorize words and key terms that will help you in the real test.

At the time of examination I recommend you read well all the questions before you start writing, as several questions can be related and some arguments might be best for some question than for another. In my opinion the time was short (120 min) and at the end I had only a few minutes left to give a final review of my essay, so you must be very careful with the time.

I found very useful the appendix B of the Paul Allen and Joseph Bambara book: OCM Java EE 6 Enterprise Architect Exam Guide (Exams 1Z0-807, 1Z0-865 & 1Z0-866) (Oracle Press). This book section gives a good approach to the real essay questions.

Also, I found the following link very useful to prepare my essay and I recommend you to read it:

https://srinichekuri.wordpress.com/2013/06/04/sceaocmjea-essay/

Step 5: Complete the course submission form

Although in the certification path this is the final step, this can be done at any time after completion of the course requirement. The purpose of this form is just to validate that the aspirant has fulfilled this requirement. So I consider that a good tip is to fill out and send this form as soon as you finish your preparation course to save time.

This link contains more information about the course submission form.

Final tips

1.    One of the best tools to prepare for all parts of the exam is CodeRanch forum, so I advise you to use it frequently to re
solve your questions.

2.    With some regularity Oracle launches promotion codes that can be applied when purchasing exam vouchers, so that, for example, you can get discounts or free retakes with these promotion codes. I recommend that before buying your voucher, you check if there are active promotion codes. For example, throughout 2015 it is active Java20 code with which you get a 20% discount on any Java exam.

My best wishes to everyone

10 comments:

  1. I read 3 times. And I appreciate the effort to publish your experience. It is very helpful now that I'm pursuing this certification. As always the results you obtained should not be surprised, you're very smart, but I congratulate you for the excellent score. I hope we can continue to progress. Thanks you again for your support and hope to count on your help when the stretch.

    ReplyDelete
    Replies
    1. Franz, thank you for reading my blog.I hope you find it useful and any questions I will be happy to help !!

      Delete
  2. Hi Claudia,

    I am trying to buy 1z0-865 on Oracle but I cannot see where I can insert the promotional code. I see that on pearsonvue I cannot find 1z0-865. How do you bought it?


    Thanks in advance

    ReplyDelete
    Replies
    1. Hi,

      When you enter the Oracle section within Pearson VUE web site, there are two types of exam catalogs:

      1. Proctored exams
      2. Non-proctored exams

      You must select the "Non-proctored exams" option in order to find 1z0-865 exam.

      On the other hand, you can enter voucher/promotion codes on the payment screen.

      Delete
    2. Claudia,

      Thanks a lot for the answer. I have just got my Assignment!!1

      Delete
  3. Hi Claudia, I got your same assignment. For not revealing anything, I have made assumption for point 4 and 6 of the workshop output to be external system (developed and hosted by third parties and accessed by rest WS as EIS). How did you consider instead those two points.
    Thanks
    Leonardo

    ReplyDelete
  4. Hi Claudia,

    Thank you for your sharing experience. I would see you share:
    - Step 2: Recommend book is 'OCM Java EE 6 Enterprise Architect Exam Guide (Exams 1Z0-807, 1Z0-865 & 1Z0-866) (Oracle Press) by Paul Allen and Joseph Bambara.'

    Could you please share books that you read for Step 3?

    Thank you and congratulation!

    Uyen

    ReplyDelete
  5. Hi Claudia, Thanks a lot for such information.
    Yesterday I have cleared 1z0-807 exam and got 90%.
    Now i would like to start second part 1z0-865.
    Your post helped me a lot.

    Thanks again !
    Ashish

    ReplyDelete
  6. Hi, my assigment is Factorys Home, can you share me your result, I have some questions please!!

    ReplyDelete
  7. Hi Claudia,
    Thanks for writing this informative post, quite helpful.
    Do you know, is 1z0-807 exam mandatory to take before 1z0-865.
    I don't want to take 1z0-807 multiple choice exam but just assignment and essay one.

    Thank you
    Swapnil

    ReplyDelete