BTL môn Công nghệ phần mềm khoa KhKT Máy tính HK221 trường Đại học Bách Khoa ĐHQG TP. HCM, topic UWC 2.0. Đây là final report bao gồm đủ 5 task, phần implement và link video thuyết trình về chủ đề. trường Đại học Bách Khoa ĐHQG TP. HCM trường Đại học Bách Khoa ĐHQG TP. HCMtrường Đại học Bách Khoa ĐHQG TP. HCMtrường Đại học Bách Khoa ĐHQG TP. HCMtrường Đại học Bách Khoa ĐHQG TP. HCMtrường Đại học Bách Khoa ĐHQG TP. HCMtrường Đại học Bách Khoa ĐHQG TP. HCMtrường Đại học Bách Khoa ĐHQG TP. HCMtrường Đại học Bách Khoa ĐHQG TP. HCMtrường Đại học Bách Khoa ĐHQG TP. HCMtrường Đại học Bách Khoa ĐHQG TP. HCMtrường Đại học Bách Khoa ĐHQG TP. HCMtrường Đại học Bách Khoa ĐHQG TP. HCM
Trang 1Công nghệ phần mềm (CO3001)
URBAN WASTE COLLECTION AID - UWC 2.0
Giảng viên hướng dẫn: Bùi Công Tuấn - Mai Đức Trung
Sinh viên thực hiện: Bành Ngọc Phương Uyên 2012397 (Nhóm trưởng)
Trương Nguyễn Khôi Nguyên 2010468
Nguyễn Trần Phước Thành 1912059
Thành phố Hồ Chí Minh, 9/2022
Trang 2Mục lục
3.1 Phân tích tình huống 5
3.2 Yêu cầu chức năng và phi chức năng 6
3.2.1 Yêu cầu chức năng - Functional Requirements 6
3.2.2 Yêu cầu phi chức năng - Non-functional Requirements 6
3.3 Usecase Diagram 7
3.3.1 Whole System 7
3.3.2 Task Assignment Module Use Case 8
3.3.3 Manage Task 10
3.3.4 Assign Task for Collector 12
3.3.5 Assign Task for Janitor 15
3.3.6 View list of employeess 16
4 System Modeling - Mô hình hóa hệ thống 17 4.1 Activity Diagram 17
4.2 Sequence Diagram 18
4.2.1 Một số lưu ý trong bài báo cáo này: 18
4.2.2 Giải pháp đề ra cho việc lập tuyến đường: 18
4.2.3 Sequence Diagram: 19
4.3 Class Diagram 21
5 Architecture design - Thiết kế kiến trúc 24 5.1 Mô tả hướng tiếp cận kiến trúc hệ thống 24
5.2 Component Diagram 25
6 Implementation – Sprint 1 27 6.1 GitHub 27
6.2 Giao diện đăng nhập: 27
6.3 Giao diện trang chủ: 27
6.4 Giao diện quản lý thông tin cá nhân: 28
6.5 Giao diện lập kế hoạch phương tiện sử dụng trong tháng: 30
6.6 Giao diện quản lý công việc: 35
6.7 Giao diện xem danh sách nhân viên 36
6.8 Giao diện phân công task cho janitors: 38
7 Implementation – Sprint 2 42 7.1 GitHub 42
7.2 Video Thuyết trình và Demo 42
7.3 Website 42
7.4 Phân công hiện thực các feature 42
Trang 31 HistoryLog
Hình 1: HistoryLog Task 1
Trang 5Hình 4: HistoryLog Task 4
Hình 5: HistoryLog Task 5
Trang 6• Có quy mô nhỏ, số lượng các nhân viên gồm nhân viên thu gom rác và nhân viên vệ sinh vừa
đủ để làm việc trong một tuần Vì vậy mà mỗi tuần luôn có các nhân viên này làm việc, chỉ cóphân công công việc của mỗi tuần là khác nhau (do cán bộ phụ trách lập lịch)
• Công ty có quy định: nếu các nhân viên muốn xin nghỉ thì phải tự thu xếp công việc và nhờđược một người khác cùng chức vụ nhận thay cho mình Nhân viên xin nghỉ cũng phải có tráchnhiệm thông báo lại cho cán bộ phụ trách lịch nghỉ cùng với tên của người đảm nhận thay côngviệc trước 10 ngày kể từ ngày bắt đầu nghỉ
Sau khi hoàn thành, công ty Y sẽ nhận được một hệ thống với cơ sở dữ liệu hoàn chỉnh, giúp chocán bộ phụ trách cũng như nhân viên thu gom và nhân viên vệ sinh tương tác với hệ thống bằng thiết
bị kết nối internet, dễ dàng sử dụng, nhanh chóng tiện lợi
Dưới đây là quá trình làm rõ các yêu cầu của phần mềm UWC 2.0:
a) Stakeholders: Stakeholder nghĩa là các bên liên quan, đó có thể là một cá nhân, một nhómngười, hoặc một tổ chức có ảnh hưởng hoặc bị ảnh hưởng bởi hệ thống theo một cách nào đó Cácstakeholder của phần mềm này được xác định là:
• Cán bộ phụ trách (Back Officer): có thể thông qua phần mềm để theo dõi, phân công
và tương tác với những nhân viên thu gom rác và nhân viên vệ sinh, theo dõi tình trạng củacác MCPs và các phương tiện thu gom
• Nhân viên thu gom (Collector) và nhân viên vệ sinh (Janitor): Thông qua phầnmềm, họ nhận được lịch làm việc và những yêu cầu/tính chất của công việc được chỉ định từcán bộ phụ trách, tương tác với cán bộ phụ trách và các nhân viên khác và được nhận thôngbáo về tình trạng MCPs
b) Tính năng dự kiến:
Để đáp ứng nhu cầu cho từng đối tượng đã liệt kê ở trên, dự kiến phần mềm này sẽ:
• Có giao diện riêng cho bên cán bộ phụ trách và bên nhân viên (gồm có nhân viên thu gomrác và nhân viên vệ sinh)
• Hiển thị danh sách các phương tiện và chi tiết kĩ thuật của chúng (trọng lượng, sức chứa,tiêu hao nhiên liệu ) trong giao diện của cán bộ phụ trách
• Hiển thị danh sách các MCPs và chi tiết các thông số của MCPs trong giao diện của cán bộphụ trách
• Hiển thị danh sách các nhân viên làm việc hàng tuần trong giao diện của cán bộ phụ trách
• Cho phép cán bộ phụ trách có thẻ điều chỉnh thông tin của MCPs cũng như lịch làm việc/phâncông của các nhân viên
• Cho phép phía nhân viên có thể xem được lịch làm việc và các phân công công việc
• Cho phép phía nhân viên có thể checkin/checkout công việc
• Cho phép các bên liên quan có thể giao tiếp với nhau qua các hình thức: tin nhắn (tất cảngười dùng) và gửi thông báo (đối với cán bộ phụ trách)
Và các điều kiện vật chất để phối hợp cùng với phần mềm trong quá trình hoạt động:
• Tại các MCPs có sensor (bộ cảm biến) cập nhật trạng thái của MCPs về cho hệ thống
• Các tuyến đường đã được tối ưu sẵn trước khi cán bộ phụ trách tạo lịch và phân công côngviệc cho các nhân viên
Trang 73.2 Yêu cầu chức năng và phi chức năng
3.2.1 Yêu cầu chức năng - Functional Requirements
Các yêu cầu chức năng cho từng đối tượng sử dụng lần lượt như sau:
1 Đối với cán bộ phụ trách (Back Officers):
• Cán bộ phụ trách có thể đăng nhập được vào hệ thống để làm việc
• Cán bộ phụ trách có thể quản lý (xem, thêm, sửa, xóa) thông tin của MCPs
• Cán bộ phụ trách có thể quản lý (xem, thêm, sửa, xóa) thông tin của các nhân viên trongcông ty
• Cán bộ phụ trách có thể quản lý (xem và lên kế hoạch hàng tháng) các phương tiện
• Cán bộ phụ trách có thể phân công công việc (task) cho các nhân viên
• Cán bộ phụ trách có thể gửi thông báo về tình trạng của MCPs tới các nhân viên cũngnhư các thông báo nhỏ khác (ví dụ thông báo nghỉ lễ, nghỉ Tết, liên hoan công ty, )
• Cán bộ phụ trách có thể gửi tin nhắn riêng tới các nhân viên khác của công ty
2 Đối với nhân viên thu gom rác (Collectors):
• Nhân viên thu gom rác có thể đăng nhập được vào hệ thống để làm việc
• Nhân viên thu gom rác có thể xem thông tin chi tiết về phân công công việc của họ hằngngày và hằng tuần, trong đó có tuyến đường đi qua
• Nhân viên thu gom rác có thể nhận được thông báo về tình trạng của MCPs cũng như cácthông báo khác từ cán bộ phụ trách
• Nhân viên thu gom rác có thể thực hiện điểm danh và đánh dấu hoàn thành công việctrong ngày
• Nhân viên thu gom rác có thể gửi tin nhắn riêng tới các nhân viên khác (bao gồm cả cán
bộ phụ trách) của công ty
3 Đối với nhân viên vệ sinh (Janitors):
• Nhân viên vệ sinh có thể đăng nhập được vào hệ thống để làm việc
• Nhân viên vệ sinh có thể xem thông tin chi tiết về phân công công việc của họ hằng ngày
Một số yêu cầu khác cần xử lý đối với hệ thống UWC 2.0:
• Hệ thống cần lưu trữ thông tin từng tài khoản của người dùng
• Hệ thống có khả năng phần quyền truy cập cho từng vai trò khác nhau của người dùng
3.2.2 Yêu cầu phi chức năng - Non-functional Requirements
• Yêu cầu về tính dễ sử dụng
Trang 8• Yêu cầu về hiệu năng và hiệu suất
– Hệ thống phải có khả năng kiểm soát dữ liệu thời gian thực từ ít nhất 1000 MCPs cùnglúc và 10 000 MCPs trong 5 năm
– Các trang của ứng dụng web load không quá 2 giây
– Tốc độ phản ứng dưới 1 giây cho mỗi thao tác
– Hệ thống cho phép gửi tin nhắn với độ trễ không quá 1s
• Yêu cầu về tính tin cậy
– Hệ thống phải sẵn sàng để làm việc trong thời gian công ty làm việc (VD: 7h - 19h từ thứHai đến Chủ nhật)
– Thời gian hệ thống bị sập (crash) trong thời gian làm việc phải ít hơn 5 giây trong bất kìngày làm việc nào
– Thông tin về MCPs phải được cập nhật liên tục trong ít nhất 95% thời gian hoạt độngtrong mỗi 15 phút
– Thông báo phải được cập nhật tới người dùng trong 1 phút khi có thao tác
• Yêu cầu về tổ chức hệ thống
– Hệ thống UWC 2.0 phải có khả năng tích hợp và sử dụng dữ liệu từ UWC 1.0 có sẵn càngnhiều càng tốt
– Hệ thống phải có khả năng nâng cấp và mở rộng trong tương lai
– Phối màu trong giao diện cần tối giản, thanh lịch, cho phép người dùng chọn giao diệnmàn hình tối (Dark Mode) hoặc sáng (Light Mode)
• Yêu cầu về ngoại cảnh
– Hệ thống phải đảm bảo bảo mật thông tin người dùng
– Hệ thống phải đảm bảo tuân thủ quy định pháp luật tại quốc gia sở tại nơi hệ thống đượcphát triển và sử dụng
• Yêu cầu về nền tảng
– Hệ thống có thể sử dụng hiệu quả trên điện thoại di động (Android, IOS), máy tính bảnghoặc máy tính bàn, laptop (Windows, Linux, Mac) với các trình duyệt (Chrome, Firefox,Safari)
2 Nhân viên công ty (Employees)
3 Nhân viên vệ sinh (Janitors)
4 Nhân viên thu gom rác (Collectors)
5 Hệ thống cảm biến (Sensors System)Bảng mô tả các use case của hệ thống:
Trang 9Hình 6: Use cases cả hệ thống
2 Communicate Giao tiếp với nhau qua hệ thống bằng cách gửi/nhận tin nhắn
12 Update MCPs status Cập nhật trạng thái của MCPs
13 Plan vehicles Lên kế hoạch sử dụng các phương tiện
3.3.2 Task Assignment Module Use Case
Bảng danh sách các actor:
1 Cán bộ phụ trách (Back Officer)Bảng mô tả các use case chính của module Task Assignment:
Trang 10Hình 7: Task Assignment Module use cases
5 Assign Task for Collector Phân công nhiệm vụ cho người thu gom rác (Collector)
6 Assign vehicles Phân công phương tiện cho người thu gom rác (Collector)
7 Assign routes Chỉ định tuyến đường cho người thu gom rác (Collector)
8 View list of employees Xem danh sách các nhân viên
9 Assign Task for Janitor Phân công nhiệm vụ cho người vệ sinh (Janitor)
10 Assign areas Chỉ định các khu vực làm việc cho người vệ sinh (Janitor)
Trang 113.3.3 Manage Task
Usecase Name Manage Task
Actor Back Officer
Description Back Officer quản lí công việc của nhân viên
Triggers Back Officer chọn "Quản lý nhiệm vụ" trên giao diện đang hiển thịPreconditions Back Officer đăng nhập vào hệ thống
Normal Flow 1 Hệ thống hiện thị giao diện quản lí nhân viên có các lựa chọn:
• Xem bảng phân công
• Chỉnh sửa bảng phân công
• Xóa phân công
2 Back Officer lựa chọn 1 trong các lựa chọn ở B1
3 Hệ thống chuyển sang giao diện theo lựa chọn của Back Officer
4 Back Officer hoàn thành các thao tác dựa trên lựa chọn ở B1, ấn
Usecase Name View Task
Actor Back Officer
Description Back Officer xem công việc của nhân viên
Triggers Back Officer chọn "Xem bảng phân công" trên giao diện đang hiển
thịPreconditions Back Officer đang ở trang quản lí công việc
Postconditions Back Officer xem được task tại thời điểm được chọn
Normal Flow 1 Hệ thống hiển thị lựa chọn thời gian muốn xem theo dạng
dd/m-m/yyyy
2 Back Officer chọn thời gian muốn xem
3 Hệ thống hiện thị dạng bảng lịch phân công của các nhân viên dựatrên thời gian đã chọn
4 Back Officer ấn nút "OK"
5 Hệ thống quay về giao diện quản lí công việcExceptions Exceptions Flows 1 : tại bước 3
3a Bảng phân công hiện đang trống, hiện thị pop-up thông báo "Hiệnchưa có lịch phân công"
Alternative Flows Alternative Flows 1 : tại bước 4
4a Back Officer ấn vào tên từng nhân viên để xem chi tiết phân côngcho nhân viên đó
4b Back Officer ấn nút "OK"
4c Quay lại bước 3 ở Normal Flow
Trang 12Usecase Name Edit Task
Actor Back Officer
Description Back Officer chỉnh sửa phân công công việc của nhân viên
Triggers Back Officer chọn "Chỉnh sửa bảng phân công" trên giao diện đang
hiển thịPreconditions Back Officer đang ở trang quản lí công việc
Postconditions Back Officer chỉnh sửa được task muốn chỉnh sửa
Normal Flow 1 Hệ thống hiển thị lựa chọn thời gian muốn xem theo dạng
dd/m-m/yyyy
2 Back Officer chọn thời gian muốn chỉnh sửa
3 Hệ thống hiện thị đầy đủ lịch phân công của các nhân viên theothời gian đã chọn
4 Back Officer lựa chọn nhân viên để sửa phân công
5 Hệ thống hiện thông báo "Xác nhận" để xác nhận thay đổi
6 Hệ thống quay về giao diện quản lí công việcExceptions Exceptions Flows 1 : tại bước 4
4a Back Officer để trống thông tin trong bảng phân công, hệ thốngbáo thiếu thông tin
Alternative Flows Alternative Flows 1 : tại bước 1
1a Back Officer ấn nút "Quay lại" để trở lại giao diện quản lí côngviệc
Alternative Flows 2 : tại bước 55a Back Officer ấn nút "Quay lại" để không thay đổi lịch phân côngcủa nhân viên
5b Quay lại bước 4 ở Normal Flow
Usecase Name Delete Task
Actor Back Officer
Description Back Officer xóa phân công công việc của nhân viên
Triggers Back Officer chọn "Xóa phân công" trên giao diện đang hiển thị
Preconditions Back Officer đang ở trang quản lí công việc
Postconditions Back Officer xóa được task muốn xóa
Normal Flow 1 Hệ thống hiện thị đầy đủ lịch phân công của các nhân viên
2 Back Officer ấn "Xóa" bên cạnh tên nhân viên để xóa lịch phâncông của nhân viên
3 Hệ thống hiện thông báo "Xác nhận" để xác nhận thay đổi
4 Hệ thống quay về giao diện quản lí công việcExceptions Exceptions Flows 1 : tại bước 1
1a Bảng phân công hiện đang trống, hiện thị pop-up thông báo "Hiệnchưa có lịch phân công"
Alternative Flows Alternative Flows 1 : tại bước 1
1a1 Back Officer ấn nút "Xóa tất cả" để xóa toàn bộ lịch phân cônghiện tại, tiếp tục B3
1a2 Back Officer ấn nút "Quay lại" để trở lại giao diện quản lí côngviệc
Trang 133.3.4 Assign Task for Collector
Usecase Name Assign Task for Collectors
Actor Back Officer (BO)
Description BO có thể dùng tính năng này để thêm việc cho các Collectors
Preconditions 1 BO đang ở trong giao diện danh sách của các Collector
2 Thiết bị của BO có kết nối với mạng
3 BO đã đăng nhập thành công vào hệ thống
Postconditions Công việc đã được giao đến các Collectors và được lưu trữ trên hệ
thống
Triggers BO nhấp vào nút “ĐIỀU TIẾT CÔNG VIỆC CHO LÁI XE”
Normal Flow 1 Hệ thống hiển thị giao diện để BO có thể chọn Collector để điều
tiết công việc
2 Sau khi chọn xong Collector thì BO nhấp vào nút “TIẾP TỤC”trên màn hình
3 Hệ thống chuyển sang giao diện để điều tiết tuyến đường cho cácCollector
4 Sau khi hoàn thành điều tiết tuyến đường, BO nhấp vào nút
11 Hệ thống chuyển thông tin của Collectors và thông tin công việc
ở thời điểm hiện tại và trên bộ nhớ đệm sang cơ sở dữ liệu
Col-Use case quay lại bước 2
Exception Flows Exception Flow 1 (ở bước 2):
2b Nếu BO chọn “XÁC NHẬN” mà chưa chọn nhân viên nào hết.2b1 Hệ thống sẽ hiển thị một tin nhắn popups nhắc: “BẠN CHƯACHỌN NGƯỜI LÁI XE NÀO CẢ HÃY THỬ LẠI”
2b2 BO nhấp vào nút “OK” ngay bên dưới tin nhắn nhắc hoặc nhấpvào nút “X” trên cửa sổ popups
2b3 Giao diện Popups tắt, hệ thống chuyển lại sang giao diẹn để BO
có thể chọn Collectors
Use case quay lại bước 2
Trang 14Usecase Name Assign Routes
Actor Back Officer (BO)
Description Use case giúp BO chỉ định hoặc thay đổi tuyến đường thu gom cho
Collector
Trigger Sau khi BO hoàn thành việc chọn Collector và nhấn nút
"CON-TINUE" trong giao diện "Assign Task for Collectors" Pre-Conditions 1 Thiết bị của BO phải được kết nối mạng
2 BO phải đăng nhập thành công vào hệ thống
3 BO đã hoàn thành việc chọn Collector trong giao diện "AssignTask for Collectors"
Normal Flow 1 Hệ thống hiển thị danh sách tất cả các nhóm MCPs chưa được
Alternative Flows Alternative Flow 1 (ở bước thứ 7): BO muốn chỉnh sửa lại tuyến
đường cho Collector3a BO nhấn vào “Quay lại”
3a1 Use case quay lại bước 1
Alternative Flow 2 (ở bước thứ 7): BO không muốn chỉ định tuyếnđường cho Collector nữa
3d Hệ thống sẽ hiển thị tin nhắn thông báo: “Bạn chưa chọn bất kỳnhóm MCPs nào Hãy thử lại.”
3d1 BO sẽ nhấp vào nút “OK” hoặc là nút “X” để tắt cửa sổ tin nhắn.3d2 Use case quay lại bước 2
* Lưu ý: Use case này sẽ được đặc tả rõ hơn ở Task 2.2 (phần Sequence Diagram)
Trang 15Usecase Name Assign Vehicles
Actor Back Officer (BO)
Description Use case để cho BO có thể chọn phương tiện cho các Collector sử dụng.Preconditions 1 BO đã hoàn thành việc chọn Collectors
2 BO đã hoàn thành việc Assign Routes cho các Collectors
3 Thiết bị của BO phải có kết nối với mạng
4 BO đã đăng nhập thành công vào ứng dụng
Postconditions Các phương tiện di chuyển đã được gán cho các Collectors
Trigger Sau khi BO hoàn thành use case ASSIGN ROUTES
Normal Flow 1 BO nhấp vào nút “CHỌN PHƯƠNG TIỆN”
2 Hệ thống sẽ hiển thị ra danh sách các phương tiện mà BO đã chỉđịnh trong tháng và còn trống hoặc sắp trống
3 BO sẽ chọn phương tiện phù hợp với tuyến đường đã chọn choCollector
4 Sau khi chọn xong BO sẽ nhấp vào nút “XÁC NHẬN”
5 Kết thúc use case
Exception Flows Exception Flow 1 (ở bước 2): Nếu hiện tại không có phương tiện nào
có sẵn 1 Hệ thống sẽ hiển thị tin nhắn nhắn thông báo: "KHÔNG
CÓ PHƯƠNG TIỆN TRỐNG NGAY LÚC NÀY HÃY THỬ LẠISAU."
2 Người dùng có thể chọn nút “X” để đóng cửa sổ tin nhắn
3 Hệ thống sẽ trở lại với giao diện có nút “CHỌN PHƯƠNG TIỆN”.Use case kết thúc
Exception Flow 2 (ở bước 4): BO nhấp vào nút “CONFIRM”nhưng chưa chọn phương tiện cho Collectors
1 Hệ thống sẽ hiển thị cửa sổ pop ups tin nhắn thông báo: “BẠNCHƯA CHỌN PHƯƠNG TIỆN NÀO CẢ XIN THỬ LẠI”
2 BO sẽ nhấp vào nút “OK” hoặc là nút “X” để tắt cửa sổ pop ups.Use case bắt đầu lại ở bước 2
Trang 163.3.5 Assign Task for Janitor
Usecase Name Assign Task for Janitors
Actor Back Officer (BO)
Description BO thực hiện các thao tác để phân công công việc cho các Janitors.Preconditions 1 BO phải có kết nối mạng
2 BO đăng nhập được vào hệ thống
3 BO đang ở giao diện "View list"
Postconditions BO phân công xong công việc cho các Janitors
Trigger BO nhấn vào nút "PHÂN CÔNG TASK CHO JANITOR" ở giao
diện "View list"
Normal Flow 1 Hệ thống hiển thị giao diện “PHÂN CÔNG TASK JANITORS”
gồm danh sách nhân viên và các khu vực làm việc
2 BO hoàn thành chỉ định các khu vực làm việc cho các janitor
3 BO nhấn "Xác nhận" hoàn thành giao việc
4 Hệ thống POPUP xác nhận xem BO đã chắc chắn đã hoàn thànhgiao việc hay chưa
5 BO nhấn nút “OK”
6 Hệ thống chuyển toàn bộ thông tin về Janitors và công việc từ bộnhớ đệm sang cơ sở dữ liệu và gửi thông báo đên các Janitors
7 Kết thúc use-case
Alternative Flows Flow 1 :
1 Ở bước 4, sau lần đầu BO chọn hoàn thành giao việc, nếu pháthiện còn Janitors chưa được giao việc hoặc khu vực chưa có Janitornào, POPUP kèm theo thông tin của các Janitors và các khu vực đó
2 Nếu BO confirm, tiếp tục bước 5 Nếu BO chọn "HỦY”, chuyểnsang flow 2
Exception Flows Không
Usecase Name Assign Area to Janitors
Actor Back Officer (BO)
Description BO thực hiện các thao tác để chỉ định khu vực làm việc cho JanitorsPreconditions 1 BO phải có kết nối mạng
2 BO đăng nhập được vào hệ thống
3 BO đã chọn "PHÂN CÔNG TASKS CHO JANITORS"
Postconditions Hệ thống ghi nhận dữ liệu về khu vực chỉ định của Janitors từ BOs.Trigger BO nhấn vào từng Janitor trong giao diện "ASSIGN TASK FOR
JANITORS"
Normal Flow 1 Hệ thống hiển thị danh sách các janitor kèm với các khu vực trong
hệ thống và yêu cầu BO chọn khu vực cho Janitor
2 BO chọn Checkbox vào các khu vực muốn chỉ định cho janitor
3 Sau khi đã chọn xong các khu vực cho các janitor, BO nhấn nút
"Lưu"
4 Hệ thống ghi nhận và cập nhật thông tin về khu vực
5 Kết thúc use case
Alternative Flows Không có
Exception Flows Không có
Trang 173.3.6 View list of employeess
Usecase Name View list
Actor Back Officer (BO)
Description BO thực hiện các thao tác để hiện danh sách các Collectors và Janitors
theo mong muốn
Preconditions User phải đăng nhập vào hệ thống
Postconditions Các BO xem được danh sách Janitors và Collectors
Trigger BO nhấn vào nút "View List"
Normal Flow 1 BO nhấn vào nút "View List"
2 Hệ thống hiển thị bộ lọc, với 2 sự lựa chọn:
2.1 Show Collectors
2.2 Show Janitors
3 BO nhấn vào 1 trong 2 sự lựa chọn ở bước 2
4 Hệ thống chuyển giao diện tương ứng với lựa chọn của BO
5 Kết thúc use case
Alternative Flows Alternative Flow 1 (ở bước thứ 5)
1.1 Sau khi hệ thống hiển thị giao diện tương ứng với lựa chọn "ShowCollectors", BO nhấn vào nút "Assign Task For Collectors"
1.2 Tiếp tục Use-case Assign Task For Collectors
Alternative Flow 2 (ở bước thứ 5)
2.1 Sau khi hệ thống hiển thị giao diện tương ứng với lựa chọn "ShowJanitors", BO nhấn vào nút "Assign Task For Janitors"
2.2 Tiếp tục Use-case Assign Task For Janitors
Exception Flows Không có
Trang 184 System Modeling - Mô hình hóa hệ thống
Hình 8: Task Assignment Module use cases
Trang 194.2 Sequence Diagram
4.2.1 Một số lưu ý trong bài báo cáo này:
• Giả định trong bài này, công ty chỉ đi thu gom rác ở các MCPs trong phạm vi tối đa 30 km sovới vị trí của công ty
• Chia số lượng MCPs cho số lượng Collector lấy phần nguyên ta được N
• Các nhóm MCPs được đặt tên theo mã COL_số thứ tự nhóm (theo thứ tự được tạo lập sớmhay muộn từ 1 đến N)
• Mỗi nhóm MCPs sẽ được lưu các thông tin gồm: Tên nhóm, Số thứ tự các MCPs, Tên các MCPsthuộc nhóm
4.2.2 Giải pháp đề ra cho việc lập tuyến đường:
* Ở đây ta sẽ chỉ nói nó ở mức khái niệm nên mọi việc sẽ được hệ thống tự thực hiện
và lưu lại danh sách ở Database:
Bước 1 : Hệ thống sẽ chọn MCPs gần công ty nhất chưa được phân công, gọi nó là M CP s1 Tiếptục quá trình nếu vẫn còn MCPs chưa được phân công, ngược lại phân công M CP s1 vào nhóm có
vị trí M CP sN gần nhất vừa được tạo và dừng quá trình
Bước 2 : Hệ thống sẽ chọn MCPs thứ hai (chưa được phân công) gần M CP s1 nhất và đặt là
M CP s2 Tiếp tục quá trình nếu vẫn còn MCPs chưa được phân công, ngược lại gom M CP s1,
M CP s2 thành 1 nhóm và dừng quá trình
Bước N-1 : Hệ thống sẽ chọn MCPs thứ N-1 (chưa được phân công) gần M CP sN −2 nhất và đặt
là M CP sN −1 Tiếp tục quá trình nếu vẫn còn MCPs chưa được phân công, ngược lại gom M CP s1, , M CP sN −2, M CP sN −1 thành một nhóm và dừng quá trình
Bước N : Hệ thống chọn MCPs thứ N gần M CP sN −1nhất, đặt là M CP sN và gom M CP s1, ,
M CP sN −1, M CP sN thành một nhóm Tiếp tục quay lại Bước 1 nếu vẫn còn MCPs chưa được phâncông
Trang 204.2.3 Sequence Diagram:
Hình 9: Sequence Diagram of Assign Route use case
Trang 21* Mô tả:
Back Officer: Người sử dụng tính năng này của hệ thống
Browser: Nơi người dùng thao tác (Class)
Server: Nơi nhận và xử lý các yêu cầu từ Browser (Class)
Message: Dùng để gửi trả tin nhắn (Object)
UsertoDB: Dùng để truy cập database (Object)
Database: Nơi lưu trữ dữ liệu của hệ thống (Class)
Trang 22• Gửi tin nhắn: Tin nhắn có thể được tạo ra bởi Employee (và các class extend từ nó) Tin nhắnkhi gửi sẽ được đưa lên server để chuyển tiếp tới (một hoặc nhiều) người nhận Tin nhắn về cơbản sẽ được lưu bởi Employee Server có thể luu các tin nhắn trong một khoảng thời gian vớingoại lệ là các tin nhắn được thiết đặt để lưu trữ lâu dài.
• Xem thông tin: Các thông tin về task, employee và infrastructure sẽ được truy cập từ server khi
có nhu cầu xem Mỗi class sẽ có hàm riêng để phục vụ các chức năng này (nếu cần)