19

Architecturally Significant Requirements

The most important single aspect of software development is to be clear about what you are trying to build.

—Bjarne Stroustrup, creator of C++

Architectures exist to build systems that satisfy requirements. By “requirements,” we do not necessarily mean a documented catalog produced using the best techniques that requirements engineering has to offer. Instead, we mean the set of properties that, if not satisfied by your system, will cause the system to be a failure. Requirements exist in as many forms as there are software development projects—from polished specifications to verbal shared understanding (real or imagined) among principal stakeholders. The technical, economic, and philosophical justifications ...

Get Software Architecture in Practice, 4th Edition 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.