- The software architecture of a system depicts the system’s organization or structure, and provides an explanation of how it behaves. A system represents the collection of components that accomplish a specific function or set of functions. In other words, the software architecture provides a sturdy foundation on which software can be built.
- A series of architecture decisions and trade-offs impact quality, performance, maintainability, and overall success of the system. Failing to consider common problems and long-term consequences can put your system at risk.
- There are multiple high-level architecture patterns and principles commonly used in modern systems. These are often referred to as architectural styles. The architecture of a software system is rarely limited to a single architectural style. Instead, a combination of styles often make up the complete system.
Why does architecture matter?
- Architecture is a tricky subject for the customers and users of software products – as it isn’t something they immediately perceive.
- The important decisions in software development vary with the scale of the context that we’re thinking about. A common scale is that of an application, hence “application architecture”.
- The first problem with defining application architecture is that there’s no clear definition of what an application is. My view is that applications are a social construction.