A software architecture consists of software components, the interfaces provided by those components, and the relationships between them
describes a system at a particular level of abstraction
Architecture of a search engine determined by 2 requirements
effectiveness (quality of results) and efficiency (response time and throughput