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

Trong bối cảnh cuộc Cách mạng công nghiệp 4.0 đang diễn ra mạnh mẽ, việc ứng dụng công nghệ thông tin vào hoạt động quản lý vận hành là xu thế tất yếu của các tổ chức và doanh nghiệp. Đối với các doanh nghiệp kinh doanh đang trên đà mở rộng quy mô, mô hình quản lý kho vận bằng nhân sự và các phương pháp thủ công bộc lộ nhiều điểm hạn chế, không còn đáp ứng được yêu cầu theo dõi luồng hàng hóa chính xác, liên tục. Nhu cầu thực hiện "chuyển đổi số" đòi hỏi phải xây dựng một hệ thống phần mềm chuyên môn hóa để quản lý toàn diện các kho hàng và các quy trình nghiệp vụ liên quan.

Đề tài "Phân tích và Thiết kế Hệ Thống Quản Lý Kho Vận Odoo" (tập trung vào phân tích module Quản lý Kho - Inventory của nền tảng mã nguồn mở Odoo) được nhóm sinh viên Khoa Công nghệ Thông tin - Trường Đại học Sài Gòn thực hiện trong khuôn khổ học phần Công nghệ Phần mềm, dưới sự hướng dẫn của TS. Nguyễn Quốc Huy vào tháng 11 năm 2022.

Mục tiêu nghiên cứu và nhiệm vụ của đề tài bao gồm việc phân tích yêu cầu và thiết kế chi tiết hệ thống quản lý kho theo các cấp độ Quan niệm – Logic – Vật lý, đáp ứng 7 nhóm nghiệp vụ chính:

  1. Quản lý hệ thống các kho hàng và cấu hình mạng lưới lưu trữ của doanh nghiệp.
  2. Quản lý danh mục và thông tin chi tiết các sản phẩm trong kho.
  3. Quản lý các tuyến giao hàng, nhận hàng và bổ sung hàng hóa định kỳ hoặc tự động.
  4. Quản lý các hoạt động điều chuyển hàng hóa nội bộ và xử lý đơn vận.
  5. Truy vết quãng đường, lộ trình và lịch sử biến động của hàng hóa, đơn hàng.
  6. Thiết lập cơ chế phân quyền chặt chẽ giữa Quản trị viên (Admin) và Nhân viên kho (Member/User).
  7. Thực hiện quy trình kiểm kê định kỳ, tính toán chênh lệch và xuất báo cáo tình hình kho bãi.

Đối tượng nghiên cứu là các quy trình nghiệp vụ kho vận trong hệ thống hoạch định tài nguyên doanh nghiệp Odoo. Phạm vi nghiên cứu tập trung vào giai đoạn phân tích và thiết kế phần mềm, xác định các quy tắc nghiệp vụ, xây dựng các lược đồ UML và thiết kế cơ sở dữ liệu quan hệ phục vụ cho việc vận hành kho hàng.

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

Đề tài vận dụng các nguyên lý cốt lõi của môn học Công nghệ Phần mềm và quy trình thiết kế hướng đối tượng. Nhóm nghiên cứu lựa chọn mô hình phát triển phần mềm dạng Thác nước (Waterfall Model) làm khung tiến trình chính, bao gồm các giai đoạn kế tiếp nhau: Phân tích yêu cầu (Requirement Analysis), Thiết kế hệ thống (System Design) và Triển khai (Implementation). Lý do lựa chọn mô hình này là tính tuần tự, rõ ràng giữa các giai đoạn, giúp nhóm dễ dàng kiểm soát khối lượng công việc và nắm bắt tiến độ trong điều kiện giới hạn về thời gian và kinh nghiệm thực tế.

Phương pháp thu thập và phân tích yêu cầu được tiến hành thông qua hai kỹ thuật chính:

  • Xem xét tài liệu và khảo sát phần mềm thực tế: Nghiên cứu tài liệu chuẩn của mã nguồn mở Odoo, tìm hiểu cách thức vận hành thực tế của các phân hệ chức năng trên phần mềm Odoo hiện hữu, từ đó đánh giá mức độ phù hợp với nhu cầu quản lý tồn kho của doanh nghiệp vừa và lớn.
  • Kỹ thuật họp nhóm và phân rã công việc: Tổ chức các buổi họp định kỳ để phân chia nhiệm vụ, theo dõi tiến độ và thống nhất các quy tắc nghiệp vụ; xây dựng Bảng cấu trúc phân rã công việc (Work Breakdown Structure - WBS) từ tuần 4 đến tuần 9 theo phương pháp MoSCoW (phân loại các hạng mục theo MUST HAVE, SHOULD HAVE và DONE).

