James Williams
Show system components and relationships
Show system dynamics and flow
Show data structure and relationships
Show user interfaces and navigation
┌─────────────────────┐
│ User │ ← Class Name
├─────────────────────┤
│ - id: int │ ← Attributes (- = private)
│ - username: string │
│ - email: string │
│ + password: string │ (+ = public)
├─────────────────────┤
│ + login(): bool │ ← Methods
│ + logout(): void │
│ + register(): bool │
└─────────────────────┘
University ◇───── Department ◇───── Course
(aggregation) (aggregation)
Student ←──────── Enrollment ──────→ Course
(many-to-many relationship)
Person △
│
┌──────┴──────┐
Student Staff
(inheritance)
┌─────────────────────┐
│ Customer │
├─────────────────────┤
│ - customerId: int │
│ - name: string │
│ - email: string │
├─────────────────────┤
│ + placeOrder() │
│ + viewOrders() │
└─────────────────────┘
│
│ 1
│
│ *
┌─────────────────────┐
│ Order │
├─────────────────────┤
│ - orderId: int │
│ - date: DateTime │
│ - status: string │
├─────────────────────┤
│ + calculateTotal() │
│ + cancelOrder() │
└─────────────────────┘
│
│ 1
│
│ *
┌─────────────────────┐
│ OrderItem │
├─────────────────────┤
│ - quantity: int │
│ - price: decimal │
├─────────────────────┤
│ + getSubtotal() │
└─────────────────────┘
┌──────────────────┐
│ Student │
├──────────────────┤
│ PK student_id │
│ name │
│ email │
│ date_of_birth │
└──────────────────┘
│
│ 1
│
enrolls in│
│
│ N
│
┌──────────────────┐
│ Enrollment │
├──────────────────┤
│ PK enrollment_id │
│ FK student_id │
│ FK course_id │
│ grade │
│ semester │
└──────────────────┘
│
│ N
│
│ 1
│
┌──────────────────┐
│ Course │
├──────────────────┤
│ PK course_id │
│ course_name │
│ credits │
│ FK instructor_id │
└──────────────────┘
PK = Primary Key, FK = Foreign Key
Customer ┌─────────────────────────┐
│ │ Shopping System │
│ │ │
├──────────────────────→ │ ○ Browse Products │
│ │ │
├──────────────────────→ │ ○ Add to Cart │
│ │ │
├──────────────────────→ │ ○ Checkout │
│ │ │ │
│ │ ├─<includes> │
│ │ │ │
│ │ ↓ │
│ │ ○ Process Payment │
│ │ │
├──────────────────────→ │ ○ Track Order │
│ │ │
│ │ ○ Write Review │
Admin │ │ │ │
│ │ ├─<extends> │
│ │ │ │
├──────────────────────→ │ ○ Manage Products │
│ │ │
└──────────────────────→ │ ○ View Reports │
│ │
└─────────────────────────┘
User Browser Server Database
│ │ │ │
├─Enter────→│ │ │
│credentials│ │ │
│ ├─POST────→ │ │
│ │ /login │ │
│ │ ├─Query────→ │
│ │ │ user data │
│ │ │←──────────┤
│ │ │ user row │
│ │ ├─Verify────┤
│ │ │ password │
│ │←─────────┤ │
│ │ JWT token│ │
│←──────────┤ │ │
│ Success │ │ │
│ │ │ │
┌──────────────┐
│ User requests│
│ password reset│
└──────┬───────┘
│
┌──────▼───────┐
│ Enter email │
└──────┬───────┘
│
┌──────▼───────┐
◇ │Email exists? │
└┬─────────┬───┘
Yes │ │ No
│ └──────→ Show generic message
│
┌──────▼────────┐
│Generate token │
└──────┬────────┘
│
┌──────▼────────┐
│ Send email │
└──────┬────────┘
│
┌──────▼────────┐
│ User clicks │
│ reset link │
└──────┬────────┘
│
┌──────▼────────┐
│ Enter new │
│ password │
└──────┬────────┘
│
┌──────▼────────┐
│ Update DB │
└──────┬────────┘
│
┌──────▼────────┐
│ ● Done │
└───────────────┘
┌─────────────────────────────────────────────────┐
│ CLIENT TIER │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Browser │ │ Mobile │ │ Desktop │ │
│ │ App │ │ App │ │ App │ │
│ └─────┬────┘ └────┬─────┘ └────┬─────┘ │
└────────┼────────────┼─────────────┼────────────┘
│ │ │
HTTPS HTTPS HTTPS
│ │ │
┌────────▼────────────▼─────────────▼────────────┐
│ APPLICATION TIER (Backend) │
│ ┌──────────────────────────────────────┐ │
│ │ Load Balancer (Nginx) │ │
│ └────────────┬─────────────────────────┘ │
│ │ │
│ ┌────────────▼──────────┐ ┌──────────────┐ │
│ │ Web Server (Django) │ │ Web Server │ │
│ │ - REST API │ │ (Django) │ │
│ │ - Business Logic │ │ │ │
│ └────────────┬──────────┘ └──────┬───────┘ │
└───────────────┼────────────────────┼───────────┘
│ │
┌───────────────▼────────────────────▼───────────┐
│ DATA TIER │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ PostgreSQL │ │ Redis Cache │ │
│ │ Database │ │ │ │
│ └──────────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────┘
Create professional diagrams for your dissertation project
45 minutes
Best for: UI/UX wireframes and mockups
Free tier: 3 projects
Best for: Collaborative brainstorming and flowcharts
Free tier: 3 boards
Best for: Professional diagrams, available through O365
University license may be available
Best for: Low-fidelity wireframes
30-day free trial
Start with Draw.io (free, unlimited) or Lucidchart (easier interface). Use Figma for UI/UX design.
@startuml
class User {
- id: int
- username: string
- email: string
+ login(): bool
+ logout(): void
}
class Order {
- orderId: int
- date: DateTime
- total: decimal
+ calculateTotal(): decimal
}
User "1" -- "*" Order : places
@enduml
Generates a professional UML diagram automatically!
Figure 3.2: System Architecture Diagram
This diagram illustrates the three-tier architecture of
the Student Management System. The client tier consists
of web and mobile interfaces, the application tier
handles business logic via Django REST API, and the
data tier uses PostgreSQL for persistence and Redis
for caching. This architecture was chosen to ensure
scalability and separation of concerns.
Show the information architecture and how users navigate through your system
Home
├── About
├── Products
│ ├── Category A
│ │ ├── Product 1
│ │ └── Product 2
│ └── Category B
│ ├── Product 3
│ └── Product 4
├── Services
│ ├── Service 1
│ └── Service 2
├── Blog
│ └── Blog Post
└── Contact
User Account (authenticated)
├── Dashboard
├── Profile
├── Orders
│ └── Order Details
└── Settings
[Customer] ──order details──→ (1.0 Process Order)
│
├──store order──→ ==Orders DB==
│
├──payment info──→ (2.0 Process Payment)
│ │
│ └──→ [Payment Gateway]
│
└──confirmation──→ (3.0 Send Email)
│
└──email──→ [Customer]
Create comprehensive diagram documentation for your dissertation
Complete set of professional diagrams ready for your dissertation report
40 minutes
Complete by end of week:
Remember: Diagrams are tools to help YOU think clearly and communicate effectively. They should make your dissertation stronger!
Contact: jwilliams@staff.newman.ac.uk