Site Map  Search

OOA Home OOD content UML Corrections book Code object Exercise Solutions oriented Resources tutorial Miscellany textbook

Exercise Solutions (Unrestricted)

Chapters 1 2 3 4 5 6 7 8 9 11 12

Chapter 4

Question 4.2
If you are a computer science student, expecting to work in systems development, you will find yourself in the minority in three-quarters of project developments where the majority of developers will be from the embedding world (see Section 4.3, on page 64) rather than computer science. What kind of competition is that going to present you with? What will you have to do to compete successfully?

Such a new hire would not have the domain, the context, the subject matter experience, of course. So computer science graduates would need to ask themselves what their USPs (unique selling points) would be, especially if there was a good chance that the incumbents might lack them. People who have come to computing from banking, from science, from engineering, frequently lack knowledge or have patchy knowledge about the technical issues of software systems. So a computer science graduate should ensure that (s)he has a thorough and insightful knowledge of a programming language, a comprehensive awareness of algorithms, and a "why as well as what" knowledge of the UML and design patterns. If there's the slightest chance one will be working with real-time software or software that's embedded in systems other than human systems, one should ensure that one knows state machine theory, state machine minimization and verification and higher-order logic.

[Of course, you're working your way through Object-Oriented Analysis and Design: A Pragmatic Approach, so you will bring an unusually keen awareness of and insight into analysis and design. :-) JD]