1. Hệ thống (System) là cái quái gì? 🧩
Định nghĩa chuẩn: Hệ thống là tập hợp các phần tử có liên quan và tương tác với nhau để cùng thực hiện một mục tiêu chung.
Nếu các phần tử đứng rời rạc, đó là một "đống rác", không phải hệ thống.
🌟 Case Study: Hệ thống Grab (Mổ xẻ 9 thành phần)
Để dễ hình dung, hãy nhìn Grab dưới lăng kính kỹ thuật:
| Thành phần | Ý nghĩa & Ví dụ trong Grab |
|---|---|
| 1. Phần tử 🧩 | App khách, App tài xế, Server, Google Maps API. |
| 2. Liên kết 🔗 | Tín hiệu 4G/Wifi truyền data từ máy khách -> Server -> máy tài xế. |
| 3. Biên 🚧 | Ranh giới App. (Ví dụ: Grab không quản lý việc bạn chat trên Zalo, đó là ngoài biên). |
| 4. Giao diện 🖥️ | Màn hình đặt xe, cổng thanh toán Momo/Visa. |
| 5. Môi trường 🌍 | Luật giao thông, thời tiết (mưa = tăng giá), đối thủ (Be, Xanh SM). |
| 6. Mục đích 🎯 | Match người cần đi và người có xe nhanh nhất + an toàn nhất. |
| 7. Input 📥 | Điểm đón, điểm đến, loại xe (Bike/Car), mã giảm giá. |
| 8. Output 📤 | Tài xế nhận cuốc, lộ trình di chuyển, hóa đơn. |
| 9. Ràng buộc ⚖️ | Tài khoản phải đủ tiền, tài xế phải online, Server phản hồi < 200ms. |
2. Hệ thống thông tin (Information System - IS) 💻
Trong ngành IT, chúng ta tập trung vào IS. Đây là sự kết hợp của 5 yếu tố "ngũ hành":
- Hardware (Phần cứng): Server, iPhone, Laptop.
- Software (Phần mềm): App Grab, Database Oracle, OS Android.
- Data (Dữ liệu): Thông tin user, lịch sử chuyến đi (Đây là tài sản quý nhất).
- Procedures (Quy trình): Logic nghiệp vụ (VD: Logic tính tiền surge pricing).
- People (Con người): Dev, Admin, User, Support (Yếu tố khó kiểm soát nhất).
3. Vòng đời phát triển hệ thống (SDLC) 🔄
Hãy tưởng tượng SDLC giống như việc xây nhà. Không ai xây mái khi chưa đào móng.
| Giai đoạn | Câu hỏi cốt lõi | Output mong đợi |
|---|---|---|
| 1. Planning (Lập kế hoạch) | "Có đáng làm không? Tiền đâu?" | Feasibility Report (Báo cáo khả thi). |
| 2. Analysis (Phân tích) | "Làm cái gì?" (What) | User Requirements (SRS). |
| 3. Design (Thiết kế) | "Làm như thế nào?" (How) | System Design Document (SDD), DB Schema, UI/UX Mockup. |
| 4. Implementation (Triển khai) | "Code thôi!" | Source Code, Test Cases, Sản phẩm chạy được. |
| 5. Maintenance (Bảo trì) | "Fix bug & Update" | Patch, Version mới. |
4. Phân tích vs. Thiết kế: Đừng nhầm lẫn! ⚔️
Rất nhiều bạn sinh viên (và cả Junior) hay nhầm 2 khái niệm này.
🔍 Phân tích (Analysis) - Problem Space
- Role: Thám tử / Bác sĩ.
- Nhiệm vụ: Tìm hiểu "nỗi đau" của khách hàng.
- Tư duy: Logical (Logic nghiệp vụ).
- Câu hỏi: "Hệ thống phải làm gì để giải quyết vấn đề?"
📐 Thiết kế (Design) - Solution Space
- Role: Kiến trúc sư / Kỹ sư.
- Nhiệm vụ: Vẽ bản vẽ kỹ thuật để giải quyết vấn đề đó.
- Tư duy: Physical (Công nghệ, Database, Server).
- Câu hỏi: "Dùng SQL hay NoSQL? Microservices hay Monolith?"
5. Các mô hình hệ thống trong doanh nghiệp 🏢
Hình dung theo mô hình Kim Tự Tháp (Từ đáy lên đỉnh):
- TPS (Transaction Processing): Đáy kim tự tháp. Xử lý giao dịch hàng ngày.
- Ví dụ: Máy quẹt thẻ siêu thị, hệ thống ATM.
- OAS (Office Automation): Hỗ trợ văn phòng.
- Ví dụ: Slack, Google Workspace, Jira.
- MIS (Management Info System): Báo cáo quản trị (cho Manager).
- Ví dụ: Báo cáo doanh thu tháng, tồn kho.
- DSS (Decision Support): Hỗ trợ ra quyết định (cho Sếp lớn).
- Ví dụ: Dự báo chứng khoán, phân tích rủi ro.
- ESS (Executive Support): Đỉnh chóp (cho CEO/Chairman).
- Ví dụ: Dashboard chiến lược dài hạn 5-10 năm.
6. Các phương pháp mô hình hóa (Vũ khí của BA/Dev) 🗡️
A. Phương pháp Hướng cấu trúc (Structured) - "Cổ điển" 🏗️
- Tư duy: Chia để trị (Function-based). Tách dữ liệu và xử lý riêng.
- Công cụ: DFD (Data Flow Diagram), ERD (Entity Relationship).
- Thích hợp: Các hệ thống thiên về xử lý dữ liệu tuần tự, quy trình rõ ràng (như hệ thống Ngân hàng cũ).
B. Phương pháp Hướng đối tượng (Object-Oriented) - "Hiện đại" 💎
- Tư duy: Gom dữ liệu + hành động vào một cục gọi là Object.
- Công cụ: UML (Use Case, Class, Sequence Diagram).
- Thích hợp: Hầu hết các phần mềm hiện đại, dễ bảo trì và nâng cấp.