Essential software architecture - Gorton, Ian. (Springer,)