I learned that Oracle is adding a course requirement to the developer and architect certifications. thanks to this CodeRanch thread. I’m glad I already completed the SCEA/OCMJEA. For facts and updates see the CodeRanch thread. The first post is being updated as we learn more about the details. This blog post is my thoughts on it along with a comparison to other certs.
What does Oracle hope to gain by the change?
The official statement/FAQ says,
Many Oracle certifications require hands-on course attendance as a part of the certification path. The course requirement is being added to these certification paths to bring them in line with Oracle Certification Program’s standards for the levels of certification under which they fall.
Oracle blogged about this for their Oracle exams. The gist of the blog is that less people take the test with a required course but it cuts out cheaters.
- It’s a way for Oracle to make more money. (Oracle denies this in the blog)
- It makes the certification rarer and more valuable. (This didn’t work out for Spring – see section below)
- It’s a way for Oracle to quietly retire those certifications from “lack of demand” or reinvent them into something else.
Things I find odd:
- They aren’t the right courses! For the architect exam, you can take Intro to Java, Intro to Modeling, JEE development or JEE architecture. I’ve paraphrased the names to make it easy to see that only one or two are things that apply to an architect. And all of them are something someone should know before taking the exam. I wouldn’t have been interested in going to any of those classes as I already know that material and it would have been a waste of time/money.
- Oracle doesn’t require a mandatory course for their developer exams.
- The Oracle 11g Master exam requires a two day hands on course to pass. I think this is what discourages cheaters, not the class. In our world, the equivalent would be a longer exam that has you develop or design something new in person. Incidentally, the SCJP Plus that Sun didn’t proceed with would have gone in that direction. (alebeit not at a master level)
- On the Oracle side, Oracle has declared that developer exams don’t go in the master category. The table shows they are all that professional or specialization/expert level. And no, most of them don’t require training. So I can be a Peoplesoft Expert without training but not a developer?
- An official course makes more sense for a product than development. (Oracle knows their database better than anyone.)
But Spring requires a course
The SpringSource developer exam (see my comments) has “required” completion of their course since the exam’s inception in 2008. Then they got rid of the grandfather option and everyone is required to take the course. Which of course means the exam serves as a final exam for the course and is of significantly less value. Not the best analogy.
After taking SCEA part 1 and Core Spring, it is time to work on SCEA part 2. Or should I say Oracle Certified Master, Java EE 5 Enterprise Architect part 2. OCMJEA? It doesn’t matter. This post isn’t about the SCEA/OCMJEA per se. This post is about using Visio for current Java UML modeling. Here’s what I learned or re-learned about Visio.
You may be wondering why I chose Visio in the first place. After all Star UML is free. My original thought was that I have Visio 2002 installed on my machine because I bought a copy when I was in grad school and I am experienced in using it. In hindsight this wasn’t the best idea.
UML 1 vs UML 2
Visio does not support UML 2. The SCEA wants UML 2 diagrams. It looks like the biggest differences are conditional support for sequence diagrams and a new shape for components in component diagrams.
Luckily there are UML 2 stencils for Visio for almost every version of Visio. Installing them was easy. It is key to install the stencil before you start creating diagrams as Visio UML shapes can’t integrate with a UML 2 stencil diagram. The stencils don’t have much documentation, but I found this chart helpful.
To add new stereotypes for Java to a diagram, follow these steps to register them. Then just select the relevant stereotype in your diagram.
- UML menu > Stereotypes
- Stereotype = @Entity (or whatever you want to add)
- Baseclass = Class, Component or Dependency (depending on the type of diagram)
To add Java specific types, follow these steps to register them in your diagram. Then select them in your attributes/operations/methods.
- UML > Packages
- Java types
- UML > View > Model Explorer
- Right click java types in model explorer > new >
- datatype > name
Hiding attributes/operations section in a class diagram
- Right click shape
- Shape display options
- under suppress, click attributes or options
Add documentation to shape in component diagram
- Right click shape
- Shape display options
- Check properties
- Can add custom property (or documentation) with more detail
Today I got word that I passed the SCEA/OCMJEA exam. I passed part 1 in July and then took a break for the Core Spring certification. Overall, the process is do part 2, take part 3 then e-mail part 2 and get grade in 4-6 weeks. (I got it in 18 days.)
Week by week
People often ask how long it takes to do the project. Sun/Oracle says 40-80 hours. Cade/Sheil says 25-35 hours. As with part 1, here’s a sense of what I did each week and how long I spent each week. [I’ve also added notes on what was a bad idea]
It took just over 27 hours and either 4 or 10 weeks depending on if you count weeks I didn’t work on it. Well within the estimate by Cade/Sheil and way under the estimate by Sun/Oracle. I think this is because Cade/Sheil assume you are already know about architecture and have some experience.
Week 1 (3 hours)
- Bought part 2
- Read assignment
- Re-read chapter 9 of Cade & Sheil
- Decided to use Visio 2002 because I bought a copy in grad school. [I recommend not using Visio, but here’s some tips if you do.]
- Created template for the deliverable – index.html, links, etc. That way I exercise them as I do the assignment and know they work and are readable/usable.
Week 2 (6 hours)
- Re-read assignment listing assumptions/risks/major architecture thoughts/major technology thoughts
- Configured Visio to like UML and UML 2
- Started deployment diagram and class diagram
Week 3 (2 hours)
- Created drafts of sequence diagrams
- Found my UML book from grad school to make sure I am getting the “academic” points of UML that we don’t use in practice into my diagram. [I recommend using an actual UML 2 book rather than what you have laying around from years ago.]
Weeks 4-9 (0 hours)
Did nothing for six weeks dues to a series of trips during the week and catching up on other things on the weekend. [This is a bad idea. I completely lost my momentum and “un-loaded” all the information about the project from my mind. I also paused right after finishing the “fun part” so it wasn’t motivating to get back to the project.]
Week 10 (16.25 hours)
Decided I was going to finish before Halloween. This has been dragging on too long and I wanted to get it done before my next trip.
- Finished all diagrams
- Switched to UML 2 syntax
- Added the stuff nobody does in real life.
- Asked for a review from a colleague (per Cade/Sheil) to see if the problem was discernible from the diagrams
- Make sure clear, updated formatting, spell check
What did I read?
- Chapter 9 in the Cade & Sheil study guide
- Questions people had in JavaRanch/CodeRanch‘s SCEA forum
- JEE 6 tutorial- Basic concepts because a publisher mailed it for me to review. While it refreshed my memory about JSF, it certainly wasn’t essential for the project.
- I used the first edition of Using UML as a reference because I had it from grad school. The first edition covers UML 1.X so I don’t recommend it. It is better to use a UML 2.X book since that is what the exam wants you to use.
My impressions of SCEA Part 2
Part of part 2 was fun to do. This was the part where I created the design, thought about it how met functional/non-functional requirements, made the risk list, etc. Then there was the tedious “do the stuff Sun/Oracle wants that nobody does in the real world”. Like put JSPs on a class diagram. And the time spent stressing over reading Sun/Oracle’s mind on what they want despite them not commenting on it. Unfortunately I took a break between the fun part and the tedious part which made it seem worse because I lost flow. My thoughts on each section are:
- Class diagram – I’m not a mind-reader about what they wanted. I did what I felt was appropriate, plus a bit more detail. I had a feeling this decision cost me $300, but it didn’t – I passed on the first shot. Cade’s example doesn’t look like there is any way it is worth 40 pts. I had 2 class diagrams containing 26 classes and 11 JSPs. (I would never put JSPs in a class diagram, but I thought they wanted it.)
- Component diagram – I would never put this much detail in a component diagram. Especially JSPs! I also noticed Cade has both a UML 1 example and UML 2 example despite being supposed to use UML 2. I have 16 boxes in my component diagram. I didn’t go overboard here either.
- Deployment diagram – This was straightfoward with only 7 boxes. It seems like it is worth too many points for the effort. I did put some text on suggest hardware since Cade said to.
- Sequence diagrams – Despite being hardly worth anything, these are useful. I didn’t go into the detail people said they did on the forums or include the design patterns because that obscures the meaning. I did not show the flow of framework code. I had 6 sequence diagrams for the 4 use cases.
- Risk list – I had a blast writing this. Writing about risks you don’t have to deal with is easier than on a real project where every risk is a potential problem.
- Assumptions – I wrote too much because I wasn’t sure what to take for granted. It turned out a lot of this was addressed in part 3. I did learn that I wrote “we” much more than “I.” I had over 34 we’s vs < 5 I’s because I felt like I was presenting an (imaginary) team design to an outsider. I changed them all to I before submitting so the reviewer doesn’t think someone else did the work.
- Other documentation – I wrote some text explaining a high level overview of my design, what design patterns I used and how I met the non-functional requirements. While “a picture is worth a thousand words”, short paragraphs describing certain things let the reviewer see my thought process without having to guess. (I only used 4 design patterns.)
My impressions of SCEA Part 3
Part 3 was fun! It was writing about the things I found fun in part 2. My notes:
- They gave 120 minutes instead of the 90 I thought we had. This included reading terms of agreement.
- I spent 70 minutes on the 8 questions, but I wrote a lot.
- Advice: read all questions before starting: some are similar. I did not do this and wound up answering later question in earlier ones and then having to repeat because there is no copy/paste.
- Some questions were about non-functional requirements or why you choose to do something. Some were scenarios or why you didn’t choose certain alternatives.
- I’m glad I was warned the score = 0 (fail) when getting printed report after taking the exam.
And the end
I think this thread summarizes the part 3/submission process well. I got my pass in the mail along with a note to login to very my address. Then the certification bundle will be mailed.