Phase 3: Design & Architecture
Phase 3: Design & Architecture
Modernization Overlay: Apply the 2026 Modernization Addendum controls (AI assist + RTG linkage) before phase exit.
Purpose
Define how the product will look and work (UI/UX), and design the technical architecture that supports feature requirements.
Duration
2-3 weeks
Key Activities
3.1 UX/UI Design
-
Lead: Product Designer
-
Tools: Figma, Adobe XD
-
File Location: Figma project: [ProductName] Design System
Deliverables:
1. Design System
-
├─ Color palette (primary, secondary, feedback colors)
-
├─ Typography (heading, body, button text styles) ├─ Component library
│├─ Button (variations: primary, secondary, disabled) │├─ Input fields
-
│├─ Modals
-
│├─ Cards
-
│└─ Navigation components
-
└─ Layout guidelines (margins, spacing, grid)
2. Wireframes
- ├─ Low-fidelity wireframes (for planning) └─ Medium-fidelity (showing structure & interaction)
3. High-Fidelity Mockups
-
├─ Login Screen
-
├─ Dashboard
-
├─ Payment Flow (4 screens)
-
├─ Settings
-
└─ Error states
4. Prototypes
├─ Interactive prototype (Figma) └─ User flow animations
5. Design Documentation
├─ Design rationale (why certain choices) ├─ Accessibility specs (color contrast, font sizes) └─ Responsive design breakpoints
-
Mobile: 320px - 640px
-
Tablet: 641px - 1024px
-
Desktop: 1025px+
Figma File Structure:
Figma Project: [ProductName] Design System
-
├─ Design System │├─ Colors │├─ Typography │└─ Components ├─ Screens │├─ 01-Auth │├─ 02-Dashboard
-
│├─ 03-Payment │└─ 04-Settings └─ Prototypes └─ User Flow
-
└─ Requirement Mapping │├─ REQ IDs linked per frame/component │└─ Coverage board (Designed/In Review/Approved)
-
3.2 Software Architecture Design
-
Lead: Technical Lead / Solutions Architect
-
Document: [ProjectCode]-020-System-Architecture-v1.0.docx
-
Tools: Draw.io, Lucidchart
-
Architecture Document Contents:
- Architecture Overview
-
High-level system diagram showing:
-
Frontend (Web, Mobile)
-
API Gateway
-
Microservices
-
Databases
-
External integrations
-
Message queues
-
Caching layer
- Component Architecture
-
├─ Frontend Service │├─ React application
-
│├─ State management (Redux)
│└─ HTTP client (Axios) │ ├─ API Gateway │├─ Authentication & authorization
- │├─ Request validation
│└─ Rate limiting │ ├─ Backend Services
-
│├─ User Service
-
││├─ User registration
-
││├─ Profile management
-
││└─ Auth tokens ││
-
│├─ Payment Service
-
││├─ Payment processing
-
││├─ Refunds
││└─ Transaction history ││
│└─ Notification Service │ ├─ Email notifications │ └─ SMS alerts │ ├─ Databases │├─ PostgreSQL (transactional data) │├─ Redis (cache, sessions) │└─ Elasticsearch (search/logs) │ └─ External Services ├─ Payment Gateway (Stripe) ├─ Email Service (SendGrid) └─ SMS Service (Twilio)
-
Database Schema (Entity Relationship Diagram) ├─ Users table │├─ user_id (PK) │├─ email (unique) │├─ password_hash │├─ created_at │└─ updated_at │ ├─ PaymentMethods table │├─ payment_method_id (PK) │├─ user_id (FK) │├─ card_token (encrypted) │└─ is_default │ └─ Transactions table ├─ transaction_id (PK) ├─ user_id (FK) ├─ payment_method_id (FK) ├─ amount ├─ status └─ created_at
-
API Specifications POST /api/v1/auth/register ├─ Request: {│ "email": "user@example.com",│ "password": "secure_password",│ "name": "User Name"│
}│ ├─ Response (201): {│ "user_id": "uuid",│ "email": "user@example.com",│ "auth_token": "jwt_token"│ }│ └─ Errors: 400: Invalid input 409: Email already registered 500: Server error POST /api/v1/payments/process ├─ Request: {│ "payment_method_id": "uuid",│ "amount": 99.99,│ "currency": "USD"│ }│ ├─ Response (200): {│ "transaction_id": "uuid",│ "status": "completed",│ "timestamp": "2025-12-06T10:30:00Z"│ }│ └─ Errors: 400: Invalid amount 402: Payment declined 500: Processing error 5. Security Architecture ├─ Authentication: JWT tokens ├─ Authorization: Role-based access control (RBAC) ├─ Data Encryption: │├─ TLS 1.2+ for transit │├─ AES-256 for sensitive data at rest │└─ bcrypt for password hashing ├─ API Security: │├─ Rate limiting │├─ CORS policy │└─ SQL injection prevention (parameterized queries) └─ Compliance: ├─ PCI DSS v3.2 (payment data)
├─ GDPR (user privacy) └─ SOC 2 Type II (general security)
-
Scalability & Performance ├─ Load Balancing: Nginx/HAProxy ├─ Horizontal Scaling: │├─ Stateless services │├─ Container orchestration (Kubernetes) │└─ Auto-scaling policies ├─ Caching Strategy: │├─ Redis for sessions │├─ CDN for static assets │└─ Database query caching ├─ Performance Targets: │├─ API response time: <200ms │├─ Page load time: <3s │└─ Database query time: <100ms
-
Deployment Architecture ├─ Development Environment │└─ Docker Compose local setup ├─ Staging Environment │├─ Pre-production replica │└─ Blue-green deployment ready └─ Production Environment ├─ Kubernetes cluster (3 nodes minimum) ├─ Auto-scaling (2-10 pods per service) ├─ Multi-region setup (primary + failover) └─ Disaster recovery (backup strategy)
-
Monitoring & Observability ├─ Metrics: Prometheus │├─ Request rate │├─ Error rate │├─ Response time │└─ CPU/Memory usage ├─ Logging: ELK Stack │└─ Centralized logs from all services ├─ Tracing: Jaeger │└─ Distributed request tracing └─ Alerting: PagerDuty └─ Critical alerts wake on-call engineer
3.3 High-Level Design Document (HLD)
-
Lead: Solutions Architect
-
Document: [ProjectCode]-021-High-Level-Design-v1.0.docx
Similar to architecture but with more narrative explanation of design decisions and tradeoffs.
3.4 Low-Level Design Document (LLD)
-
Lead: Tech Lead / Senior Developer
-
Document: [ProjectCode]-022-Low-Level-Design-v1.0.docx
Contents:
For each major component:
1. Component Name: User Service
2. Responsibilities
-
User registration & login
-
Profile management
-
Password reset
-
Token generation
3. Class Diagram
UserService
├─ registerUser(email, password) ├─ loginUser(email, password) ├─ getUserProfile(userId) ├─ updateProfile(userId, data) ├─ resetPassword(email) └─ validateToken(token)
- Sequence Diagram
User -> API -> UserService -> Database
├─ Request: POST /register ├─ UserService.registerUser() ├─ Hash password ├─ Save to database
- └─ Return: user_id, auth_token
5. Error Handling
├─ Duplicate email → 409 Conflict ├─ Invalid password format → 400 Bad Request ├─ Database error → 500 Server Error
6. Dependencies
- ├─ bcrypt library (password hashing) ├─ JWT library (token generation) └─ PostgreSQL driver
7. Testing Strategy
-
├─ Unit tests: 90%+ coverage
-
├─ Integration tests: API + Database └─ Acceptance tests: User registration workflow
3.5 Database Design Document
-
Lead: Database Administrator / Backend Lead
-
Document: [ProjectCode]-023-Database-Design-v1.0.docx
-
Includes:
-
Detailed ERD with all tables, columns, relationships
-
Index strategy (which queries need indexes)
-
Backup & recovery strategy
-
Data migration plan (if updating existing system)
-
Performance expectations
-
-
3.6 API Specification Document
-
Lead: Backend Lead
-
File: [ProjectCode]-024-API-Specification-v1.0.docx (or OpenAPI/Swagger)
-
Location: Swagger UI or Postman collection
-
Format (OpenAPI 3.0):
openapi : 3.0.0 info : title : Payment App API version : 1.0.0
servers :
- url : https://api.paymentapp.com/v1
paths : /auth/register : post : summary : Register a new user requestBody : required : true content : application/json : schema : type : object
properties : email : type : string password : type : string responses : 201 : description : User created successfully content : application/json : schema : type : object properties : user_id : type : string auth_token : type : string
3.7 Design Review & Approval
-
Lead: PM + Tech Lead
-
Activities:
-
Design review meeting (1.5 hours)
-
Stakeholder sign-off on designs
-
Architecture review with senior engineers
-
Document any design decisions in Confluence
-
Design Review Checklist:
-
☐Does the design address all requirements?☐Is the architecture scalable for projected growth?☐Are there security vulnerabilities?☐Can the team implement with available skills?☐Are there external dependencies that could block?☐Is the design documented sufficiently? -
☐Have we considered performance implications?☐Is the database schema normalized properly?☐Do we have monitoring/observability built in?☐Is disaster recovery/backup strategy adequate?☐Is every approved Figma frame linked to at least one requirement ID in RTG?
Deliverables Checklist
| Deliverables Checklist | ||||
|---|---|---|---|---|
| Document | Owner | Pages | Due | Status |
| UI/UX Mockups (Figma) | Designer | 15+ screens | Week 1 | ☐ |
| System Architecture | Tech Lead | 5-8 | Week 1 | ☐ |
| Document | Owner | Pages | Due | Status |
|---|---|---|---|---|
| HLD | Architect | 10-15 | Week 2 | ☐ |
| LLD (per component) | Dev Lead | 5-10/component | Week 2 | ☐ |
| Database Design | DBA | 3-5 | Week 1 | ☐ |
| API Specification | Backend Lead | 20-30 | Week 2 | ☐ |
| Requirement-to-Design Mapping Verified | Designer + PM | Coverage | Week 2 | ☐ |
| Design Review Completed | PM | Approval | Week 3 | ☐ |
| Figma Components Library | Designer | Reusable | Week 2 | ☐ |
Success Criteria
✅ All screens designed and approved
✅ Architecture accommodates scalability needs
✅ API spec complete and reviewed
✅ Database design normalized and optimized
- ✅ Security architecture reviewed and approved
✅ No unknowns remaining (all questions answered)