Hệ thống phương pháp thiết kế hướng đối tượng được cụ thể hóa thông qua việc mô hình hóa bằng ngôn ngữ UML: xây dựng bảng đặc tả Use Case chi tiết (Focused Use Case), Biểu đồ hoạt động (Activity Diagram), Biểu đồ tuần tự (Sequence Diagram) theo mô hình phân tầng Boundary - Control - Entity, cùng Lược đồ lớp (Class Diagram) và Sơ đồ thực thể mối kết hợp (ERD).

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

Chương I: Giới thiệu chung về doanh nghiệp và kế hoạch quản lý dự án phần mềm

Chương I trình bày bối cảnh hoạt động của doanh nghiệp cần chuyển đổi mô hình quản lý kho vận từ thủ công sang tự động hóa. Về mặt tổ chức nhân sự, hệ thống xác định hai nhóm tác nhân chính:

  • Quản trị viên (Admin): Phụ trách cấu hình kho, tạo kho mới, giám sát toàn bộ danh mục sản phẩm, phân quyền và duyệt các chính sách điều chuyển, bổ sung.
  • Nhân viên trực thuộc kho (User/Member): Thực hiện các thao tác tác nghiệp hàng ngày như lập phiếu điều chuyển, lập phiếu phế liệu, nhập số lượng đếm khi kiểm kê.

Kế hoạch quản lý dự án được thiết lập thông qua mô hình thác nước và bảng phân bổ tiến độ WBS. Bảng tiến độ quy định các mốc thời gian thực hiện từ Tuần 4 đến Tuần 9 với các yêu cầu chức năng được gắn nhãn ưu tiên: các chức năng nền tảng và cốt lõi (Đăng nhập, Quản lý kho, Điều chuyển, Kiểm kê) thuộc nhóm "MUST HAVE", các chức năng hỗ trợ và tiện ích nâng cao thuộc nhóm "SHOULD HAVE".

Chương II: Giai đoạn khảo sát và thu thập yêu cầu

Chương II tập trung vào quá trình tìm hiểu các chuẩn nghiệp vụ kho của nền tảng mã nguồn mở Odoo và thu thập các yêu cầu thực tế từ quy trình xuất - nhập - tồn. Quá trình khảo sát giúp định hình các luồng dữ liệu cần xử lý: từ khâu tiếp nhận hàng hóa, lưu trữ tại các vị trí/địa điểm (locations), thiết lập tuyến cung ứng (routes), luân chuyển nội bộ giữa các kho, xử lý sản phẩm hỏng/phế liệu, cho đến khâu đối soát số lượng tồn kho định kỳ.

Nhóm tác giả tổng kết quá trình khảo sát, ghi nhận các yêu cầu nghiệp vụ đã được làm rõ để chuyển giao sang giai đoạn phân tích thiết kế, đồng thời chỉ ra một số trở ngại ban đầu về việc phân bổ thời gian làm việc nhóm và việc làm quen với khối lượng tài liệu kỹ thuật lớn của Odoo.

Chương III: Giai đoạn phân tích thiết kế

Chương III là nội dung trọng tâm của đồ án, trình bày chi tiết lược đồ Use Case tổng quát và hồ sơ phân tích thiết kế cho 10 ca sử dụng (Use Case) cụ thể. Mỗi chức năng đều được mô hình hóa đầy đủ qua: Bảng đặc tả Use Case tập trung (Focused Use Case gồm Basic Course, Alternative Paths, Exception Paths, Pre/Post-conditions), Biểu đồ hoạt động (Activity Diagram) và Biểu đồ tuần tự (Sequence Diagram).

