



















Preview text:
  lOMoAR cPSD| 59078336 KHOA CÔNG NGHỆ THÔNG TIN 
BỘ MÔN CÔNG NGHỆ PHẦN MỀM  *****  ĐỒ ÁN MÔN HỌC 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG  Đề tài   Quản Lý Kho Hàng 
Nhóm sinh viên thực hiện: Nhóm 2  Danh sách sinh viên: 
Nguyễn Phú Hải <0188666> 
Nguyễn Lương Bằng <0181066>  Lớp học phần:  66 PM 5 
Giảng viên hướng dẫn: Ths. Nguyễn Hồng Hạnh  Hà Nội 11/2023  I. 
ĐẶT VẤN ĐỀ - XÁC ĐỊNH YÊU CẦU KHÁCH HÀNG        lOMoAR cPSD| 59078336   1. Đặt vấn đề: 
I.1 Hệ thống dự định làm: 
Ngày nay, đời sống con người đang ngày càng hiện đại, Công nghệ thông 
tin cũng ngày một phát triển lớn mạnh.Qua đó nhu cầu đời sống của con người 
ngày càng hiện đại, công nghệ thông tin càng được ứng dụng vào nhiều lĩnh vực 
để thỏa mãn nhu cầu con người. Giáo dục, sản xuất, kinh doanh, giải trí,…Đặc  biệt là quản lý. 
Quản lý kho trong doanh nghiệp là một công việc quan trọng đòi hỏi bộ 
phận quản lý phải tiến hành nhiều nghiệp vụ phức tạp. Các doanh nghiệp không 
chỉ có mô hình tập trung mà còn tổ chức mô hình kho phân tán trên nhiều địa 
điểm khác nhau. Do vậy cách quản lý kho theo phương pháp truyền thống sẽ  không còn hiệu quả. 
Việc ứng dụng Công nghệ thông tin đã mang lại bước đột phá mới cho công 
tác quản lý kho, giúp doanh nghiệp nắm bắt được thông tin về hàng hóa, vật tư, 
nguyên vật liệu và sản phẩm một cách chính xác kịp thời. Từ đó, người quản lý 
có thể đưa ra các kế hoạch và quyết định đúng đắn, nâng cao kết quả sản xuất  kinh doanh. 
Do đó, chúng em quyết định thực hiện phân tích và thiết kế một hệ thống  quản lý kho hàng. 
Ngôn ngữ lập trình: C# Winform 
Hệ quản trị CSDL: Mysql Server 
I.2 Tóm tắt dự án:  a. Mô tả sơ lược: 
Quy trình hệ thống quản lý kho hàng bao gồm nhiều bước cơ bản để đảm bảo 
rằng hàng hóa được quản lý, lưu trữ và xuất bán một cách hiệu quả. Dưới đây 
là một mô tả tổng quan về các bước trong quy trình này: 
Bước 1: Nhân viên nhận thông tin về đơn và hàng hóa cần được nhập kho, sau 
đó nhập thông tin vào phiếu in nhập kho. 
Bước 2: Xác nhận nhập kho, xác định vị trí lưu trữ cho hàng hóa vừa nhập cùng 
với báo cáo lại tình trạng cho quản lý. 
Bước 3: Khi có yêu cầu xuất kho, kiểm tra tình trạng kho hàng xem có đủ điều 
kiện xuất kho không, sau đó nhập thông tin xuất vào phiếu in xuất kho. Bước 
4: Xác nhận xuất kho, báo cáo thống kê lại tình trạng kho hàng.  b. Nhu cầu quản lý:  Tình trạng kho hàng 
Ghi nhận phiếu nhập/xuất hàng 
Tình trạng nhập/xuất hàng  Thống kê, báo cáo 
Quản lý tài khoản người dùng 
c. Phạm vi: Khu vực kho hàng của công ty  d. Đối tượng      lOMoAR cPSD| 59078336
Quản lý: Quản trị viên có toàn quyền hệ thống 
Nhân viên: có quyền nhập/xuất,in phiếu kho hàng, kiểm tra tình trạng kho hàng,  nhập/xuất hàng. 
2. Xác định yêu cầu nghiệp vụ: 
2.1 Tình trạng kho hàng: 
Nhân viên và quản lý có thể theo dõi tình trạng kho hàng thông qua danh sách hàng 
hóa dược hiển thị trên hệ thống.Danh sách này bao gồm: mã hàng hóa, tên hàng hóa, 
số lượng tồn kho, loại hàng hóa, đơn giá. 
Cho phép tìm kiếm theo mã hàng hóa, tên hàng hóa.  2.2 Nhập kho: 
Khi có đơn hàng, nhân viên kiểm tra thông tin đơn hàng, sau đó nhập thông tin đơn 
hàng vào phiếu nhập kho gồm:  - Mã nhập kho  - Tên hàng  - Số lượng hàng  - Ngày nhập hàng  - Loại hàng -  Đơn giá 
Xác nhận đơn hàng và phiếu nhập kho được lưu vào hệ thống.  2.3 Xuất kho: 
Khi cần xuất kho, nhân viên nhập thông tin các hàng hóa cần xuất vào phiếu xuất  kho gồm:  - Mã xuất kho  - Tên hàng  - Số lượng  - Ngày xuất kho  - Loại hàng  - Đơn giá 
Hệ thống sẽ kiểm tra số lượng hàng hóa có đủ để xuất kho không, nếu không đủ sẽ hiện 
thông báo. Nếu đủ điều kiện xuất hàng thì xác nhận hệ thống sẽ lưu phiếu xuất kho vào  hệ thống  2.4 Lưu kho: 
Mỗi khi phiếu nhập, xuất kho được xác nhận thành công, hệ thống sẽ tự động cập nhật 
vào tình trạng kho hàng và tình trạng nhập/xuất.  2.5 In phiếu: 
Sau khi xác nhận thành công phiếu nhập/xuất người dùng có thể cho in ra thành phiếu  vật lý. 
2.6 Quản lý tài khoản :      lOMoAR cPSD| 59078336
Mỗi người dùng được cấp tài khoản riêng trên hệ thống bao gồm các thông tin cá nhân. 
Người dùng đăng nhập bằng Username và Password. 
Phần mềm quản lý người dùng gồm các nhóm: 
-Quản lý: toàn quyền hệ thống  -Nhân viên 
2.7 Báo cáo và thống kê: 
Quản lý có thể xem được báo cáo về tình trạng tồn kho, doanh số xuất nhập hàng.    II. 
PHÂN TÍCH CHỨC NĂNG: 
1. Phân tích yêu cầu hệ thống:  1.1. 
Yêu cầu chức năng: 
a. Yêu cầu quản lý tình trạng kho hàng o Lưu trữ thông tin hàng hóa: Mã hàng 
hóa, tên hàng hóa, số lượng tồn kho, loại hàng hóa, đơn giá. o Tra cứu,tìm 
kiếm hàng hóa theo mã hàng hóa, tên hàng hóa 
o Thêm hàng hóa mới o Cập nhật thông tin hàng hóa o Xóa 
hàng hóa o Thống kê danh sách hàng hóa 
b. Yêu cầu quản lý nhà cung cấp: 
o Lập bảng lưu trữ về thông tin nhà cung cấp: tên, địa chỉ, 
sđt… o Tra cứu nhà cung cấp theo mã nhà cung cấp, tên  nhà cung cấp. 
o Thêm nhà cung cấp mới o Cập nhập thông tin nhà cung  cấp o Xóa nhà cung cấp 
o Thống kê danh sách các nhà cung cấp 
c. Yêu cầu quản lý nhập hàng: 
o Lưu trữ thông tin phiếu nhập hàng: mã phiếu nhập, ngày 
nhập, mã cung cấp, tên hàng hóa, số lượng… 
o Tra cứu đơn nhập hàng theo mã phiếu nhập, ngày… o  Thêm phiếu nhập hàng. 
o Cập nhật, sửa thông tin phiếu nhập 
o Xóa phiếu nhập sau khi thanh toán cho nhà cung cấp o 
Thống kê, báo cáo tình hình nhập hàng 
d. Yêu cầu quản lý xuất hàng: 
o Lưu trữ thông tin phiếu xuất hàng: mã phiếu xuất, ngày xuất, tên hàng hóa, 
số lượng… o Tra cứu đơn xuất hàng theo mã phiếu xuất, ngày…  o Thêm phiếu xuất 
o Cập nhật, sửa thông tin phiếu xuất o Xóa phiếu xuất sau khi được thanh 
toán o Thống kê, báo cáo tình hình xuất hàng   
e. Yêu cầu quản lý đơn đặt hàng: 
o Lưu trữ thông các đơn đặt hàng gồm: mã đơn, ngày đặt,số lượng,tên hàng…      lOMoAR cPSD| 59078336
o Tra cứu các đơn hàng theo theo mã đơn, ngày đặt hàng… o Thêm mới đơn 
hàng khi có khách hàng đặt o Cập nhật, thay đổi mặt hàng hay số lượng, 
ngày đặt… o Xóa đơn hàng. 
o Thống kê số lượng đặt hàng của từng mặt hàng theo đơn đặt hàng. 
f. Yêu cầu quản lý thống kê: o Thống kê các loại hàng được xuất hay nhập  nhiều nhất trong ngày. 
g. Yêu cầu quản lý tài khoản: 
o Xem danh sách tài khoản của người dùng. Thông tin gồm: Mã, Tên, SĐT, 
Địa chỉ, Chức vụ. o Thêm mới nhân viên o Xóa nhân viên o Đổi mật khẩu 
tài khoản o Phân quyền truy cập hệ thống: Quản lý, nhân viên.  1.2. 
Yêu cầu phi chức năng: 
- Giao diện thân thiện, dễ sử dụng  - Ổn định, hiệu quả 
- Khả năng lưu trữ, phục hồi dữ liệu 
- Yêu cầu phân quyền người dùng 
2. Use case tổng quát hệ thống:    2.1. 
Usecase quản lý tình trạng kho hàng      lOMoAR cPSD| 59078336   ID  UC2.11    Name 
Xem danh sách hàng hóa tồn kho  Brief 
Chức năng cho phép quản lý và nhân viên kiểm tra số hàng tồn kho  description  Actors  Quản lý và nhân viên  Pre-conditions 
User đã có tài khoản và đã được phân quyền vào hệ thống  Basic flow 
1. User truy cập vào trang quản trị CMS 
2. User chọn chức năng xem danh sách tồn kho  Alternative flow  Result 
Hiện danh sách hàng hóa tồn kho  Exceptions    ID   UC2.12  Name   Thông tin hàng hóa 
Brief description Chức năng cho phép quản lý và nhân viên kiểm tra thông tin hàng hóa: 
Mã hàng hóa, tên hàng hóa, số lượng tồn kho, loại hàng hóa, đơn giá.  Actors   Quản lý và nhân viên  Pre-conditions 
 User đã có tài khoản và đã được phân quyền vào hệ thống      lOMoAR cPSD| 59078336 Basic flow   
1. User truy cập vào một loại hàng hóa có trên danh sách tồn kho 
2. Hiển thị mã hàng hóa, tên hàng hóa, số lượng tồn kho, loại  hàng hóa, đơn giá  Alternative flow  Result 
 Thông tin hàng hóa theo yêu cầu  Exceptions      ID  UC2.13  Name 
Tìm kiếm hàng hóa theo mã  Brief description 
Chức năng cho phép quản lý và nhân viên tìm kiếm hàng hóa qua mã      hàng hóa.  Actors  Quản lý và nhân viên  Pre-conditions 
User đã có tài khoản và đã được phân quyền vào hệ thống  Basic flow 
1. User truy cập phần tìm kiếm hàng hóa 
2. Nhập hàng hóa cần tìm bằng mã hàng hóa đã có. 
3. Hiển thị mã hàng hóa, tên hàng hóa, số lượng tồn kho, loại  hàng hóa, đơn giá  Alternative flow    Result 
Thông tin hàng hóa theo yêu cầu  Exceptions    ID  UC2.14  Name  Thêm tồn kho  Brief description 
Chức năng cho phép nhân viên thêm tồn kho nếu có  Actors   nhân viên  Pre-conditions 
User đã có tài khoản và đã được phân quyền vào hệ thống  Basic flow 
1. User them hàng hàng hóa cần them vào tồn kho có sẵn 
2. Nhập hàng hóa: mã hàng hóa, tên hàng hóa, số lượng tồn kho,  loại hàng hóa, đơn giá 
3. Xác nhận và chờ quản lý đồng ý      lOMoAR cPSD| 59078336 Alternative flow    Result 
Thông tin hàng hóa theo yêu cầu  Exceptions    ID  UC2.15  Name  Xóa tồn kho  Brief description 
Chức năng cho phép nhân viên xóa tồn kho khi không còn mặt hàng.      Actors  nhân viên  Pre-conditions 
User đã có tài khoản và đã được phân quyền vào hệ thống  Basic flow 
1. User Xóa hàng hóa cần xóa 
2. Xác nhận và chờ quản lý đồng ý  Alternative flow    Result 
Không còn hàng hóa cần tìm  Exceptions   
2.3 Usecase Quản lý nhập hàng  ID  UC2.21  Name  Quản lý nhập hàng  Brief description 
Chức năng cho phép quản lý và nhân viên có thông tin về mặt hàng đã  nhập về kho  Actors   Quản lý và nhân viên  Pre-conditions 
User đã có tài khoản và đã được phân quyền vào hệ thống  Basic flow 
1. Thông tin thông báo về mặt hàng đã xuất kho 
2. Tự động cập nhật số mặt hàng sau khi nhập hàng  Alternative flow    Result 
Thông tin hàng hóa theo yêu cầu  Exceptions    2.4 Quản lý xuất hàng  ID  UC2.31  Name  Quản lý xuất hàng      lOMoAR cPSD| 59078336 Brief description 
Chức năng cho phép quản lý và nhân viên có thông tin về mặt hàng đã  xuất kho  Actors   Quản lý và nhân viên  Pre-conditions 
User đã có tài khoản và đã được phân quyền vào hệ thống  Basic flow 
1. Thông tin thông báo về mặt hàng đã xuất kho 
2. Tự động cập nhật số mặt hàng sau khi đã xuất kho và hiển thị 
số hàng còn tồn trong kho.  Alternative flow    Result 
Thông tin hàng hóa theo yêu cầu  Exceptions   
2.5.Quản lý phiếu xuất/nhập hang    ID  UC2.41  Name 
Danh sách các phiếu xuất nhập kho    Brief description 
Chức năng cho phép quản lý và nhân viên có thông tin về mặt hàng đã 
xuất kho, nhập kho theo ngày tháng năm      lOMoAR cPSD| 59078336 Actors   Quản lý và nhân viên  Pre-conditions 
User đã có tài khoản và đã được phân quyền vào hệ thống  Basic flow  1. Truy cập vào danh sách  2. Hiển thị danh sách  Alternative flow    Result  Danh sách theo yêu cầu  Exceptions    ID  UC2.42  Name  Thông tin phiếu  Brief description 
Chức năng cho phép quản lý và nhân viên có thông tin về mặt hàng đã 
xuất kho, nhập kho theo ngày tháng năm bao gồm: mã hàng hóa, tên 
hàng hóa, số lượng tồn kho, loại hàng hóa, đơn giá  Actors   Quản lý và nhân viên  Pre-conditions 
User đã có tài khoản và đã được phân quyền vào hệ thống  Basic flow  1. Truy cập vào danh sách 
2. Truy cập vào phiếu cần kiểm tra  Alternative flow    Result 
Phiếu cần kiểm tra theo yêu cầu  Exceptions    ID  UC2.43  Name  Thông tin phiếu  Brief description 
Chức năng cho phép quản lý và nhân viên có thông tin về mặt hàng đã 
xuất kho, nhập kho theo ngày tháng năm bao gồm: mã hàng hóa,   
tên hàng hóa, số lượng tồn kho, loại hàng hóa, đơn giá  Actors   Quản lý và nhân viên  Pre-conditions 
User đã có tài khoản và đã được phân quyền vào hệ thống  Basic flow  1. Truy cập vào danh sách 
2. Tìm kiếm phiếu thông qua ngày tháng năm  Alternative flow    Result 
Phiếu cần kiểm tra theo yêu cầu      lOMoAR cPSD| 59078336 Exceptions    2.5.Quản lý tài khoản    2.4.1  Name  Thêm kỹ thuật viên  Brief description 
Cho phép quản lý có thể thêm được tài khoản vào sử dụng hệ thống  Actors  Quản lý  Pre-conditions 
Quản lý đã có tài khoản và đã được phân quyền vào hệ thống  Basic flow 
1. Quản lý truy cập vào trang quản trị cms 
2. Quản lý chọn “Quản lý tài khoản” 
3. Quản lý chọn “Thêm tài khoản” 
4. Quản lý Nhập tất cả các trường thông tin tài khoản và chọn 
button “Thêm tài khoản” 
5. Hệ thống validate trường thông tin của tài khoản và tạo tài  khoản mới 
6. Hệ thống thông báo “Thêm tài khoản thành công” và refresh 
lại danh sách tài khoản hiển thị      lOMoAR cPSD| 59078336 Alternative flow 
5.1 Thông tin của tài khoản sai định dạng/lỗi/không xác thực thì Hệ   
thống hiển thị thông báo và dừng tiến trình thêm mới tài khoản  Result 
Quản lý thêm mới thành công tài khoản  Exceptions 
 Nếu Quản lý không nhập đủ các trường, hiển thị thông báo yêu cầu 
