Software architecture: what it is and how it's used in large companies.