Xây dựng hệ thống phần mềm quản lý bãi gửi xe

83 0 0
Tài liệu đã được kiểm tra trùng lặp
Xây dựng hệ thống phần mềm quản lý bãi gửi xe

Đ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

Phần mềm quản lí bãi gửi xe có thể đọc và nhận dạng kí tự quang học. Các kỹ thuật Deep Learning29 đã được áp dụng thành công trong các tác vụ Xử lý hình ảnh và một ví dụ đơn giản cho việc sử dụng nó là trong kỹ thuật phát hiện cạnh, Edge Detection30. Việc phát hiện các cạnh trong ảnh kỹ thuật số tương đối phức tạp và nó quan trọng trong Xử lý hình ảnh. Cụ thể trong bài này em nhận dạng biển số xe qua 3 bước: Bước 1: Nhận dạng Multiple Objects (Đa đối tượng) Trong bước này, API sẽ nhận dạng vị trí theo toạ độ của tất cả các đối tượng và lưu trong mảng objects. Bước 2: Gán nhãn

Trang 1

Xây dựng hệ thống phần mềm quản lý bãi gửi xe

Trang 2

Danh mục thuật ngữ xiv

Chương 1 Giới thiệu đề tài 1

Trang 3

2.3.2 Đặc tả use case Thêm nhân viên gác chắn 18

2.3.3 Đặc tả Use Case Cập nhật nhân viên gác chắn 20

2.3.4 Đặc tả Use Case Quẹt thẻ 21

2.4 Yêu cầu phi chức năng 22

2.4.1 Tính khả chuyển 22

2.4.2 Tính dễ dùng 23

2.4.3 Yêu cầu về giao diện người dùng 23

2.4.4 Yêu cầu về hiệu năng 23

2.4.5 Yêu cầu về bảo mật 23

3.2.6 Google Cloud Vision API 30

Chương 4 Phát triển và triển khai ứng dụng 32

4.1 Thiết kế kiến trúc 32

4.1.1 Lựa chọn kiến trúc phần mềm 32

4.1.2 Thiết kế tổng quan 34

4.1.3 Thiết kế chi tiết gói 35

4.2 Thiết kế chi tiết 37

4.2.1 Thiết kế giao diện 37

4.2.2 Thiết kế lớp 38

Trang 4

4.2.3 Thiết kế cơ sở dữ liệu 42

5.2 Tương thích tốt với nhiều loại camera 59

5.3 Bảo mật dữ liệu nhạy cảm 60

Trang 5

Hình 2.1 Biểu đồ Use Case tổng quan hệ thống 5

Hình 2.2 Biều đồ Use Case phân rã cho chức năng “Quản lí Công ti” 6

Hình 2.3 Biểu đồ Use Case phân rã cho chức năng “Quản lí nhân viên gác chắn” 7

Hình 2.4 Biểu đồ Use Case phân rã cho chức năng “Quản lí hợp đồng” 7

Hình 2.5 Biểu đồ Use Case phân rã cho chức năng “Quản lí trạm gác” 8

Hình 2.6 Biểu đồ Use Case phân rã cho chức năng “Thống kê” 9

Hình 2.7 Bảng phân cấp vai trò 11

Hình 2.8 Quy trình nghiệp vụ Đăng nhập 12

Hình 2.9 Quy trình nghiệp vụ Quẹt thẻ 13

Hình 2.10 Quy trình nghiệp vụ Quản lí công ti 14

Hình 3.1 Giao diện của một chương trình Scene Builder 25

Hình 3.2 Mô tả cấu trúc của một chuỗi băm Bcrypt 29

Hình 4.1 Mô hình kiến trúc JavaFX 32

Hình 4.2 Mô hình kiến trúc MVC 33

Hình 4.3 Biểu đồ gói cho chương trình 34

Hình 4.4 Biểu đồ gói chi tiết cho gói giao diện cho Quản trị viên 35

Hình 4.5 Chi tiết cho gói Nhân viên gác chắn 36

Hình 4.6 Khung giao diện đặc trưng của phần mềm 38

Hình 4.7 Luồng hoạt động Đăng nhập 39

Hình 4.8 Luồng hoạt động xem nhân viên gác chắn 40

Hình 4.9 Luồng hoạt động Thêm nhân viên gác chắn 41

Danh mục hình vẽ

Trang 6

Hình 4.10 Biểu đồ thực thể liên kết cho chương trình 42

Hình 4.11 Thiết kế chi tiết cho CSDL 43

Hình 4.12 Giao diện trung tâm điều khiển của QTV cấp cao 49

Hình 4.13 Giao diện xem danh sách Công ti 49

Hình 4.14 Giao diện xem danh sách Quản trị viên 50

Hình 4.15 Giao diện thêm Quản trị viên 50

Hình 4.16 Giao diện bảng điều khiển trung tâm của Quản trị viên 51

Hình 4.17 Giao diện xem thông tin Nhân viên gác chắn 51

Hình 4.18 Giao diện xem chi tiết Nhân viên gác chắn 52

Hình 4.19 Giao diện trung tâm điều khiển của Nhân viên gác chắn 52

Hình 5.1 Cấu trúc triển khai Singleton 58

Hình 5.2 Tự động nhận dạng camera được gắn trong hệ thống 59

Hình 5.3 Bản mã của bản rõ abc12345 63

Hình 5.4 Băm 2 lần liên tiếp của bản rõ abc12345 63

Hình 5.5 Kết quả so khớp với bản rõ abc12345 và một bản rõ lạ 63

Hình 5.6 Dữ liệu bản mã lưu trong CSDL của trường password 64

Hình 5.7 Thống kê tại giao diện điều khiển trung tâm của Quản trị viên cấp cao 65

