Software architecture is the conception of a system. It describes the system parts, how they relate to each other and interact. Architecture is the fundamental step in describing a system which meets current and future needs. A well-conceived system will be robust in operation, dealing easily with the vagaries of its environment. And it will be amenable to change as new needs reveal themselves.
An architectural decision, such as how data are deployed throughout a system, may be critical to the availability of the system. For example, a 24/7 system may have redundant parts working in tandem, so the system can tolerate individual parts being removed for maintenance. Data, too, may be redundant, being replicated among databases. Or essential data may be distributed to system parts, allowing the parts to function even if a master database is offline.
While architecture is the system's conception, we also need a plan to realize the architecture. That's the realm of design.


Copyright © 2010-2016 Bob Woodbury. All rights reserved.