- Architectural characteristics represent one part of the structural analysis that architects use to design software systems.
- Architectural characteristics describe a system’s capabilities.
- Some architectural characteristics overlap with operational concerns (such as availability, scalability, and so on).
- There are many catagories of architectural characteristics. No one can make a comprehensive list, because the software development ecosystem is constantly changing.
- When identifying architectural characteristics, architects look for factors that influence structural design.
- Architects should be careful not to specify too many architectural characteristics, because they are synergistic—changing one requires other parts of the system to change.
- Some architectural characteristics are implicit: not explicitly stated in requirements, yet part of an architect’s design considerations.
- Some architectural characteristics may appear in multiple categories.
- Many architectural characteristics are cross-cutting: they interact with other parts of (and decisions in) the organization.
- Architects must derive many architectural characteristics from requirements and other domain design considerations.
- Some architectural characteristics come from domain and/or environmental knowledge, outside of the requirements of a specific application.
- Some architectural characteristics are composites: they consist of a combination of other architectural characteristics.
- Architects must learn to translate “business speak” into architectural characteristics.
- Architects should limit the number of architectural characteristics they consider to some small number, such as seven.
Credits : Head First Software Architecture by Raju Gandhi, Mark Richards, Neal Ford