Hình 5.8 Thống kê tại giao diện điều khiển trung tâm của Quản trị viên 65

Hình 5.9 Tra soát dữ liệu thẻ và quản lí vào/ra 66

Trang 7

Bảng 2.1 Danh sách các Use Case 14

Bảng 2.2 Đặc tả Use Case Tìm kiếm 17

Bảng 2.3 Mô tả trường dữ liệu Tìm kiếm 18

Bảng 2.4 Đặc tả Use Case Thêm nhân viên gác chắn 18

Bảng 2.5 Bảng Dữ liệu đầu vào của Thêm Nhân viên gác chắn 19

Bảng 2.6 Đặc tả Use Case Cập nhật nhân viên gác chắn 20

Bảng 4.1 Mô tả các thực thể trong chương trình 42

Bảng 4.2 Đặc tả cơ sở dữ liệu 43

Bảng 4.3 Danh sách thư viện và công cụ sử dụng 47

Bảng 4.4 Thống kê thông tin ứng dụng 48

Bảng 4.5 Bảng thống kê kiểm thử tương thích 53

Bảng 4.6 Kiểm thử cho chức năng Thêm nhân viên gác chắn 53

Bảng 4.7 Kiểm thử cho chức năng Thêm công ti 56

Bảng 5.1 So sánh thời gian thực hiện thuật toán khi salt bằng các giá trị tương ứng 62

Danh mục bảng

Trang 8

API Application Programming Interface

JDBC

Java Dabase Connectivity

Java API được sử dụng để kết nối và thực hiện truy vấn với

CNTT Công nghệ thông tin

Trang 9

CPU

Central Processing Unit Bộ xử lí trung tâm

GPU

Graphics Processing Unit

Bộ xử lí các tác vụ liên quan đến đồ hoạ

RDBMS

Relational Database Management System Hệ thống quản trị cơ sở dữ liệu quan hệ

SQL

Structured Query Language

Ngôn ngữ truy vấn mang tính cấu trúc

Trang 10

Khoá chính của bảng trong cơ sở dữ liệu

Trang 11

Một cửa sổ chương trình JavaFX

Scene Graph Cấu trúc phân cảnh

Node Đối tượng trực quan của một cấu trúc phân cảnh

Một công nghệ sử dụng trường điện từ để tự động nhận dạng và theo dõi các thẻ hỗ trợ công nghệ này được gắn vào đối tượng

Barrier Rào/Gác chắn

Surveillance Camera Thiết bị ghi hình nhằm mục đích theo dõi, giám sát

Desktop Thiết bị máy tính để bàn

Danh mục thuật ngữ

Trang 12

Website Một tập hợp trang web, thường chỉ nằm trong một tên miền

hoặc tên miền phụ trên World Wide Web của Internet

Admin Quản trị viên

Superior Admin Quản trị viên cấp cao

Staff Nhân viên gác chắn

Tăng tốc phần cứng khả dụng

Một chức năng của phần mềm cho phép tận dụng triệt để tài nguyên của CPU và GPU hoặc sử dụng GPU song hành

Maven

Apache maven là một chương trình quản lý dự án cho phép các developers có thể quản lý về version, các dependencies ( các thư viện sử dụng trong dự án ) , quản lý build, tự động download javadoc & source, …

Maven dependency Bộ các thư viện được định nghĩa trong XML của Maven

Webcam Thiết bị ghi lại hình ảnh, đoạn phim hoặc bắt sự kiện chuyển động

Frameworks

Khung phần mềm

Trong lập trình máy tính, là một sự trừu tượng trong đó mã phổ biến cung cấp chức năng chung có thể được ghi đè một cách chọn lọc hoặc chuyên biệt bởi mã người dùng cung cấp

Trang 13

1.1 Đặt vấn đề

Trên thực tế, khi lượng phương tiện càng nhiều, nhu cầu về việc bảo quản, lưu trữ cơ giới từ đó ngày càng lớn Mặt khác, hệ thống bãi gửi xe hiện nay còn tương đối thiếu tiện lợi cho chưa áp dụng hạ tầng hệ thống số, hệ thống chốt gác mà chỉ soát vé bằng cảm quan Việc này tuy có thể đơn giản hoá và chi phí luôn ở mức thấp nhất, nhưng gây mệt mỏi cho người gác Barrier do phải so sánh bằng mắt liên quan đến sự so khớp giữa biển số xe

Trong các mô hình bãi gửi xe hiện đại, nổi bật lên là hệ thống bán tự động và hệ thống tự động Hệ thống gửi xe bán tự động là hệ thống có người gác chỉ có mục đích giám sát, kiểm tra hệ thống hoạt động chính xác không, còn lại hệ thống tự vận hành Hệ thống gửi xe tự động là hệ thống không cần người giám sát, phương tiện vào tự động được nhận dạng và xác minh bởi hệ thống nhưng yêu cầu độ chính xác cao

Hiện nay, các kĩ sư phần mềm đang nghiên cứu và hướng dẫn bãi gửi xe hoàn toàn tự động như tự động nhận dạng biển số, tự động nhận dạng loại phương tiện, tự động nhận dạng chủ phương tiện, hệ thống thanh toán phí không dừng v.v Hệ thống này tương đối lớn và phức tạp nên ở Việt Nam chưa nhiều hệ thống làm được như vậy

Để giải quyết vấn đề này, em đã nghiên cứu và phát triển “Hệ thống quản lí bãi gửi xe” Hệ thống này không chỉ so sánh về tính chính xác của phương tiện cơ giới vào ra mà còn quản lí nhân sự trong một bãi gửi xe của một công ti đăng kí sử dụng phần mềm gửi xe

1.2 Mục tiêu và phạm vi đề tài

