In software architecture, nonfunctional requirements and the quality attributes of the software play a significant role. These include, for example, performance, usability, changeability, flexibility, and adaptability of software.