Tải bản đầy đủ (.pdf) (107 trang)

Xây dựng hệ thống crowdsourcing cho việc gán nhãn dữ liệu ảnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (18.95 MB, 107 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>Xây dựng hệ thống crowdsourcing cho việcgán nhãn dữ liệu ảnh</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

Biểu đồ phân rã ca sử dụng Requester quản lý công việc ... 4

Biểu đồ phân rã ca sử dụng Tìm kiếm worker ... 4

Biểu đồ phân rã ca sử dụng Tìm việc làm ... 5

2.3 Đặc tả ca sử dụng ... 5

Ca sử dụng UC01: Đăng ký ... 5

Ca sử dụng UC02: Đăng nhập ... 7

Ca sử dụng UC03: Worker tìm kiếm việc làm ... 8

Ca sử dụng UC04: Tìm kiếm worker ... 10

Ca sử dụng UC05: Requester tạo việc làm ... 11

Ca sử dụng UC06: Requester quản lý thông tin cá nhân ... 13

Ca sử dụng UC07: Worker quản lý thông tin cá nhân ... 14

Ca sử dụng UC08: Requester phê duyệt yêu cầu làm việc ... 16

Ca sử dụng UC09: Requester quản lý công việc ... 17

Ca sử dụng UC10: Requester quản lý phân công công việc ... 17

Ca sử dụng UC11: Worker làm việc ... 18

Ca sử dụng UC12: Admin quản lý requester ... 19

Ca sử dụng UC13: Admin quản lý worker ... 20

Ca sử dụng UC14: Admin quản lý công việc ... 21

Ca sử dụng UC15: Worker quản lý cơng việc ... 22

2.4 Quy trình nghiệp vụ của hệ thống ... 23

Quy trình "Đăng ký" ... 23

Quy trình "Đăng nhập" ... 24

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

Quy trình "Worker tìm việc làm" ... 24

Quy trình "Requester tạo việc làm" ... 25

Quy trình "Requester quản lý cơng việc" ... 25

Quy trình "Requester quản lý phân cơng cơng việc" ... 26

Quy trình "Quản lý thơng tin cá nhân" ... 26

Quy trình "Worker quản lý cơng việc" ... 27

Quy trình "Worker làm việc" ... 27

Quy trình "Tìm kiếm worker" ... 28

Quy trình "Admin quản lý người dùng" ... 28

Quy trình "Admin quản lý cơng việc" ... 29

Quy trình "Requester phê duyệt yêu cầu làm việc" ... 29

2.5 Yêu cầu phi chức năng ... 30

<b>CHƯƠNG 3. THIẾT KẾ HỆ THỐNG ... 31</b>

3.1 Mơ hình hố cấu trúc ... 31

Ca sử dụng UC01: Đăng ký ... 31

Ca sử dụng UC02: Đăng nhập ... 31

Ca sử dụng UC03: Worker tìm kiếm việc làm ... 32

Ca sử dụng UC04: Tìm kiếm worker ... 32

Ca sử dụng UC05: Tạo việc làm ... 32

Ca sử dụng UC06: Quản lý thông tin cá nhân requester ... 33

Ca sử dụng UC07: Quản lý thông tin các nhân worker ... 33

Ca sử dụng UC08: Requester phê duyệt yêu cầu làm việc ... 33

Ca sử dụng UC09: Requester quản lý công việc ... 34

Ca sử dụng UC10: Requester quản lý phân công công việc ... 34

Ca sử dụng UC11: Worker làm việc ... 34

Ca sử dụng UC12: Admin quản lý requester ... 35

Ca sử dụng UC13: Admin quản lý worker ... 35

Ca sử dụng UC14: Admin quản lý công việc ... 35

Ca sử dụng UC15: Worker quản lý cơng việc ... 36

3.2 Mơ hình hố tương tác ... 36

Biểu đồ tuần tự cho ca sử dụng "Đăng ký" ... 36

Biểu đồ tuần tự cho ca sử dụng "Đăng nhập" ... 37

Biểu đồ tuần tự cho ca sử dụng "Tìm kiếm việc làm" ... 37

Biểu đồ tuần tự cho ca sử dụng "Tìm kiếm worker" ... 38

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

Biểu đồ tuần tự cho ca sử dụng "Tạo việc làm" ... 38

Biểu đồ tuần tự cho ca sử dụng "Requester quản lý thông tin cá nhân" ... 39

Biểu đồ tuần tự cho ca sử dụng "Worker quản lý thông tin cá nhân" ... 40

Biểu đồ tuần tự cho ca sử dụng "Requester phê duyệt yêu cầu làm việc" ... 40

Biểu đồ tuần tự "Requester quản lý công việc" ... 41

Biểu đồ tuần tự "Requester quản lý phân công công việc" ... 42

Biểu đồ tuần tự ca sử dụng "Worker làm việc" ... 43

Biểu đồ tuần tự ca sử dụng "Admin quản lý requester" ... 44

Biểu đồ tuần tự ca sử dụng "Admin quản lý worker" ... 44

Biểu đồ tuần tự ca sử dụng "Admin quản lý công việc" ... 45

Biểu đồ tuần tự ca sử dụng "Worker quản lý công việc" ... 45

3.3 Thiết kế giao diện ... 46

Giao diện dành cho Guest ... 46

Giao diện cho Requester ... 47

Giao diện cho Worker ... 50

3.4 Thiết kế chi tiết lớp ... 53

Sơ đồ lớp tổng quan ... 53

Đặc tả chi tiết các lớp ... 56

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

Tổng quan cơ sở dữ liệu ... 70

Đặc tả chi tiết các bảng dữ liệu ... 71

<b>CHƯƠNG 4. TRIỂN KHAI HỆ THỐNG ... 75</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

Các loại công việc ... 83

4.4 Đánh giá hiệu năng hệ thống ... 88

Cấu hình hệ thống ... 88

Đánh giá hiệu năng API Tìm kiếm worker ... 88

Đánh giá hiệu năng API Tìm kiếm cơng việc ... 90

Đánh giá hiệu năng API lấy thông tin chi tiết phân công công việc ... 92

Kết luận ... 93

<b>CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ... 94</b>

5.1 Kết luận ... 94

5.2 Hướng phát triển ... 95

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>PHỤ LỤC A. Bảng các thuật ngữ </b>

<b>STTViết tắt Thuật ngữ Giải thích </b>

2 AI Artificial Intelligence Trí tuệ nhân tạo

3 DOM Document Object Model Mơ hình đối tượng tài liệu 4 RAM Random Access Memory Bộ nhớ truy cập tạm thời 5 RDBMS Relational Database

8 CPU Central Processing Unit Đơn vị xử lý trung tâm

10 HTTP Hypertext Transfer Protocol

Giao thức truyền siêu văn bản

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>Danh mục hình ảnh</b>

Hình 2.1 Biểu đồ ca sử dụng tổng quan ... 4

Hình 2.2 Biểu đồ phân rã ca sử dụng Requester quản lý cơng việc ... 4

Hình 2.3 Biểu đồ phân rã ca sử dụng Tìm kiếm worker ... 4

Hình 2.4 Biểu đồ phân rã ca sử dụng Tìm việc làm ... 5

Hình 2.5 Biểu đồ hoạt động Đăng ký ... 23

Hình 2.6 Biểu đồ hoạt động Đăng nhập ... 24

Hình 2.7 Biểu đồ hoạt động Worker tìm việc làm ... 24

Hình 2.8 Biểu đồ hoạt động Requester tạo việc làm ... 25

Hình 2.9 Biểu đồ hoạt động Requester quản lý công việc ... 25

Hình 2.10 Biểu đồ hoạt động Requester quản lý phân cơng cơng việc ... 26

Hình 2.11 Biểu đồ hoạt động Quản lý thơng tin cá nhân ... 26

Hình 2.12 Biểu đồ hoạt động Worker quản lý công việc ... 27

Hình 2.13 Biểu đồ hoạt động Worker làm việc ... 27

Hình 2.14 Biểu đồ hoạt động Tìm kiếm worker ... 28

Hình 2.15 Biểu đồ hoạt động Admin quản lý người dùng ... 28

Hình 2.16 Biểu đồ hoạt động Admin quản lý cơng việc ... 29

Hình 2.17 Biểu đồ hoạt động Requester phê duyệt yêu cầu làm việc ... 29

Hình 3.1 Biểu đồ lớp Đăng ký ... 31

Hình 3.2 Biểu đồ lớp Đăng nhập ... 31

Hình 3.3 Biểu đồ lớp Tìm kiếm việc làm ... 32

Hình 3.4 Biểu đồ lớp Tìm worker ... 32

Hình 3.5 Biểu đồ lớp Tạo việc làm ... 32

Hình 3.6 Biểu đồ lớp Quản lý thơng tin cá nhân của requester ... 33

Hình 3.7 Biểu đồ lớp Quản lý thơng tin cá nhân của worker ... 33

Hình 3.8 Biểu đồ lớp Requester phê duyệt yêu cầu làm việc ... 33

Hình 3.9 Biểu đồ lớp Requester quản lý cơng việc ... 34

Hình 3.10 Biểu đồ lớp Requester quản lý phân cơng cơng việc ... 34

Hình 3.11 Biểu đồ lớp Woker làm việc ... 34

Hình 3.12 Biểu đồ lớp Admin quản lý requester ... 35

Hình 3.13 Biểu đồ lớp Admin quản lý worker ... 35

Hình 3.14 Biểu đồ lớp Admin quản lý cơng việc ... 35

Hình 3.15 Biểu đồ lớp Worker quản lý cơng việc ... 36

Hình 3.16 Biểu đồ tuần tự cho ca sử dụng Đăng ký ... 36

Hình 3.17 Biểu đồ tuần tự cho ca sử dụng Đăng nhập ... 37

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Hình 3.18 Biểu đồ tuần tự cho ca sử dụng Tìm kiếm việc làm ... 37

Hình 3.19 Biểu đồ tuần tự cho ca sử dụng Tìm kiếm worker ... 38

Hình 3.20 Biểu đồ tuần tự ca sử dụng Tạo việc làm ... 38

Hình 3.21 Biểu đồ tuần tự cho ca sử dụng Requester quản lý thơng tin cá nhân 39Hình 3.22 Biểu đồ tuần tự cho ca sử dụng Worker quản lý thông tin cá nhân .... 40

Hình 3.23 Biểu đồ tuần tự cho ca sử dụng Requester phê duyệt yêu cầu làm việc ... 40

Hình 3.24 Biểu đồ tuần tự cho ca sử dụng Requester quản lý cơng việc ... 41

Hình 3.25 Biều đồ tuần tự cho ca sử dụng Requester quản lý phân cơng cơng việc ... 42

Hình 3.26 Biểu đồ tuần tự cho ca sử dụng Worker làm việc ... 43

Hình 3.27 Biểu đồ tuần tự cho ca sử dụng Admin quản lý requester ... 44

Hình 3.28 Biểu đồ tuần tự cho ca sử dụng Admin quản lý worker ... 44

Hình 3.29 Biểu đồ tuần tự cho ca sử dụng Admin quản lý cơng việc ... 45

Hình 3.30 Biểu đồ tuần tự cho ca sử dụng Worker quản lý công việc ... 45

Hình 3.31 Giao diện Đăng ký ... 46

Hình 3.32 Giao diện Đăng nhập ... 46

Hình 3.33 Giao diện Requester tạo cơng việc ... 47

Hình 3.34 Giao diện Tìm kiếm worker ... 47

Hình 3.35 Giao diện Quản lý thơng tin cá nhân ... 48

Hình 3.36 Giao diện Quản lý cơng việc ... 48

Hình 3.37 Giao diện Quản lý phân cơng cơng việc ... 49

Hình 3.38 Giao diện Thơng tin chi tiết worker ... 49

Hình 3.39 Giao diện Tìm kiếm việc làm ... 50

Hình 3.40 Giao diện Worker làm việc ... 50

Hình 3.41 Giao diện Thơng tin chi tiết cơng việc ... 51

Hình 3.42 Giao diện Worker quản lý cơng việc ... 51

Hình 3.43 Giao diện Quản lý thơng tin cá nhân ... 52

Hình 3.44 Sơ đồ lớp gói Guest ... 53

Hình 3.45 Sơ đồ lớp gói Worker ... 54

Hình 3.46 Sơ đồ lớp gói Requester ... 54

Hình 3.47 Sơ đồ lớp gói Admin ... 55

Hình 3.48 Sơ đồ lớp gói Truy cập và xử lý dữ liệu ... 55

Hình 3.49 Sơ đồ gói lớp Dự đốn ... 56

Hình 3.50 Tổng quản cơ sở dữ liệu ... 70

Hình 4.1 Mơ hình microservices [6] ... 75

Hình 4.2 Mơ hình microservices của hệ thống ... 76

Hình 4.3 Worker thực hiện vẽ khung hình chữ nhật ... 84

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Hình 4.4 Sử dụng mơ hình YOLOv5 sinh ra khung hình chữ nhật ... 84

Hình 4.5 Worker thực hiện gán nhãn ảnh 2 ... 85

Hình 4.6 Requester xem kết quả cơng việc ... 85

Hình 4.8 Worker thực hiện vẽ đường bao ... 86

Hình 4.7 Sử dụng thư viện detectron2 để sinh ra đường bao ... 86

Hình 4.9 Worker lựa chọn nhãn phù hợp nhất với bức ảnh ... 87

Hình 4.10 Kết quả đo điểm chuẩn API Tìm kiếm worker với 1000 request/s .... 88

Hình 4.11 Kết quả đo điểm chuẩn API Tìm kiếm worker với 2000 request/s .... 89

Hình 4.12 Kết quả đo điểm chuẩn API Tìm kiếm worker với 2500 request/s .... 89

Hình 4.13 Biểu đồ mơ tả mối quan hệ giữa số lượng request/s và độ trễ của API Tìm kiếm worker ... 89

Hình 4.14 Kết quả đo điểm chuẩn API Tìm kiếm cơng việc với 100 request/s .. 90

Hình 4.15 Kết quả đo điểm chuẩn API Tìm kiếm cơng việc với 300 request/s .. 90

Hình 4.16 Kết quả đo điểm chuẩn API Tìm kiếm cơng việc với 500 request/s .. 91

Hình 4.17 Biểu đồ mơ tả mối quan hệ giữa số lượng request/s và độ trễ của API Tìm kiếm cơng việc ... 91

Hình 4.18 Kết quả đo điểm chuẩn API lấy thông tin chi tiết phân công công việc với 1000 request/s ... 92

Hình 4.19 Kết quả đo kiểm chuẩn API lấy thông tin chi tiết phân công cơng việc với 3500 request/s ... 92

Hình 4.20 Kết quả đo điểm chuẩn API lấy thông tin chi tiết phân cơng cơng việc với 4000 request/s ... 93

Hình 4.21 Biểu đồ mô tả mối quan hệ giữa số lượng request/s và độ trễ của API lấy thông tin chi tiết phân công việc ... 93

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>Danh mục bảng </b>

Bảng 2.1 Bảng đặc tả ca sử dụng Đăng ký ... 6

Bảng 2.2 Bảng dữ liệu đầu vào ca sử dụng Đăng ký ... 7

Bảng 2.3 Bảng đặc tả ca sử dụng Đăng nhập ... 8

Bảng 2.4 Bảng dữ liệu đầu vào ca sử dụng Đăng nhập ... 8

Bảng 2.5 Bảng đặc tả ca sử dụng Worker tìm kiếm việc làm ... 9

Bảng 2.6 Bảng dữ liệu đầu vào ca sử dụng Worker tìm kiếm việc làm ... 9

Bảng 2.7 Bảng đặc tả ca sử dụng Tìm kiếm worker ... 10

Bảng 2.8 Bảng dữ liệu đầu vào ca sử dụng Tìm kiếm worker ... 11

Bảng 2.9 Bảng đặc tả ca sử dụng Requester tạo việc làm ... 12

Bảng 2.10 Bảng dữ liệu đầu vào ca sử dụng Requester tạo việc làm ... 12

Bảng 2.11 Bảng đặc tả ca sử dụng Requester quản lý thông tin cá nhân ... 13

Bảng 2.12 Bảng dữ liệu đầu vào ca sử dụng Requester quản lý thông tin cá nhân ... 14

Bảng 2.13 Bảng đặc tả ca sử dụng Worker quản lý thông tin cá nhân ... 15

Bảng 2.14 Bảng dữ liệu đầu vào ca sử dụng Worker quản lý thông tin cá nhân . 15Bảng 2.15 Bảng đặc tả ca sử dụng Requester phê duyệt yêu cầu làm việc ... 16

Bảng 2.16 Bảng đặc tả ca sử dụng Requester quản lý công việc ... 17

Bảng 2.17 Bảng đặc tả ca sử dụng Requester quản lý phân công công việc ... 18

Bảng 2.18 Bảng đặc tả ca sử dụng Worker làm việc ... 19

Bảng 2.19 Bảng đặc tả ca sử dụng Admin quản lý requester ... 20

Bảng 2.20 Bảng đặc tả ca sử dụng Admin quản lý worker ... 21

Bảng 2.21 Bảng đặc tả ca sử dụng Admin quản lý công việc ... 21

Bảng 2.22 Bảng đặc tả ca sử dụng Worker quản lý công việc ... 22

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Để giúp cho các ứng dụng trí tuệ nhân tạo gia tăng tính chính xác và mức độ hiệu quả, các nhà phát triển cần một lượng lớn các tập dữ liệu đầu vào và các nhãn chú thích của chúng. Phần dữ liệu mơ tả này, sau đó sẽ được sử dụng để huấn luyện các mơ hình học máy cũng như việc đánh giá hiệu quả của hệ thống. Hiện nay, các tập dữ liệu thơ có số lượng rất lớn, tuy vậy lượng dữ liệu được gán nhãn chỉ chiếm một phần nhỏ. Việc xây dựng những bộ dữ liệu gán nhãn địi hỏi một khối lượng lớn cơng sức và thời gian, khiến nó trở thành một rào cản đối với mọi nhà phát triển ứng dụng Trí tuệ nhân taọ. Để giải quyết vấn đề này, họ có thể tự đầu tư, xây dựng bộ dữ liệu gán nhãn. Tuy nhiên, tính khả thi của giải pháp này không cao bởi hạn chế về nguồn lực hiện có, cũng như việc sử dụng lượng lớn lao động chỉ cho một giai đoạn cụ thể. Một lựa chọn khác là tìm đến sự hỗ trợ của lực lượng lao động tự do - freelancer trong việc gán nhãn dữ liệu.

Crowdsourcing (tìm kiếm nguồn lực từ đám đơng) [2] là một mơ hình tìm kiếm nguồn nhân lực, trong đó một cá nhân hoặc tổ chức kêu gọi sự tham gia thực hiện của cộng đồng thông qua mạng Internet để giải quyết một cơng việc nào đó. Các công việc được hỗ trợ rất đa dạng như lập trình, thiết kế ý tưởng, thiết kế logo, khảo sát ý kiến, v.v. Người tham gia hỗ trợ có thể nhận được các phần thưởng từ người kêu gọi cho phần công việc thực hiện.Với khả năng kết nối mạnh mẽ, thuận tiện đến một lượng lớn nhân lực tự do, crowsourcing là một hình thức phù hợp để triển khai các công việc cần thực hiện trong khoảng thời gian ngắn, có khối lượng cơng việc lớn, hay khơng định kỳ. Chính vì vậy, mơ hình này hồn tồn phù hợp để áp dụng cho bài tốn gán nhãn dữ liệu. Hiện nay ở Việt Nam, cũng đã có một số hệ thống crowdsourcing, nhưng chưa có một hệ thống nào hỗ trợ thuận tiện cho bài toán gán nhãn dữ liệu.

Nhận thấy được các vấn đề trên, đồ án này sẽ trình bày việc xây dựng một hệ thống crowdsourcing, giúp kết nối những người cần thuê gán nhãn dữ liệu (người yêu cầu) và những người thực hiện gán nhãn dữ liệu (người lao động). Hệ thống cung

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

2 cấp các cơ chế như tổng hợp kết quả, đánh giá chất lượng công việc của người lao động. Trong giới hạn thời gian thực hiện đồ án, hệ thống hiện đưa ra giải pháp cho ba bài toán bao gồm phân loại ảnh, phát hiện đối tượng và phân đoạn ngữ nghĩa. Lý do lựa chọn ba bài tốn này vì chúng có sự tương đồng và là những mũi nhọn nghiên cứu trong lĩnh vực Trí tuệ nhân tạo.

<b>1.2 Mô tả đề tài </b>

Hệ thống là một trang web cho phép kết nối người cần thuê gán nhãn dữ liệu (requester) và người lao động (worker). Các chức năng chính hệ thống cung cấp bao gồm: đăng cơng việc gán nhãn; tìm kiếm công việc; quản lý, tổng hợp, đánh giá kết quả gán nhãn; đánh giá chất lượng làm việc của người gán nhãn. Ngoài ra, hệ thống cũng cung cấp các công cụ hỗ trợ cho việc gán nhãn dữ liệu, nhằm giảm thiểu công sức của người lao động và gia tăng độ chính xác.

Ba bài tốn mà hệ thống hỗ trợ:

- Object detection (Phát hiện đối tượng): Xác định vị trí hiện diện của các đối tượng trong các hình hộp giới hạn theo các nhãn khác nhau. Hệ thống hỗ trợ worker các công cụ như phóng to, thu nhỏ, di chuyển, thay đổi độ tương phản, độ sáng của ảnh; vẽ, xoá, ẩn, hiện đường bao quanh đối tượng; hoàn tác thao tác; sử dụng mơ hình AI có sẵn để tạo ra các đường bao.

- Semantic segmentation (Phân đoạn ngữ nghĩa): Xác định các đối tượng bằng đường bao quanh của chúng sử dụng những nhãn cho trước. Hệ thống hỗ trợ worker tương tự như bài toán Object detection.

- Image classification (Phân loại ảnh): Xác định nhãn của bức ảnh là gì. Hệ thống hỗ trợ worker các cơng cụ như phóng to, thu nhỏ, di chuyển ảnh. Một công việc do requester tạo sẽ được hệ thống phân chia thành nhiều phân công công việc, giao cho mỗi worker một phần việc. Mỗi phân công gồm nhiều bức ảnh cần được gán nhãn. Ngoài ra, một phân cơng có thể được giao cho nhiều người cùng thực hiện để tăng độ tin cậy về kết quả.

<b>1.3 Bố cục tổng quan </b>

Đồ án bao gồm 5 chương có nội dung như sau:

<b>Chương 1: Trình bày thực trạng thiếu hụt nguồn dữ liệu được gán nhãn trong các </b>

hệ thống trí tuệ nhân tạo, nguyên nhân của vấn đề này. Từ đó đưa ra giải pháp để giải quyết vấn đề trên.

<b>Chương 2: Phân tích yêu cầu của hệ thống, bao gồm các đối tượng sử dụng, quy </b>

trình nghiệp vụ, biểu đồ hoạt động, biểu đồ ca sử dụng, đặc tả ca sử dụng và các yêu cầu phi chức năng của hệ thống.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

3

<b>Chương 3: Thiết kết hệ thống, bao gồm các biểu đồ mơ hình hố cấu trúc, mơ hình </b>

hố sự tương tác, thiết kế chi tiết lớp, cơ sở dữ liệu, thiết kế giao diện, kiến trúc hệ thống và các bài toán được hỗ trợ.

<b>Chương 4: Các công nghệ mà hệ thống sử dụng, trình bày chi tiết các bài tốn, </b>

đánh giá hiệu năng của hệ thống và kết quả đạt được.

<b>Chương 5: Trình bày kết luận, những gì đã làm được, chưa làm được của đồ án </b>

và đưa ra hướng phát triển trong tương lai.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

4

<b>CHƯƠNG 2. PHÂN TÍCH HỆ THỐNG 2.1 Các tác nhân </b>

Hệ thống có 4 tác nhân là Guest, Requester, Worker, Admin.

• Guest là người truy cập vào hệ thống nhưng chưa đăng nhập. Sau khi đăng nhập thành công Guest sẽ trở thành Requester, Worker, Admin tương ứng với vai trị của mình.

• Requester là người thuê gán nhãn dữ liệu.• Worker là người thực hiện gán nhãn dữ liệu.

• Admin là người quản trị hệ thống, có quyền xố tài khoản, xố cơng việc, xố bình luận.

<b>2.2 Biểu đồ ca sử dụng </b>

<b> Biểu đồ ca sử dụng tổng quan </b>

<i>Hình 2.1 Biểu đồ ca sử dụng tổng quan </i>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

4

<b> Biểu đồ phân rã ca sử dụng Requester quản lý cơng việc </b>

<i>Hình 2.2 Biểu đồ phân rã ca sử dụng Requester quản lý công việc </i>

<b> Biểu đồ phân rã ca sử dụng Tìm kiếm worker </b>

<i>Hình 2.3 Biểu đồ phân rã ca sử dụng Tìm kiếm worker </i>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

5

<b> Biểu đồ phân rã ca sử dụng Tìm việc làm </b>

<i>Hình 2.4 Biểu đồ phân rã ca sử dụng Tìm việc làm </i>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

6 Luồng sự kiện

công Luồng sự kiện

thay thế <sup>STT Thực hiện Hành động </sup>

5a. Hệ thống Thông báo lỗi: Cần nhập các trường bắt buộc nhập nếu Guest nhập thiếu 5b. Hệ thống Thông báo lỗi: Các trường nhập

không đúng định dạng

5c. Hệ thống Thông báo lỗi: Email đã tồn tại 6a. Hệ thống Tạo tài khoản lỗi: Thông báo lỗi Hậu điều kiện Guest đăng ký thành công tài khoản, hệ thống đã lưu tài

khoản mới, sẵn sàng đăng nhập

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

7 5. Xác nhận

Mục đích sử dụng Xác thực người dùng, cho phép người dùng sử dụng các chức năng của tác nhân "admin", "requester", "worker" Sự kiện kích hoạt Guest click vào button đăng nhập

4. Guest Yêu cầu đăng nhập

5. Hệ thống Kiểm tra tính hợp lệ và đầy đủ của các trường Guest nhập

6. Hệ thống Kiểm tra tài khoản tồn tại hay không 7. Hệ thống Chuyển hướng đến màn hình "Trang

chủ"

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

8 Luồng sự kiện

Hậu điều kiện Hệ thống lưu thông tin đăng nhập của người sử dụng, tạo lập một phiên hoạt động, lưu trạng thái, cho phép người sử dụng có thể sử dụng các chức năng và vai trò của họ

<i>Bảng 2.3 Bảng đặc tả ca sử dụng Đăng nhập</i>

<i>Dữ liệu đầu vào của thông tin cá nhân bao gồm những trường sau:</i>

STT Trường dữ liệu

Mô tả

Bắt buộc?

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

Ví dụ

<i>Bảng 2.4 Bảng dữ liệu đầu vào ca sử dụng Đăng nhập </i>

<b> Ca sử dụng UC03: Worker tìm kiếm việc làm </b>

<b>Mã usecase </b> UC03 <b>Tên usecase </b> Worker tìm kiếm việc làm

Tác nhân Worker Tiền điều kiện Không

Mục đích sử dụng Cho phép người dùng tìm kiếm việc làm theo các giá trị của từng thuộc tính

Sự kiện kích hoạt Người dùng click vào tìm kiếm việc làm

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

9 Luồng sự kiện

chính <sup>STT Thực hiện Hành động </sup>

1. Worker Chọn chức năng "tìm kiếm việc làm" 2. Hệ thống Hiển thị màn hình tìm kiếm việc làm 3. Worker Nhập các trường tìm kiếm (mơ tả

phía dưới *) 4. Worker Ấn chọn tìm kiếm

5. Hệ thống Thực hiện truy vấn vào cơ sở dữ liệu theo các trường đã nhập

Hậu điều kiện Hệ thống trả về danh sách tìm kiếm cho người dùng

<i>Bảng 2.5 Bảng đặc tả ca sử dụng Worker tìm kiếm việc làm</i>

<i>Mơ tả dữ liệu </i>

STT Trường dữ liệu Bắt buộc? Điều kiện hợp lệ 1. Loại công việc không

3. Yêu cầu chất lượng worker không

<i>Bảng 2.6 Bảng dữ liệu đầu vào ca sử dụng Worker tìm kiếm việc làm </i>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

10

<b> Ca sử dụng UC04: Tìm kiếm worker </b>

<b>Mã usecase </b> UC04 <b>Tên usecase </b> Tìm kiếm worker Tác nhân Requester

Tiền điều kiện Khơng

Mục đích sử dụng Cho phép người dùng tìm kiếm worker theo từng giá trị của thuộc tính

Sự kiện kích hoạt Người dùng click vào tìm kiếm worker Luồng sự kiện

chính <sup>STT Thực hiện Hành động </sup>

1. Requester Chọn chức năng "tìm kiếm worker" 2. Hệ thống Hiển thị màn hình tìm kiếm worker 3. Requester Nhập các trường tìm kiếm (mơ tả

phía dưới *) 4. Requester Ấn chọn tìm kiếm

5. Hệ thống Thực hiện truy vấn vào cơ sở dữ liệu theo các trường đã nhập

6. Hệ thống Trả về danh sách tìm kiếm 7. Requester Click vào worker muốn xem 8. Hệ thống Hiển thị màn hình chi tiết worker 9. Requester Ấn nút mời làm việc

10 Hệ thống Lưu thông tin mời làm việc của requester

Luồng sự kiện thay thế

Hậu điều kiện Hệ thống trả về danh sách tìm kiếm cho người dùng

<i>Bảng 2.7 Bảng đặc tả ca sử dụng Tìm kiếm worker </i>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

11

<i>Mô tả trường dữ liệu </i>

STT Trường dữ liệu Bắt buộc? Điều kiện hợp lệ

2. Chất lượng làm việc của worker không

<i>Bảng 2.8 Bảng dữ liệu đầu vào ca sử dụng Tìm kiếm worker </i>

<b> Ca sử dụng UC05: Requester tạo việc làm </b>

<b>Mã usecase </b> UC05 <b>Tên usecase </b> Requester tạo việc làm Tác nhân Requester

Tiền điều kiện Khơng

Mục đích sử dụng Cho phép người dùng tạo việc làm Sự kiện kích hoạt Người dùng click vào Tạo việc làm Luồng sự kiện

4. Requester Ấn nút Tạo việc

5. Hệ thống Kiểm tra tính hợp lệ và đầy đủ của các trường người dùng nhập 6. Hệ thống Tạo công việc

7. Requester Click vào worker muốn xem 8. Hệ thống Hiển thị màn hình chi tiết worker 9. Requester Ấn nút mời làm việc

10 Hệ thống Lưu thông tin mời làm việc của requester

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

12 Luồng sự kiện

thay thế Hậu điều kiện

<i>Bảng 2.9 Bảng đặc tả ca sử dụng Requester tạo việc làm </i>

<i>Mơ tả các trường tìm kiếm </i>

STT Trường dữ liệu Bắt buộc? Điều kiện hợp lệ

4. Số lượng task mỗi worker có 5. Tiền thưởng mỗi task có 6. Thời gian hết hạn có 7. Số lượng bản sao của mỗi assignment có 8. Yêu cầu chất lượng của worker có 9. Dữ liệu của cơng việc có

<i>Bảng 2.10 Bảng dữ liệu đầu vào ca sử dụng Requester tạo việc làm </i>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

13

<b> Ca sử dụng UC06: Requester quản lý thông tin cá nhân </b>

<b>usecase </b>

Requester quản lý thông tin cá nhân

Tác nhân Requester Tiền điều kiện Khơng

Mục đích sử dụng Cho phép người dùng xem, chỉnh sửa thông tin các nhân của mình

Sự kiện kích hoạt Người dùng ấn vào Thông tin các nhân Luồng sự kiện

Hậu điều kiện Hệ thống cập nhật các thông tin của requester

<i>Bảng 2.11 Bảng đặc tả ca sử dụng Requester quản lý thông tin cá nhân </i>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

14

<i>Mô tả các trường cập nhật : </i>

STT Trường dữ liệu Điều kiện hợp lệ Ví dụ

2. Số điện thoại 0972053783

4. Ảnh đại diện

<i>Bảng 2.12 Bảng dữ liệu đầu vào ca sử dụng Requester quản lý thông tin cá nhân </i>

<b> Ca sử dụng UC07: Worker quản lý thông tin cá nhân </b>

<b>Mã usecase </b> UC07 <b>Tên usecase Worker quản lý thông tin cá nhân </b>

Tác nhân Worker Tiền điều kiện Không

Mục đích sử dụng Cho phép người dùng xem, chỉnh sửa thơng tin các nhân của mình

Sự kiện kích hoạt Người dùng ấn vào Thơng tin các nhân Luồng sự kiện

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

15 Luồng sự kiện

thay thế <sup>STT Thực </sup><sub>hiện </sub> <sup>Hành động </sup>

6a. Hệ thống Thông báo lỗi: sai định dạng các giá trị nhập

Hậu điều kiện Hệ thống cập nhật các thông tin của worker

<i>Bảng 2.13 Bảng đặc tả ca sử dụng Worker quản lý thông tin cá nhân </i>

<i>Mô tả các trường cập nhật : </i>

STT Trường dữ liệu Điều kiện hợp lệ Ví dụ

2. Số điện thoại 0972053783

4. Ảnh đại diện

<i>Bảng 2.14 Bảng dữ liệu đầu vào ca sử dụng Worker quản lý thông tin cá nhân </i>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

16

<b> Ca sử dụng UC08: Requester phê duyệt yêu cầu làm việc </b>

<b>usecase </b>

Requester phê duyệt yêu cầu làm việc

Tác nhân Requester Tiền điều kiện Khơng

Mục đích sử dụng Cho phép requester quản lý cơng việc Sự kiện kích hoạt Requester ấn vào quản lý công việc Luồng sự kiện

<i>Bảng 2.15 Bảng đặc tả ca sử dụng Requester phê duyệt yêu cầu làm việc</i>

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

17

<b> Ca sử dụng UC09: Requester quản lý công việc </b>

<b>Mã usecase </b> UC09 <b>Tên usecase </b> Requester quản lý công việc Tác nhân Requester

Tiền điều kiện

Mục đích sử dụng Cho phép người dùng quản lý công việc Sự kiện kích hoạt Requester ấn vào "Quản lý công việc" Luồng sự kiện

Hậu điều kiện Hệ thống hiển thị trang quản lý công việc

<i>Bảng 2.16 Bảng đặc tả ca sử dụng Requester quản lý công việc </i>

<b> Ca sử dụng UC10: Requester quản lý phân công công việc </b>

<b>usecase </b> <sup>Requester quản lý phân công công </sup>việc Tác nhân Requester

Tiền điều kiện

Mục đích sử dụng Cho phép requester quản lý phân công công việc của từng công việc

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

18 Sự kiện kích hoạt Requester ấn vào phân công công việc ở Danh sách phân

công công việc Luồng sự kiện

của cơng việc đó

5. Requester Người dùng ấn vào phân công công việc ở danh sách phân công công việc 6. Hệ thống Trả về trang kết quả các đơn vị công

việc của phân công công việc

7. Requester Chấp nhận hoặc từ chối đơn vị công việc

8. Hệ thống Lưu lại thông tin Luồng sự kiện

thay thế

Hậu điều kiện Hệ thống hiển thị trang quản lý phân công công việc, chấp nhận từ chối đơn vị công việc

<i>Bảng 2.17 Bảng đặc tả ca sử dụng Requester quản lý phân công công việc </i>

<b> Ca sử dụng UC11: Worker làm việc </b>

<b>Mã usecase </b> UC11 <b>Tên usecase </b> Worker làm việc Tác nhân Worker

Tiền điều kiện

Mục đích sử dụng Cho phép worker làm việc

Sự kiện kích hoạt Worker ấn vào cơng việc ở danh sách công việc

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

19 Luồng sự kiện chính <sub>STT Thực hiện </sub> <sub>Hành động </sub>

1. Worker Chọn chức năng "Quản lý công việc"

2. Hệ thống Hiển thị màn hình danh sách cơng việc

3. Worker Click vào công việc muốn làm 4. Hệ thống Trả về màn hình làm việc

5. Worker Người dùng làm việc và nộp kết quả

6. Hệ thống Lưu kết quả làm việc Luồng sự kiện thay

thế

Hậu điều kiện Hệ thống hiển thị màn hình làm việc, lưu kết quả làm việc

<i>Bảng 2.18 Bảng đặc tả ca sử dụng Worker làm việc </i>

<b> Ca sử dụng UC12: Admin quản lý requester </b>

<b>Mã usecase UC12 Tên usecase </b> Admin quản lý requester Tác nhân Admin

Tiền điều kiện

Mục đích sử dụng Cho phép admin quản lý requester Sự kiện kích hoạt Admin ấn vào tìm kiếm requester

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

20 Luồng sự kiện chính <sub>STT Thực </sub>

hiện <sup>Hành động </sup>

1. Admin Chọn chức năng "Tìm kiếm requester"

2. Hệ thống Hiển thị màn hình Tìm kiếm requester

3. Admin Ấn nút xóa requester 4. Hệ thống Lưu thông tin

Luồng sự kiện thay thế

Hậu điều kiện Hệ thống hiển thị danh sách requester, lưu thông tin

<i>Bảng 2.19 Bảng đặc tả ca sử dụng Admin quản lý requester </i>

<b> Ca sử dụng UC13: Admin quản lý worker </b>

<b>Mã usecase </b> UC13 <b>Tên usecase </b> Admin quản lý worker Tác nhân Admin

Tiền điều kiện

Mục đích sử dụng Cho phép admin quản lý worker Sự kiện kích hoạt Admin ấn vào tìm kiếm worker Luồng sự kiện chính <sub>STT Thực </sub>

hiện <sup>Hành động </sup>

1. Admin Chọn chức năng "Tìm kiếm worker"

2. Hệ thống Hiển thị màn hình Tìm kiếm worker

3. Admin Ấn nút xóa worker 4. Hệ thống Lưu thông tin Luồng sự kiện thay

thế

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

21 Hậu điều kiện Hệ thống hiển thị danh sách worker, lưu thông tin

<i>Bảng 2.20 Bảng đặc tả ca sử dụng Admin quản lý worker </i>

<b> Ca sử dụng UC14: Admin quản lý công việc </b>

<b>Mã usecase UC14 Tên usecase </b> Admin quản lý công việc Tác nhân Admin

Tiền điều kiện

Mục đích sử dụng Cho phép admin quản lý công việc Sự kiện kích hoạt Admin ấn vào tìm kiếm cơng việc Luồng sự kiện chính <sub>STT Thực </sub>

hiện <sup>Hành động </sup>

1. Admin Chọn chức năng "Tìm kiếm cơng việc"

2. Hệ thống Hiển thị màn hình Tìm kiếm cơng việc

3. Admin Ấn nút xóa cơng việc 4. Hệ thống Lưu thông tin

Luồng sự kiện thay thế

Hậu điều kiện Hệ thống hiển thị danh sách công việc, lưu thông tin người dùng

<i>Bảng 2.21 Bảng đặc tả ca sử dụng Admin quản lý công việc</i>

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

22

<b> Ca sử dụng UC15: Worker quản lý công việc </b>

<b>Mã usecase </b> UC15 <b>Tên usecase </b> Worker quản lý công việc Tác nhân Worker

Tiền điều kiện

Mục đích sử dụng Cho phép người dùng quản lý cơng việc Sự kiện kích hoạt Worker ấn vào "Quản lý công việc" Luồng sự kiện

Hậu điều kiện Hệ thống hiển thị trang quản lý công việc

<i>Bảng 2.22 Bảng đặc tả ca sử dụng Worker quản lý công việc </i>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

24

<b> Quy trình "Đăng nhập" </b>

<i>Hình 2.6 Biểu đồ hoạt động Đăng nhập </i>

<b> Quy trình "Worker tìm việc làm" </b>

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

25

<b> Quy trình "Requester tạo việc làm" </b>

<b> Quy trình "Requester quản lý công việc" </b>

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

26

<b> Quy trình "Requester quản lý phân cơng cơng việc" </b>

<b> Quy trình "Quản lý thơng tin cá nhân" </b>

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

27

<b> Quy trình "Worker quản lý cơng việc" </b>

<b> Quy trình "Worker làm việc" </b>

<i>Hình 2.13 Biểu đồ hoạt động Worker làm việc </i>

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

28

<b> Quy trình "Tìm kiếm worker" </b>

<b> Quy trình "Admin quản lý người dùng" </b>

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

29

<b> Quy trình "Admin quản lý cơng việc" </b>

<i>Hình 2.16 Biểu đồ hoạt động Admin quản lý công việc </i>

<b> Quy trình "Requester phê duyệt yêu cầu làm việc" </b>

<i>Hình 2.17 Biểu đồ hoạt động Requester phê duyệt yêu cầu làm việc </i>

</div>

×