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 "ilities": Reliability, Scalability, Usability.
Training Usability (The "Grandma Test")"How easy is it to learn?"This measures how long it takes a brand-new user to figure out how to do their job without asking for help.2. Operational Usability (The "Stress Test")"How does it behave under pressure?"Training usability is about the first time you use it. Operational usability is about the thousandth time you use it. It focuses on efficiency and speed when the user is an expert.3. Thresholds (The "Pass/Fail" Bar)"Where do we draw the line?"This is the most critical concept for an Engineer. You must define a specific number (a threshold) where "Good" turns into "Bad." If you don't set a threshold, you can't fail the software.Summary of Module 51. Be an Engineer, not a Coder: Be Systematic, Disciplined, and Quantifiable.2. Respect the Order: Don't code before you design. Don't design before you know the requirements.3. Design in Layers: Start with the data (Storage), then the structure (Architecture), then the look (Interface), and finally the logic (Component).
Comments
Post a Comment