Advertisement
tungSfer

13.7 cnpm dn hung

Mar 13th, 2022
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.35 KB | None | 0 0
  1. - Thẻ CRC có 2 nhiệm vụ chính trong vòng lặp đầu tiên:
  2. + Bật Elevator button. Theo góc nhìn thiết kế hướng nhiệm vụ, đối tượng của lớp Elevators button tự chịu trách bật, tắt đèn của nó. Và cũng như vậy,  theo góc nhìn của thông tin ẩn, lớp Elevator Controller không nên biết thông tin nội bộ mà lớp Elevators button cần để bật tắt đèn. Vì vậy nên giải pháp là, gửi 1 gói tin đến cho lớp Elevators button để nó tự bật đèn. Tương tự với bước 2 đến 6.
  3. + 1 lớp có thể bị bỏ qua. Ở trạng thái thứ 7, mở cửa  thang máy, ta có thể thấy, cửa thang máy có 2 trạng thái đóng và mở. Vì vậy nó nên là 1 lớp . Hơn nữa, khi nó là 1 lớp, các thuộc tính của nó sẽ được bảo veej khỏi những truy nhập trái phép, điều đó đảm bảo cửa thang máy không mở ra hoặc đóng bất ngờ gây nguy hiểm. Cửa sẽ chỉ hoạt động khi có gói tin gửi đến lớp Elevator Doors. Tuy nhiên, khi thêm vào lớp Elevator doors, ta cần tách trạng thái thứ 7 ra thành 2 trạng thái riêng biệt. Vì start timer là trách nghiệm của Elevator Controller. Khi Elevator Controller gửi gói tin đến Elevator Doors, start timer không chịu ảnh hưởng. Vì vậy phải kích hoạt nó riêng biệt. Nếu không sẽ không thể mở đóng cửa bình thường được.
  4. - Sơ đồ lớp đã được hiệu chỉnh, ta cần kiểm tra lại biểu đồ use cases và biểu đồ trạng thái. Cần phải mở rộng sơ đồ để bao gồm các lớp bổ sung. Kịch bản cũng cần được cập nhật để loại bỏ những thay đổi này.
  5. - Vấn đề tiếp theo là 1 lớp chiếm quá nhiều quyền điều khiển và quá nhiều thông tin cần xử lý. Chính vì thế cần phân chia quyền điều khiển. Mỗi 1 thang máy cần có 1 Elevator Subcontroller Class và mỗi Floor cần có 1 Floors Subcontroller Class.
  6. - Hiện tại, khi mà người dung ấn vào Floor button objects, Floors Button Class sẽ gửi 1 gói tin đến Floors Subcontroller Class object để xác nhận rằng nút đã được bấm. Sau đó, Floors Subcontroller Class gửi gói tin cho Floors Button Class để kiểm tra xem đèn có sáng hay không. Nếu không, gửi gói tin đến Floors Button Class để bật đèn. Thông báo cho Schelduler Class rằng yêu câu đã được tạo. Với Elevators Button Class cũng tương tự như vậy.
  7. - Có 1 cảm biến ở mỗi tầng ở cạnh của thang máy. Khi thang máy gần đến tầng nào đó, Sensor Class object sẽ gửi 1 gói tin thích hợp đến Elevators Subcontroller Class. Elevators Subcontroller Class gửi gói tin đến Scheduler Class để  thông báo rằng Elevators Class object đã đến gần tầng đó. Schelduler Class object sẽ kiểm tra xem có yêu cầu dừng ở tầng đó hay không. Nếu không, Scheduler Class sẽ gửi gói tin lại Elevators Subcontroller Class object đã gửi gói tin đến. Elevators Subcontroller Class object gửi gói tin đến Elevators Class object thông báo rằng đúng hướng nhưng phải đi thêm. Nếu có, Scheduler Class object thông  báo cho Elevators Subcontroller Class cập nhật lại danh sách yêu cầu thích hợp. Elevators Subcontroller Class object gửi gói tin đến Elevators Button Class kiểm tra xem đèn có bật không. Nếu có, gửi gói tin cho Elevators Button Class object để tắt đèn.
  8. - Khi Elevators Class object dừng ở 1 tầng, Elevators Subcontroller Class object tương ứng gửi gói tin đến Elevators Doors Class object để mở cửa, sau đó bắt đầu đếm giờ. Sau khi hết thời gian, nó gửi gói tin thích hợp đến Elevators Doors Class object để đóng cửa.
  9. - Cuối cùng, khi Elevators Class object di chuyển khỏi tầng, Sensor Class object thích hợp sẽ thông báo cho Elevators Subcontroller Class object rằng thang đã rời tầng và hướng thang đi. Floors Subcontroller Class object sẽ gửi gói tin đến Floors Button Class object để xác định rằng đèn sáng, và nếu đúng, gửi gói tin để tắt đèn.
  10. Các lược đồ UML cần được cập nhật
  11.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement