Chapter 9. Software Architecture
Architecture is about the important stuff…whatever that is.
Ralph Johnson, computer scientist and co-author of Design Patterns: Elements of Reusable Object-Oriented Software
Software architecture is a massive topic. One of your authors teaches a class on the topic at the University of Minnesota and can only scratch the surface in a semester of graduate school. Seemingly everyone has their own definition of the topic, but they all agree it is important to a project’s long-term success. This chapter won’t make you a software architect, but it will ensure you’ll understand the importance of trade-offs, why the answer is almost always “it depends,” and why quality attributes are key to building applications that can evolve.
What Is Architecture?
Have you ever put 20 Agile engineers in a room and asked them each to write down their definition of architecture? I did once. I got 20 different answers.
Matt Parker, author and engineering leader
As discussed in Chapter 4, the software industry is very young and, as such, terminology is often borrowed from more mature disciplines. Architecture is a perfect example: the term comes from the building industry. Before digging the foundation of a new home, an architect designs the structure, making sure the resulting house conforms to the local building codes while also meeting the needs of the future occupants. The architect is responsible for the big picture, the structure, the vision of the project—in ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access