Mã Use Case Tên Chức Năng Tác Nhân (Actors) Nghiệp Vụ Cốt Lõi & Ràng Buộc Kiểm Tra
UC1 Đăng nhập User, Admin Xác thực email/mật khẩu, kiểm tra ô trống form (E1), kiểm tra tài khoản tồn tại trong database (E2), điều hướng giao diện theo phân quyền.
UC2 Đăng ký User, Admin Đăng ký tài khoản nhân viên mới, kiểm tra ô trống (E1), kiểm tra trùng lặp email đã đăng ký (E2).
UC3 Đặt lại mật khẩu User, Admin Gửi link xác thực qua email (E1), kiểm tra tính hợp lệ của mật khẩu mới và chuỗi xác nhận mật khẩu (E2, E3).
UC4 Quản lý kho hàng Admin Xem danh sách kho, sửa, xóa (kiểm tra khóa ngoại tham chiếu E1), lưu trữ (kiểm tra hàng tồn E2 và phiếu kho chưa xử lý E3), nhân bản (kiểm tra trùng tên viết tắt E4), xuất file CSV/XLS.
UC5 Tạo kho hàng Admin Cấu hình kho mới, kiểm tra tên kho không để trống (E1), kiểm tra tên viết tắt duy nhất trên cùng địa chỉ (E2), cấu hình tuyến cung ứng 1 bước mặc định.
UC6 Quản lý phế liệu kho User, Admin Tạo đơn hàng phế liệu, chọn kho chứa và số lượng, kiểm tra tên sản phẩm (E1), kiểm tra số lượng không âm (E2), trạng thái bản thảo/xác nhận, không cho phép xóa đơn đã hoàn thành (E3).
UC7 Bổ sung hàng User, Admin Thiết lập quy tắc bổ sung (min/max), kiểm tra sản phẩm đã chọn (E1), kiểm tra địa điểm khả dụng - mỗi địa điểm chỉ có 1 phiếu bổ sung/sản phẩm (E2), thiết lập luồng xử lý: đặt hàng 1 lần, đặt hàng tự động, tạm dừng (E3).
UC8 Điều chuyển hàng User, Admin Tạo và xử lý phiếu điều chuyển (giao hàng, nhận hàng, nội bộ), kiểm tra số lượng khả dụng (E2, E3), xử lý phần dang dở (backorder) khi kho không đủ hàng đáp ứng, kiểm tra trạng thái khóa phiếu (E4, E5).
UC9 Quản lý sản phẩm User, Admin Phân quyền hiển thị theo vai trò, quản lý giá vốn, giá bán, nhóm sản phẩm, kiểm tra loại sản phẩm tránh mâu thuẫn dữ liệu luồng đang chạy (E1, E3), kiểm tra tên sản phẩm (E2).
UC10 Kiểm kê kho User, Admin Lập phiếu kiểm kê, nhập số lượng đếm thực tế, kiểm tra định dạng số (E3), tính toán chênh lệch so với tồn hệ thống, cập nhật số lượng tồn thực tế, quản lý cờ trạng thái (Flag = 1/0), lưu vết lịch sử.

Thiết kế và triển khai

Hệ thống được thiết kế theo kiến trúc 3 lớp hướng đối tượng, thể hiện rõ qua sự tương tác giữa các thành phần trên Biểu đồ tuần tự (Sequence Diagram):

  • Lớp Giao diện (Boundary): Đóng vai trò tiếp nhận tương tác từ người dùng và hiển thị dữ liệu phản hồi (ví dụ: formDangNhap, formDangKy, homeGUI, GUIQuanLyPhieuBoSung, GUISuaSanPham, GUIthongtinbosung).
  • Lớp Điều khiển (Control): Đảm nhận việc tiếp nhận sự kiện, điều phối luồng nghiệp vụ, kiểm tra các ràng buộc dữ liệu trước khi xử lý (ví dụ: taiKhoanController, khoHangController, donPheLieuController, sanPhamController, XuLyDieuChuyen).
  • Lớp Thực thể và Dữ liệu (Entity & Database): Đại diện cho các đối tượng nghiệp vụ lưu trữ trạng thái và giao tiếp trực tiếp với cơ sở dữ liệu để truy vấn/cập nhật dữ liệu (ví dụ: Account, khoHang, SanPham, PhieuDieuChuyen, DonPheLieu, Database).

Sơ đồ thực thể mối kết hợp (ERD) và Lược đồ lớp (Class Diagram) của hệ thống bao gồm các bảng thực thể chính cùng mối quan hệ ràng buộc toàn vẹn dữ liệu:

  • KhoHang (IDKhoHang, tenKhoHang, tenVietTat, IDDiaChi): Quản lý định danh các địa điểm lưu trữ.
  • SanPham (IDSanPham, tenSanPham, giaVon, giaBan, theTich, khoiLuong, IDNhomSanPham, ngonNgu): Quản lý thuộc tính hàng hóa.
  • TuyenCungUng (IDTuyenCungUng, IDKhoNguon, IDKhoDich, tenTuyenCungUng, DSApDung, IDKhoThuoc): Thiết lập luồng lưu chuyển giữa các kho.
  • ChiTietKho (IDKhoHang, IDSanPham, SoLuongThucTe, SoLuongDuBao): Quản lý số lượng tồn thực tế và số lượng dự báo theo từng kho.
  • DonPheLieu (IDDonPheLieu, IDSanPham, IDKhoHang, SoLuong, TrangThai): Quản lý hàng hỏng, hàng phế phẩm.
  • PhieuDieuChuyen và PhieuXuLy: Quản lý các lệnh vận chuyển, trạng thái (Dự thảo, Sẵn sàng, Hoàn thành, Hủy), hình thức (giao, nhận, nội bộ).
  • PhieuKiemKe, LichSuHoatDong, TaiKhoan, DiaChi, NhomSanPham, CongViec: Hỗ trợ công tác phân quyền, phân loại và truy vết lịch sử thao tác.

