1. Introduction

Today’s large-scale software systems are among the most complex structures ever built by humans, containing millions of lines of code, thousands of database tables, and hundreds of components, all running on dozens of computers. This presents some formidable challenges to software development teams—and if these challenges aren’t addressed early, systems are delivered late, over budget, or with an unacceptably poor level of quality.

Most projects nowadays recognize the importance of appointing a software architect, or in some cases a group of software architects, to provide technology guidance and leadership to the rest of the team. However, as an industry, there is no generally accepted definition of what software architects do, ...

Get Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.