I was today glancing through several pages (like this one and this one ) collecting UML questions (supposedly) asked in real job interviews.
Assuming they are real questions, to me, they are clear examples of what NOT to ask in a job interview. What’s the point in asking how many different diagrams exist in UML? or how to indicate static methods in UML class diagrams? or even worse, who developed and when the UML? .
A correct answer to these questions only proves that the candidate knows the UML notation but they are absolutely useless to determine if the candidate is good at modeling that, in fact, it is the ONLY thing that really matters (or at least it should be IMHO). Everybody is able to memorize facts about a notation but, unfortunately, not everybody has the skills to apply it correctly on a given software project. For instance, as a UML instructor myself, I’ve seen many students completely unable to determine when a domain concept should be model as a class, when as an attribute or when as an association, even though they perfectly know the definition and graphical representation of each of these three constructs.
Btw, it is even more worrisome the fact that these questions can also be easily found in university exams. Some lecturers still don’t get that they should teach modeling not UML!, UML is just a way to express models (and nowadays, only one of the many available alternatives for that).
Sorry for the rant but I feel a little bit better now.
FNR Pearl Chair. Head of the Software Engineering RDI Unit at LIST. Affiliate Professor at University of Luxembourg. More about me.
But are we even sure how to answer your modeling questions? E.g. “when a domain concept should be model as a class, when as an attribute or when as an association”. My sense is that the answer varies and can be correct as any of the three.
I think we have a good sense for what is best practice in traditional programming — e.g., what makes good C code — but I don’t think we have the same strengths IN modeling. Other than pathological cases, could you assess two different UML models OF the same problem AND tell me which one was better? What ARE the criteria?
You raise a good point, though.
neil
Now, where’s the book that talks about modeling rather than UML per se? OR the slides FOR three OR four HOUR-long lectures that I could DROP INTO an existing software engineering course? I’d be happy to test-drive them…
– Greg
… I’ll add this to my wish-list (the to-do list is already full)
of each alternative at least. And btw, I’m NOT so convinced that FOR traditional programming we ARE always able TO evaluate the “quality” OF two similar programs (beyond comparing their efficiency IN TIME). Can we really agree always ON which IS the best DATA TYPE FOR a given variable? the best LEVEL OF decomposition FOR a given function?
My choice (always) is: Applying UML and Patterns of Craig Larman …
This is usually the book I recommend to my students