Các quy tắc xử lý ngoại lệ (Exception Handling) được thiết kế chi tiết: hệ thống chủ động ngăn chặn việc xóa các kho hàng đang chứa sản phẩm hoặc có phiếu kho chưa hoàn tất; tự động kích hoạt tiến trình tạo phiếu điều chuyển phần dở dang (backorder) khi lượng hàng xuất kho thực tế nhỏ hơn nhu cầu yêu cầu; kiểm soát xung đột dữ liệu khi người dùng thay đổi loại sản phẩm đang có giao dịch phát sinh.

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

Đồ án đã xây dựng thành công bộ hồ sơ phân tích và thiết kế phần mềm hoàn chỉnh cho phân hệ Quản lý Kho Vận mô phỏng theo chuẩn Odoo, đạt được các kết quả cụ thể:

  • Hoàn thiện mô hình hóa 10 ca sử dụng trọng yếu bằng hệ thống bảng đặc tả ca sử dụng chi tiết, biểu đồ hoạt động và biểu đồ tuần tự theo đúng chuẩn thiết kế hướng đối tượng.
  • Xây dựng mô hình dữ liệu quan hệ (ERD) và lược đồ lớp có cấu trúc chặt chẽ, thể hiện đầy đủ các mối quan hệ (1-1, 1-n, n-n) giữa các thực thể kho hàng, sản phẩm, tuyến cung ứng, phiếu điều chuyển và lịch sử hoạt động.
  • Xác định rõ ràng các quy tắc kiểm soát dữ liệu nghiệp vụ (xử lý ngoại lệ, kiểm tra tính khả dụng của kho, tự động tính toán chênh lệch tồn kho).

Về mặt tổ chức thực hiện, theo biên bản đánh giá giữa kỳ, khối lượng công việc được phân chia đồng đều 33% cho mỗi thành viên trong nhóm 28 (Trần Nguyễn Việt Thái: 33%, Đỗ Minh Hiếu: 33%, Hoàng Huỳnh Trung Hiếu: 33%), đảm bảo sự phối hợp đồng bộ giữa các khâu khảo sát, phân tích nghiệp vụ và xây dựng lược đồ.

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

Theo tự nhận định của nhóm tác giả trong văn bản báo cáo, đồ án vẫn còn một số hạn chế cần khắc phục:

  • Một số lược đồ thiết kế (biểu đồ tuần tự, biểu đồ hoạt động) chưa đạt độ trực quan tối đa và cần được tinh chỉnh chính xác hơn để phục vụ trực tiếp cho giai đoạn cài đặt (Implementation/Coding).
  • Đồ án mới tập trung chuyên sâu vào giai đoạn phân tích thiết kế hệ thống theo mô hình thác nước, chưa hoàn thiện trọn vẹn toàn bộ các bước triển khai mã nguồn và kiểm thử phần mềm.
  • Quá trình làm việc nhóm và biên soạn báo cáo còn bộc lộ một số sai sót cục bộ về mặt trình bày và quản lý thời gian họp nhóm.

Hướng phát triển tiếp theo là hoàn thiện các bước còn lại trong mô hình thác nước: hiện thực hóa các lược đồ thiết kế thành các module mã nguồn chạy trên nền tảng Odoo, tiến hành kiểm thử chức năng và tích hợp hệ thống vào môi trường doanh nghiệp thực tế.

Giá trị tham khảo

Báo cáo đồ án là tài liệu tham khảo hữu ích cho sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin quản lý khi học tập môn Công nghệ Phần mềm hoặc thực hiện các đồ án phân tích thiết kế hệ thống thông tin quản lý doanh nghiệp (ERP).

