Capstone: Design a System

Lesson 9 of 9Grades 9–12

You have covered computer architecture, algorithms, operating systems, networks, software engineering, security, and AI. This capstone ties it all together. Design a real system end-to-end — from requirements to architecture to implementation plan.

Key Concepts

Requirements Engineering

Requirements come before design. Functional requirements: what the system does (users can log in, search products, place orders). Non-functional requirements: how well it does it (99.9% uptime, < 200ms response, 10,000 concurrent users). Missed requirements are the number-one cause of software project failure.

System Architecture Patterns

Monolith: one deployable unit, simple to start, harder to scale. Microservices: small independent services, complex but scalable. Event-driven: services communicate through messages/events, highly decoupled. Client-server: most web apps. Peer-to-peer: no central server (BitTorrent, blockchain). Choose architecture based on scale and team size.

From Design to Deployment

Design phase: requirements, architecture diagrams, API contracts. Development: code, tests, code review. CI/CD pipeline: automated tests run on every commit, successful builds deploy automatically. Monitoring: logs, metrics, alerts. On-call: when the system breaks at 3am, someone needs to fix it. Engineering is a lifecycle, not just coding.

🆕 System Design Canvas

Design a system using the canvas below. Plan every layer before you build.

✅ Check Your Understanding

1. What are non-functional requirements?

2. What is a CI/CD pipeline?

3. Why do requirements matter more than architecture?