Most professions today have certification requirements. Doctors, lawyers, accountants, teachers - all these professionals and more are required to maintain board certification in order to practice.
How about computer professionals? While there are some well branded certifications which have played a key market role - Novell, Cisco, Microsoft - these are largely built around the promotion of the respective product lines of these companies and the focus is on installation, configuration and maintenance.
How about certification in programming language proficiency? When was the last time you took a standardized test to demonstrate your proficiency as a programmer? How can a potential employer determine the level of proficiency reached by a candidate? (How many employers have had to decipher whether a candidate was faking it? How did they test the candidate?)
Better yet, how can you - an object-oriented expert - reliably demonstrate to a potential employer or client that you have really mastered the art of object orientation? Do you rely on strings of acronyms or buzzwords during an interview? Or do you pull out a stack of O-O diagrams for your last masterpiece? In which methodology do you demonstrate proficiency?
How would you react if the computer industry shifted toward requiring O-O certification? How would you fare?
If these are challenging questions, take note: there has been a recent shift in the industry which may soon determine how you get your next job or contract.
Welcome to Java and UML certificationů
In May of 1999, Sun Microsystems, IBM, Novell, Oracle and the Sun-Netscape Alliance announced the Certification Initiative for Enterprise Development, since renamed the jCert Initiative. While largely an initiative to certify Java developers at multiple levels of proficiency (a worthy initiative by itself), a little noticed aspect of this program could have a significant impact for O-O certification: the Enterprise Developer level of proficiency requires the developer to pass an exam titled "Object Oriented Analysis and Design with UML".
Interesting. A certification exam for UML. This is a major development! For a number of years the O-O industry had to deal with a confusing array of O-O methodologies and their different notations. This slowed the deployment of O-O practices in real businesses. The UML has proposed to eliminate that confusion by uniting several methodologies into one.
Who would have thought of the obvious: Why not certify UML methodologists to further the establishment of O-O practices within the computer industry? Could certification help achieve that objective? Nobody really knows the answer to that question in this fast-paced industry, but let's see what UML certification entails.
The registration and testing procedures are not fully described on either the Sun or IBM web sites. For a new comer to the certification process, this can be initially frustrating. We'll try to provide as much information as we can find to fill in the gaps.
First, the UML certification test is an IBM test adopted by the jCert Initiative. When registering for the test it is important to have the test number handy. The IBM test number is 486 and the name of the test is "Object-Oriented Analysis and Design with UML".
Sylvan Prometric Testing Centers administer the IBM test worldwide. It appears that only Sylvan Prometric Testing Centers provide the test service in the USA and Canada, although IBM testing centers are also listed on the IBM listing of test centers throughout the world. In the USA and Canada, the number for Sylvan is 800-959-3926. A Sylvan representative will walk you through the registration procedure and find a testing center located in your area. The cost is $150. Have your credit card ready.
The test contains 55 questions and must be completed within 135 minutes. A grade of at least 67% is required to pass the test. The test is graded right away and a certificate is sent later. Currently the test is only given in English and Japanese.
Note, you should avoid the Sylvan web page for locating test centers if you stumble on it. When we tried the page, no test centers were listed in New York or Massachusetts for this test, while close to 50 test centers were listed in California.
So what is the nature of the test?
The sample test provided by IBM (see links below) provides a good example of the types of questions that appear on the exam and should motivate exam takers to prepare. The sample test questions assume fluency in O-O terminology such as: inheritance, interface, aggregation, subclass, superclass, and assignment of responsibilities. They also assume knowledge of the role of each of the UML diagrams such as: Use Case, Class, Sequence, Collaboration, State, and Deployment.
To add some depth to the test, an example class diagram is provided for the design of an internet site called eStore.com (very apropos!) and a series of questions are given on how to interpret and extend the model. Example: "If we want to add a system to restock the warehouse automatically as we sell products to customers, how would you best handle this?" The choices involve adding various methods, attributes or classes to the existing model.
What the sample test should at least do is convince prospective takers to heed IBM's recommendation that you should have worked on at least one real O-O project design prior to taking the exam. In other words, you may not want to try to wing this one!
How to Prepare
If you are new to object technology, the road to preparation for this test may be long and winding. It is not really possible to learn the UML without understanding the fundamentals of object-orientation.
IBM provides a page of recommendations for test preparation (see links below). Two of the books which they recommend are the well known titles Design Patterns by Erich Gamma, et al. and UML Distilled by Martin Fowler.
While these books are excellent titles, the two which Objects by Design recommends for those with beginner to intermediate O-O skills are Object Technology: A Manager's Guide by David A. Taylor and Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design by Craig Larman. Click through these links to read our in-depth reviews. Object Technology gives a concise overview of object-oriented concepts while Applying UML and Patterns provides an excellent course on UML and an introduction to patterns with a focus on how all the pieces fit together.
A relatively new book which we highly recommend for understanding patterns and process is Agile Software Development: Principles, Patterns and Practices by Robert C. Martin. Many of the examples in this book are written in Java and use UML diagrams in their descriptions. Another recent and recommended book by Robert C. Martin is UML for Java Programmers, which excels at explaining how UML diagrams map to Java code.
For courses, the IBM page naturally recommends their own offerings. Oracle and Sun also provide courses. See their respective sites. There are also a number of other companies which provide top-notch object-oriented training. Since the cost of training can be quite significant, at least try the books first.
What's the Payoff?
Because the O-O Analysis and Design Certification requires an investment in time to prepare for and take the test, the question of "what for?" should be answered.
Well, for starters, the certification test provides developers with a focal point and motivation to achieve proficiency in O-O technology. As O-O languages continue to grow and dominate the computing field - Java, C#, C++, Python, Ruby, Smalltalk and others - the demand for programmers and designers who really understand O-O technology is soaring. As more developers get on board, this should further propel the market.
For employers, the certification provides the first real tool for assessing potential hirees without either developing in-house tests or hiring outside testing and interviewing consultants.
Copyright © 1999-2005 Objects by Design, Inc. All rights reserved.