“Phần mềm quản lí bãi gửi xe” nhằm mang đến sự tiện lợi và tối ưu chi phí cho doanh nghiệp vừa và nhỏ đăng kí gửi xe Do đó để giải quyết được vấn đề đã nêu ở mục 1.1, em đã xây dựng ứng dụng quản lí bãi gửi xe bán tự động nhằm: (i) cung cấp một hệ thống gửi xe thuận tiện cho người sử dụng, (ii) bảo mật dữ liệu nhạy cảm, (iii) thống kê và tra soát linh hoạt, (iv) nhận dạng biển số và tra soát tự động Với hệ thống này, nhân viên gác chắn sẽ vô cùng thuận lợi trong việc quản lí và tra soát xe vào/ra

Chương 1 Giới thiệu đề tài

Trang 14

Ngoài ra, hệ thống cũng là một hệ thống quản lí nhân viên đơn giản, thống kê và tích hợp nhận dạng biển số tự động Với những giải pháp trên, hệ thống đã khắc phục được nhược điểm của những bãi gửi xe truyền thống, những bãi gửi xe “giấy mực” Dựa trên những tính năng này, doanh nghiệp có thể dễ dàng nắm được thực trạng gửi xe để đưa ra các giải pháp phù hợp để cải tạo khuôn viên công ti hoặc cải tạo vị trí gửi xe phù hợp

Do thời gian và khả năng có hạn, phần mềm quản lí bãi gửi xe được xây dựng theo kiểu bán tự động chứ chưa hoàn toàn tự động với các chức năng cơ bản như nhóm chức năng quản lí nhân viên, nhóm chức năng quản lí bãi gửi xe Do việc nhận dạng biển số xe có độ chính xác chưa cao nên vẫn cần NVGC trực tiếp kiểm tra, phòng khi hệ thống nhận dạng sai

1.3 Định hướng giải pháp

Do sản phẩm được viết trên nền Desktop và không có yếu tố nền Web, nên sản phẩm sử muốn sử dụng được cần cài đặt trên một PC Do đó em lựa chọn ngôn ngữ (i) Java, kết hợp thiết kế giao diện bằng (ii) JavaFX Để có thể làm được điều này, em cần tìm hiểu kĩ lưỡng về Java Core, OOP, Java JDBC, JavaFX, v.v Chi tiết công nghệ sử dụng sẽ được em trình bày trong Chương 3

Việc lập ra một ứng dụng Quản lí bãi gửi xe theo em là vô cùng phức tạp, tuy nhiên vì thời gian có hạn, em đã giới hạn lại và chỉ thực hiện các chức năng quan trọng như quản lí nhân viên (đơn giản), quản lí bãi gửi xe

Để giải quyết vấn đề tạo lập một ứng dụng quản lí bãi gửi xe, em cần tìm hiểu nghiệp vụ về bãi gửi xe, sau đó áp dụng nghiệp vụ này vào bài làm của mình Chi tiết em xin được trình bày trong Chương 2

Để có thể quản lí người dùng, em đã phân vai trò làm ba nhóm: Nhóm 1 – đội ngũ phát triển phần mềm, nhóm 2 – doanh nghiệp đăng kí sử dụng phần mềm, nhóm 3 – khách hàng gửi xe Do thời gian có hạn, em chưa thiết kế được tính năng cho khách hàng mà chỉ tập trung vào tính năng cho nhóm người dùng 1 và 2

Trang 15

Ngoài ra, phần mềm còn có chức năng nhận dạng kí tự quang học thông qua Google Cloud Vision API

1.4 Bố cục đồ án

Em xin trình bày về bố cục các phần còn lại như sau:

Chương 2 trình bày khảo sát hiện trạng các phần mềm quản lí bãi gửi xe hiện nay, thực trạng và tính cần thiết của phần mềm quản lí bãi gửi xe Phân tích yêu cầu và đưa ra các chức năng chính của ứng dụng

Chương 3 giới thiệu về các công nghệ được sử dụng để xây dựng ứng dụng, điểm nổi bật của công nghệ đó, lý do lựa chọn công nghệ đó để xây dựng ứng dụng quản lí bãi gửi xe

Chương 4 trình bày về cách thức triển khai và phát triển ứng dụng Các nội dung chính được thực hiện trong chương này bao gồm (i) thiết kế kiến trúc, (ii) thiết kế chi tiết, (iii) xây dựng ứng dụng Trong phần thiết kế kiến trúc trình bày về kiến trúc phần mềm đã lựa chọn, thiết kế tổng quan ứng dụng Phần thiết kế chi tiết bao gồm thiết kế giao diện, thiết kế lớp, cơ sở dữ liệu của ứng dụng Phần xây dựng ứng dụng đưa ra các kết quả đạt được của ĐATN

Chương 5 trình bày về các giải pháp và đóng góp nổi bật Trong chương này nêu ra các đóng góp nổi bật mà ĐATN mang lại Các đóng góp này bao gồm đóng góp của ĐATN khi áp dụng vào thực tế, giải quyết được các hạn chế của các ứng dụng quản lí bãi gửi xe hiện tại

Chương 6 trình bày về các kết quả đạt được, đưa ra kết luận và định hướng phát triển cho phần mềm trong tương lai

Trang 16

Trong chương này, em sẽ trình bày khảo sát các hệ thống Quản lí bãi gửi xe có trên thực tế Từ đó em đưa ra tổng quan chức năng và đặc tả chi tiết của một số chức năng chính của hệ thống Quản lí bãi gửi xe này

2.1 Khảo sát hiện trạng

Theo thống kê về Thực trạng các bãi đỗ xe thông minh các thành phố lớn Việt Nam ngày 12/07/2020 thì nhu cầu của người dân về gửi xe ngày càng tăng mà các bãi đỗ xe chỉ đáp ứng được 8-10% Việc ứng dụng bãi gửi xe hiện đại, thông minh cũng chưa được nhiều gây nên tình trạng tắc nghẽn giao thông đặc biệt là các thành phố lớn như Hà Nội và tp.Hồ Chí Minh1

Thời gian qua, tình hình tội phạm trộm cắp tài sản trong tỉnh có chiều hướng gia tăng Nhiều đối tượng sẵn sàng chống trả, tấn công bị hại nếu bị phát hiện Trong đó, lợi dụng sự sơ hở của chủ nhân, các đối tượng trộm nhắm nhiều đến xe máy - một loại tài sản được sử dụng phổ biến, có giá trị và dễ tiêu thụ trên thị trường.2

Ngoài ra, các đối tượng còn đến những nơi có tập trung đông xe đậu như: cơ quan, doanh nghiệp, nơi vui chơi công cộng, quán xá cặp các tuyến lộ hay kể cả nơi có tổ chức đám tiệc… Thường những nơi này những người trông coi đôi khi khó có thể kiểm soát được hết nên đối tượng sẽ dễ dàng lợi dụng, trà trộn vào chờ đợi thời cơ để bẻ khóa và lấy đi tài sản Gần đây, một số đối tượng còn manh động đến mức, chúng theo dõi và ngang nhiên đi vào những nhà mà không hề có quen biết để thăm dò, nếu không có người trông coi sẽ lấy đi những tài sản có giá trị, còn nếu bị phát hiện sẽ giả vờ hỏi thăm đường hoặc vào nhầm nhà rồi bỏ đi.3

Chương 2 Khảo sát và phân tích yêu cầu

Trang 17

Hiện nay, đã có khá nhiều ứng dụng Quản lí bãi gửi xe đã có trên thị trường như eparking4, vinparking5, TPA6 Các ứng dụng này đều mang đến sự tiện lợi và dễ sử dụng cho người dùng Do phạm vi của ĐATN, em xin được thực hiện lại phần nào các tiện ích của những phần mềm trên và phát triển những tính năng đặc biệt hơn cho người dùng

2.2 Tổng quan chức năng

2.2.1 Biểu đồ use case tổng quan

Hình 2.1 Biểu đồ Use Case tổng quan hệ thống

Phần mềm Quản lí bãi gửi xe gồm các thành phần và chức năng khác nhau Trong Hình 2.1

nêu lên các tác nhân và các chức năng chính của hệ thống

Các tác nhân chính: Quản trị viên cấp cao, Quản trị viên, Nhân viên gác chắn

4https://eparking.vn/gioi-thieu-eparking/, lần cuối truy cập ngày 15/06/2021

5https://vinparking.com/phan-mem-quan-ly-giu-xe, lần cuối truy cập ngày 15/06/2021

6http://hethongdoxe.com/phan-mem-quan-ly-bai-do-xe-c233310.html, lần cuối truy cập ngày 15/06/2021

Trang 18

1 Quản trị viên cấp cao là một người QTV do bản thân đội ngũ phát triển phần mềm điều phối và nắm giữ vai trò quản lí Quản trị viên (đại diện cho Công ti), quản lí Công ti, và quản lí Vai trò trong một công ti

2 Quản trị viên là một người QTV do QTV cấp cao tạo ra khi một doanh nghiệp đăng kí sử dụng phần mềm QTV này có vai trò quản lí Nhân viên gác chắn, Quản lí Bãi gửi xe và thống kê

3 Nhân viên gác chắn là một người trực tiếp quản lí và tổng hợp các vấn đề liên quan đến khách hàng Nhân viên gác chắn do QTV của Công ti đăng kí sử dụng phần mềm tạo ra

2.2.2 Biểu đồ use case phân rã

Trong phần này em sẽ trình bày phân rã những Use Case quan trọng như Quản lí Công ti, Quản lí Nhân viên gác chắn, Quản lí Hợp đồng, Quản lí trạm gác

2.2.2.1 Biểu đồ Use Case phân rã “Quản lí Công ti”

Hình 2.2 Biều đồ Use Case phân rã cho chức năng “Quản lí Công ti”

Trang 19

2.2.2.2 Biểu đồ Use Case phân rã “Quản lí Nhân viên gác chắn”

Hình 2.3 Biểu đồ Use Case phân rã cho chức năng “Quản lí nhân viên gác chắn” Hình 2.3 mô tả chức năng Quản lí nhân viên gác chắn với tác nhân chính là Quản trị viên

Tương tự như chức năng Quản lí Công ti, Quản trị viên – đại diện cho mỗi Công ti sẽ có đầy đủ các chức năng Quản lí nhân viên như Thêm, sửa, xoá, cập nhật NVGC Mỗi NVGC sẽ có một tài khoản, mật khẩu đăng nhập vào hệ thống

2.2.2.3 Biểu đồ Use Case phân rã “Quản lí Hợp đồng”

Hình 2.4 Biểu đồ Use Case phân rã cho chức năng “Quản lí hợp đồng”

Trang 20

Hình 2.4 mô tả chức năng Quản lí hợp đồng với tác nhân chính là Nhân viên gác chắn Đối

với chức năng Quản lí hợp đồng, một hợp đồng tạo ra không thể xoá được mà vẫn lưu trữ trên hệ thống Nếu hợp đồng có bất kì sự cố nào thì Khách hàng gửi xe chỉ có thể yêu cầu tạo một hợp đồng mới hoặc cập nhật lại số liệu hợp đồng

2.2.2.4 Biểu đồ Use Case phân rã “Quản lí trạm gác”

Hình 2.5 Biểu đồ Use Case phân rã cho chức năng “Quản lí trạm gác”

Hình 2.5 mô tả chi tiết cho chức năng Quản lí trạm gác với tác nhân chính là Nhân viên gác

chắn Đây có lẽ là chức năng được sử dụng nhiều và thường xuyên nhất của chương trình Khi NVGV đăng nhập ở máy tính ở trạm gác, hệ thống sẽ khởi động Camera an ninh, khởi động máy RFID Mỗi thi thẻ được quét qua máy RFID, một chuỗi các bước liên tiếp được thực hiện như Máy đọc đọc thẻ, Hiển thị thông tin thẻ, Tra soát thẻ Trong đó chức năng Tra soát thẻ tương đối phức tạp Chức năng này sẽ được nói rõ ở phần Quy trình nghiệp vụ

Trang 21

2.2.2.5 Biểu đồ Use Case phân rã “Thống kê”

Hình 2.6 Biểu đồ Use Case phân rã cho chức năng “Thống kê”

Hình 2.6 mô tả chi tiết cho chức năng Thống kê với tác nhân chính là Quản trị viên Đây là

một chức năng tương đối quan trọng trong phần mềm Quản lí bãi gửi xe Nó giúp Quản trị viên có một cái nhìn tổng quan nhất về hệ thống của mình

hạn của các chức danh

Mỗi nhân viên trong nhóm Đội ngũ phát triển phần mềm, Doanh nghiệp đăng kí sử dụng

phần mềm (Hình 2.7) sẽ được cấp tài khoản bao gồm Username và Password để đăng nhập

vào hệ thống Với mỗi vai trò, hệ thống sẽ tự điều hướng đến các chức năng tương ứng với vai trò của người đó

Do tính chất doanh nghiệp vừa và nhỏ, Bãi gửi xe chỉ cho phép gửi xe có biển số trừ những xe quá khổ, quá tải Khi khách hàng đến gửi xe theo tháng, NVGC sẽ nhập liệu hợp đồng trên hệ thống Nếu khách hàng gửi xe theo ngày thì không cần hợp đồng, NVGC sẽ quét thẻ

Trang 22

RFID vào máy quét và hệ thống sẽ ghi lại hình ảnh của biển số xe hoặc cả biển số xe và cả hình ảnh

Phần mềm cho phép đọc và ghi lại hình ảnh từ 2 camera an ninh trong một thời điểm Tuy nhiên trong Phần mềm em đang phát triển hiện có đọc từ một camera duy nhất

Tùy theo loại xe và thời gian hợp đồng trông giữ mà chi phí trông giữ xe là khác nhau

• Đối với vé ngày, các phương tiện nhóm xe gắn máy, xe mô tô có giá chung là 10.000đ/lượt, xe nhóm ô tô có giá chung là 100.000đ/lượt Khách hàng gửi vé ngày có thể gửi không giới hạn thời gian trong một ngày, tuy nhiên nếu gửi xe quá thời hạn sẽ bị phạt phí lấy muộn 5.000đ/giờ

• Đối với vé tháng, xe gắn máy, xe mô tô phí trông giữ hàng tháng là 120.000đ/tháng Với ô tô con hoặc xe tải cỡ nhỏ, phí trông giữ hàng tháng là 1.800.000đ/tháng Nếu ký hợp đồng từ 3-5 năm thì giảm phí 10% Nếu ký hợp đồng trông trên 5 năm thì giảm phí 15%

Khách hàng gửi xe vé ngày cần điều khiển phương tiện vào đúng vùng đọc an ninh để đọc

chính xác biển số xe và hình ảnh phương tiện Khách hàng gửi xe vé tháng sẽ có sẵn thẻ,

khi gửi xe chỉ cần đưa thẻ vào máy đọc Mỗi khách hàng có

Khách hàng chấm dứt hợp đồng trông giữ xe khi đến hạn cần đến làm thủ tục, xuất trình hợp đồng trông giữ

Nếu khách hàng chấm dứt hợp đồng sớm hơn thời hạn, cần bồi thường theo quy định trừ

trường hợp bất khả kháng

NVGC có thể thêm hợp đồng, sửa hợp đồng, xoá hợp đồng Ngoài ra, NVGC có thể tìm

kiếm hợp đồng theo hoặc thống kê doanh thu của bãi xe

Trang 23

Hình 2.7 Bảng phân cấp vai trò

Hình 2.7 mô tả phân cấp vai trò trong chương trình Để thuận tiện, chúng ta gọi Đội ngũ

phát triển phần mềm là nhóm 1, Doanh nghiệp đăng kí sử dụng phần mềm là nhóm 2, Khách hàng gửi xe là nhóm 3

Trang 24

2.2.3.1 Quy trình nghiệp vụ Đăng nhập

Hình 2.8 Quy trình nghiệp vụ Đăng nhập

Hình 2.8 mô tả quy trình nghiệp vụ đăng nhập, tác nhân chính bao gồm người dùng (thuộc

nhóm 1 và 2), các chức năng chính là Nhấn nút Đăng nhập, Kiểm tra hợp lệ, Tìm kiếm vai trò Hệ thống sẽ tự điều hướng tương ứng với vai trò của người đăng nhập đến giao diện và chức năng cần thiết

Trang 25

2.2.3.2 Quy trình nghiệp vụ Quẹt thẻ

Hình 2.9 Quy trình nghiệp vụ Quẹt thẻ

Hình 2.9 mô tả quá trình Quẹt thẻ với tác nhân là nhân viên gác chắn, bao gồm các chức

năng chính là Đọc thẻ, Tra soát thẻ, Hiển thị thông tin thẻ Quá trình phía sau hệ thống thực hiện các bước kiểm tra nghiêm ngặt để đảm bảo tính chính xác trong dữ liệu thẻ

