John Daniels
John Daniels reflects on his contributions to the software profession:
Steve Cook and I, in our 1994 book Designing Object Systems, were the first people to set out clearly the different purposes of object models, especially the distinction between a model of a situation (sometimes called a model of the world) and a model of a software system. (For more information see this article)
Also in Designing Object Systems we showed for the first time how state models can formally relate to type (class) models, and this work became the basis for the Object Constraint Language that forms part of the UML. Although this formality never became trendy in mainstream object modelling it does form the bedrock for later work on executable models and the Model Driven Architecture™ from the OMG.
John Cheesman and I, in our 2001 book UML Components, were the first people to set out a coherent process for designing systems to be implemented using distributed component or service technologies. Judging by the number of emails I got from students asking me to do their homework, this book was widely used for teaching – a strong endorsement, I feel. Unfortunately, the strong emphasis on using OCL to specify components scared off a lot of commercial developers, even though, really, the book has a lot of value even if you ignore the OCL.
I’ve been working in the software industry for nearly 30 years, and throughout that time I’ve always considered it my duty to help others learn (even when they didn’t want to :-)). That learning has been delivered in various forms: books, articles, training courses, mentoring, pairing, conference sessions, and, more indirectly, in my active support since 1985 of the BCS OT/SPA group. I’ve been lucky enough to have had the opportunity to guide hundreds of people towards better practices.
I developed and delivered the first commercial training course on object-oriented design in the UK, back in 1986. I based the course on ideas taken from some early papers by Grady Booch.

