1. Trang chủ
  2. » Luận Văn - Báo Cáo

XÂY DỰNG PHẦN MỀM QUẢN LÝ SIÊU THỊ MINI KẾT HỢP NHẬN DIỆN - Full 10 điểm

95 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Phần Mềm Quản Lý Siêu Thị Mini Kết Hợp Nhận Diện
Tác giả Lê Trần Kim Thảo
Người hướng dẫn ThS. Trần Thị Diệu Hiền
Trường học Trường Đại Học Quảng Nam
Chuyên ngành Công Nghệ Thông Tin
Thể loại khóa luận tốt nghiệp đại học
Năm xuất bản 2022
Thành phố Quảng Nam
Định dạng
Số trang 95
Dung lượng 3,65 MB

Nội dung

UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: TOÁN – TIN ---------- LÊ TRẦN KIM THẢO XÂY DỰNG PHẦN MỀM QUẢN LÝ SIÊU THỊ MINI KẾT HỢP NHẬN DIỆN KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Quảng Nam, tháng 05 năm 2022 UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: TOÁN – TIN ---------- KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: XÂY DỰNG PHẦN MỀM QUẢN LÝ SIÊU THỊ MINI KẾT HỢP NHẬN DIỆN Sinh viên thực hiện LÊ TRẦN KIM THẢO MSSV: 2118100132 CHUYÊN NGÀNH:CÔNG NGHỆ THÔNG TIN KHÓA 2018 – 2022 Cán bộ hướng dẫn ThS. Trần Thị Diệu Hiền MSCB: ……… Quảng Nam, tháng 05 năm 2022 MỤC LỤC 1. Lý do chọn đề tài ........................................................................................................................ 1 2. Mục tiêu của đề tài ..................................................................................................................... 1 3. Đối tượng và phạm vi nghiên cứu ............................................................................................... 2 4. Phương pháp nghiên cứu ............................................................................................................ 2 5. Lịch sử nghiên cứu ..................................................................................................................... 2 6. Đóng góp của đề tài .................................................................................................................... 2 7. Cấu trúc đề tài ............................................................................................................................ 2 PHẦN 2. NỘI DUNG NGHIÊN CỨU ............................................................................................... 4 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ................................................................................................... 4 1.1. Giới thiệu ngôn ngữ lập trình C# và hệ quản trị cơ sở dữ liệu SQL Server ................................... 4 1.1.1. Ngôn ngữ lập trình C# .................................................................................................... 4 1.1.1.1. Khái niệm ...................................................................................................................... 4 1.1.1.2. Mục tiêu của việc phát triển C# ...................................................................................... 4 1.1.1.3. Đặc trưng của ngôn ngữ lập trình C# .............................................................................. 5 1.1.1.4. Ưu điểm của ngôn ngữ lập trình C# ................................................................................ 5 1.1.1.5. Ứng dụng của ngôn ngữ lập trình C# .............................................................................. 6 1.1.1.6. Quá trình dịch của C#..................................................................................................... 7 1.1.2. Hệ quản trị cơ sở dữ liệu SQL Server .............................................................................. 8 1.1.2.1. Khái niệm ...................................................................................................................... 8 1.1.2.2. Các tính năng của sqlserver ............................................................................................ 8 1.2. Tổng quan về nhận diện khuôn mặt............................................................................................. 9 1.2.1. Giới thiệu về nhận diện khuôn mặt .................................................................................. 9 1.2.2. Các bước của quá trình nhận diện khuôn mặt .................................................................10 1.2.3. Những khó khăn trong bài toán nhận diện khuôn mặt .....................................................10 1.2.4. Một số lĩnh vực ứng dụng ..............................................................................................11 1.2.5. Một số thư viện hỗ trợ nhận diện khuôn mặt trong ngôn ngữ lập trình C# .......................12 1.3. Mã hóa thông tin .......................................................................................................................14 1.2.1. Giới thiệu về mã hóa thông tin .......................................................................................14 1.2.2. Mã hóa bí mật ................................................................................................................15 CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG ................................................................16 2.1. Khảo sát hệ thống ......................................................................................................................16 2.1.1. Mô tả hiện trạng của hệ thống hiện tại ............................................................................16 2.1.1.1. Giới thiệu hệ thống hiện tại ...........................................................................................16 2.1.1.2. Ưu điểm và khuyết điểm ...............................................................................................16 2.1.2. Hướng phát triển của hệ thống mới ................................................................................17 2.1.3. Lập kế hoạch khảo sát ....................................................................................................17 2.1.3.1. Khảo sát sơ bộ...............................................................................................................17 2.1.3.2. Khảo sát chi tiết ............................................................................................................18 2.1.3.3. Lập báo cáo kết quả thu được ........................................................................................22 2.1.4. Mô tả bài toán ................................................................................................................23 2.1.5. Yêu cầu chức năng.........................................................................................................24 2.1.6. Mô hình Ri ....................................................................................................................25 2.1.7. Đặc tính từng người dùng ..............................................................................................28 2.1.8. Yêu cầu phi chức năng ...................................................................................................28 2.2. Phân tích hệ thống .....................................................................................................................28 2.2.1. Phân tích chức năng .......................................................................................................28 2.2.1.1. Actor .............................................................................................................................28 2.2.1.2. Usecase .........................................................................................................................30 2.2.1.3. Object và class ..............................................................................................................35 2.2.1.4. Sơ đồ tuần tự .................................................................................................................38 2.2.1.5. Sơ đồ cộng tác...............................................................................................................41 2.2.1.6. Sơ đồ trạng thái .............................................................................................................43 2.2.1.7. Sơ đồ hoạt động ............................................................................................................47 2.2.2. Phân tích dữ liệu ............................................................................................................50 2.2.2.1. Sơ đồ E – R ...................................................................................................................50 2.2.2.2. Sơ đồ dữ liệu quan hệ ....................................................................................................51 CHƯƠNG 3: THIẾT KẾ VÀ CÀI ĐẶT HỆ THỐNG .......................................................................52 3.1. Thiết kế hệ thống .......................................................................................................................52 3.1.1. Thiết kế cơ sở dữ liệu .....................................................................................................52 3.1.2. Thiết kế chức năng.........................................................................................................60 3.1.3. Thiết kế giao diện ..........................................................................................................62 3.2. Cài đặt hệ thống ........................................................................................................................64 3.2.1. Một số đoạn code quan trọng .........................................................................................64 3.2.2. Một số giao diện của phần mềm .....................................................................................67 PHẦN 3. KẾT LUẬN VÀ KIẾN NGHỊ ............................................................................................85 PHẦN 4. TÀI LIỆU THAM KHẢO ..................................................................................................86 DANH MỤC HÌNH ẢNH Hình 2.1. Biểu mẫu hóa đơn nhập .....................................................................................................21 Hình 2.2. Biểu mẫu hóa đơn xuất ......................................................................................................22 Hình 2.3. Sơ đồ usecase tổng quát .....................................................................................................30 Hình 2.4. Sơ đồ class ........................................................................................................................37 Hình 2.5. Sơ đồ tuần tự usecase Đăng nhập .......................................................................................38 Hình 2.6. Sơ đồ tuần tự usecase Thêm sản phẩm ...............................................................................38 Hình 2.7. Sơ đồ tuần tự usecase Tìm kiếm kho ..................................................................................39 Hình 2.8. Sơ đồ tuần tự usecase Cập nhập thông tin nhân viên ...........................................................39 Hình 2.9. Sơ đồ tuần tự usecase Xóa nhà cung cấp ............................................................................40 Hình 2.10. Sơ đồ tuần tự usecase Thống kê số dư và số lượng tiêu thụ của sản phẩm .........................40 Hình 2.11. Sơ đồ cộng tác usecase Đăng nhập ...................................................................................41 Hình 2.12. Sơ đồ cộng tác usecase Thêm sản phẩm ...........................................................................41 Hình 2.13. Sơ đồ cộng tác usecase Tìm kiếm kho ..............................................................................42 Hình 2.14. Sơ đồ cộng tác usecase Cập nhập thông tin nhân viên.......................................................42 Hình 2.15. Sơ đồ cộng tác usecase Xóa nhà cung cấp ........................................................................42 Hình 2.16. Sơ đồ cộng tác usecase Thống kê số dư và số lượng tiêu thụ của sản phẩm.......................43 Hình 2.17. Sơ đồ trạng thái class Loại hàng .......................................................................................43 Hình 2.18. Sơ đồ trạng thái class Mặt hàng........................................................................................43 Hình 2.19. Sơ đồ trạng thái class Người dùng ....................................................................................44 Hình 2.20. Sơ đồ trạng thái class Nhân viên ......................................................................................44 Hình 2.21. Sơ đồ trạng thái class Lương ............................................................................................44 Hình 2.22. Sơ đồ trạng thái class Phiếu xuất ......................................................................................45 Hình 2.23. Sơ đồ trạng thái class Chi tiết phiếu xuất ..........................................................................45 Hình 2.24. Sơ đồ trạng thái class Phiếu nhập .....................................................................................45 Hình 2.25. Sơ đồ trạng thái class Chi tiết phiếu nhập .........................................................................46 Hình 2.26. Sơ đồ trạng thái class Loại khách hàng .............................................................................46 Hình 2.27. Sơ đồ trạng thái class Kho................................................................................................46 Hình 2.28. Sơ đồ hoạt động usecase Đăng nhập.................................................................................47 Hình 2.29. Sơ đồ hoạt động usecase Thêm sản phẩm .........................................................................47 Hình 2.30. Sơ đồ hoạt động usecase Tìm kiếm kho............................................................................48 Hình 2.31. Sơ đồ hoạt động usecase Cập nhập thông tin nhân viên ....................................................48 Hình 2.32. Sơ đồ hoạt động usecase Xóa nhà cung cấp ......................................................................49 Hình 2.33. Sơ đồ hoạt động usecase Thống kê số dư và số lượng tiêu thụ của sản phẩm ....................49 Hình 2.34. Sơ đồ E – R .....................................................................................................................50 Hình 2.35. Sơ đồ dữ liệu quan hệ ......................................................................................................51 Hình 3.1. Mối quan hệ giữa các bảng ................................................................................................59 Hình 3.2. Giao diện hộp thoại............................................................................................................62 Hình 3.3. Giao diện nhập dữ liệu dạng điền dữ liệu ...........................................................................63 Hình 3.4. Giao diện nhập dữ liệu dạng câu hỏi (đóng) .......................................................................63 Hình 3.5. Giao diện nhập dữ liệu kết hợp 2 dạng ...............................................................................63 Hình 3.6. Giao diện báo cáo ..............................................................................................................64 Hình 3.7. Code mã hóa bí mật trong C#.............................................................................................64 Hình 3.8. Code phát hiện khuôn mặt trong C# ...................................................................................65 Hình 3.9. Code nhận diện khuôn mặt trong C# ..................................................................................66 Hình 3.10. Code nhận diện khuôn mặt trong C# ................................................................................66 Hình 3.11. Giao diện form đăng nhập ................................................................................................67 Hình 3.12. Giao diện form đăng nhập bằng khuôn mặt ......................................................................68 Hình 3.13. Giao diện form hệ thống quản lý sản phẩm.......................................................................69 Hình 3.14. Giao diện form hệ thống báo cáo thống kê .......................................................................70 Hình 3.15. Giao diện form hệ thống quản lý hóa đơn nhập ................................................................71 Hình 3.16. Giao diện form chi tiết hóa đơn nhập hàng .......................................................................71 Hình 3.17. Giao diện form hệ thống quản lý hóa đơn xuất .................................................................72 Hình 3.18. Giao diện form chi tiết xuất hàng .....................................................................................73 Hình 3.19. Giao diện form thêm sản phẩm ........................................................................................73 Hình 3.20. Giao diện form tạo hóa đơn nhập .....................................................................................74 Hình 3.21. Giao diện form tạo hóa đơn xuất ......................................................................................74 Hình 3.22. Giao diện form cập nhập sản phẩm ..................................................................................75 Hình 3.23. Giao diện form cập nhập hóa đơn nhập ............................................................................75 Hình 3.24. Giao diện form cập nhập hóa đơn xuất .............................................................................76 Hình 3.25. Giao diện form đổi mật khẩu............................................................................................76 Hình 3.26. Giao diện form nhập file excel .........................................................................................77 Hình 3.27. Giao diện form in hóa đơn nhập .......................................................................................77 Hình 3.28. Giao diện form in hóa đơn xuất ........................................................................................77 Hình 3.29. Giao diện form thống kê lượng tiền ra vào dạng biểu đồ...................................................78 Hình 3.30. Giao diện form thống kê lượng tiền ra vào dạng bảng.......................................................78 Hình 3.31. Giao diện form thống kê số dư và số lượng tiêu thụ vào dạng biểu đồ...............................79 Hình 3.32. Giao diện form thống kê số dư và số lượng tiêu thụ vào dạng bảng ..................................79 Hình 3.33. Giao diện form thống kê lương nhân viên ........................................................................80 Hình 3.34. Giao diện form thống kê sản phẩm theo nhà cung cấp ......................................................80 Hình 3.35. Giao diện form thống kê lợi nhuận vào dạng biểu đồ ........................................................81 Hình 3.36. Giao diện form thống kê lợi nhuận vào dạng bảng ............................................................81 Hình 3.37. Giao diện form thống kê sản phẩm bán chạy vào dạng biểu đồ .........................................82 Hình 3.38. Giao diện form thống kê sản phẩm bán chạy vào dạng bảng .............................................82 Hình 3.39. Giao diện form thống kê hóa đơn nhập còn nợ .................................................................83 Hình 3.40. Giao diện form thống kê hóa đơn xuất còn nợ ..................................................................83 Hình 3.41. Giao diện form thống kê hóa đơn nhập còn chưa đến kho .................................................84 LỜI CẢM ƠN Trong suốt thời gian 4 năm học tập và rèn luyện tại Trường Đại học Quảng Nam cho đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô và bạn bè. Với lòng biết ơn sâu sắc và chân thành nhất, em xin gửi đến quý Thầy Cô ở Khoa Toán Tin – Ngành Công nghệ thông tin đã cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường. Và đặc biệt, trong năm học cuối này, em vinh dự được nằm trong top 20 sinh viên làm khóa luận tốt nghiệp. Và đề tài của em là“Xây dựng phần mềm Quản lý siêu thị MiNi kết hợp nhận diện”. Em xin chân thành cảm ơn Thạc sĩ Trần Thị Diệu Hiền đã tận tâm hướng dẫn em qua từng buổi học trên lớp cũng như những buổi nói chuyện, thảo luận về lĩnh vực sáng tạo trong nghiên cứu khoa học. Em cũng xin bày tỏ lòng biết ơn đến ban lãnh đạo của Trường Đại học Quảng Nam và các Khoa Phòng ban chức năng đã trực tiếp và gián tiếp giúp đỡ em trong suốt quá trình học tập và nghiên cứu đề tài này. Không thể không nhắc tới sự chỉ đạo của Ban lãnh đạo Công ty Cổ phần Dịch vụ xử lý số FPT nhờ có sự giúp đỡ nhiệt tình của các anh chị ở các phòng ban, đã tạo điều kiện thuận lợi nhất cho em trong suốt thời gian thực tập tại Công ty. Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của một sinh viên, bài báo cáo này không thể tránh được những thiếu sót. Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các quý thầy cô để em có điều kiện bổ sung, nâng cao ý thức của mình, phục vụ tốt hơn công tác thực tế sau này. Em xin chân thành cảm ơn! Sinh viên Lê Trần Kim Thảo 1 PHẦN 1. MỞ ĐẦU 1. Lý do chọn đề tài Những năm gần đây các cuộc cách mạng khoa học công nghệ đang diễn ra một cách sôi động chưa từng thấy trên toàn thế giới, nó đã thúc đẩy loài người nhanh chóng bước sang một kỷ nguyên mới. Đó là một kỷ nguyên của nền văn minh dựa trên cơ sở công nghiệp trí tuệ nhân tạo. Mở đầu cho cuộc cách mạng khoa học và công nghệ thông tin hiện nay đã và đang xâm nhập vào mọi lĩnh vực hoạt động của xã hội loài người nó mang lại nhiều lợi ích cao cũng như những lợi nhuận khổng lồ và cùng với nó là sự giải quyết về công việc ngày càng nhanh chóng, mang lại hiệu quả kinh tế cao. Đời sống con người ngày càng phát triển, dẫn đến nhu cầu mua sắm và buôn bán của người dân ngày càng được nâng cao. Công việc quản lý của các chủ cửa hàng càng gặp nhiều khó khăn và phức tạp. Việc đưa ra các ứng dụng công nghệ thông tin đã giúp giảm tải công việc quản lý bằng thủ công của con người là điều rất cần thiết để giải quyết vấn đề trên. Là một chủ cửa hàng hay một người quản lý, chúng ta mong chờ đó là lợi nhuận, thương hiệu và sự phát triển hiện đại hóa lĩnh vực quản lý của cửa hàng. Mục đích cơ bản của việc xây dựng hệ thống quản lý cửa hàng nhằm phục vụ cho việc mua bán của cửa hàng, cung cấp những thông tin đầy đủ, chính xác, nhanh chóng cho cửa hàng, cho khách hàng, và đáp ứng được các yêu cầu của người tiêu dùng. Tuy nhiên, đa phần các phần mềm quản lý chưa được kết hợp nhận diện khung mặt để truy cấp phần mềm, chưa có phân tán dữ liệu và chưa có kết hợp mã hóa thông tin qua khóa bí mật. Qua nghiên cứu và quan sát nhiều cửa hàng, siêu thị MiNi nên em đã chọn đề tài: “Xây dựng phần mềm Quản lý siêu thị MiNi kết hợp nhận diện” dành cho các cửa hàng, siêu thị MiNi vừa và nhỏ. 2. Mục tiêu của đề tài  Hiểu rõ về quá trình nhận diện khuôn mặt  Phân tích, thiết kế và xây dựng được hệ thống quản lý Siêu Thị MiNi  Kết hợp được nhận diện khuôn mặt vào trong phần mềm 2 3. Đối tượng và phạm vi nghiên cứu  Phân tích hệ thống thông tin theo hướng đối tượng  Xây dựng phần mềm quản lý Siêu Thị MiNi có kết hợp nhận diện 4. Phương pháp nghiên cứu  Khảo sát  Phỏng vấn  Phân tích hệ thống thông tin theo hướng đối tượng 5. Lịch sử nghiên cứu Trước đây, đã có rất nhiều đề tài nghiên cứu về vấn đề này, chẳng hạn:  Báo cáo thực tập tốt nghiệp với đề tài Quản lý bán hàng siêu thị của Nguyễn Đức Hồ ngành Tin Học Ứng Dụng, Viện Đại Học Mở Hà Nội  Báo cáo phân tích thiết kế hệ thống thông tin với đề tài Quản lý bán hàng trong siêu thị của Trần Thanh Hoa và Đậu Văn Thắng, Trường Đại Học Bách Khoa Hà Nội  Báo cáo môn học phân tích và thiết kế hướng đối tượng bằng UML với đề tài Phân tích thiết kế chương trình việc mua bán hàng ở siêu thị của nhóm 08, Trường Đại Học Cần Thơ năm 2008 – 2009 Tuy nhiên, tất cả các đề tài đó chỉ dừng ở việc phân tích và thiết kế hệ thống theo hướng đối tượng chưa có kết hợp nhận diện khuôn mặt 6. Đóng góp của đề tài Đề tài có thể giúp cho các bạn đọc hiểu rõ hơn về nhận diện khuôn mặt và kết hợp vào trong phần mềm quản lý và có thể ứng dụng trong thực tế. 7. Cấu trúc đề tài PHẦN 1. MỞ ĐẦU PHẦN 2. NỘI DUNG NGHIÊN CỨU Chương 1: Cơ sở lý thuyết Chương 2: Khảo sát và phân tích hệ thống Chương 3: Thiết kế và cài đặt hệ thống 3 PHẦN 3. KẾT LUẬN VÀ KIẾN NGHỊ PHẦN 4. TÀI LIỆU THAM KHẢO PHẦN 5. PHỤ LỤC 4 PHẦN 2. NỘI DUNG NGHIÊN CỨU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1.Giới thiệu ngôn ngữ lập trình C# và hệ quản trị cơ sở dữ liệu SQL Server 1.1.1. Ngôn ngữ lập trình C# 1.1.1.1.Khái niệm C# Là một trong những ngôn ngữ lập trình theo hướng đối tượng được phát triển và ra mắt do Anders Hejlsberg phát triển vào năm 2001. Ngôn ngữ này được đầu tư bởi Microsoft và còn được xem như đối thủ “nặng ký” của Java. C# có sự kết hợp chặt chẽ cùng với .NET Framework nhằm hỗ trợ cho việc tạo ra các ứng dụng Windows Forms hoặc WPF được trở nên dễ dàng và nhanh chóng hơn. Cho tới hiện nay thì C# đang là một trong những ngôn ngữ được đông đảo người dùng ưu tiên sử dụng và dần trở thành ngôn ngữ lập trình phổ biến nhất trên thế giới. 1.1.1.2.Mục tiêu của việc phát triển C# Tiêu chuẩn ECMA liệt kê các mục tiêu của việc thiết kế ngôn ngữ C#:  Ngôn ngữ được dự định là một ngôn ngữ lập trình đơn giản, hiện đại, hướng đến nhiều mục đích sử dụng, và là một ngôn ngữ lập trình hướng đối tượng.  Ngôn ngữ và việc triển khai đáp ứng các nguyên tắc của ngành kỹ thuật phần mềm như kiểm tra chặt chẽ kiểu dữ liệu, kiểm tra giới hạn mảng, phát hiện các trường hợp sử dụng các biến chưa có dữ liệu, và tự động thu gom rác. Tính mạnh mẽ, sự bền bỉ, và năng suất của việc lập trình là rất quan trọng đối với ngôn ngữ này.  Ngôn ngữ sẽ được sử dụng để phát triển các thành phần của phần mềm theo hướng thích hợp cho việc triển khai trong các môi trường phân tán.  Khả năng di chuyển (portability) là rất quan trọng, đặc biệt là đối với những lập trình viên đã quen với C và C++.  Hỗ trợ quốc tế hóa (i18n). 5  Ngôn ngữ sẽ được thiết kế để phù hợp với việc viết các ứng dụng cho cả hai hệ thống: hosted và nhúng, từ các phần mềm quy mô lớn, đến các phần mềm chỉ có các chức năng đơn giản.  Mặc dù các ứng dụng C# có tính kinh tế đối với các yêu cầu về bộ nhớ và chế độ xử lý, ngôn ngữ này không cạnh tranh trực tiếp về hiệu năng và kích thước đối với ngôn ngữ C hoặc assembly. 1.1.1.3.Đặc trưng của ngôn ngữ lập trình C#  Tính đơn giản: C# là một trong những loại ngôn ngữ được xây dựng dựa trên nền tảng của C++ và Java. Nhờ vậy, mà chúng hầu như đều có cấu trúc chương trình khá giống nhau. Mặc dù C# là ngôn ngữ “sinh sau đẻ muộn” nhưng nhờ có nhiều cải tiến mới nên rất phù hợp với mọi đối tượng lập trình viên. Một số cải tiến của nó đó chính là cấu trúc được rút gọn sao cho dễ nhớ và đơn giản hơn.  C# là ngôn ngữ dễ sử dụng và có tính hiện đại cao.  Ngôn ngữ lập trình C# được các chuyên gia nhận xét là loại ngôn ngữ thuần hướng các tố tượng. Nó bao gồm các tính như: Trừu tượng, đa hình, kế thừa và đóng gói.  So với những loại ngôn ngữ lập trình khác thì C# sử dụng lượng từ khóa ít hơn rất nhiều. Nhờ đặc điểm này mà các lập trình viên đều thuận tiện hơn rất nhiều cho việc xây dựng lên các đối tượng dành riêng cho mình. 1.1.1.4.Ưu điểm của ngôn ngữ lập trình C# C# được đánh giá là ngôn ngữ lập trình có tính linh hoạt và nhiều ưu điểm nổi bật, cụ thể như sau:  Quy mô của chương trình: C# thường được sử dụng để viết trên các hệ thống vi điều khiển có kích cỡ 8bit. Ngoài ra, nó còn được sử dụng trong các hệ thống trên 64bit hoặc hệ thống siêu máy tính.  C# là ngôn ngữ có hiệu suất cao, có thể chạy mượt trên mọi hệ thống giới hạn về dung lượng. Bởi vì ngay từ những ngày đầu thì C# đã được thiết kế cho mục đích thay thế cho ASM trong những hệ thống có bộ nhớ hạn chế. 6  C# có khả năng thực hiện các thuật toán giúp hỗ trợ rất nhiều kiểu dữ liệu khác nhau cũng như việc chuyển đổi sẽ trở nên dễ dàng hơn. Ngôn ngữ lập trình C# còn có khả năng cung cấp thư viện chuẩn với hàm có chức năng và công cụ toán học.  C# là ngôn ngữ sở hữu cú pháp rất sát với những suy nghĩ logic, nhờ vậy mà việc viết code sẽ được đơn giản hóa và nhanh chóng hơn.  C# là loại ngôn ngữ lập trình rất an toàn và nó không cho phép việc chuyển đổi kiểu dữ liệu để có thể giảm tránh được những vấn đề sai lệch xảy ra.  Trong C# sẽ cho kết quả trả về thuộc các hàm đa phần đều là một object. Các lỗi lập trình phổ biến như: gõ nhầm tên, viết sai cấu trúc… đều sẽ được hệ thống cảnh báo luôn mà không cần phải chờ đến lúc chạy.  C# thường được đi cùng với Visual Studio và bộ đôi này được sử dụng rất nhiều cho việc xây dựng Winform, WPF, website bằng MVC.NET. Hiện nay, nó ngày càng trở nên phổ biến trong việc xây dựng nền tảng cho các ứng dụng di động. Hiện nay, việc học C# sẽ trở nên dễ dàng hơn bởi cộng đồng C# đang rất phát triển và rộng mở. Chính vì vậy, các nhà phát triển cũng như lập trình viên ngôn ngữ C# có thể hỗ trợ, giúp đỡ cùng nhau phát triển kỹ năng và kinh nghiệm về C#. 1.1.1.5.Ứng dụng của ngôn ngữ lập trình C#  Phát triển web backend (ASP.NET MVC, ASP.NET core, Web API,Graph API,gPRC, Blazor sevver,Uno platform, Mono)  Phát triển web front end (Blazor WebAssembly,Uno platform)  Phát triển desktop app (Winform, WPF, UWP,WinUI, Mono, Uno, MAUI,Blazor desktop...)  Phát triển game 2D, 3D đa nền tảng (Game engine:Unity, Monogame, Godot, Stride, CryEngine, NeoAxis..)  Phát triển thực tế ảo (VR), thực tế tăng cường(AR), thực tế hỗn hợp (MR) (HoloLens,Unity,CryEngine, Oculus quest..) 7  Phát triển ứng dụng đồ họa 2D,3D đa nền tảng (2D: SkiaSharp, ImageSharp...; 3D: OpenTK, SharpDX, SharpVulkan, Vulkan.NET, Veldrid, Silk.NET..)  Phát triển mobile app, IOS native, Android native (Xamarin,MAUI,Uno platform)  Phát triển đám mây (Azure,AWS,Google Cloud...)  Học máy và trí tuệ nhân tạo (ML.Net, TensorFlow, csiSharp..)  Data science, bigdata (csiSharp, Apache Spark)  Blockchain (NEO, Stratis)  Microservices and containers  Internet of thing (IoT,5G)  Hệ thống nhúng (Raspberry pi, PLC) 1.1.1.6.Quá trình dịch của C# Người ta thường gọi C# là ngôn ngữ biên dịch bởi khi được build thì nó là trình biên dịch, trình này sẽ thực hiện chuyển đạn C# thành một trong những ngôn ngữ trung gian. C# được gọi là Microsoft Intermediate Language (MSIL) và được lưu dưới dạng một file theo thiên hướng thực thi (exe). Nếu như chạy file thực thi thì .NET Framework sẽ được gọi là Just In Time Compiler để thực hiện chuyển MSIL code trở thành ngôn ngữ của máy rồi thực hiện chương trình. Loại ngôn ngữ trung gian này thường giống với các loại ngôn ngữ máy nên bạn có thể dịch nó ra rất nhanh. Quá trình thực hiện biên dịch của ngôn ngữ C#:  Bước 1: Thực hiện Click chuột phải vào project chọn build. Visual Studio sẽ thực hiện gọi trình biên dịch. Tiếp đó, mã C# sẽ được chuyển đổi để trở thành một loại ngôn ngữ trung gian Microsoft Intermediate Language (MSIL). Sau khi chương trình này kết thúc thì việc đóng gói thành file exe sẽ được thực hiện.  Bước 2: Click chuột phải vào project, chọn Open folder in file explorer.  Bước 3: Vào thư mục bin/debug, lúc này chương trình của bạn đã được chuyển thành dạng .exe. và file exe này có chứa mã MSIL. 8  Bước 4: Tiến hành viết nội dung cho chương trình, thông tin như sau: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DuAn { class Program { static void Main(string[] args) { /* Nội dung bạn cần viết */ Console.WriteLine(“Xin chào”); Console.ReadKey(); } } } Thực hiện chạy file .exe vào lúc này thì MSLI đã được chuyển hướng trở thành ngôn ngữ máy. Vì vậy, thông qua Just In Time Compiler thì máy tính sẽ hiểu được các dòng lệnh mà bạn đã viết rồi xuất ra kết quả như màn hình hiển thị. 1.1.2. Hệ quản trị cơ sở dữ liệu SQL Server 1.1.2.1.Khái niệm SQL Server (viết tắt của cụm từ Structured Query Language) là một hệ thống quản lý cơ sở dữ liệu quan hệ (Relational Database Management System, viết tắt là RDBMS). SQL Server có khả năng hỗ trợ một số lượng lớn các quy trình xử lý giao dịch, ứng dụng doanh nghiệp và ứng dụng phân tích trong các công ty hoạt động trong lĩnh vực IT. Cũng giống như các hệ thống quản lý cơ sở dữ liệu qua hệ khác, SQL Server được xây dựng trên lớp SQL – là ngôn ngữ lập trình tiêu chuẩn hoá được quản trị viên cơ sở dữ liệu (DBAs) và các chuyên gia IT sử dụng để quản lý cơ sở dữ liệu và truy vấn các dữ liệu nằm bên trong. 1.1.2.2.Các tính năng của sqlserver  Tính năng doanh nghiệp chuyên biệt Microsoft hiện nay đã ra mắt thêm các tính năng quản lý dữ liệu đa dạng dành cho doanh nghiệp và các công cụ phân tích SQL Server. Đi cùng với các dịch vụ Machine Learning được tích hợp lần đầu tiên trong phiên bản SQL Server 2016, các dịch vụ phân tích dữ liệu, công cụ phân tích dữ liệu, các ứng dụng trực quan hoá dữ liệu và các dịch vụ SQL Server Reporting nhằm hỗ trợ và phân phối các báo cáo BI.  Tính năng quản lý Về phương diện quản trị, Microsoft SQL Server gồm các dịch vụ tích hợp SQL Server, dịch vụ SQL Server Data Quality và dịch vụ SQL Server Master. Hai 9 bộ công cụ dành riêng cho quản trị viên cơ sở dữ liệu và lập trình viên (SQL Server Data Tools) sử dụng trong việc phát triển hệ thống cơ sở dữ liệu cho SQL Server Management Studio, thực hiện nhiệm vụ triển khai, giám sát và quản lý các cơ sở dữ liệu. 1.2.Tổng quan về nhận diện khuôn mặt 1.2.1. Giới thiệu về nhận diện khuôn mặt Nhận dạng mặt người (Face recognition) là một lĩnh vực nghiên cứu của ngành thị giác máy tính (Computer Vision), và cũng được xem là một lĩnh vực nghiên cứu của ngành Sinh trắc học (Biometrics) tương tự như nhận dạng vân tay – Fingerprint recognition, hay nhận dạng mống mắt – Iris recognition. Xét về nguyên tắc chung, nhận dạng mặt có sự tương đồng rất lớn với nhận dạng vân tay và nhận dạng mống mắt, tuy nhiên sự khác biệt nằm ở bước trích chọn đặc trưng (feature extraction) của mỗi lĩnh vực. Trong khi nhận dạng vân tay và mống mắt đã đạt tới độ chín, tức là có thể áp dụng trên thực tế một cách rộng rãi thì nhận dạng mặt người vẫn còn nhiều thách thức và vẫn là một lĩnh vực nghiên cứu thú vị với nhiều người. So với nhận dạng vân tay và mống mắt, nhận dạng mặt có nguồn dữ liệu phong phú hơn (bạn có thể nhìn thấy mặt người ở bất cứ tấm ảnh, video clip nào liên quan tới con người trên mạng) và ít đòi hỏi sự tương tác có kiểm soát hơn (để thực hiện nhận dạng vân tay hay mống mắt, dữ liệu input lấy từ con người đòi hỏi có sự hợp tác trong môi trường có kiểm soát). Hiện nay các phương pháp nhận dạng mặt được chia thành nhiều hướng theo các tiêu chí khác nhau: nhận dạng với dữ liệu đầu vào là ảnh tĩnh 2D (still image based FR) là phổ biến nhất, tuy nhiên tương lai có lẽ sẽ là 3D FR (vì việc bố trí nhiều camera 2D sẽ cho dữ liệu 3D và đem lại kết quả tốt hơn, đáng tin cậy hơn), cũng có thể chia thành 2 hướng là: làm với dữ liệu ảnh và làm với dữ liệu video. Trên thực tế người ta hay chia các phương pháp nhận dạng mặt ra làm 3 loại: phương pháp tiếp cận toàn cục (global, như Eigenfaces – PCA, Fisherfaces – LDA), phương pháp tiếp cận dựa trên các đặc điểm cục bộ (local feature based, như LBP, Gabor wavelets) và phương pháp lai (hybrid, là sự kết hợp của hai 10 phương pháp toàn cục và local feature). Phương pháp dựa trên các đặc điểm cục bộ đã được chứng minh là ưu việt hơn khi làm việc trong các điều kiện không có kiểm soát và có thể nói rằng lịch sử phát triển của nhận dạng mặt (A never ending story) là sự phát triển của các phương pháp trích chọn đặc trưng (feature extractrion methods) được sử dụng trong các hệ thống dựa trên feature based. Các ứng dụng cụ thể của nhận dạng mặt dựa trên 2 mô hình nhận dạng: identification (xác định danh tính, bài toán 1 – N), và verification (xác thực danh tính, bài toán 1 – 1). Trong bài toán identification, ta cần xác định danh tính của ảnh kiểm tra, còn trong bài toán verification ta cần xác định 2 ảnh có cùng thuộc về một người hay không. 1.2.2. Các bước của quá trình nhận diện khuôn mặt Trong quy trình xử lý và đưa ra kết quả của việc nhận diện khuôn mặt cần có nhiều bước, nhưng các bước cơ bản có thể có như sau:  Bước 1: Phát hiện khuôn mặt (Face detection), tức là phát hiện khuôn mặt trong ảnh, video và cắt lấy phần mặt để thực hiện nhận diện (face cropping)  Bước 2: Tiền xử lý ảnh (preprocessing) bao gồm các bước căn chỉnh ảnh (face image alignment) và chuẩn hóa ánh sáng (illumination normalization).  Bước 3: Trích chọn đặc trưng (feature extraction), ở bước này một phương pháp trích chọn đặc trưng nào đó (Mẫu nhị phân cục bộ - Local Binary Pattern – LBP, Gabor wavelets,…) sẽ được sử dụng với ảnh mặt để trích xuất các thông tin đặc trưng cho khuôn mặt  Bước 4: Nhận diện (recognition), tức là xác định danh tính (identity) hay nhãn (label) của ảnh – đó là ai. 1.2.3. Những khó khăn trong bài toán nhận diện khuôn mặt Bài toán nhận diện khuôn mặt là bài toán đã được nghiên cứu từ những năm 70. Tuy nhiên, đây là một bài toán khó nên những nghiên cứu hiện tại vẫn chưa đạt được những kết quả mong muốn. Chính vì thế, vấn đề này vẫn đang được nhiều nhóm trên thế giới quan tâm nghiên cứu. Khó khăn của bài toán nhận diện khuôn mặt có thể kể đến như sau: 11  Tư thế chụp, góc chụp: Ảnh chụp khuôn mặt có thể thay đổi rất nhiều bởi vì góc chụp giữa camera và khuôn mặt. Chẳng hạn như: chụp thẳng, chụp chéo bên trái 45o hay chụp chéo bên phải 45o, chụp từ trên xuống, chụp từ dưới lên, v.v… Với các tư thế khác nhau, các thành phần trên khuôn mặt như mắt, mũi, miệng có thể bị khuất một phần hoặc thậm chí khuất hết.  Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt: Các đặc trưng như: râu mép, râu hàm, mắt kính, v.v… có thể xuất hiện hoặc không. Vấn đề này làm cho bài toán càng trở nên khó hơn rất nhiều.  Sự biểu cảm của khuôn mặt: Biểu cảm của khuôn mặt con người có thể làm ảnh hưởng đáng kể lên các thông số của khuôn mặt. Chẳng hạn, cùng một khuôn mặt một người, nhưng có thể sẽ rất khác khi họ cười hoặc sợ hãi, v.v…  Sự che khuất: Khuôn mặt có thể bị che khuất bởi các đối tượng khác hoặc các khuôn mặt khác.  Hướng của ảnh (pose variations): Các ảnh khuôn mặt có thể biến đổi rất nhiều với các góc quay khác nhau của trục camera. Chẳng hạn chụp với trục máy ảnh nghiêng làm cho khuôn mặt bị nghiêng so với trục của ảnh.  Điều kiện của ảnh: Ảnh được chụp trong các điều kiện khác nhau về: chiếu sáng, về tính chất camera (máy kỹ thuật số, máy hồng ngoại, v.v…), ảnh có chất lượng thấp ảnh hưởng rất nhiều đến chất lượng ảnh khuôn mặt.  Aging condition: Việc nhận dạng ảnh mặt thay đổi theo thời gian còn là một vấn đề khó khăn, ngay cả đối với khả năng nhận dạng của con người.  Các hệ thống cực lớn (very large scale systems): Các CSDL ảnh mặt được test bởi các nhà nghiên cứu còn khá nhỏ (vài trăm tới vài chục nghìn ảnh mặt), tuy nhiên trên thực tế các CSDL có thể rất lớn, ví dụ CSDL ảnh mặt của cảnh sát của một đất nước có thể chứa từ hàng triệu tới hơn 1 tỉ ảnh… 1.2.4. Một số lĩnh vực ứng dụng Bài toán nhận diện khuôn mặt có thể áp dụng rộng rãi trong nhiều ứng dụng thực tế khác nhau. Đó chính là lý do mà bài toán này hấp dẫn rất nhiều nhóm 12 nghiên cứu trong thời gian dài. Các ứng dụng liên quan đến nhận diện khuôn mặt có thể kể như:  Hệ thống phát hiện tội phạm: camera được đặt tại một số điểm công cộng như: siêu thị, nhà sách, trạm xe buýt, sân bay,v.v... Khi phát hiện được sự xuất hiện của các đối tượng là tội phạm, hệ thống sẽ gởi thông điệp về cho trung tâm xử lý.  Hệ thống theo dõi nhân sự trong một đơn vị: giám sát giờ ra vào của từng nhân viên và chấm công.  Hệ thống giao tiếp người máy: thay thế việc tương tác giữa người và máy theo những cách truyền thống như: bàn phím, chuột,v.v...Thay vào đó là sử dụng các giao tiếp trực quan: biểu cảm khuôn mặt, dấu hiệu, cử chỉ bằng tay (visual input, visual interaction).  Hệ thống tìm kiếm thông tin trên ảnh, video dựa trên nội dung (chỉ mục theo người). Chẳng hạn như: đài truyền hình Việt Nam (VTV) có một kho dữ liệu video tin tức khá lớn cần tìm kiếm nhanh những đoạn video nào có G. Bush hoặc Bin Laden.  Các hệ thống bảo mật dựa trên thông tin trắc sinh học: mặt người, vân tay,v.v... thay vì xác nhận mật khẩu, khóa,v.v... 1.2.5. Một số thư viện hỗ trợ nhận diện khuôn mặt trong ngôn ngữ lập trình C#  OpenCV OpenCV viết tắt của Open Source Computer Vision được xem là một trong những thư viện mã nguồn mở hàng đầu cho việc xử lý ảnh theo thời gian thực. OpenCV (Thư viện hình ảnh máy tính nguồn mở) là thư viện phần mềm máy tính học tập và máy tính nguồn mở. OpenCV được xây dựng để cung cấp một cơ sở hạ tầng chung cho các ứng dụng thị giác máy tính và để đẩy nhanh việc sử dụng nhận thức máy trong các sản phẩm thương mại. Là một sản phẩm được cấp phép BSD, OpenCV giúp các doanh nghiệp dễ dàng sử dụng và sửa đổi. 13 Thư viện có hơn 2500 thuật toán được tối ưu hóa, bao gồm một tập hợp toàn diện các thuật toán máy học và tầm nhìn máy tính tiên tiến và hiện đại. Các thuật toán này có thể được sử dụng để phát hiện và nhận diện khuôn mặt, xác định đối tượng, phân loại hành động của con người trong video, theo dõi chuyển động của camera, theo dõi đối tượng chuyển động, trích xuất mô hình 3D của đối tượng, tạo ra các đám mây điểm 3D từ camera stereo, ghép ảnh lại với nhau để tạo ra độ phân giải cao hình ảnh của toàn cảnh, tìm hình ảnh tương tự từ cơ sở dữ liệu hình ảnh, xóa mắt đỏ khỏi hình ảnh được chụp bằng flash, theo dõi chuyển động của mắt, nhận diện phong cảnh và thiết lập điểm đánh dấu để che phủ nó bằng thực tế mở rộng, v.v. Thư viện được sử dụng rộng rãi trong các công ty, các nhóm nghiên cứu và các cơ quan chính phủ. Cùng với các công ty có uy tín như Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota sử dụng thư viện, có nhiều công ty khởi nghiệp như Applied Minds, VideoSurf và Zeitera, sử dụng rộng rãi OpenCV. Các ứng dụng được triển khai của OpenCV mở rộng phạm vi từ khâu hình ảnh đường phố, phát hiện xâm nhập trong video giám sát ở Israel, giám sát thiết bị mỏ ở Trung Quốc, giúp robot điều hướng và nhận đồ vật tại Willow Garage, phát hiện tai nạn chết đuối ở châu Âu. Tây Ban Nha và New York, kiểm tra đường băng cho các mảnh vỡ ở Thổ Nhĩ Kỳ, kiểm tra nhãn trên các sản phẩm tại các nhà máy trên khắp thế giới để phát hiện khuôn mặt nhanh chóng ở Nhật Bản. Nó có giao diện C++, Python, Java và MATLAB và hỗ trợ Windows, Linux, Android và Mac OS. OpenCV dựa chủ yếu vào các ứng dụng thị giác thời gian thực và tận dụng các hướng dẫn MMX và SSE khi có sẵn. Một giao diện CUDA và OpenCL đầy đủ tính năng đang được tích cực phát triển ngay bây giờ. Có hơn 500 thuật toán và khoảng 10 lần so với nhiều chức năng soạn hoặc hỗ trợ các thuật toán đó. OpenCV được viết tự nhiên trong C++ và có một giao diện templated hoạt động liền mạch với các container STL. 14  EmguCV EmguCV Là một cross platform .NET, một thư viện xử lý hình ảnh mạnh mẽ dành riêng cho các ngôn ngữ .NET, cho phép gọi được chức năng của OpenCV là từ .NET, Tương thích ngôn ngữ như: C#, VB, VC ++, Iron Python... Wrapper có thể được biên dịch bởi Visual Studio, Xamarin Studio và Unity. Có thể chạy trên Windows, Linux, Mac OS X, iOS, Android và Windows Phone. Lợi thế của EmguCV:  EmguCV được viết hoàn toàn bằng C#, có thể chạy trên bất kỳ nền tảng hỗ trợ bao gồm iOS, Android, Windows Phone, hệ điều hành Mac OS và Linux.  EmguCV có thể được sử dụng với nhiều ngôn ngữ khác nhau như C#, VB.NET, C ++ và Iron Python.  Nhận dạng ảnh: nhận dạng khuôn mặt, các vật thể, ...  Xử lý ảnh: khử nhiễu, điều chỉnh độ sáng, ...  Nhận dạng cử chỉ.  Hỗ trợ tài liệu XML và intellisense.  Có thể sử dụng class Image hoặc gọi thẳng xuống các hàm của OpenCV. 1.3.Mã hóa thông tin 1.2.1. Giới thiệu về mã hóa thông tin Mã hóa thông tin là một hình thức biến đổi dữ liệu thành một dạng dữ liệu khác có ý nghĩa khác với dữ liệu trước khi bị biến đổi ban đầu, với mục đích chỉ cho phép một số người nhất định có thể đọc được dữ liệu ban đầu, thông qua việc giải mã dữ liệu sau khi biến đổi. Hay n

Trang 1

UBND TỈNH QUẢNG NAM

TRƯỜNG ĐẠI HỌC QUẢNG NAM

KHOA: TOÁN – TIN

- -

LÊ TRẦN KIM THẢO

XÂY DỰNG PHẦN MỀM QUẢN LÝ SIÊU THỊ

MINI KẾT HỢP NHẬN DIỆN

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Quảng Nam, tháng 05 năm 2022

Trang 2

UBND TỈNH QUẢNG NAM

TRƯỜNG ĐẠI HỌC QUẢNG NAM

KHOA: TOÁN – TIN

Sinh viên thực hiện

LÊ TRẦN KIM THẢO

Trang 3

MU ̣C LỤC

1 Lý do chọn đề tài 1

2 Mục tiêu của đề tài 1

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

4 Phương pháp nghiên cứu 2

5 Lịch sử nghiên cứu 2

6 Đóng góp của đề tài 2

7 Cấu trúc đề tài 2

PHẦN 2 NỘI DUNG NGHIÊN CỨU 4

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4

1.1 Giơ ́ i thiê ̣u ngôn ngữ lâ ̣p trình C# và hê ̣ quản tri ̣ cơ sở dữ liê ̣u SQL Server 4

1.1.1 Ngôn ngư ̃ lâ ̣p trình C# 4

1.1.1.1 Kha ́i niê ̣m 4

1.1.1.2 Mu ̣c tiêu của viê ̣c phát triển C# 4

1.1.1.3 Đặc trưng của ngôn ngữ lập trình C# 5

1.1.1.4 Ưu điểm của ngôn ngữ lập trình C# 5

1.1.1.5 Ứng dụng của ngôn ngữ lập trình C# 6

1.1.1.6 Quá trình dịch của C# 7

1.1.2 Hê ̣ quản tri ̣ cơ sở dữ liê ̣u SQL Server 8

1.1.2.1 Khái niệm 8

1.1.2.2 Các tính năng của sqlserver 8

1.2 Tổng quan về nhận diện khuôn mặt 9

1.2.1 Giới thiệu về nhận diện khuôn mặt 9

1.2.2 Các bước của quá trình nhận diện khuôn mặt 10

1.2.3 Những khó khăn trong bài toán nhận diện khuôn mặt 10

1.2.4 Một số lĩnh vực ứng dụng 11

1.2.5 Một số thư viện hỗ trợ nhận diện khuôn mặt trong ngôn ngữ lập trình C# 12

1.3 Mã hóa thông tin 14

1.2.1 Giới thiệu về mã hóa thông tin 14

1.2.2 Mã hóa bí mật 15

CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG 16

2.1 Khảo sát hệ thống 16

2.1.1 Mô tả hiện trạng của hệ thống hiện tại 16

2.1.1.1 Giới thiệu hệ thống hiện tại 16

2.1.1.2 Ưu điểm và khuyết điểm 16

2.1.2 Hướng phát triển của hệ thống mới 17

2.1.3 Lập kế hoạch khảo sát 17

2.1.3.1 Khảo sát sơ bộ 17

2.1.3.2 Khảo sát chi tiết 18

2.1.3.3 Lập báo cáo kết quả thu được 22

2.1.4 Mô tả bài toán 23

2.1.5 Yêu cầu chức năng 24

2.1.6 Mô hình Ri 25

2.1.7 Đặc tính từng người dùng 28

2.1.8 Yêu cầu phi chức năng 28

2.2 Phân tích hệ thống 28

2.2.1 Phân tích chức năng 28

2.2.1.1 Actor 28

2.2.1.2 Usecase 30

2.2.1.3 Object và class 35

2.2.1.4 Sơ đồ tuần tự 38

2.2.1.5 Sơ đồ cộng tác 41

2.2.1.6 Sơ đồ trạng thái 43

2.2.1.7 Sơ đồ hoạt động 47

Trang 4

2.2.2.1 Sơ đồ E – R 50

2.2.2.2 Sơ đồ dữ liệu quan hệ 51

CHƯƠNG 3: THIẾT KẾ VÀ CÀI ĐẶT HỆ THỐNG 52

3.1 Thiết kế hệ thống 52

3.1.1 Thiết kế cơ sở dữ liệu 52

3.1.2 Thiết kế chức năng 60

3.1.3 Thiết kế giao diện 62

3.2 Cài đặt hệ thống 64

3.2.1 Một số đoạn code quan trọng 64

3.2.2 Một số giao diện của phần mềm 67

PHẦN 3 KẾT LUẬN VÀ KIẾN NGHỊ 85

PHẦN 4 TÀI LIỆU THAM KHẢO 86

Trang 5

DANH MỤC HÌNH ẢNH

Hình 2.1 Biểu mẫu hóa đơn nhập 21

Hình 2.2 Biểu mẫu hóa đơn xuất 22

Hình 2.3 Sơ đồ usecase tổng quát 30

Hình 2.4 Sơ đồ class 37

Hình 2.5 Sơ đồ tuần tự usecase Đăng nhập 38

Hình 2.6 Sơ đồ tuần tự usecase Thêm sản phẩm 38

Hình 2.7 Sơ đồ tuần tự usecase Tìm kiếm kho 39

Hình 2.8 Sơ đồ tuần tự usecase Cập nhập thông tin nhân viên 39

Hình 2.9 Sơ đồ tuần tự usecase Xóa nhà cung cấp 40

Hình 2.10 Sơ đồ tuần tự usecase Thống kê số dư và số lượng tiêu thụ của sản phẩm 40

Hình 2.11 Sơ đồ cộng tác usecase Đăng nhập 41

Hình 2.12 Sơ đồ cộng tác usecase Thêm sản phẩm 41

Hình 2.13 Sơ đồ cộng tác usecase Tìm kiếm kho 42

Hình 2.14 Sơ đồ cộng tác usecase Cập nhập thông tin nhân viên 42

Hình 2.15 Sơ đồ cộng tác usecase Xóa nhà cung cấp 42

Hình 2.16 Sơ đồ cộng tác usecase Thống kê số dư và số lượng tiêu thụ của sản phẩm 43

Hình 2.17 Sơ đồ trạng thái class Loại hàng 43

Hình 2.18 Sơ đồ trạng thái class Mặt hàng 43

Hình 2.19 Sơ đồ trạng thái class Người dùng 44

Hình 2.20 Sơ đồ trạng thái class Nhân viên 44

Hình 2.21 Sơ đồ trạng thái class Lương 44

Hình 2.22 Sơ đồ trạng thái class Phiếu xuất 45

Hình 2.23 Sơ đồ trạng thái class Chi tiết phiếu xuất 45

Hình 2.24 Sơ đồ trạng thái class Phiếu nhập 45

Hình 2.25 Sơ đồ trạng thái class Chi tiết phiếu nhập 46

Hình 2.26 Sơ đồ trạng thái class Loại khách hàng 46

Hình 2.27 Sơ đồ trạng thái class Kho 46

Hình 2.28 Sơ đồ hoạt động usecase Đăng nhập 47

Hình 2.29 Sơ đồ hoạt động usecase Thêm sản phẩm 47

Hình 2.30 Sơ đồ hoạt động usecase Tìm kiếm kho 48

Hình 2.31 Sơ đồ hoạt động usecase Cập nhập thông tin nhân viên 48

Hình 2.32 Sơ đồ hoạt động usecase Xóa nhà cung cấp 49

Hình 2.33 Sơ đồ hoạt động usecase Thống kê số dư và số lượng tiêu thụ của sản phẩm 49

Hình 2.34 Sơ đồ E – R 50

Hình 2.35 Sơ đồ dữ liệu quan hệ 51

Hình 3.1 Mối quan hệ giữa các bảng 59

Hình 3.2 Giao diện hộp thoại 62

Hình 3.3 Giao diện nhập dữ liệu dạng điền dữ liệu 63

Hình 3.4 Giao diện nhập dữ liệu dạng câu hỏi (đóng) 63

Hình 3.5 Giao diện nhập dữ liệu kết hợp 2 dạng 63

Hình 3.6 Giao diện báo cáo 64

Hình 3.7 Code mã hóa bí mật trong C# 64

Hình 3.8 Code phát hiện khuôn mặt trong C# 65

Hình 3.9 Code nhận diện khuôn mặt trong C# 66

Hình 3.10 Code nhận diện khuôn mặt trong C# 66

Hình 3.11 Giao diện form đăng nhập 67

Hình 3.12 Giao diện form đăng nhập bằng khuôn mặt 68

Hình 3.13 Giao diện form hệ thống quản lý sản phẩm 69

Hình 3.14 Giao diện form hệ thống báo cáo thống kê 70

Hình 3.15 Giao diện form hệ thống quản lý hóa đơn nhập 71

Hình 3.16 Giao diện form chi tiết hóa đơn nhập hàng 71

Hình 3.17 Giao diện form hệ thống quản lý hóa đơn xuất 72

Hình 3.18 Giao diện form chi tiết xuất hàng 73

Trang 6

Hình 3.20 Giao diện form tạo hóa đơn nhập 74

Hình 3.21 Giao diện form tạo hóa đơn xuất 74

Hình 3.22 Giao diện form cập nhập sản phẩm 75

Hình 3.23 Giao diện form cập nhập hóa đơn nhập 75

Hình 3.24 Giao diện form cập nhập hóa đơn xuất 76

Hình 3.25 Giao diện form đổi mật khẩu 76

Hình 3.26 Giao diện form nhập file excel 77

Hình 3.27 Giao diện form in hóa đơn nhập 77

Hình 3.28 Giao diện form in hóa đơn xuất 77

Hình 3.29 Giao diện form thống kê lượng tiền ra vào dạng biểu đồ 78

Hình 3.30 Giao diện form thống kê lượng tiền ra vào dạng bảng 78

Hình 3.31 Giao diện form thống kê số dư và số lượng tiêu thụ vào dạng biểu đồ 79

Hình 3.32 Giao diện form thống kê số dư và số lượng tiêu thụ vào dạng bảng 79

Hình 3.33 Giao diện form thống kê lương nhân viên 80

Hình 3.34 Giao diện form thống kê sản phẩm theo nhà cung cấp 80

Hình 3.35 Giao diện form thống kê lợi nhuận vào dạng biểu đồ 81

Hình 3.36 Giao diện form thống kê lợi nhuận vào dạng bảng 81

Hình 3.37 Giao diện form thống kê sản phẩm bán chạy vào dạng biểu đồ 82

Hình 3.38 Giao diện form thống kê sản phẩm bán chạy vào dạng bảng 82

Hình 3.39 Giao diện form thống kê hóa đơn nhập còn nợ 83

Hình 3.40 Giao diện form thống kê hóa đơn xuất còn nợ 83

Hình 3.41 Giao diện form thống kê hóa đơn nhập còn chưa đến kho 84

Trang 7

Và đặc biệt, trong năm học cuối này, em vinh dự được nằm trong top 20 sinh

viên làm khóa luận tốt nghiệp Và đề tài của em là“Xây dựng phần mềm Quản

lý siêu thị MiNi kết hợp nhận diện” Em xin chân thành cảm ơn Thạc sĩ Trần Thị

Diệu Hiền đã tận tâm hướng dẫn em qua từng buổi học trên lớp cũng như những buổi nói chuyện, thảo luận về lĩnh vực sáng tạo trong nghiên cứu khoa học

Em cũng xin bày tỏ lòng biết ơn đến ban lãnh đạo của Trường Đại học Quảng Nam và các Khoa Phòng ban chức năng đã trực tiếp và gián tiếp giúp đỡ em trong suốt quá trình học tập và nghiên cứu đề tài này

Không thể không nhắc tới sự chỉ đạo của Ban lãnh đạo Công ty Cổ phần Dịch vụ xử lý số FPT nhờ có sự giúp đỡ nhiệt tình của các anh chị ở các phòng ban, đã tạo điều kiện thuận lợi nhất cho em trong suốt thời gian thực tập tại Công

ty

Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của một sinh viên, bài báo cáo này không thể tránh được những thiếu sót Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các quý thầy cô để em có điều kiện bổ sung, nâng cao ý thức của mình, phục vụ tốt hơn công tác thực tế sau này

Em xin chân thành cảm ơn!

Sinh viên

Lê Trần Kim Thảo

Trang 8

PHẦN 1 MỞ ĐẦU

1 Lý do chọn đề tài

Những năm gần đây các cuộc cách mạng khoa học công nghệ đang diễn ra một cách sôi động chưa từng thấy trên toàn thế giới, nó đã thúc đẩy loài người nhanh chóng bước sang một kỷ nguyên mới Đó là một kỷ nguyên của nền văn minh dựa trên cơ sở công nghiệp trí tuệ nhân tạo Mở đầu cho cuộc cách mạng khoa học và công nghệ thông tin hiện nay đã và đang xâm nhập vào mọi lĩnh vực hoạt động của xã hội loài người nó mang lại nhiều lợi ích cao cũng như những lợi nhuận khổng lồ và cùng với nó là sự giải quyết về công việc ngày càng nhanh chóng, mang lại hiệu quả kinh tế cao Đời sống con người ngày càng phát triển, dẫn đến nhu cầu mua sắm và buôn bán của người dân ngày càng được nâng cao Công việc quản lý của các chủ cửa hàng càng gặp nhiều khó khăn và phức tạp Việc đưa ra các ứng dụng công nghệ thông tin đã giúp giảm tải công việc quản lý bằng thủ công của con người là điều rất cần thiết để giải quyết vấn đề trên

Là một chủ cửa hàng hay một người quản lý, chúng ta mong chờ đó là lợi nhuận, thương hiệu và sự phát triển hiện đại hóa lĩnh vực quản lý của cửa hàng Mục đích cơ bản của việc xây dựng hệ thống quản lý cửa hàng nhằm phục vụ cho việc mua bán của cửa hàng, cung cấp những thông tin đầy đủ, chính xác, nhanh chóng cho cửa hàng, cho khách hàng, và đáp ứng được các yêu cầu của người tiêu dùng

Tuy nhiên, đa phần các phần mềm quản lý chưa được kết hợp nhận diện khung mặt để truy cấp phần mềm, chưa có phân tán dữ liệu và chưa có kết hợp

mã hóa thông tin qua khóa bí mật Qua nghiên cứu và quan sát nhiều cửa hàng,

siêu thị MiNi nên em đã chọn đề tài: “Xây dựng phần mềm Quản lý siêu thị MiNi

kết hợp nhận diện” dành cho các cửa hàng, siêu thị MiNi vừa và nhỏ

2 Mục tiêu của đề tài

 Hiểu rõ về quá trình nhận diện khuôn mặt

 Phân tích, thiết kế và xây dựng được hệ thống quản lý Siêu Thị MiNi

 Kết hợp được nhận diện khuôn mặt vào trong phần mềm

Trang 9

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

Phân tích hệ thống thông tin theo hướng đối tượng

Xây dựng phần mềm quản lý Siêu Thị MiNi có kết hợp nhận diện

4 Phương pháp nghiên cứu

 Khảo sát

 Phỏng vấn

 Phân tích hệ thống thông tin theo hướng đối tượng

5 Lịch sử nghiên cứu

Trước đây, đã có rất nhiều đề tài nghiên cứu về vấn đề này, chẳng hạn:

Báo cáo thực tập tốt nghiệp với đề tài Quản lý bán hàng siêu thị của Nguyễn

Đức Hồ ngành Tin Học Ứng Dụng, Viện Đại Học Mở Hà Nội

Báo cáo phân tích thiết kế hệ thống thông tin với đề tài Quản lý bán hàng trong siêu thị của Trần Thanh Hoa và Đậu Văn Thắng, Trường Đại Học Bách

Khoa Hà Nội

 Báo cáo môn học phân tích và thiết kế hướng đối tượng bằng UML với đề

tài Phân tích thiết kế chương trình việc mua bán hàng ở siêu thị của nhóm 08,

Trường Đại Học Cần Thơ năm 2008 – 2009

Tuy nhiên, tất cả các đề tài đó chỉ dừng ở việc phân tích và thiết kế hệ thống theo hướng đối tượng chưa có kết hợp nhận diện khuôn mặt

PHẦN 2 NỘI DUNG NGHIÊN CỨU

Chương 1: Cơ sở lý thuyết

Chương 2: Khảo sát và phân tích hệ thống

Trang 10

PHẦN 3 KẾT LUẬN VÀ KIẾN NGHỊ PHẦN 4 TÀI LIỆU THAM KHẢO PHẦN 5 PHỤ LỤC

Trang 11

PHẦN 2 NỘI DUNG NGHIÊN CỨU

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Giơ ́ i thiê ̣u ngôn ngữ lâ ̣p trình C# và hê ̣ quản tri ̣ cơ sở dữ liê ̣u SQL

1.1.1.2 Mục tiêu cu ̉a viê ̣c phát triển C#

Tiêu chuẩn ECMA liệt kê các mục tiêu của việc thiết kế ngôn ngữ C#:

 Ngôn ngữ được dự định là một ngôn ngữ lập trình đơn giản, hiện đại, hướng đến nhiều mục đích sử dụng, và là một ngôn ngữ lập trình hướng đối tượng

 Ngôn ngữ và việc triển khai đáp ứng các nguyên tắc của ngành kỹ thuật phần mềm như kiểm tra chặt chẽ kiểu dữ liệu, kiểm tra giới hạn mảng, phát hiện các trường hợp sử dụng các biến chưa có dữ liệu, và tự động thu gom rác Tính mạnh

mẽ, sự bền bỉ, và năng suất của việc lập trình là rất quan trọng đối với ngôn ngữ này

 Ngôn ngữ sẽ được sử dụng để phát triển các thành phần của phần mềm theo hướng thích hợp cho việc triển khai trong các môi trường phân tán

 Khả năng di chuyển (portability) là rất quan trọng, đặc biệt là đối với những lập trình viên đã quen với C và C++

 Hỗ trợ quốc tế hóa (i18n)

Trang 12

 Ngôn ngữ sẽ được thiết kế để phù hợp với việc viết các ứng dụng cho cả hai

hệ thống: hosted và nhúng, từ các phần mềm quy mô lớn, đến các phần mềm chỉ

có các chức năng đơn giản

 Mặc dù các ứng dụng C# có tính kinh tế đối với các yêu cầu về bộ nhớ và chế độ xử lý, ngôn ngữ này không cạnh tranh trực tiếp về hiệu năng và kích thước đối với ngôn ngữ C hoặc assembly

1.1.1.3 Đặc trưng của ngôn ngữ lập trình C#

 Tính đơn giản: C# là một trong những loại ngôn ngữ được xây dựng dựa trên nền tảng của C++ và Java Nhờ vậy, mà chúng hầu như đều có cấu trúc chương trình khá giống nhau Mặc dù C# là ngôn ngữ “sinh sau đẻ muộn” nhưng nhờ có nhiều cải tiến mới nên rất phù hợp với mọi đối tượng lập trình viên Một số cải tiến của nó đó chính là cấu trúc được rút gọn sao cho dễ nhớ và đơn giản hơn

 C# là ngôn ngữ dễ sử dụng và có tính hiện đại cao

 Ngôn ngữ lập trình C# được các chuyên gia nhận xét là loại ngôn ngữ thuần hướng các tố tượng Nó bao gồm các tính như: Trừu tượng, đa hình, kế thừa và đóng gói

 So với những loại ngôn ngữ lập trình khác thì C# sử dụng lượng từ khóa ít hơn rất nhiều Nhờ đặc điểm này mà các lập trình viên đều thuận tiện hơn rất nhiều cho việc xây dựng lên các đối tượng dành riêng cho mình

1.1.1.4 Ưu điểm của ngôn ngữ lập trình C#

C# được đánh giá là ngôn ngữ lập trình có tính linh hoạt và nhiều ưu điểm nổi bật, cụ thể như sau:

 Quy mô của chương trình: C# thường được sử dụng để viết trên các hệ thống

vi điều khiển có kích cỡ 8bit Ngoài ra, nó còn được sử dụng trong các hệ thống trên 64bit hoặc hệ thống siêu máy tính

 C# là ngôn ngữ có hiệu suất cao, có thể chạy mượt trên mọi hệ thống giới hạn về dung lượng Bởi vì ngay từ những ngày đầu thì C# đã được thiết kế cho mục đích thay thế cho ASM trong những hệ thống có bộ nhớ hạn chế

Trang 13

 C# có khả năng thực hiện các thuật toán giúp hỗ trợ rất nhiều kiểu dữ liệu khác nhau cũng như việc chuyển đổi sẽ trở nên dễ dàng hơn Ngôn ngữ lập trình C# còn có khả năng cung cấp thư viện chuẩn với hàm có chức năng và công cụ toán học

 C# là ngôn ngữ sở hữu cú pháp rất sát với những suy nghĩ logic, nhờ vậy mà việc viết code sẽ được đơn giản hóa và nhanh chóng hơn

 C# là loại ngôn ngữ lập trình rất an toàn và nó không cho phép việc chuyển đổi kiểu dữ liệu để có thể giảm tránh được những vấn đề sai lệch xảy ra

 Trong C# sẽ cho kết quả trả về thuộc các hàm đa phần đều là một object Các lỗi lập trình phổ biến như: gõ nhầm tên, viết sai cấu trúc… đều sẽ được hệ thống cảnh báo luôn mà không cần phải chờ đến lúc chạy

 C# thường được đi cùng với Visual Studio và bộ đôi này được sử dụng rất nhiều cho việc xây dựng Winform, WPF, website bằng MVC.NET Hiện nay, nó ngày càng trở nên phổ biến trong việc xây dựng nền tảng cho các ứng dụng di động

Hiện nay, việc học C# sẽ trở nên dễ dàng hơn bởi cộng đồng C# đang rất phát triển và rộng mở Chính vì vậy, các nhà phát triển cũng như lập trình viên ngôn ngữ C# có thể hỗ trợ, giúp đỡ cùng nhau phát triển kỹ năng và kinh nghiệm

về C#

1.1.1.5 Ứng dụng của ngôn ngữ lập trình C#

 Phát triển web backend (ASP.NET MVC, ASP.NET core, Web API,Graph API,gPRC, Blazor sevver,Uno platform, Mono)

 Phát triển web front end (Blazor WebAssembly,Uno platform)

 Phát triển desktop app (Winform, WPF, UWP,WinUI, Mono, Uno, MAUI,Blazor desktop )

 Phát triển game 2D, 3D đa nền tảng (Game engine:Unity, Monogame, Godot, Stride, CryEngine, NeoAxis )

 Phát triển thực tế ảo (VR), thực tế tăng cường(AR), thực tế hỗn hợp (MR)

Trang 14

 Phát triển ứng dụng đồ họa 2D,3D đa nền tảng (2D: SkiaSharp, ImageSharp ; 3D: OpenTK, SharpDX, SharpVulkan, Vulkan.NET, Veldrid, Silk.NET )

 Phát triển mobile app, IOS native, Android native (Xamarin,MAUI,Uno platform)

 Phát triển đám mây (Azure,AWS,Google Cloud )

 Học máy và trí tuệ nhân tạo (ML.Net, TensorFlow, csiSharp )

 Data science, bigdata (csiSharp, Apache Spark)

 Blockchain (NEO, Stratis)

 Microservices and containers

 Internet of thing (IoT,5G)

 Hệ thống nhúng (Raspberry pi, PLC)

1.1.1.6 Quá trình dịch của C#

Người ta thường gọi C# là ngôn ngữ biên dịch bởi khi được build thì nó là trình biên dịch, trình này sẽ thực hiện chuyển đạn C# thành một trong những ngôn ngữ trung gian C# được gọi là Microsoft Intermediate Language (MSIL) và được lưu dưới dạng một file theo thiên hướng thực thi (exe)

Nếu như chạy file thực thi thì NET Framework sẽ được gọi là Just In Time Compiler để thực hiện chuyển MSIL code trở thành ngôn ngữ của máy rồi thực hiện chương trình Loại ngôn ngữ trung gian này thường giống với các loại ngôn ngữ máy nên bạn có thể dịch nó ra rất nhanh

Quá trình thực hiện biên dịch của ngôn ngữ C#:

 Bước 1: Thực hiện Click chuô ̣t phải vào project cho ̣n build Visual Studio sẽ thực hiện gọi trình biên di ̣ch Tiếp đó, mã C# sẽ được chuyển đổi để trở thành một loại ngôn ngữ trung gian Microsoft Intermediate Language (MSIL) Sau khi chương trình này kết thúc thì việc đóng gói thành file exe sẽ được thực hiện

 Bước 2: Click chuột phải vào project, cho ̣n Open folder in file explorer

 Bước 3: Vào thư mu ̣c bin/debug, lúc này chương trình của bạn đã được chuyển thành dạng exe và file exe này có chứ a mã MSIL

Trang 15

 Bước 4: Tiến hành viết nội dung cho chương trình, thông tin như sau: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DuAn { class Program { static void Main(string[] args) { /* Nội dung bạn cần viết */ Console.WriteLine(“Xin chào”); Console.ReadKey(); } } } Thực hiện chạy file exe vào lúc này thì MSLI đã được chuyển hướng trở thành ngôn ngữ máy Vì vậy, thông qua Just In Time Compiler thì máy tính sẽ hiểu được các dòng lệnh mà bạn đã viết rồi xuất ra kết quả như màn hình hiển thị

1.1.2 Hê ̣ qua ̉ n tri ̣ cơ sở dữ liê ̣u SQL Server

Cũng giống như các hệ thống quản lý cơ sở dữ liệu qua hệ khác, SQL Server được xây dựng trên lớp SQL – là ngôn ngữ lập trình tiêu chuẩn hoá được quản trị viên cơ sở dữ liệu (DBAs) và các chuyên gia IT sử dụng để quản lý cơ sở dữ liệu

và truy vấn các dữ liệu nằm bên trong

1.1.2.2 Các tính năng của sqlserver

 Tính năng doanh nghiệp chuyên biệt

Microsoft hiện nay đã ra mắt thêm các tính năng quản lý dữ liệu đa dạng dành cho doanh nghiệp và các công cụ phân tích SQL Server Đi cùng với các dịch vụ Machine Learning được tích hợp lần đầu tiên trong phiên bản SQL Server

2016, các dịch vụ phân tích dữ liệu, công cụ phân tích dữ liệu, các ứng dụng trực quan hoá dữ liệu và các dịch vụ SQL Server Reporting nhằm hỗ trợ và phân phối các báo cáo BI

 Tính năng quản lý

Về phương diện quản trị, Microsoft SQL Server gồm các dịch vụ tích hợp

Trang 16

bộ công cụ dành riêng cho quản trị viên cơ sở dữ liệu và lập trình viên (SQL Server Data Tools) sử dụng trong việc phát triển hệ thống cơ sở dữ liệu cho SQL Server Management Studio, thực hiện nhiệm vụ triển khai, giám sát và quản lý các cơ sở dữ liệu

1.2 Tổng quan về nhận diện khuôn mặt

1.2.1 Giới thiệu về nhận diện khuôn mặt

Nhận dạng mặt người (Face recognition) là một lĩnh vực nghiên cứu của ngành thị giác máy tính (Computer Vision), và cũng được xem là một lĩnh vực nghiên cứu của ngành Sinh trắc học (Biometrics) tương tự như nhận dạng vân tay – Fingerprint recognition, hay nhận dạng mống mắt – Iris recognition Xét về nguyên tắc chung, nhận dạng mặt có sự tương đồng rất lớn với nhận dạng vân tay

và nhận dạng mống mắt, tuy nhiên sự khác biệt nằm ở bước trích chọn đặc trưng (feature extraction) của mỗi lĩnh vực

Trong khi nhận dạng vân tay và mống mắt đã đạt tới độ chín, tức là có thể

áp dụng trên thực tế một cách rộng rãi thì nhận dạng mặt người vẫn còn nhiều thách thức và vẫn là một lĩnh vực nghiên cứu thú vị với nhiều người So với nhận dạng vân tay và mống mắt, nhận dạng mặt có nguồn dữ liệu phong phú hơn (bạn

có thể nhìn thấy mặt người ở bất cứ tấm ảnh, video clip nào liên quan tới con người trên mạng) và ít đòi hỏi sự tương tác có kiểm soát hơn (để thực hiện nhận dạng vân tay hay mống mắt, dữ liệu input lấy từ con người đòi hỏi có sự hợp tác trong môi trường có kiểm soát)

Hiện nay các phương pháp nhận dạng mặt được chia thành nhiều hướng theo các tiêu chí khác nhau: nhận dạng với dữ liệu đầu vào là ảnh tĩnh 2D (still image based FR) là phổ biến nhất, tuy nhiên tương lai có lẽ sẽ là 3D FR (vì việc bố trí nhiều camera 2D sẽ cho dữ liệu 3D và đem lại kết quả tốt hơn, đáng tin cậy hơn), cũng có thể chia thành 2 hướng là: làm với dữ liệu ảnh và làm với dữ liệu video Trên thực tế người ta hay chia các phương pháp nhận dạng mặt ra làm 3 loại: phương pháp tiếp cận toàn cục (global, như Eigenfaces – PCA, Fisherfaces – LDA), phương pháp tiếp cận dựa trên các đặc điểm cục bộ (local feature based, như LBP, Gabor wavelets) và phương pháp lai (hybrid, là sự kết hợp của hai

Trang 17

phương pháp toàn cục và local feature) Phương pháp dựa trên các đặc điểm cục

bộ đã được chứng minh là ưu việt hơn khi làm việc trong các điều kiện không có kiểm soát và có thể nói rằng lịch sử phát triển của nhận dạng mặt (A never ending story) là sự phát triển của các phương pháp trích chọn đặc trưng (feature extractrion methods) được sử dụng trong các hệ thống dựa trên feature based Các ứng dụng cụ thể của nhận dạng mặt dựa trên 2 mô hình nhận dạng: identification (xác định danh tính, bài toán 1 – N), và verification (xác thực danh tính, bài toán

1 – 1) Trong bài toán identification, ta cần xác định danh tính của ảnh kiểm tra, còn trong bài toán verification ta cần xác định 2 ảnh có cùng thuộc về một người hay không

1.2.2 Các bước của quá trình nhận diện khuôn mặt

Trong quy trình xử lý và đưa ra kết quả của việc nhận diện khuôn mặt cần

có nhiều bước, nhưng các bước cơ bản có thể có như sau:

 Bước 1: Phát hiện khuôn mặt (Face detection), tức là phát hiện khuôn mặt trong ảnh, video và cắt lấy phần mặt để thực hiện nhận diện (face cropping)

 Bước 2: Tiền xử lý ảnh (preprocessing) bao gồm các bước căn chỉnh ảnh (face image alignment) và chuẩn hóa ánh sáng (illumination normalization)

 Bước 3: Trích chọn đặc trưng (feature extraction), ở bước này một phương pháp trích chọn đặc trưng nào đó (Mẫu nhị phân cục bộ - Local Binary Pattern – LBP, Gabor wavelets,…) sẽ được sử dụng với ảnh mặt để trích xuất các thông tin đặc trưng cho khuôn mặt

 Bước 4: Nhận diện (recognition), tức là xác định danh tính (identity) hay nhãn (label) của ảnh – đó là ai

1.2.3 Những khó khăn trong bài toán nhận diện khuôn mặt

Bài toán nhận diện khuôn mặt là bài toán đã được nghiên cứu từ những năm

70 Tuy nhiên, đây là một bài toán khó nên những nghiên cứu hiện tại vẫn chưa đạt được những kết quả mong muốn Chính vì thế, vấn đề này vẫn đang được nhiều nhóm trên thế giới quan tâm nghiên cứu Khó khăn của bài toán nhận diện khuôn mặt có thể kể đến như sau:

Trang 18

 Tư thế chụp, góc chụp: Ảnh chụp khuôn mặt có thể thay đổi rất nhiều bởi vì góc chụp giữa camera và khuôn mặt Chẳng hạn như: chụp thẳng, chụp chéo bên trái 45o hay chụp chéo bên phải 45o, chụp từ trên xuống, chụp từ dưới lên, v.v… Với các tư thế khác nhau, các thành phần trên khuôn mặt như mắt, mũi, miệng có thể bị khuất một phần hoặc thậm chí khuất hết

 Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt: Các đặc trưng như: râu mép, râu hàm, mắt kính, v.v… có thể xuất hiện hoặc không Vấn đề này làm cho bài toán càng trở nên khó hơn rất nhiều

 Sự biểu cảm của khuôn mặt: Biểu cảm của khuôn mặt con người có thể làm ảnh hưởng đáng kể lên các thông số của khuôn mặt Chẳng hạn, cùng một khuôn mặt một người, nhưng có thể sẽ rất khác khi họ cười hoặc sợ hãi, v.v…

 Sự che khuất: Khuôn mặt có thể bị che khuất bởi các đối tượng khác hoặc các khuôn mặt khác

 Hướng của ảnh (pose variations): Các ảnh khuôn mặt có thể biến đổi rất nhiều với các góc quay khác nhau của trục camera Chẳng hạn chụp với trục máy ảnh nghiêng làm cho khuôn mặt bị nghiêng so với trục của ảnh

 Điều kiện của ảnh: Ảnh được chụp trong các điều kiện khác nhau về: chiếu sáng, về tính chất camera (máy kỹ thuật số, máy hồng ngoại, v.v…), ảnh có chất lượng thấp ảnh hưởng rất nhiều đến chất lượng ảnh khuôn mặt

 Aging condition: Việc nhận dạng ảnh mặt thay đổi theo thời gian còn là một vấn đề khó khăn, ngay cả đối với khả năng nhận dạng của con người

 Các hệ thống cực lớn (very large scale systems): Các CSDL ảnh mặt được test bởi các nhà nghiên cứu còn khá nhỏ (vài trăm tới vài chục nghìn ảnh mặt), tuy nhiên trên thực tế các CSDL có thể rất lớn, ví dụ CSDL ảnh mặt của cảnh sát

của một đất nước có thể chứa từ hàng triệu tới hơn 1 tỉ ảnh…

1.2.4 Một số lĩnh vực ứng dụng

Bài toán nhận diện khuôn mặt có thể áp dụng rộng rãi trong nhiều ứng dụng thực tế khác nhau Đó chính là lý do mà bài toán này hấp dẫn rất nhiều nhóm

Trang 19

nghiên cứu trong thời gian dài Các ứng dụng liên quan đến nhận diện khuôn mặt

có thể kể như:

 Hệ thống phát hiện tội phạm: camera được đặt tại một số điểm công cộng như: siêu thị, nhà sách, trạm xe buýt, sân bay,v.v Khi phát hiện được sự xuất hiện của các đối tượng là tội phạm, hệ thống sẽ gởi thông điệp về cho trung tâm

 Hệ thống tìm kiếm thông tin trên ảnh, video dựa trên nội dung (chỉ mục theo người) Chẳng hạn như: đài truyền hình Việt Nam (VTV) có một kho dữ liệu video tin tức khá lớn cần tìm kiếm nhanh những đoạn video nào có G Bush hoặc Bin Laden

 Các hệ thống bảo mật dựa trên thông tin trắc sinh học: mặt người, vân tay,v.v thay vì xác nhận mật khẩu, khóa,v.v

1.2.5 Một số thư viện hỗ trợ nhận diện khuôn mặt trong ngôn ngữ lập trình C#

OpenCV

OpenCV viết tắt của Open Source Computer Vision được xem là một trong những thư viện mã nguồn mở hàng đầu cho việc xử lý ảnh theo thời gian thực OpenCV (Thư viện hình ảnh máy tính nguồn mở) là thư viện phần mềm máy tính học tập và máy tính nguồn mở OpenCV được xây dựng để cung cấp một cơ

sở hạ tầng chung cho các ứng dụng thị giác máy tính và để đẩy nhanh việc sử dụng nhận thức máy trong các sản phẩm thương mại Là một sản phẩm được cấp phép BSD, OpenCV giúp các doanh nghiệp dễ dàng sử dụng và sửa đổi

Trang 20

Thư viện có hơn 2500 thuật toán được tối ưu hóa, bao gồm một tập hợp toàn diện các thuật toán máy học và tầm nhìn máy tính tiên tiến và hiện đại Các thuật toán này có thể được sử dụng để phát hiện và nhận diện khuôn mặt, xác định đối tượng, phân loại hành động của con người trong video, theo dõi chuyển động của camera, theo dõi đối tượng chuyển động, trích xuất mô hình 3D của đối tượng, tạo ra các đám mây điểm 3D từ camera stereo, ghép ảnh lại với nhau để tạo ra độ phân giải cao hình ảnh của toàn cảnh, tìm hình ảnh tương tự từ cơ sở dữ liệu hình ảnh, xóa mắt đỏ khỏi hình ảnh được chụp bằng flash, theo dõi chuyển động của mắt, nhận diện phong cảnh và thiết lập điểm đánh dấu để che phủ nó bằng thực tế

mở rộng, v.v Thư viện được sử dụng rộng rãi trong các công ty, các nhóm nghiên cứu và các cơ quan chính phủ

Cùng với các công ty có uy tín như Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota sử dụng thư viện, có nhiều công ty khởi nghiệp như Applied Minds, VideoSurf và Zeitera, sử dụng rộng rãi OpenCV Các ứng dụng được triển khai của OpenCV mở rộng phạm vi từ khâu hình ảnh đường phố, phát hiện xâm nhập trong video giám sát ở Israel, giám sát thiết bị mỏ ở Trung Quốc, giúp robot điều hướng và nhận đồ vật tại Willow Garage, phát hiện tai nạn chết đuối ở châu

Âu Tây Ban Nha và New York, kiểm tra đường băng cho các mảnh vỡ ở Thổ Nhĩ

Kỳ, kiểm tra nhãn trên các sản phẩm tại các nhà máy trên khắp thế giới để phát hiện khuôn mặt nhanh chóng ở Nhật Bản

Nó có giao diện C++, Python, Java và MATLAB và hỗ trợ Windows, Linux, Android và Mac OS OpenCV dựa chủ yếu vào các ứng dụng thị giác thời gian thực và tận dụng các hướng dẫn MMX và SSE khi có sẵn Một giao diện CUDA

và OpenCL đầy đủ tính năng đang được tích cực phát triển ngay bây giờ Có hơn

500 thuật toán và khoảng 10 lần so với nhiều chức năng soạn hoặc hỗ trợ các thuật toán đó OpenCV được viết tự nhiên trong C++ và có một giao diện templated hoạt động liền mạch với các container STL

Trang 21

EmguCV

EmguCV Là một cross platform NET, một thư viện xử lý hình ảnh mạnh

mẽ dành riêng cho các ngôn ngữ NET, cho phép gọi được chức năng của OpenCV

là từ NET, Tương thích ngôn ngữ như: C#, VB, VC ++, Iron Python Wrapper

có thể được biên dịch bởi Visual Studio, Xamarin Studio và Unity Có thể chạy trên Windows, Linux, Mac OS X, iOS, Android và Windows Phone

Lợi thế của EmguCV:

 EmguCV được viết hoàn toàn bằng C#, có thể chạy trên bất kỳ nền tảng hỗ trợ bao gồm iOS, Android, Windows Phone, hệ điều hành Mac OS và Linux

 EmguCV có thể được sử dụng với nhiều ngôn ngữ khác nhau như C#, VB.NET, C ++ và Iron Python

 Nhận dạng ảnh: nhận dạng khuôn mặt, các vật thể,

 Xử lý ảnh: khử nhiễu, điều chỉnh độ sáng,

 Nhận dạng cử chỉ

 Hỗ trợ tài liệu XML và intellisense

 Có thể sử dụng class Image hoặc gọi thẳng xuống các hàm của OpenCV

1.3 Mã hóa thông tin

1.2.1 Giới thiệu về mã hóa thông tin

Mã hóa thông tin là một hình thức biến đổi dữ liệu thành một dạng dữ liệu khác có ý nghĩa khác với dữ liệu trước khi bị biến đổi ban đầu, với mục đích chỉ cho phép một số người nhất định có thể đọc được dữ liệu ban đầu, thông qua việc giải mã dữ liệu sau khi biến đổi

Hay nói cách khác, mã hóa là biến dữ liệu ban đầu A thành dữ liệu B, và việc đọc dữ liệu A sẽ thông qua việc giải mã dữ liệu B về A

Trang 22

1.2.2 Mã hóa bí mật

Mã hóa khóa bí mật, còn gọi là mã hóa đối xứng hay mã hóa khóa riêng, là

sử dụng một khóa cho cả quá trình mã hóa (được thực hiện bởi người gửi thông tin) và quá trình giải mã (được thực hiện bởi người nhận)

Quá trình mã hóa khóa bí mật được thực hiện như sau:

Một khách hàng (Anne) muốn gửi tới người bán hàng (Bob) một đơn đặt hàng, nhưng chỉ muốn một mình Bob có thể đọc được Anne mã hóa đơn đặt hàng (dưới dạng văn bản gốc) của mình bằng một mã khóa rồi gửi đơn đặt hàng đã mã hóa đó cho Bob

Tất nhiên, ngoài Bob và Anne ra, không ai có thể đọc được nội dung thông điệp lộn xộn đã mã hóa

Khi nhận được thông điệp mã hóa, Bob giải mã thông điệp này bằng khóa giải mã và đọc các thông tin của đơn đặt hàng Điều đáng chú ý là trong kĩ thuật

mã hóa khóa bí mật, khóa để mã hóa thông điệp và khóa để giải mã thông điệp giống như nhau

Người gửi thông điệp sử dụng một khóa mật mã để mã hóa thông điệp và người nhận thông điệp cũng sử dụng một khóa như vậy để đọc mật mã hoặc giải

mã thông điệp

Kĩ thuật mã hóa khóa bí mật này đã được IBM phát triển, áp dụng cho các

cơ quan của Chính Phủ Mỹ năm 1977 được gọi là Tiêu chuẩn mã hóa dữ liệu (DES – data encryption standard)

Trang 23

CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG

2.1 Khảo sát hệ thống

2.1.1 Mô tả hiện trạng của hệ thống hiện tại

2.1.1.1 Giới thiệu hệ thống hiện tại

Chủ siêu thị MiNi kiêm kế toán, chỉ quản lý siêu thị MiNi bằng sổ sách, mọi thông tin lưu trữ đều bằng văn bản giấy tờ (đơn hàng, sổ thanh toán, hàng hóa) Siêu thị MiNi không có phần mềm để quản lý

Công việc nhập dữ liệu vào sổ sách đơn giản, nhưng khó tra cứu và rất mất thời gian Nhiều rủi ro nếu nhập sai số

2.1.1.2 Ưu điểm và khuyết điểm

Ưu điểm

Phương pháp thủ công giải quyết được một vấn đề trước mắt cho rất nhiều chủ siêu thị đó là tiết kiệm chi phí Đồng thời việc tổ chức dữ liệu bằng sổ sách hoặc excel hầu hết ai cũng có thể bắt tay thực hiện và được đánh giá khá linh hoạt, bởi bản chất việc tổ chức dữ liệu theo tư duy của mỗi cá nhân Các loại dữ liệu về hàng hóa trong kho thường được ghi chép, lưu trữ trong từng quyển sổ, hoặc file riêng biệt

Nếu gặp sự cố về máy móc hay cúp điện thì dữ liệu của cửa hàng không bị mất công việc không bị ngưng trệ

Trang 24

truyền thống hoặc excel mất nhiều thời gian kiểm tra mới biết số lượng hàng hóa mình cần trong còn bao nhiêu, còn hay hết và rất khó xác định vị trí của mặt hàng cần tìm kiếm ở khu vực nào trong kho Rồi còn các khoản thu chi, lợi nhuận cần được tính toán kịp thời và chính xác , và luôn phải trực trong cửa hàng

Ngoài ra việc tra cứu thông tin về hàng hóa, khách hàng mất thời gian và thiếu chính xác Tốn thời gian để tổng hợp, báo cáo, thống kê

2.1.2 Hướng phát triển của hệ thống mới

Để thực hiện mở rộng hoạt động kinh doanh, đáp ứng số lượng khách hàng đến mua hàng ngày càng đông, siêu thị MiNi có nhu cầu xây dựng một hệ thống phần mềm quản lý bán hàng, nhằm tin học hoá quá trình quản lý kinh doanh của cửa hàng

Trên cơ sở xác định rõ các nguyên nhân yếu kém, đề ra các biện pháp để khắc phục các yếu kém đó

Giảm khối lượng ghi chép, đảm bảo truy vấn nhanh, lưu trữ và cập nhập nhanh chóng, thuận tiện

Lập báo cáo định kỳ (theo ngày, theo tuần, hoặc theo tháng,…)

Tự động in hóa đơn, và có khả năng lưu trữ thông tin lâu dài

Thay đổi hệ thống một cách dần dần: Vừa thay đổi hệ thống cũ nhưng cũng không gây ra những thay đổi đột ngột trong hoạt động của cửa hàng

2.1.3 Lập kế hoạch khảo sát

2.1.3.1 Khảo sát sơ bộ

Tên nơi khảo sát: Siêu thị MiNi Kim Ngân

Địa chỉ: Tam Xuân 2 – Núi Thành – Quảng Nam

Tên chủ nơi khảo sát: Kim Ngân

Hệ thống của cửa hàng là: Siêu thị MiNi

Các hàng hoá trong cửa hàng gồm các loại như:

Trang 25

Dầu gội Dầu ăn Bánh kẹo

Siêu thị có 6 người làm, gồm 1 chủ cửa hàng và 5 nhân viên Nhân viên một

sẽ đứng tại quầy để thanh toán tiền cho khách nhân viên cũng có thể nhập hàng khi hàng hóa sắp hết còn hai nhân viên thì lấy hàng và đưa cho khách, 2 nhân viên

sẽ đi giao hàng và mua hàng và chủ siêu thị sẽ dựa vào phần mềm để thống kê lợi nhuận, thêm nhân viên, tính lương,…

Trong suốt quá trình nhập hàng và bán hàng của cửa hàng không hề có bất

cứ sự trợ giúp của máy móc gì Mọi thông tin về số lượng hàng hóa ngoài cửa hàng thì đều được ghi lại bằng giấy bút Tìm hàng và thống kê kinh doanh hay hàng hóa đều được thực hiện bằng phương thức thủ công

2.1.3.2 Khảo sát chi tiết

Dùng phương pháp phỏng vấn để thu thập thông tin về các yêu cầu của hệ thống thông tin

thúc:14h15

Trang 26

Đối tượng được hỏi là: Chủ siêu thị MiNi

Cần thu thập dữ liệu: thông tin về cách thức thêm

hàng mới và cách nhập hàng Lưu trữ những thông

tin gì của hàng hóa Thông tin về cách thức bán

Chi tiết phiếu phỏng vấn

BẢNG CHI TIẾT PHIẾU PHỎNG VẤN

Người được hỏi:Kim Ngân (Chủ siêu thị MiNi) Ngày: 1/5/2021

Người hỏi: Lê Trần Kim Thảo

1 Xin cho biết cửa hàng mình sử dụng phần

mềm gì để quản siêu thị MiNi?

Hiện tại cửa hàng chỉ quản lý bằng sổ sách, không sử dụng phần mềm

Trang 27

2 Xin cho biết ưu điểm của việc quản lý

cửa hàng theo sổ sách?

Tiết kiệm chi phí, đồng thời việc tổ chức dữ liệu bằng sổ sách hoặc excel hầu hết ai cũng có thể bắt tay thực hiện

3 Vậy Cô cho biết nhược điểm của việc

quản lý theo sổ sách?

Phải sử dụng đến nhiều công

cụ, dành nhiều thời gian để tính toán, ghi chép thật chính xác

4

Khi nhập hàng mới, cửa hàng có cần tính

đến số lượng hàng và kiểm tra nguồn gốc

hàng hóa không?

