Software Architectures
The overall structure of a program is called its (software) architecture
Architectures are the means by which non-functional requirements (such as performance and security) get reflected in program structure
Programs in a specific domain often use the same architectural approach or architectural style (e.g. client-server)
Reader knowledge of styles can help generate expectations