I've probably written about this before, but I feel inspired to write out some details as I sit in this session at ACSAC.
I think the modern city is the perfect metaphor for modern software. Individual programs are entities (people, organizations) who exist in a city. Elements of the city (other programs) provide services and utilities. There is a level of confidence in the services and utilities, but all is at risk of disruption by natural disasters or by criminal acts.
Here are some essential points: