Bối cảnh và vấn đề nghiên cứu

Trong quản lý tổ chức truyền thống, công tác theo dõi dữ liệu và tài sản vật chất (physical assets) thường được thực hiện thủ công thông qua việc ghi chép trên giấy tờ, sổ sách hoặc truyền miệng. Phương thức quản trị thủ công này bộc lộ nhiều hạn chế nghiêm trọng:

  • Dữ liệu không đồng nhất: Gây ra nhiều sai sót trong quá trình tổng hợp và lưu trữ số liệu.
  • Sai lệch số liệu văn bản: Các số liệu được quản lý ở nhiều cấp phòng ban khác nhau do nhiều người viết tay, lưu trữ phân tán, dẫn đến sự thiếu chính xác giữa các bộ phận.
  • Chậm trễ trong cập nhật: Khó khăn trong việc ghi nhận và điều chỉnh các biến động tài sản một cách kịp thời.
  • Truy xuất dữ liệu chậm chạp: Việc tra cứu thông tin tốn nhiều thời gian và công sức khi số lượng ghi chép trở nên quá lớn.
  • Lưu trữ kém an toàn: Tài liệu giấy dễ bị hao mòn, ẩm mốc, rách nát hoặc hư hỏng theo thời gian.
  • Suy giảm tính minh bạch: Dữ liệu ghi chép tay dễ bị can thiệp hoặc sửa đổi vì lợi ích cá nhân, gây thâm hụt ngân sách của tổ chức hoặc doanh nghiệp.

Quản lý tài sản hiệu quả đóng vai trò thiết yếu đối với mọi tổ chức (doanh nghiệp, cơ quan nhà nước, tổ chức phi chính phủ) nhằm tối ưu hóa hiệu suất sử dụng, giảm thiểu rủi ro thất thoát, nâng cao tính minh bạch, tăng cường khả năng đáp ứng dịch vụ và kiểm soát chặt chẽ chi phí tài chính.

Mục tiêu và nhiệm vụ của đề tài:

  1. Xây dựng một hệ thống website quản lý tài sản cơ sở vật chất (Project Facilities Management System) hỗ trợ quản lý dữ liệu tập trung, sắp xếp thông tin theo trình tự để tối ưu hóa thao tác tra cứu và cập nhật.
  2. Thiết kế hai phân hệ (sites) tương ứng với hai nhóm người dùng chính: Phân hệ dành cho Người quản trị tài sản (Asset Managers) và Phân hệ dành cho Người dùng báo cáo tình trạng tài sản (Reporters/Users).
  3. Phát triển hệ thống máy chủ (Backend Server) cung cấp các giao diện lập trình ứng dụng (APIs) để xử lý logic nghiệp vụ và đồng bộ hóa dữ liệu.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình quản lý vòng đời tài sản, cấu trúc quan hệ giữa các thiết bị cơ sở vật chất và mô hình phần mềm quản lý tài sản Client-Server.
  • Không gian và thời gian: Đồ án tốt nghiệp ngành Kỹ thuật máy tính và Tin học (Informatics and Computer Engineering), Trường Quốc tế – Đại học Quốc gia Hà Nội (VNU-IS), hoàn thành vào tháng 11 năm 2023 dưới sự hướng dẫn của TS. Nguyễn Văn Tình.

Cơ sở lý thuyết và phương pháp

Đề tài kết hợp giữa các phương pháp phân tích yêu cầu hệ thống phần mềm, phân tích rủi ro kỹ thuật và các nguyên lý thiết kế kiến trúc phần mềm hướng đối tượng:

  • Mô hình phân tích Use Case và Phân rã chức năng (Decomposition Analysis): Sử dụng sơ đồ Use Case tổng quan và chi tiết để xác định các tác nhân (actors), ca sử dụng (use cases), quan hệ kết hợp (association), quan hệ bao hàm (include), mở rộng (extend) và khái quát hóa (generalization). Hệ thống phân rã các module lớn thành các thành phần quản lý danh mục (Portfolio Management) và quản lý tài sản (Asset Management).
  • Phương pháp phân tích cây lỗi (Fault Tree Analysis - FTA): Áp dụng kỹ thuật phân tích diễn dịch có hệ thống trong kỹ thuật độ tin cậy để xác định nguyên nhân dẫn đến sự kiện không mong muốn (Top Event), sử dụng các cổng logic (AND Gate, OR Gate, NOT Gate), sự kiện cơ bản (Basic Events), sự kiện trung gian (Intermediate Events) và tập cắt (Cut Sets). Phương pháp này được sử dụng để phân tích nguyên nhân của các báo cáo tài sản bị thất lạc hoặc thiếu hụt (Missing Report Decomposition).
  • Nguyên lý thiết kế kiến trúc phần mềm Clean Architecture: Áp dụng nguyên lý đảo ngược phụ thuộc (Dependency Inversion Principle - DIP) và cơ chế tiêm phụ thuộc (Dependency Injection - DI) nhằm tách biệt hoàn toàn phần logic nghiệp vụ lõi (Core) khỏi các công nghệ giao tiếp bên ngoài (Infrastructure và Presentation/API).
Phương pháp / Kỹ thuật Mục đích áp dụng trong đồ án
Use Case & Decomposition Mô hình hóa tương tác người dùng và phân rã các phân hệ chức năng
Fault Tree Analysis (FTA) Đánh giá rủi ro, phân tích nguyên nhân lỗi và sự cố thiếu báo cáo
Clean Architecture & DIP Tách tầng kiến trúc, đảm bảo tính độc lập và khả năng bảo trì hệ thống
Client-Server & REST API Kết nối giao diện người dùng Angular với máy chủ dịch vụ .NET Core

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình Client-Server gồm hai phân hệ giao diện người dùng và một hệ thống máy chủ dịch vụ Backend cung cấp API tập trung.

1. Ngăn xếp công nghệ (Technology Stack)

  • Front-end: Framework Angular phát triển trên nền tảng ngôn ngữ TypeScript. Hệ thống khai thác các ưu điểm: ràng buộc dữ liệu hai chiều (Two-way Data Binding), kiến trúc module hóa (Modular Architecture), Dependency Injection tích hợp sẵn và hệ sinh thái thư viện đa dạng.
  • Back-end: Nền tảng .NET Core đa nền tảng (hỗ trợ Windows, macOS, Linux) kết hợp cấu trúc Clean Architecture.
  • Xác thực và phân quyền: Sử dụng giao thức xác thực mã thông báo JWT (JSON Web Token) với cơ chế Bearer Authentication để truyền tải và kiểm tra thông tin định danh giữa Client và Server.
  • Cơ sở dữ liệu: Hệ quản trị cơ sở dữ liệu quan hệ MySQL (RDBMS) theo mô hình Client-Server, tổ chức dữ liệu theo các bảng quan hệ với hệ thống ràng buộc toàn vẹn.

2. Kiến trúc máy chủ Backend (.NET Core Clean Architecture)

Cấu trúc mã nguồn máy chủ được phân chia thành ba dự án (projects) riêng biệt, tuân thủ quy tắc phụ thuộc hướng vào trong (Dependency Rule):

  • Dự án Core (Tầng lõi trung tâm): Là tầng thấp nhất và độc lập, không phụ thuộc vào bất kỳ dự án hay framework ngoại vi nào. Core bao gồm:
    • Entities: Chứa các mô hình thực thể dữ liệu (Models) và đối tượng truyền dữ liệu (DTOs).
    • Shared: Chứa các kiểu liệt kê (Enums), tiện ích chung (Utils) và tài nguyên (Resources).
    • Interface: Chứa các khai báo giao diện (Interfaces) và lớp trừu tượng cho tầng nghiệp vụ và truy xuất dữ liệu.
    • Services: Chứa các lớp xử lý trực tiếp logic nghiệp vụ (Business Logic).
  • Dự án Infrastructure (Tầng hạ tầng): Xử lý các tương tác với hệ thống và dịch vụ bên thứ ba bao gồm cơ sở dữ liệu (Database), dịch vụ thư điện tử (Mail), hệ thống hàng đợi thông điệp (Message Broker) và bộ nhớ đệm (Caches). Các lớp tại Infrastructure bắt buộc phải triển khai (implement) các Interface được định nghĩa tại tầng Core. Do đó, tầng Core không gọi trực tiếp Infrastructure mà chỉ phụ thuộc vào chính Interface của nó.
  • Dự án Api (Tầng trình diễn / Presentation): Bao gồm gói Controllers để tiếp nhận và xử lý các yêu cầu HTTP từ phía máy trạm (Clients) và gói Authentication chịu trách nhiệm xác thực người dùng.

3. Thiết kế cấu trúc phân tầng phía Front-end

Mã nguồn giao diện được tổ chức theo cấu trúc kế thừa và phân chia mô-đun:

  • base.js: Lớp cơ sở xử lý các tác vụ và sự kiện chung xuất hiện ở hầu hết các trang (xử lý phân trang, điều hướng).
  • Các lớp màn hình riêng biệt mở rộng (extend) từ lớp base.js để xử lý logic chuyên biệt.
  • Nhóm lớp dùng chung (Shared): Lớp Common (xử lý hiển thị bảng dữ liệu, thông báo toast-messages, danh sách thả xuống dropdown), lớp Validator (kiểm tra tính hợp lệ của biểu mẫu dữ liệu), lớp Util (chứa các hàm định dạng dữ liệu, kiểm tra biểu thức chính quy Regex).
  • Nhóm lớp kết nối API: Lớp baseApiitemApi đóng gói các phương thức gọi API đến Server và tiếp nhận dữ liệu phản hồi.

4. Thiết kế cơ sở dữ liệu

Quy trình thiết kế dữ liệu tuân thủ các bước: phân tích yêu cầu thực thể, xây dựng mô hình khái niệm thông qua sơ đồ thực thể liên kết (ERD), áp dụng kỹ thuật chuẩn hóa (Normalization) để loại bỏ dữ liệu dư thừa và bất thường, chuyển đổi sang mô hình logic, thiết lập chỉ mục (Indexing) nhằm tối ưu hóa hiệu năng truy vấn, và định nghĩa kiểu dữ liệu cùng các ràng buộc toàn vẹn (NOT NULL, UNIQUE, DEFAULT, CHECK).


Nội dung chính theo từng chương

Chapter 1: Introduction to the Topic

Chương 1 trình bày bối cảnh thực tế và lý do hình thành đề tài, chỉ rõ các nhược điểm của việc ghi chép thủ công đối với công tác quản lý tài sản cá nhân và tổ chức. Tác giả đặt ra mục tiêu xây dựng một website quản lý tài sản hai phân hệ (Admin và User/Reporter) kèm hệ thống máy chủ cung cấp API. Bố cục tổng thể của đồ án được chia thành 6 chương.

Chapter 2: Survey and Analyze requirements

Chương 2 tập trung khảo sát hiện trạng và chi tiết hóa các yêu cầu của hệ thống:

  • Phân tích tác nhân và ca sử dụng: Xác định hai tác nhân chính gồm Quản lý cơ sở vật chất (Facility Manager) và Người báo cáo (Reporter).
  • Ứng dụng mô hình phân tích: Xây dựng sơ đồ Use Case phân rã cho quản lý danh mục (Portfolio Management), sơ đồ phân rã hệ thống quản lý tài sản (Asset Management Decomposition), và sơ đồ cây lỗi (Fault Tree Analysis - FTA) ứng dụng cho phân tích nguyên nhân báo cáo thất lạc.
  • Mô hình hóa 7 quy trình nghiệp vụ chính:
    1. Admin thêm danh mục mới (Admin Adds New Categories): Thiết lập cấu trúc phân loại, thuộc tính danh mục, phân cấp cha-con và quyền hạn.
    2. Admin thêm đối tượng tài sản (Admin Adds Asset Objects): Khởi tạo thông tin chi tiết, siêu dữ liệu (metadata), phân loại và gắn thẻ cho tài sản vật chất hoặc kỹ thuật số.
    3. Admin thiết lập mối quan hệ (Admin Establishes Relationships): Tạo lập các liên kết logic giữa các đối tượng tài sản (ví dụ: liên kết máy tính với màn hình, bàn phím, CPU) hoặc giữa người dùng và vai trò.
    4. Admin cập nhật trạng thái tài sản (Admin Updates Asset Status): Điều chỉnh trạng thái hoạt động (đang sử dụng, bảo trì, ngừng hoạt động) kèm nhật ký kiểm toán (audit trail).
    5. User báo cáo tài sản hỏng/thiếu (User Reports Missing/Damaged Assets): Giao diện tiếp nhận thông tin mô tả sự cố, số lượng thiếu hụt, kích hoạt thông báo tới quản trị viên.
    6. Admin xem xét và phản hồi báo cáo (Admin Reviews and Responds to Reports): Quy trình tiếp nhận, đánh giá mức độ ưu tiên, xác minh, cập nhật tiến độ giải quyết và phản hồi người dùng.
    7. Xem vòng đời tài sản (View Asset Lifecycle): Theo dõi chu trình xuyên suốt từ Mua sắm/Tạo mới $\rightarrow$ Đăng ký $\rightarrow$ Triển khai/Sử dụng $\rightarrow$ Bảo trì/Bảo dưỡng $\rightarrow$ Theo dõi thay đổi $\rightarrow$ Ngừng sử dụng $\rightarrow$ Tiêu hủy/Thanh lý.
  • Yêu cầu phi chức năng: Xác định các chỉ tiêu về hiệu năng (thời gian đáp ứng, thông lượng), độ tin cậy (tính sẵn sàng, khả năng chịu lỗi, MTBF), an ninh bảo mật (xác thực, phân quyền, mã hóa), khả năng bảo trì, khả năng mở rộng quy mô (mở rộng ngang và dọc), và tính tương thích trình duyệt/hệ điều hành.

Chapter 3: Technology stack

Chương 3 thuyết minh chi tiết các nền tảng công nghệ được lựa chọn trong quá trình xây dựng hệ thống:

  • Front-end: Đánh giá kiến trúc của Angular, ngôn ngữ TypeScript, cơ chế tiêm phụ thuộc và Data Binding.
  • Back-end: Nền tảng .NET Core kết hợp mô hình kiến trúc Clean Architecture.
  • Bảo mật: Chuẩn xác thực JWT Bearer Token trong mô hình Client-Server.
  • Hệ cơ sở dữ liệu: Hệ quản trị cơ sở dữ liệu quan hệ MySQL RDBMS.

Chapter 4: Development and Deployment of the application

Chương 4 mô tả quá trình thiết kế chi tiết và triển khai ứng dụng:

  • Lựa chọn kiến trúc phần mềm: Trình bày chi tiết cấu trúc 4 tầng của Clean Architecture dựa trên nguyên lý Dependency Inversion.
  • Thiết kế gói (Package Design): Phân rã hệ thống Backend thành 3 dự án độc lập Api, Core, Infrastructure.
  • Thiết kế giao diện (Interface Design): Áp dụng quy trình thiết kế lấy người dùng làm trung tâm (User-Centered Design), xây dựng Wireframe, Prototype, kiến trúc thông tin và tính tương thích đa thiết bị (Responsive Design).
  • Thiết kế phân tầng Front-end: Cấu trúc các lớp JavaScript/TypeScript phục vụ xử lý giao diện (base.js, Common, Validator, Util, baseApi, itemApi).
  • Thiết kế cơ sở dữ liệu: Triển khai các bước mô hình hóa ERD, chuẩn hóa bảng và thiết lập chỉ mục/ràng buộc toàn vẹn.

Chapter 5: Prominent solutions and contributions

Chương 5 tổng kết các giải pháp kiến trúc tiêu biểu đã thực hiện, bao gồm việc giải quyết bài toán phụ thuộc trong kiến trúc đa tầng bằng Clean Architecture, việc xây dựng mô hình quản lý quan hệ phức hợp giữa các tài sản và cơ chế theo dõi trọn vẹn vòng đời tài sản.

Chapter 6: Conclusion and development direction

Chương 6 đưa ra các kết luận về kết quả đạt được của hệ thống và vạch ra định hướng nghiên cứu, hoàn thiện phần mềm trong tương lai.


Kết quả và đóng góp

  • Xây dựng hoàn chỉnh kiến trúc hệ thống quản lý tài sản: Đã thiết kế thành công hệ thống phần mềm hướng dịch vụ cho bài toán quản lý tài sản cơ sở vật chất, phân định rõ ràng giữa hai phân hệ cho quản trị viên và người dùng báo cáo sự cố.
  • Mô hình hóa nghiệp vụ quản lý vòng đời và quan hệ tài sản: Xác lập mô hình quản lý thiết bị theo cấu trúc quan hệ liên kết (như hệ thống máy tính liên kết với các linh kiện ngoại vi) và giám sát toàn bộ các pha trong vòng đời tài sản từ lúc mua sắm đến khi thanh lý.
  • Đóng góp về mặt giải pháp kiến trúc phần mềm: Ứng dụng thành công Clean Architecture trên .NET Core với nguyên lý Dependency Inversion. Việc đưa tầng Core về vị trí trung tâm độc lập và buộc tầng Infrastructure phải triển khai Interface từ Core giúp hệ thống dễ dàng bảo trì, nâng cấp, kiểm thử và thay thế các thành phần bên thứ ba (Database, Cache, Mail) mà không gây ảnh hưởng tới logic nghiệp vụ cốt lõi.

Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế: Theo tác giả tự nhận định, do giới hạn về mặt kinh nghiệm trong quá trình xây dựng đồ án tốt nghiệp, hệ thống vẫn còn những thiếu sót nhất định và cần tiếp tục tiếp thu các ý kiến đóng góp chuyên môn từ hội đồng để hoàn thiện nền tảng kiến thức và chức năng.
  • Hướng nghiên cứu và phát triển tiếp:
    • Mở rộng và tối ưu hóa các module phân tích dữ liệu thống kê chuyên sâu về chi phí và hiệu suất sử dụng tài sản.
    • Tối ưu hóa hiệu năng xử lý của các gói dịch vụ và nâng cao khả năng mở rộng quy mô tải của hệ thống.
    • Hoàn thiện quy trình tự động hóa thông báo và tích hợp thêm các dịch vụ giám sát hạ tầng phụ trợ.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho sinh viên các ngành Công nghệ thông tin, Kỹ thuật máy tính, Kỹ thuật phần mềm và Hệ thống thông tin:

  • Mô hình hóa yêu cầu: Cung cấp phương pháp áp dụng kết hợp giữa biểu đồ Use Case truyền thống và kỹ thuật phân tích cây lỗi (Fault Tree Analysis - FTA) trong khảo sát nghiệp vụ phần mềm.
  • Tổ chức mã nguồn Clean Architecture: Cung cấp mẫu thiết kế thực tế về cách tổ chức giải pháp .NET Core chia tách thành các dự án Api, Core, Infrastructure tuân thủ nguyên lý Dependency Inversion.
  • Thiết kế tầng giao tiếp Client: Cung cấp mô hình tổ chức các lớp cơ sở, lớp dùng chung (base.js, Validator, Common) và lớp gọi API phía máy trạm.

Câu hỏi thường gặp

1. Đồ án giải quyết vấn đề gì trong thực tế?
Đồ án giải quyết các hạn chế của phương thức quản lý tài sản thủ công truyền thống như: cơ sở dữ liệu thiếu nhất quán, sai lệch số liệu ghi chép giữa các phòng ban, cập nhật biến động chậm trễ, tra cứu mất thời gian, tài liệu giấy dễ hỏng và nguy cơ thiếu minh bạch dẫn đến thâm hụt ngân sách.

2. Hệ thống phân chia những vai trò người dùng (Actors) nào?
Hệ thống phân chia thành hai tác nhân chính: Người quản lý cơ sở vật chất (Facility Manager) chịu trách nhiệm quản lý danh mục, thông tin tài sản, quan hệ thiết bị, vòng đời tài sản và xử lý báo cáo; và Người báo cáo (Reporter) có nhiệm vụ gửi báo cáo về tài sản bị hư hỏng hoặc thiếu hụt số lượng.

3. Kiến trúc Backend của hệ thống được tổ chức như thế nào?
Backend sử dụng .NET Core với Clean Architecture gồm 3 dự án chính: Api (chứa Controllers và Authentication), Core (tầng lõi chứa Entities, Shared, Interfaces, Services và không phụ thuộc bên ngoài), và Infrastructure (chứa tương tác Database, Mail, Cache và phải triển khai các Interface từ tầng Core).

4. Kỹ thuật Fault Tree Analysis (FTA) được sử dụng để làm gì trong đồ án?
FTA được sử dụng như một phương pháp phân tích diễn dịch có hệ thống trong đánh giá rủi ro và độ tin cậy, ứng dụng các cổng logic (AND, OR, NOT) và sự kiện cơ bản để phân tích nguyên nhân dẫn đến các sự cố hoặc tình trạng thiếu hụt báo cáo (Missing Report) trong hệ thống.

5. Vòng đời tài sản (Asset Lifecycle) trong hệ thống gồm các giai đoạn nào?
Vòng đời tài sản bao gồm các giai đoạn tuần tự: Mua sắm/Tạo mới (Acquisition/Creation) $\rightarrow$ Đăng ký tài sản (Asset Registration) $\rightarrow$ Triển khai/Sử dụng (Deployment/Utilization) $\rightarrow$ Bảo trì/Bảo dưỡng (Maintenance and Upkeep) $\rightarrow$ Theo dõi thay đổi và sử dụng (Tracking Changes/Usage) $\rightarrow$ Ngừng sử dụng (Decommissioning) $\rightarrow$ Tiêu hủy/Thanh lý (Disposal/Retirement).


Kết luận

Đồ án tốt nghiệp "Project Facilities Management System" của tác giả Trần Hồng Sơn (ngành Kỹ thuật máy tính và Tin học, Trường Quốc tế – Đại học Quốc gia Hà Nội) đã giải quyết toàn diện bài toán tin học hóa quy trình quản lý tài sản cơ sở vật chất. Bằng việc kết hợp ngăn xếp công nghệ Angular, .NET Core, JWT Bearer và MySQL, tác giả đã xây dựng thành công giải pháp phần mềm theo kiến trúc Clean Architecture đảm bảo tính độc lập và khả năng bảo trì cao. Hệ thống đáp ứng đầy đủ các yêu cầu nghiệp vụ từ quản lý danh mục, thiết lập quan hệ thiết bị, xử lý phản hồi sự cố cho đến việc giám sát trọn vẹn vòng đời tài sản trong tổ chức.