Tuesday, 27 December 2011

SCEA/OCMJEA Part II assignment and Part III experience.

Prepartion for this exam started with different reason. I was mainly looking for refreshing my basics skills and learning few new techonologies so that I can cope up with the changing software market. Last year I wored Ayyapa mala (you need to workship Lord Ayyapa for 41 days with sanctity) and while following the rules and customs during the tenure, like wake up early in the morning and offer prayers before the sunrise. As my day starts early and I use to have plenty of time then I thought of making use of it and planned to appear for SCEA Part 1 which I was planning from many years but didn't get any time towards it. I started with Design patterns about the books and the material for SCEA part I, it is mentioned in my previous blog. By end of April I appeared and cleared part I but with I was not satisfied with the score and whole May I was busy with my office work and couldn't get any time for the part 2 exam.

Overall by completing part 1 itself I learned many new technologies in the stream of JEE 5. Before I was confident in few things like Servlet, JSP, EJB, JDBC and few things which were used lesser while working like Security, JSF. Apart from Security, JSF and many others things I have learned while I was preparing for part I.

Even though I cleared my SCEA/OCMJEA part 1 with just passing marks. I was not much confident of going for part 2. Timeline for submission of part 2 to avoid mandatory training sessions was 31st Aug and given this timeline added to it I don't have much experience in drawing UML diagrams. On 29th June I bought the voucher hoping that atleast in these 3 months I will think and implement what I have learned in part I in terms of building an end to end application. In my view its really very rare to get work experience of designing or thinking about the whole application right from the begining to end.

I downloaded the assignment and I felt its a new one which I haven't heard in any forum about this assignment, it's "Utility International". After reading the assignment thoroughly I felt it is associated with each and every JEE 5 technology starting from presentation, business and persistence tiers like JSP, EJB, JMS, WebServices.

I started designing the application with the things known to me very well and which are used in daily work. It was a simple class diagram by following the book of Mark Cade's. The flow of the application was like JSP->EJB->DAO and I started improving the design using J2EE patterns as well. The big mistake I have done in the initial design was adding a new class in domain model and also did some modifications to the relationships given in Domain model. By looking at the suggestions/comments in the javaranch forum about doing some modification in the domain model, it looked like it is not acceptable, until and unless you have good reason for the change.

There was an announcement from Oracle which contains good and bad news. Saying that assignment which is submitted before 31st Aug and if it is failed then there will be a second chance of submitting the assignment without going through mandatory course and also there is an extension of date saying 30th Sept. Assignments which are submitted before 31st Sept, if any one failed in assignment then mandatory course is required for resubmitting.

By this time it was second week of Aug and as the deadline was approaching and still my design was not in a good shape then I decided to submit it in Sept but with lot of risk. If I fail then there is no second chance for me. I thought if I missed then I will be stopped here itself. I was in a situation were I am left with only one arrow to hit the target without any backup.

When I read the deliverables section it was mentioned that whole assignments should be according to JEE 5. There was a slight confusion that my class diagram was mostly based on J2EE. There is no harm in designing it using J2EE but still couldn't digest the point of JEE and started redesigning the class diagram accordingly. This time the flow of the application goes like JSP page using JSF components, JSF components (Managed Beans) invokes stateless session methods, SLSB inturn uses Persistent objects. Most of the changes in the domain model were removed and used as is mentioned in assignment. One change required in my domain model with strong reason for changing it. I couldn't take any chances of doing any mistakes until I am totally convinced with my design.

There were 5 use cases which were mentioned. Each use case can be treated has a very big module if it is implemented in real time projects and it touches most of the corners of JEE 5 technology. For each and every use case sequence diagram is addressed. Every point in the use case if read properly it matches to any of non functional requirements. 

Component Diagram: It included with all the classes mentioned in the class diagram if we go according to the Mark Cades example, some people say it is kind of duplication of class diagram. But in this seperation in terms of tiers and how your application is interacted with the external systems and the framework used in. As DAO pattern was not used in my class diagram but when SuD interacts with the external system those details are to be gathered here and I used DAO to interact with the external system. This is also in similar lines of Mark Cades component diagram.

Deployment diagram: To my observation for OCMJEA most of them got failed in deployment diagram and this plays an important role in passing the exam. It was a two pages diagrams, Here as well my diagram is similar to Cades one but with few additions to the diagram and one more to make it fit to the application. These diagrams depict how the non functional requirements are met by the application.
Whenever I revisited the diagrams from end to end there was one or more points which I would have missed and it got addressed. I revisited my diagrams a lot number of times to make sure everything is addressed for meeting the functional and non functional requirements. For every visit there is one or other point which I missed, would have resulted in class/component diagram change. But revisiting the whole assignment will definately beneficial.

For drawing UML diagrams I used StarUML. Its really a very easy tool to use, I don't have much experience in drawing

Part III:

It is about Questions on the assignment you worked on. It was like how we met non functional requirements in our design and why a techonology is considered instead of others.

Atlast I received long awaited mail from Oracle of passing SCEA/OCMJEA 5 certification after 3 months of the assignment submission. Marks obtained 142/160, I received my Success Kit which contains a letter of Congratulations, Certificate and a card from Oracle.

Once again thanks to javaranch forum, Every information is available in the forum and most of the doubts were cleared. Special thanks to Dariusz Skrudlik and Anthony. Last but not the least my family supported a lot to achieve this certification and my son Meera Madhav who missed his dad while playing.