nhập dưới mỗi trường 
2.4.2. Usecase: Xóa kỹ thuật viên:  Name  Xóa kỹ thuật viên  Brief description 
Chức năng cho phép quản lý xóa được kỹ thuật viên trong danh sách  người dùng hệ thống  Actors  Quản lý  Pre-conditions 
Quản lýđã có tài khoản và đã được phân quyền vào hệ thống  Basic flow  1. 
Quản lý truy cập vào trang quản trị CMS  2. 
Quản lý chọn chức năng “Quản lý tài khoản”  3. 
Hệ thống hiển thị danh sách tất cả tài khoản có  trong hệthống  4. 
User chọn 1 tài khoản muốn xóa, và chọn “Xóa  tài khoản”  5. 
Hệ thống thông báo “Xác nhận xóa”  6. 
User chọn “Xác nhận xóa”  7. 
Hệ thống xóa tài khoản đó trong dánh sách ống  tài khoản và 
refresh lại danh sách tài khoản  Alternative flow    Result 
Quản lý xóa được tài khoản thành công  Exceptions   
 2.4.3 Usecase: Tìm kiếm nhân viên:  Name  Tìm kiếm nhân viên  Brief description 
Chức năng cho phép quản trị viên tìm kiếm thông tin kỹ thuật viên  Actors  Quản lý  Pre-conditions 
Quản lý đã có tài khoản và đã được phân quyền vào hệ thống  Basic flow   
1. Quản lý truy cập vào trang quản trị CMS      lOMoAR cPSD| 59078336  
2. Quản lý chọn chức năng “Quản lý tài khoản” 
3. User tìm kiếm thông tin nhân viên bằng cách nhập mã Kỹ thuật 
viên hoặc tên nhân viên để tìm kiếm 
4. Hệ thống hiển thị kết quả tìm kiếm cho Quản lý xem  Alternative flow 
4.1 Hệ thống không tìm kiếm được thông tin thì thông báo lỗi/không tìm 
thấy nhân viên nào cho Quản lý biết và refresh lại danh sách tài khoản.  Result 
User tìm kiếm thành công thông tin nhân viên  Exceptions   
2.4.4 Usecase: Đổi mật khẩu:  Name  Đổi mật khẩu  Brief description 
Chức năng cho phép User đổi được mật khẩu đăng nhập hệ thống  Actors  User dùng hệ thống  Pre-conditions 
User đã có tài khoản và đã được phân quyền vào hệ thống  Basic flow 
1. User truy cập vào trang quản trị CMS 
2. User chọn chức năng “Quản lý tài khoản” 
3. User chọn “Đổi mật khẩu” 
4. Hệ thống hiển thị form đổi mật khẩu bao gồm các 
trườngthông tin: nhập mật khẩu cũ, nhập mật khẩu mới, xác nhận  mật khẩu mới 
5. User nhập đầy đủ thông tin trên form và chọn “Đổi  mậtkhẩu” 
6. Hệ thống xử lý đổi mật khẩu cho User và thông báo 
“Đổimật khẩu thành công”  Alternative flow    Result 
User đổi được mật khẩu tài khoản của mình thành công  Exceptions    - 
User nhập sai thông tin mật khẩu cũ thì hiển thị thông báo    ngay dưới trường đó 
2.4.5 Usecase: Phân quyền tài khoản:      lOMoAR cPSD| 59078336 Name  Phân quyền tài khoản  Brief description 
Chức năng cho phép quản lý phân quyền cho tài khoản.  Actors  Quản lý  Pre-conditions 
Quản lý đã có tài khoản và đã được phân quyền vào hệ thống  Basic flow 
1. Quản lý truy cập vào trang quản trị CMS 
2. Quản lý chọn chức năng “Quản lý tài khoản” 
3. Quản lý chọn “Phân quyền tài khoản” 
4. Hệ thống hiển thị dánh sách tài khoản và quyền tương ứng 
5. Quản lý chọn 1 tài khoản muốn phân quyền lại và chỉnh sửa 
quyền của tài khoản đó 
6. Quản lý “Lưu lại” 
7. Hệ thống hiển thị thông báo phân quyền thành công  Alternative flow    Result 
Quản lý phân quyền thành công cho tài khoản  Exceptions      III. 
THIẾT KẾ CHI TIẾT 
1. Thiết kế biểu đồ tuần tự  1.1. 
Biểu đồ tuần tự khách hàng      lOMoAR cPSD| 59078336   1.2. 
Biểu đồ tuần tự nhà cung cấp      lOMoAR cPSD| 59078336   1.3. 
Biểu đồ trình tự hàng hóa        lOMoAR cPSD| 59078336   1.4. 
Biểu đồ tuần tự đơn hàng      lOMoAR cPSD| 59078336   1.5. 
Biểu đồ tuần tự phiếu nhập hàng      lOMoAR cPSD| 59078336   1.6. 
Biểu đồ tuần tự xuất hàng       lOMoAR cPSD| 59078336   1.7. 
Biểu đồ tuần tự người dùng