Offering an introduction to software architecture, this is a guide to designing & implementing effective architectures for information systems. It shows why the role of the architect is central to any successful information-systems development project, & provides a set of architectural viewpoints & perspectives.