| View | Shows | Key Question |
|---|---|---|
| Logical | Objects and classes | "What are the main concepts?" |
| Process | Runtime interactions | "What runs when?" |
| Development | Code modules | "How is code organized?" |
| Physical | Hardware deployment | "What runs where?" |
| Scenarios (+1) | Use cases | "How does a request flow through?" |
Shows the system's key abstractions — the domain concepts.
Road Profile Viewer - Logical View:
RoadProfile ←── ProfileRepository
↑
└────── GeometryCalculator
↑
└────── ChartBuilder
Key concepts: RoadProfile (data), Repository (storage), Calculator (math), Builder (visualization)
Shows what happens at runtime — processes, threads, interactions.
User → DashApp → Callback → Database
↓
Generate Chart
↓
Return Updated Figure
↓
Display to User
Helps analyze: "Every user interaction triggers a DB query — is that a bottleneck?"
Shows how code is organized into packages and modules.
road-profile-viewer/
├── src/
│ ├── models/ # Domain models
│ ├── repositories/ # Data access
│ ├── services/ # Business logic
│ └── presentation/ # Dash UI
├── tests/
└── pyproject.toml
Helps coordinate: "Anna works on services/, Ben works on presentation/."
Scenarios connect all four views by tracing a user action.
Scenario: User uploads a new road profile
services/ calls repositories/You don't need formal UML for a student project!
ROAD PROFILE VIEWER ARCHITECTURE
LOGICAL VIEW: RoadProfile, ProfileRepository, GeometryCalculator
DEVELOPMENT VIEW: src/models/, src/services/, src/presentation/
PROCESS VIEW: Single-threaded Dash, callbacks, sync DB queries
PHYSICAL VIEW: Single machine, SQLite, port 8050
KEY SCENARIO: View Profile
User selects → Callback → DB query → Chart → UI update
UML (Unified Modeling Language) — standardized visual notation.
| UML Diagram Type | 4+1 View | Shows |
|---|---|---|
| Class Diagram | Logical | Classes, attributes, relationships |
| Sequence Diagram | Process | Object interactions over time |
| Package Diagram | Development | Code organization |
| Deployment Diagram | Physical | Hardware nodes |
| Use Case Diagram | Scenarios | Actor-system interactions |
For now: Simple markdown + Mermaid diagrams are sufficient.
| Concept | Key Point |
|---|---|
| Software Architecture | Fundamental organization as communicating components |
| Architectural Decisions | Creative process driven by NFRs |
| Non-Functional Requirements | Performance, security, availability, maintainability |
| 4+1 Views | Logical, Process, Development, Physical + Scenarios |
| Trade-offs | Cannot optimize all qualities; must prioritize |
Architecture matters from day one — even small projects benefit
NFRs shape architecture — performance, security, maintainability drive decisions
Multiple views are necessary — no single diagram captures everything
Trade-offs are inevitable — prioritize based on your system's needs
Architecture enables communication — diagrams help stakeholders understand
Current architecture: How would you describe your Road Profile Viewer's architecture? What views can you identify?
NFR priorities: What are the top three NFRs for your project? How do these influence your choices?
Trade-off scenario: Easier to maintain OR faster to run — which would you choose? Why?
4+1 exercise: Draw a simple diagram for each of the four views of your project.
Coming Up: Architectural Patterns
You've learned WHY architecture matters.
Now learn HOW to apply proven patterns.
Part 1 Complete: Foundations and Architectural Views
Next: Part 2 — Architectural Patterns