Trang 26

2.2.3.3 Quy trình nghiệp vụ Quản lí công ti

Hình 2.10 Quy trình nghiệp vụ Quản lí công ti

Hình 2.10 mô tả quy trình Quản lí công ti bao gồm các chức năng chính là Thêm công ti,

Cập nhật Công ti, Xem chi tiết công ti, Xoá Công ti Tác nhân chính là Quản trị viên cấp cao, tác nhân ngoại lai là Doanh nghiệp đăng kí sử dụng phần mềm Ở đây QTV cấp cao có thể quản lí công ti một cách đơn giản, thuận tiện với các chức năng cơ bản như thêm sửa xoá, cập nhật công ti

2.3 Đặc tả chức năng

Bảng 2.1 liệt kê 12 chức năng của hệ thống Do phạm vi cũng như độ phức tạp của chức

năng, em chỉ đặc tả một số Use Case quan trọng bao gồm Tìm kiếm, Thêm Nhân viên gác

Trang 27

UC003 Quản lí quản trị viên

UC006

Quản lí nhân viên gác chắn

Quản lí quản trị viên UC014 Thêm Quản trị viên

Trang 28

Quản lí vai trò UC022 Xem vai trò

Quản lí nhân viên gác chắn

UC027 Thêm NVGC UC028 Cập nhật NVGC

UC036 Quẹt thẻ

Trang 29

2.3.1 Đặc tả use case Tìm kiếm

Bảng 2.2 Đặc tả Use Case Tìm kiếm

Mã Use Case UC013 Tên Use Case Tìm kiếm

Tác nhân Quản trị viên cấp cao, Quản trị viên, Nhân viên gác chắn

Tiền điều kiện Người dùng đã đăng nhập với vai trò của QTV cấp cao, QTV, NVGC

Luồng sự kiện chính

STT Thực hiện bởi Hành động

1

QTV cấp cao, QTV, NVGC

Nhập liệu trên trường Tìm kiếm (*)

Trang 30

Hậu điều kiện Không

(*) Dữ liệu đầu vào của Tìm kiếm gồm các trường dữ liệu sau

Bảng 2.3 Mô tả trường dữ liệu Tìm kiếm STT Trường dữ

2.3.2 Đặc tả use case Thêm nhân viên gác chắn

Bảng 2.4 Đặc tả Use Case Thêm nhân viên gác chắn

Mã Use Case UC027 Tên Use Case Thêm NVGC

Tác nhân Quản trị viên

Tiền điều kiện Người dùng đã đăng nhập với vai trò của Quản trị viên

Trang 31

3 Quản trị viên Nhập liệu (*)

4 Quản trị viên Nhấn nút thêm

5

Hệ thống Kiểm tra tính hợp lệ các trường dữ liệu

Luồng sự kiện thay thế

Hậu điều kiện Không

(*) Dữ liệu đầu vào của Thêm Nhân viên gác chắn gồm các trường dữ liệu sau

Bảng 2.5 Bảng Dữ liệu đầu vào của Thêm Nhân viên gác chắn STT Trường

dữ liệu

Mô tả Bắt buộc?

Điều kiện hợp lệ

cvhoangpt@gmail.com

4 tfAddress Trường địa chỉ Không Không 9E Chùa Bộc

Trang 32

5 tfUsername Trường tên tài khoản

6 pfPassword Trường mật khẩu

2.3.3 Đặc tả Use Case Cập nhật nhân viên gác chắn

Bảng 2.6 Đặc tả Use Case Cập nhật nhân viên gác chắn

Mã Use Case UC028 Tên Use Case Cập nhật NVGC

Tác nhân Quản trị viên

Tiền điều kiện Người dùng đã đăng nhập với vai trò của Quản trị viên

Luồng sự kiện chính

STT Thực hiện bởi Hành động

1

Quản trị viên Nháy đúp vào nhân viên gác chắn cần cập nhật

2 Quản trị viên Thực hiện thay đổi

3 Quản trị viên Nhập liệu (*)

4 Quản trị viên Nhấn nút thêm

Hệ thống Kiểm tra tính hợp lệ các trường

Trang 33

Hậu điều kiện Không

(*) Dữ liệu đầu vào của Cập nhật Nhân viên gác chắn gồm các trường dữ liệu giống phần đặc tả Use Case Thêm Nhân viên gác chắn

2.3.4 Đặc tả Use Case Quẹt thẻ

Mã Use Case UC036 Tên Use Case Quẹt thẻ

Tác nhân Nhân viên gác chắn

Tiền điều kiện Người dùng đã đăng nhập với vai trò của Nhân viên gác chắn và khởi động Camera

Luồng sự kiện chính

STT Thực hiện bởi Hành động

1 Nhân viên gác chắn Đưa thẻ vào máy quét RFID

2 Hệ thống Kiểm tra tình trạng thẻ

5 Hệ thống Ghi dữ liệu khách vãng lai

6 Hệ thống Ghi dữ liệu khách đã có hợp đồng

7 Hệ thống Hiển thị dữ liệu thông tin

8 Hệ thống Hiển thị dữ liệu hình ảnh

Trang 34

Luồng sự kiện thay thế

2b Hệ thống Nếu thẻ hợp lệ, chuyển đến bước 3

3a Hệ thống Nếu thẻ khách vãng lai, chuyển đến bước 4

3b Hệ thống Nếu thẻ khách có hợp đồng, chuyển đến bước 4

4a Hệ thống

Với yêu cầu vào/ra, nếu kết quả bước 3 là khách vãng lai, chuyển đến bước 5

4b Hệ thống

Với yêu cầu vào/ra, nếu kết quả bước 3 là khách có hợp đồng, chuyển đến bước 6

Hậu điều kiện Barrier mở ra khi thẻ hợp lệ

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

Ứng dụng có cơ chế phân quyền người dùng theo từng chức năng, vai trò đảm bảo từng người dùng chỉ được phép sử dụng các tính năng theo quyền hạn của mình Ngoài ra, ứng

Trang 35

2.4.2 Tính dễ dùng

Phần mềm có giao diện đơn giản, dễ thao tác Ngoài ra phần mềm còn có những gợi ý, chú thích cho người dùng

2.4.3 Yêu cầu về giao diện người dùng

Ứng dụng luôn đặt yếu tố dễ dùng và có tính tương tác cao, đơn giản hóa các thao tác và gợi ý cho người dùng về các thành phần chức năng trên giao diện bằng cách sử dụng các icon, buttonv.v nhằm tăng khả năng tương tác với ứng dụng

2.4.4 Yêu cầu về hiệu năng

Ứng dụng khởi động không quá 5s Các yêu cầu về truy vấn không quá 2s

2.4.5 Yêu cầu về bảo mật

• Xác thực: Các dịch vụ và chức năng sử dụng đúng mục đích, dữ liệu được lấy chính xác từ CSDL

• Phân quyền: Phần mềm tự động phân quyền và phân chức năng ngay tại thời điểm đăng nhập

• Bảo mật dữ liệu: dữ liệu nhạy cảm như mật khẩu được mã hoá nâng cao trong CSDL

Trang 36

3.1 Frontend

3.1.1 JavaFX

JavaFX là nền tảng để tạo và phân phối các ứng dụng dành cho máy tính để bàn cũng như các ứng dụng RIAs (Rich Internet Applications) có thể chạy trên nhiều thiết bị khác nhau JavaFX được phát triển bởi kỹ sư Chris Oliver, ban đầu dự án được đặt tên là F3 (Form Follows Functions) Sau đó vào năm 2005 thì Sun Micro-Systems đã mua lại dự án F3 và đổi tên thành JavaFX JavaFX dự định thay thế hoàn toàn Swing làm thư viện GUI chuẩn cho Java SE JavaFX hỗ trợ cho các máy tính để bàn và trình duyệt web trên nền tảng Windows, Linux và macOS

Những ưu điểm nổi bật của ngôn ngữ lập trình JavaFX:

• JavaFX là một thư viện Java bao gồm các lớp và các giao diện được viết bằng mã Java nguyên gốc

• FXML là một ngôn ngữ khai báo dựa trên XML để xây dựng một giao diện người dùng trong ứng dụng JavaFX Lập trình viên có thể sử dụng JavaFX Scene Builder để thiết kế giao diện đồ họa (GUI)

• JavaFX có thể được tùy biến giao diện thêm sinh động bằng cách sử dụng CSS • JavaFX hỗ trợ đồ họa 2D và 3D cũng như hỗ trợ âm thanh và video

• JavaFX còn có WebView dựa trên trình duyệt WebKit, vì vậy bạn có thể nhúng các trang web hoặc các ứng dụng web bên trong JavaFX.7

3.1.2 FXML

Chương 3 Công nghệ sử dụng

Trang 37

3.1.3 Scene Builder

JavaFX Scene Builder là một công cụ thiết kế trực quan cho phép người dùng nhanh chóng thiết kế giao diện người dùng của ứng dụng JavaFX, mà không cần phải viết code Bạn có thể kéo và thả các thành phần giao diện người dùng đến một khu vực làm việc, thay đổi tính chất của chúng, áp dụng các style, và FXML cho Layout vừa được tạo ra tự động bên dưới Kết quả có được là một tập tin FXML mà sau đó có thể được kết hợp với một dự án Java bằng cách liên kết các giao diện với logic của ứng dụng.9

Hình 3.1 Giao diện của một chương trình Scene Builder

Ngôn ngữ lập trình Java ban đầu được phát triển bởi Sun Microsystems do James Gosling khởi xướng và phát hành vào năm 1995 Phiên bản mới nhất của Java Standard Edition là Java SE 8 Với sự tiến bộ của Java và sự phổ biến rộng rãi của nó, nhiều cấu hình đã được

9https://openplanning.net/10621/cai-dat-javafx-scene-builder-cho-eclipse, truy cập lần cuối ngày 16/06/2021

10https://viettuts.vn/java, truy cập lần cuối ngày 16/06/2021

Trang 38

xây dựng để phù hợp với nhiều loại nền tảng khác nhau Ví dụ: J2EE cho các ứng dụng doanh nghiệp, J2ME cho các ứng dụng di động

Các phiên bản J2 mới đã được đổi tên thành Java SE, Java EE và Java ME Phương châm của java là "Write Once, Run Anywhere" - viết một lần chạy nhiều nơi, nghĩa là bạn chỉ cần viết một lần trên window chẳng hạn, sau đó vẫn chương trình đó bạn có thể chạy trên Linux, Android, các thiết bị J2ME

Ngôn ngữ lập trình java có các tính năng sau:

• Hướng đối tượng - Trong Java, mọi thứ đều là một Object Java có thể dễ dàng mở rộng và bảo trì vì nó được xây dựng dựa trên mô hình Object

• Nền tảng độc lập - Không giống nhiều ngôn ngữ lập trình khác bao gồm cả C và C ++, khi Java được biên dịch, nó không được biên dịch thành ngôn ngữ máy nền tảng cụ thể, thay vào mã byte - nền tảng độc lập Mã byte này được thông dịch bởi máy ảo (JVM) trên nền tảng nào đó mà nó đang chạy

• Đơn giản - Java được thiết kế để dễ học Nếu bạn hiểu khái niệm cơ bản về OOP Java, sẽ rất dễ để trở thành master về java

