Architecture is the stuff that is really, really hard to change later. Design (The Small Stuff): Choosing whether to use a for loop or a while loop. If you mess this up, you can fix it in 10 seconds. Design is the noun (the plan) and the verb (the thinking process) of arranging your components . Architecture (The Big Stuff): Deciding to use a specific database or deciding how your app talks to the internet. If you mess this up and realize it a year later, you might have to delete everything and start over. 1. SRS (Software Requirement Specification) The SRS is the contract. It describes the features . If it is written in the SRS, the software must do it. If it is not in the SRS, the software will not do it. 2. NFR (Non-Functional Requirements) NFRs do not describe what the software does (features). They describe how well it does it. We call these the "il...