Tài liệu cung cấp nguồn tham khảo cụ thể về:

  • Phương pháp viết đặc tả ca sử dụng tập trung (Focused Use Case) đầy đủ các luồng sự kiện chính, luồng rẽ nhánh và luồng ngoại lệ.
  • Cách thức chuyển đổi từ yêu cầu nghiệp vụ thực tế sang các biểu đồ tương tác 3 lớp (Boundary - Control - Entity).
  • Cấu trúc cơ sở dữ liệu mẫu cho bài toán quản lý kho bãi phức tạp (quản lý đa kho, tuyến cung ứng, quy tắc bổ sung tồn kho tự động và xử lý phế liệu).

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

1. Nhóm tác giả lựa chọn mô hình phát triển phần mềm nào và vì lý do gì?
Nhóm lựa chọn mô hình Thác nước (Waterfall Model). Lý do lựa chọn là do tính chất công việc diễn ra nối tiếp tuần tự và độc lập giữa các giai đoạn, giúp các thành viên nhóm dễ hình dung, quản lý và nắm bắt yêu cầu của từng giai đoạn trong bối cảnh thời gian thực hiện có hạn và kinh nghiệm thực tế còn hạn chế.

2. Hệ thống phân quyền cho những đối tượng nào và nhiệm vụ chính của từng vai trò là gì?
Hệ thống phân quyền cho 2 đối tượng chính:

  • Người quản trị (Admin): Phụ trách cấu hình hệ thống, tạo mới/sửa/xóa/nhân bản kho hàng, quản lý danh mục sản phẩm, cấu hình tuyến cung ứng, phê duyệt các quy tắc bổ sung hàng.
  • Thành viên/Nhân viên kho (User/Member): Thực hiện các tác nghiệp thường nhật như lập đơn phế liệu, thao tác điều chuyển hàng, nhập số lượng đếm khi kiểm kê kho.

3. Ràng buộc nào được kiểm tra khi Quản trị viên thực hiện xóa hoặc lưu trữ một kho hàng (UC4)?
Khi xóa kho hàng, hệ thống thực hiện kiểm tra ràng buộc khóa tham chiếu (E1) để xem kho có đang được thành phần khác sử dụng hay không. Khi lưu trữ kho hàng, hệ thống bắt buộc kiểm tra xem có sản phẩm nào đang tồn trong kho (E2) và kiểm tra có phiếu kho nào chưa hoàn thành đang cần xử lý tại kho đó hay không (E3).

4. Chức năng Điều chuyển hàng (UC8) xử lý như thế nào trong trường hợp lượng tồn kho không đủ đáp ứng nhu cầu xuất hàng?
Khi kiểm tra số lượng khả dụng thấy lượng tồn kho không đủ đáp ứng, hệ thống sẽ gửi thông báo tạo phần dang dở. Nếu người dùng chọn tạo phần dang dở, hệ thống sẽ truy xuất số lượng hiện có, tính toán phần chưa hoàn thành và tự động tạo thêm một phiếu điều chuyển hàng mới (backorder) cho phần số lượng còn thiếu đó.

5. Cơ chế xử lý trùng lặp dữ liệu trong chức năng Kiểm kê kho (UC10) được quy định như thế nào?
Khi người dùng tạo mới dữ liệu kiểm kê, hệ thống thực hiện kiểm tra tên sản phẩm và địa điểm kho. Nếu cặp thông tin địa điểm và sản phẩm đã tồn tại trong danh sách kiểm kê, hệ thống sẽ tự động cập nhật đè giá trị mới lên hàng đã có; nếu chưa tồn tại, hệ thống mới cập nhật thành một hàng kiểm kê mới.

Kết luận

Báo cáo đồ án môn học Công nghệ Phần mềm của Nhóm 28 (Khoa Công nghệ Thông tin - Trường Đại học Sài Gòn) đã hoàn thành việc phân tích yêu cầu và thiết kế chi tiết hệ thống quản lý kho vận dựa trên nền tảng mã nguồn mở Odoo. Thông qua việc áp dụng quy trình mô hình hóa hướng đối tượng và cấu trúc phân tầng Boundary - Control - Entity, nhóm tác giả đã làm rõ 10 ca sử dụng nghiệp vụ cốt lõi từ mức quan niệm đến mức thiết kế cơ sở dữ liệu quan hệ. Mặc dù dừng lại ở giai đoạn thiết kế và chưa triển khai toàn diện mã nguồn theo chu trình Thác nước, tài liệu đã cung cấp một bản đặc tả thiết kế hệ thống chặt chẽ, đóng vai trò là cơ sở kỹ thuật vững chắc cho giai đoạn lập trình và triển khai thực tế.