I’ve decided to teach Software Architecture at MSc level (hurray!). This is the first time of my life I’m going to teach at that level and (believe it or not) I’m looking forward to it.
Teaching at Masters level is somewhat different from teaching at Bachelor level. For one, the students are more mature and therefore more autonomous. No need for me to read my slides to them anymore.
A second difference is that an MSc is research oriented. As the result, the students are expected to read research papers and discuss about their possible implications. Obviously, this also means that I’ll have to read tons of papers and select those which are really relevant.
I’m not a novice in Software Architecture. In fact, I’m not bad at all… but I’ve bought the two following books because (i) both are excellent (ii) both are recent and (iii) both are available cheaply in the Low Price Edition of Pearson Education (i.e. I might use them as textbooks)
Applying UML and Patterns is written by Craig Larman. This book has earned rave reviews on Amazon and is recommended by people like Alistair Cockburn (one of the fathers of the Agile Manifesto), Martin Fowler (of Refactoring fame) and John Vlissides (one of the Gang of Four and who has just passed away). I’ll start reading it today and I’m sure it’s a hell of a good book on Object-Oriented Analysis and Design. By the way, up to now my favourite book on OOA and OOD is Grady Booch‘s Object-Oriented Analysis and Design with Applications. In some weeks, I’ll tell you which one is better…
The second book is Software Architecture in Practice by Len Bass, Paul Clements and Rick Kazman. To be frank, I do not know those authors and I’ve bought this book because it has got rave reviews on Amazon with appreciations going from “Practical, readable, excellent” to “A Bible for Software Architects”. Part one is on envisioning architecture (the architecture business cycle, what is software architecture?), part two is on creating an architecture (quality, design, documentation), part three is on analyzing architectures and part four is on large-scale architectures. I’m sure to learn a lot from that book!