• Bảo mật - Với tính năng an toàn của Java, nó cho phép phát triển các hệ thống không có virut, giả mạo Các kỹ thuật xác thực dựa trên mã hoá khóa công khai

• Kiến trúc - trung lập - Trình biên dịch Java tạo ra định dạng tệp đối tượng kiến trúc trung lập, làm cho mã biên dịch được thực thi trên nhiều bộ vi xử lý, với sự hiện diện của hệ điều hành Java

• Portable - Là kiến trúc tập trung và không có khía cạnh thực hiện phụ thuộc của đặc tả này làm cho Java khả chuyển Trình biên dịch trong Java được viết bằng ANSI C, đó là một tập con POSIX

• Mạnh mẽ - Java làm nỗ lực để loại trừ các tình huống dễ bị lỗi bằng cách kiểm tra lỗi tại thời gian biên dịch và kiểm tra lỗi tại runtime

• Đa luồng - Với tính năng đa luồng của Java có thể viết các chương trình có thể thực hiện nhiều tác vụ đồng thời Tính năng thiết kế này cho phép các nhà phát triển xây

Trang 39

tin tại runtime mà có thể được sử dụng để xác minh và giải quyết các truy cập vào các đối tượng tại runtime

3.2.2 Webcam Capture API

Webcam Capture API là thư viện cho phép sử dụng webcam tích hợp hoặc bên ngoài trực tiếp từ Java Nó được thiết kế để tóm tắt các tính năng máy ảnh thường được sử dụng và hỗ trợ nhiều frameworks capturing khác nhau.11

Các tính năng của Webcam Capture API:

• API đơn giản, an toàn cho luồng và dựa theo mô hình non-blocking, • Không cần phần mềm bổ sung,

• Hỗ trợ nhiều nền tảng (Windows, Linux, Mac OS, v.v.) và nhiều kiến trúc khác nhau (32-bit, 64-bit, ARM),

• Nhận hình ảnh từ webcam PC tích hợp hoặc kết nối USB,

• Nhận hình ảnh từ camera IP / mạng (dưới dạng MJPEG hoặc JPEG), • Cung cấp sẵn sàng để sử dụng máy dò chuyển động,

• Tất cả các JAR bắt buộc có sẵn ở Maven Central,

• Cung cấp khả năng hiển thị hình ảnh dưới dạng luồng MJPEG,

• Có sẵn dưới dạng Maven dependency hoặc tệp nén ZIP độc lập (bao gồm tất cả các dependency),

• Swing thành phần để hiển thị nguồn cấp dữ liệu video từ máy ảnh, • Swing thành phần để chọn máy ảnh (thả xuống),

• Nhiều frameworks capturing được hỗ trợ: o OpenIMAJ;

o LTI CIVIL;

o Java Media Framework (JMF); o Freedom for Media trong Java (FMJ); o OpenCV thông qua JavaCV;

o VLC qua vlcj; o V4L qua v4l4j;

o GStreamer (chỉ 0.10.x) qua gstreamer-java; o FFmpeg;

o IP MJPEG Cameras;

11https://github.com/sarxos/webcam-capture, truy cập lần cuối ngày 16/06/2021

Trang 40

3.2.3 MySQL

MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) dựa trên ngôn ngữ truy vấn có cấu trúc (SQL) được phát triển, phân phối và hỗ trợ bởi tập đoàn Oracle MySQL chạy trên hầu hết tất cả các nền tảng, bao gồm cả Linux , UNIX và Windows MySQL thường được kết hợp với các ứng dụng web.12

SQL là ngôn ngữ phổ biến nhất để thêm, truy cập và quản lý nội dung trong cơ sở dữ liệu Nó được chú ý nhất vì khả năng xử lý nhanh, độ tin cậy đã được chứng minh, dễ sử dụng và linh hoạt MySQL là một phần thiết yếu của hầu hết mọi ứng dụng PHP mã nguồn mở Các ví dụ điển hình cho các tập lệnh dựa trên PHP và MySQL là WordPress, Joomla, Magento và Drupal MySQL đang trở nên phổ biến vì nhiều lý do tốt:

• MySQL được phát hành theo giấy phép nguồn mở Vì vậy, bạn không phải trả tiền để sử dụng nó

• MySQL là một chương trình rất mạnh theo đúng nghĩa của nó Nó xử lý một tập hợp lớn các chức năng của các gói cơ sở dữ liệu mạnh mẽ và đắt tiền nhất

• MySQL sử dụng một dạng chuẩn của ngôn ngữ dữ liệu SQL nổi tiếng

• MySQL hoạt động trên nhiều hệ điều hành và với nhiều ngôn ngữ bao gồm PHP, PERL, C, C ++, JAVA, v.v

• MySQL hoạt động rất nhanh và hoạt động tốt ngay cả với các tập dữ liệu lớn • MySQL rất thân thiện với PHP, ngôn ngữ được đánh giá cao nhất để phát triển web • MySQL hỗ trợ cơ sở dữ liệu lớn, lên tới 50 triệu hàng hoặc nhiều hơn trong một bảng Giới hạn kích thước tệp mặc định cho một bảng là 4GB, nhưng bạn có thể tăng mức này (nếu hệ điều hành của bạn có thể xử lý nó) đến giới hạn lý thuyết là 8 triệu terabyte (TB)

• MySQL là tùy biến Giấy phép GPL mã nguồn mở cho phép các lập trình viên sửa đổi phần mềm MySQL để phù hợp với môi trường cụ thể của riêng họ

3.2.4 Java Database Connectivity (JDBC)

Ngày đăng: 16/05/2024, 13:57

Tài liệu cùng người dùng

Tài liệu liên quan