Mỗi lần đặt hàng với nhà cung cấp, chúng tôi đều có danh sách biết được sách nào đã hết hạn và số lượng nhập mới và đơn giá nhập là bao nhiêu …

5 Những thông tin gì của hàng được lưu trữ

lại để tiện cho việc quản lí?

Mỗi loại hàng sẽ được lưu lại với các thông tin: tên hàng, nhà cung cấp, ngày sản xuất, ngày hết hạn, ghi chú kèm theo

6

Cửa hàng có lưu trữ thông tin của nhà

cung cấp không? Nếu có đó là những

thông tin gì?

Nhà cung cấp sẽ có tên nhà cung cấp, địa chỉ, số điện thoại

7 Trên hóa đơn bán hàng có những thông

tin gì?

Trên hóa đơn có: Số hóa đơn, ngày lập, tên hàng, số lượng bán, đơn giá bán

Trang 28

8 Có mấy hình thức thanh toán khi khách

hàng mua hàng?

Hiện nay cửa hàng chỉ có một hình thức thanh toán Khách hàng mua hàng: Nhân viên sẽ ghi hóa đơn cho khách hàng, đồng thời lưu lại bản sao của hóa đơn đó, sau đó gửi hóa đơn cho khách hàng thanh toán bằng tiền mặt

9 Thường thì cửa hàng tổng kết các hóa

đơn bán hàng như thế nào?

Cuối ngày nhân viên sẽ lập sổ chi tiết bán hàng để tổng kết các hóa đơn bán hàng trong ngày Điều này để tiện việc báo cáo tổng kết theo tháng, theo quý

Biểu mẫu hóa đơn xuất và nhập sản phẩm

+ Hóa đơn nhập sản phẩm:

Hình 2.1 Biểu mẫu hóa đơn nhập

Trang 29

+ Hóa đơn xuất sản phẩm:

Hình 2.2 Biểu mẫu hóa đơn xuất

2.1.3.3 Lập báo cáo kết quả thu được

Hoạt động bán hàng

Hiện nay bộ phận bán hàng của một siêu thị MiNi gồm có 5 người, siêu thị

mở cửa vào lúc 5h và đóng cửa vào lúc 22h

Khi khách hàng có yêu cầu mua hàng:

Nếu khách hàng đến mua hàng thì nhân viên bán hàng sẽ lập danh sách hàng hóa khách cần mua và kiểm tra hàng hóa và đem ra cho khách hàng

Khách hàng có thể tự tìm và chọn mua các loại mặc hàng cần mua và đem ra cho nhân viên thanh toán

Sau đó, nhân viên bán hàng sẽ lập hoá đơn bán hàng chuyển cho khách hàng

để kiểm tra lại

Trang 30

Các thông tin trên hoá đơn bán hàng bao gồm: số hoá đơn, tên khách hàng, ngày lập, nhân viên lập hóa đơn Các thông tin chi tiết về hàng hóa bán bao gồm: Tên hàng, số lượng, đơn giá, tổng tiền

Sau khi kết thúc làm việc thì nhân viên bán hàng sẽ tổng hợp số tiền bán hàng và bàn giao cho chủ cửa hàng

Hoạt động nhập hàng

Nhân viên sẽ kiểm tra số lượng hàng, nếu mặt hàng nào hết hoặc sắp hết, hết hạn thì nhân viên sẽ gọi điện cho nhà cung cấp cung cấp hàng, sau đó sẽ cập nhật

số lượng hàng và đơn giá nhập

Cửa hàng quản lý nhà cung cấp bằng cách ghi thông tin nhà cung cấp vào sổ sau khi nhập hàng Các thông tin về nhà cung cấp bao gồm: mã nhà cung cấp, tên nhà cung cấp, địa chỉ, điện thoại

Cửa hàng quản lý hàng hóa bằng cách cập nhật thông tin về: mã hàng, tên

hàng, số lượng còn, đơn giá bán, ngày sản xuất, ngày hết hạn, ghi chú

2.1.4 Mô tả bài toán

Một siêu thị MiNi Kim Ngân tại Tam Kỳ cần xây dựng một phần mềm quản

lý việc mua bán, lợi nhuận, nhân viên,… của siêu thị Siêu thị những ngày bình thường thì sẽ có chủ siêu thị và hai nhân viên Ngày lễ thì sẽ thuê thêm, tuy nhiên

sẽ trả lời theo ca, số ngày làm việc Hệ thống cần đảm bảo các chức năng cơ bản:

Quản lý hệ thống

Quản lý sản phẩm

Quản lý loại sản phẩm

Sổ quỹ quản lý lượng tiền ra vào trong một ngày

 Quản lý công nợ của các khách hàng hoặc công ty theo hóa đơn và công nợ

của nhà cung cấp theo đơn nhập hàng

Theo dõi doanh số ngoài kho khi không nằm trong kho hàng

Quản lý kho

Trang 31

Quản lý hàng nhập kho trong một ngày

Quản lý chương trình khuyến mãi

Quản lý nhân viên

Quản lý nhà cung cấp

Quản lý loại khách hàng

Quản lý khách hàng

Quản lý lương nhân viên

Quản lý hóa đơn nhập

Quản lý hóa đơn xuất

Báo cáo thống kê theo tháng, quý, năm và theo thời gian mình mong muốn

Ngoài những chức năng cơ bản thì hệ thống cần có chức năng như đăng nhập bằng khuôn mặt, mã khóa bí mật

2.1.5 Yêu cầu chức năng

Quản lý hệ thống

Quản lý sản phẩm

Quản lý loại sản phẩm

Quản lý kho

Quản lý chương trình khuyến mãi

Quản lý nhân viên

Quản lý nhà cung cấp

Quản lý loại khách hàng

Quản lý khách hàng

Quản lý lương nhân viên

Quản lý hóa đơn nhập

Quản lý hóa đơn xuất

Báo cáo thống kê

Trang 32

2.1.6 Mô hình Ri

R1 Quản lý hệ thống

R1.1 Đăng nhập

R1.1.1 Đăng nhập bằng mật khẩu R1.1.2 Đăng nhập bằng khuôn mặt R1.2 Đổi mật khẩu

Trang 33

R5.1 Thêm chương trình khuyến mãi

R5.1.1 Thêm thủ công

R5.1.2 Thêm bằng file excel

R5.2 Tìm kiếm chương trình khuyến mãi

R5.3 Cập nhập thông tin chương trình khuyến mãi R5.4 Xóa chương trình khuyến mãi

R6 Quản lý nhân viên

R6.1 Thêm nhân viên

R6.1.1 Thêm thủ công

R6.1.2 Thêm bằng file excel

R6.2 Tìm kiếm nhân viên

R6.3 Cập nhập thông tin nhân viên

R6.4 Xóa nhân viên

Trang 34

R9.1.2 Thêm bằng file excel

R10.2 Cập nhập lương nhân viên

R10.3 Xóa tất cả lương trong tháng

R11 Quản lý hóa đơn nhập

R11.1 Tạo hóa đơn

R11.2 Tìm kiếm hóa đơn

R11.3 Cập nhập hóa đơn

R11.3.1 Cập nhập thông tin hóa đơn

R11.3.2 Thêm sản phẩm vào hóa đơn

R11.3.3 Cập nhập số lượng sản phẩm trong hóa đơn R11.3.4 Xóa sản phẩm khỏi hóa đơn

R11.4 Xem hóa đơn

R11.5 Xóa hóa đơn

R12 Quản lý hóa đơn xuất

R12.1 Tạo hóa đơn

R12.2 Tìm kiếm hóa đơn

R12.3 Cập nhập hóa đơn

R12.3.1 Cập nhập thông tin hóa đơn

R12.3.2 Thêm sản phẩm vào hóa đơn

R12.3.3 Cập nhập số lượng sản phẩm trong hóa đơn R12.3.4 Xóa sản phẩm khỏi hóa đơn

R12.4 Xem hóa đơn

R12.5 Xóa hóa đơn

R13 Báo cáo thống kê

R13.1 Thống kê số dư và số lượng tiêu thụ của sản phẩm

Trang 35

R13.2 Báo cáo lương nhân viên

R13.3 Báo cáo sản phẩm theo nhà cung cấp

R13.4 Thống kê lợi nhuận siêu thị theo tháng

R13.5 Thống kê sản phẩm bán chạy

R13.6 Thống kê tiền ra vào trong một ngày

R13.7 Thống kê các khoản nợ của hóa đơn nhập

R13.8 Thống kê các khoản nợ của hóa đơn xuất

R13.9 Thống kê các hóa đơn và doanh số ngoài kho hàng

2.1.7 Đặc tính từng người dùng

 Người quản lý: là người chủ của siêu thị, quản lý tất cả các thông tin về nhân viên, loại khách hàng, lương nhân viên, đưa ra các thông tin và có thể quản lý các thông tin về loại sản phẩm, sản phẩm, kho, chương trình khuyến mãi để nhân viên

nhập vào, nhà cung cấp và báo cáo/thống kê

 Nhân viên: là người làm trong siêu thị, quản lý thông tin về loại khách hàng, khách hàng, nhập và xuất hàng, quản lý các thông tin về loại sản phẩm, sản phẩm,

kho, chương trình khuyến mãi, nhà cung cấp theo yêu cầu của quản lý

 Khách hàng: là người đến mua hàng, chọn sản phẩm, thanh toán và nhận hóa

đơn

2.1.8 Yêu cầu phi chức năng

Hệ điều hành: Windows 7, Windows 8, Windows 10

Hệ quản trị cơ sở dữ liệu: SQL Server 2019

Dung lượng ổ đĩa trống: 100MB

2.2 Phân tích hệ thống

2.2.1 Phân tích chức năng

2.2.1.1 Actor

 Người quản lý

 Quản lý nhân viên

 Quản lý lương nhân viên

Trang 36

 Quản lý hóa đơn nhập

 Quản lý hóa đơn xuất

 Quản lý hệ thống

 Quản lý loại khách hàng

Trang 37

2.2.1.2 Usecase

Trang 38

 Quản lý hệ thống

 Đăng nhập bằng mật khẩu

Actor: Người quản lý, nhân viên

Mô tả:

Bước 1: Mở form đăng nhập

Bước 2: Nhập tên đăng nhập và mật khẩu

Bước 8: Thực hiện truy vấn

Bước 9: Gửi kết quả

Bước 10: Thông báo cho người dùng

Bước 11: Chuyển sang form hệ thống

Tham chiếu: R1, R1.1, R1.1.1

 Đăng nhập bằng khuôn mặt

Actor: Người quản lý, nhân viên

Mô tả:

Bước 1: Mở form đăng nhập

Bước 2: Bấm nút đăng nhập bằng khuôn mặt

Bước 3: Chuyển sang form đăng nhập bằng khuôn mặt Bước 4: Bấm nút mở camera

Bước 5: Mở camera máy tính

Bước 6: Xác nhận khuôn mặt

Bước 7: Thông báo cho người dùng

Bước 8: Chuyển sang form hệ thống

Trang 39

Tham chiếu: R1, R1.1, R1.1.2

 Thêm sản phẩm

Actor: Người quản lý, nhân viên

Mô tả:

Bước 1: Đăng nhập vào hệ thống

Bước 2: Chuyển sang form hệ thống

Bước 3: Chọn chức năng thêm sản phẩm Bước 4: Nhập đầy đủ thông tin của sản phẩm Bước 5: Bấm nút lưu

Bước 6: Gửi thông tin sản phẩm đến lớp BUS Bước 7: Kiểm tra thông tin

Bước 8: Gửi thông tin sản phẩm đến lớp DAO Bước 9: Yêu cầu truy vấn

Bước 10: Thực hiện truy vấn

Bước 11: Gửi kết quả

Bước 12: Thông báo cho người dùng

Tham chiếu: R2, R2.1, R2.1.1

 Thêm loại sản phẩm

Actor: Người quản lý, nhân viên

Mô tả:

Bước 1: Đăng nhập vào hệ thống

Bước 2: Chuyển sang form hệ thống

Bước 3: Chọn chức năng thêm loại sản phẩm Bước 4: Bấm nút nhập file excel

Bước 5: Chuyển sang form nhập file excel Bước 6: Bấm nút nhập file

Bước 7: Hiển thị form chọn file

Trang 40

Bước 9: Gửi thông tin tất cả loại sản phẩm trong file đến lớp BUS Bước 10: Kiểm tra thông tin

Bước 11: Gửi thông tin loại sản phẩm đến lớp DAO

Bước 12: Yêu cầu truy vấn

Bước 13: Thực hiện truy vấn

Bước 14: Gửi kết quả

Bước 15: Thông báo cho người dùng

Tham chiếu: R3, R3.1, R3.1.2

 Tìm kiếm kho

Actor: Người quản lý, nhân viên

Mô tả:

Bước 1: Đăng nhập vào hệ thống

Bước 2: Chuyển sang form hệ thống

Bước 3: Chọn chức năng tìm kiếm kho

Bước 4: Nhập tên kho cần tìm

Bước 5: Bấm nút tìm kiếm

Bước 6: Gửi tên kho đến lớp BUS

Bước 7: Gửi tên kho đến lớp DAO

Bước 8: Yêu cầu truy vấn

Bước 9: Thực hiện truy vấn

Bước 10: Gửi kết quả

Bước 11: Hiển thị kết quả

Tham chiếu: R4, R4.2

 Cập nhập thông tin nhân viên

Actor: Người quản lý

Mô tả:

Bước 1: Đăng nhập vào hệ thống

Ngày đăng: 01/03/2024, 06:12

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w