Chapter 14: Software Architecture

Mull It Over

  1. Define where architecture ends and software design begins.

In truth, both terms can be defined to whatever suits you. In their common usage, the distinctions are as follows:

  • Architecture is the high-level structural design. It looks at the wide-ranging implications of its choices, seeing how it will impact construction and maintenance costs, overall system complexity, ability to accommodate future extensions, and marketing concerns. The architecture is devised at the start of a project. It has serious consequences, at the very least on the further software design.

  • Software design is the next level down, a more refined and focused activity. It’s concerned with code details—data structures, function signatures, ...

Get Code Craft now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.