As I wrote
a couple of week ago, one of the reasons I started The Architecture of Open Source Applications
project was to fill a gap I stumbled over while teaching at the University of Toronto. There are lots of books on software architecture (an Amazon.com search for that phrase produces over 600 hits), none of the ones I have looked at describe or analyze the architectures of a broad range of actual software systems in detail. Instead, they all spend their pages telling readers how important architecture is, and how to describe architectures using UML, Petri nets, and what-not. By analogy, it's as if books on real (physical) architecture spent all their time talking about blueprints: how important it is to have them, different notations that can appear in them, tracking their changes over time, and on and on, without ever actually showing people the buildings those blueprints portray. I know this isn't because the people who wrote those books weren't familiar with real software systems—all I can think is that they believe people won't be interested in the specific, only in the general.