Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
1,77 MB
Nội dung
ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ——***—— BÁO CÁO Bài tập lớn Đề Tài Giảng viên hướng dẫn: T.S Nguyễn Thị Thu Trang Nhóm 11 Bùi Văn Phước Nguyễn Đa Long Đỗ Văn Diện 20122255 CNTT 2.02-K57 20122007 CNTT 2.01-K57 20121380 CNTT 2.01-K57 Hà Nội, tháng 11 năm 2015 Mục lục Đề .4 Giải pháp thực Phần I: Đặc tả yêu cầu phần mềm I Biểu đồ Use-case II Phân tích Use-case .8 Quản lý số lượng thang máy hoạt động Quản lý hoạt động thang máy Quản lí thời gian hoạt động thang máy 10 Chọn tầng cần đến 12 Bảng thuật ngữ .13 Tài liệu phụ trợ .14 Phần II: Thiết kế kiến trúc 15 Use-case quản lý hoạt động thang máy .15 I Biểu đồ trình tự 15 Biểu đồ giao tiếp 15 Use-case quản lý thời gian hoạt động thang máy 16 II Biều đồ trình tự 16 Biểu đồ giao tiếp 17 III Use-case chọn tầng cần đến 18 Biểu đồ trình tự 18 Biểu đồ giao tiếp 19 Phần III: Thiết kế chi tiết 21 Biểu đồ trình tự chi tiết 21 I Use case quản lí thời gian hoạt động thang máy 21 Use case quản lí hoạt động thang máy 21 Use case chọn tầng .22 Biểu đồ lớp chi tiết 23 II Biểu đồ lớp tổng quát 23 Biểu đồ lớp chi tiết .24 Giải thuật 35 III Giao diện 42 Phần IV: Sử dụng Design-Pattern 44 Pattern Builder 44 Iterator 44 Phần V: Kiểm thử .46 Test case cho chức quản lý hoạt động thang máy 46 Test case cho chức cài đặt thời gian hoạt độngc thang máy .46 Test case kiểm tra thời gian xung đột .47 Test case cho chức chọn tầng 47 Đề Một trung tâm thương mại lớn bao gồm 49 tầng, với 10 thang máy (từ A đến J) Hãy xây dựng hệ thống quản lý thang máy này, với số yêu cầu sau Vào số thời điểm định (ví dụ đêm, sáng sớm), cho phép số thang máy hoạt động, biết thời gian, số lượng danh sách thang máy hoạt động thiết lập người quản lý Tại thời điểm định, thiết lập để số thang máy bỏ qua số tầng Khi có khách bấm thang máy, hệ thống cần tính toán để tối ưu hoá: khoảng cách từ vị trí yêu cầu đến vị trí thang máy, hướng thang máy hướng yêu cầu (lên/xuống), số thang máy rỗi số lượng yêu cầu thang máy Tại tầng, người dùng thao tác với bảng số gồm 10 chữ số (0->9) để nhấn số tầng yêu cầu (từ -2 đến 49) Sau gửi yêu cầu số tầng, hệ thống hiển thị tên thang máy (A->Z) để người dùng biết thang máy Giải pháp thực Bước 1: tìm hiểu rõ nghiệp vụ toán - Hệ thống cung cấp cho người thang máy người quản lý hệ thống thang máy - Hệ thống cần xây dựng có 10 thang máy, 49 tầng - Giao diện tương tác với người dùng bảng số (0->9) để bấm tầng, phần hiển thị để người dùng biết thang - Giao diện cho người quản lý: giao diện người quản lý biết tình trạng thang hoạt động nào, đưa thiết lập cần thiết - Hệ thống phải xử lý tối ưu cho việc chọn tầng người dùng - Từ xác định vấn đề cần xử lý : + Xây dựng giao diện cho người dùng, người quản lý + Xây dựng thuật toán tối ưu cho việc xử lý chọn tầng người dùng Bước 2: - Xác định hướng thiết kế - Thiết kế hướng đối tượng Bước 3: Xác định công nghệ sử dụng - Ngôn ngữ lập trình: java - Ngôn ngữ mô hình hoá: UML Bước 4: Đi vào thiết kế cài đặt chương trình Phần I: Đặc tả yêu cầu phần mềm I Biểu đồ Use-case - Biểu đồ use-case người quản lý thang máy Hình Biểu đồ use-case người quản lý thang máy Người quản lý có use-case quản lý thời gian hoạt động thang máy, quản lý số lượng thang máy hoạt động quản lý hoạt động thang máy Quản lý thời gian hoạt động thang máy người quản lý có quyền thiết lập thời gian hoạt động thang máy ngày Quản lý số lượng thang máy hoạt động thiết lập số lượng thang máy hoạt động thời điểm Quản lý hoạt động thang máy thiết lập danh sách tầng thang máy hoạt động không hoạt động - Biểu đồ use-case người dùng Hình Biểu đồ use-case người dùng Người dùng có use-case chọn tầng cần đến, người dùng chọn tầng cần đến ấn ok, hệ thống tính toán đưa tên thang máy cho người dùng - Có use chính: Quản lý hoạt động thang máy( Nguyễn Đa Long thiết kế) Quản lý thời gian hoạt động thang máy(Đỗ Văn Diện thiết kế) Chọn tầng cần đến(Bùi Văn Phước thiết kế) II Phân tích Use-case Quản lý số lượng thang máy hoạt động 1.1 Mã use-case - Mã use-case: UC01 1.2 Tên use-case - Tên use-case: quản lí số lượng thang máy hoạt động 1.3 Tác nhân tham gia - Tác nhân: người quản lý 1.4 Luồng kiện Bên thực Hệ thống Hành động Hiển thị Người quản lý Người quản lý Chọn thang máy Lưu lại Hệ thống Thông báo STT 1.5 1.6 1.7 Dữ liệu Các thang máy hoạt động Số hiệu thang máy Danh sách thang máy Hiển thị thông báo thành công Luồng kiện phụ Dữ liệu vào Input: thông tin số lượng thang máy hoạt đông Output: Các loại thông báo Biểu đồ hoạt động Hình Biểu đồ hoạt động use-case quản lý số lượng thang máy Quản lý hoạt động thang máy 2.1 Mã use-case - Mã use-case: UC02 2.2 Tên use-case - Tên use-case: quản lý hoạt động thang máy 2.3 Tác nhân tham gia - Tác nhân: người quản lý 2.4 Luồng kiện Người quản lý Hệ thống Hành động Chọn thang máy Chỉnh số tầng cho phép thang máy hoạt động Lưu lại Kiểm tra Hệ thống Thông báo STT Bên thực Người quản lý Người quản lý Dữ liệu Số hiệu thang máy Số hiệu tầng Thông tin chỉnh sửa Hệ thống kiểm tra thực Hiển thị thông báo 2.5 Luồng kiện phụ stt Bên thực 2a Người quản lý 4a 2.6 2.7 Hệ thống Hành động Xóa, thiết lập lại Thông báo Dữ liệu Xóa thông tin thiết lậpvà thiết lập lại cài đặt Lỗi trình thực thi Input Output Input: số tầng cần bỏ qua Output: thông báo Biểu đồ hoạt động Hình Biểu đồ hoạt động use-case quản lý cách hoạt động thang máy Quản lí thời gian hoạt động thang máy 3.1 Mã use-case - Mã use-case: UC03 3.2 Tên use-case - Tên use-case: quản lý thời gian hoạt động thang máy 10 - Thuộc tính ID tên thang máy - Thuộc tính acceleration gia tốc thang máy - Thuộc tính active trạng thái thang máy, gồm có trạng thái hoạt động không hoạt động - Thuôc tính currentHeight thuộc tính chiều cao tầng thang máy đứng so với mặt đất - Thuộc tính currentSpeed tốc độ thang máy - Thuộc tính floorsNotServe mảng chứa tầng không phục vụ thang máy - Thuộc tính floorsWaiting mảng đóng vai trò hàng đợi lưu tầng mà thang máy phải dừng mở cửa đề đón trả khách - Thuộc tính pause true thang máy tạm ngừng hoạt động, có giá trị false thang máy hoạt động bình thường - Thuộc tính stopHeight độ cao tầng dừng để thang máy dừng - Phương thức timeToGoFloor(int, int) tính toán trả thời gian tổng tầng hàng đợi - Phương thức addFloorWaiting(int , int ) tính toán thêm tầng cần đến, tầng đứng vào hàng đợi thang máy - Phương thức calculateTime(int, int) tính toán thời gian tầng liên tiếp hàng đợi - Phương thức calculateTime(int) tính toán thời gian tầng thang máy tầng hàng đợi - Phương thức getFloorsNotServe(): trả lại tầng không phục vụ thang máy - Phương thức setFloorsNotServe(string) thiết lập tầng không hoạt động thang máy - Phương thức getFloorsWaiting() trả lại danh sách tầng hàng đợi thang máy - Phương thức start() để khởi động thang máy k Biểu đồ lớp Uptime Hình 28 Biểu đồ lớp Uptime 34 - Thuộc tính start, end khoảng thời gian máy hoạt động l Lớp Main Hình 29 Lớp Main chương trình a - Giải thuật Giải thuật thiết lập tầng hoạt động thang máy Ý tưởng Bước 1: Từ số nguyên tầng không phục vụ mà người dung yêu cầu ta duyệt toàn phần từ - Bước 2: Kiểm tra tầng đầu vào có tầng hợp lệ hay không (tầng hợp lệ tầng nhỏ 50 lớn -2) - Bước 3: Kiểm tra xem tầng thỏa mãn bước có tồn danh sách tầng không phục vụ thang máy hay không Nếu tồn tiếp tục duyệt, chưa tôn thêm vào danh sách tầng không phục vụ thang máy tiếp tục duyệt 35 Hình 30 Sơ đồ đồ khối thiết lập tầng hoạt động thang máy b Giải thuật thiết lập thời gian hoạt động thang máy Ý tưởng: - Bước 1: Kiểm tra thời gian đầu vào có định dạng hay không (Thời gian có định dạng = time/100 phút = time%100) - Bước 2: Kiểm tra thời gian đầu vào có xung đột với thời gian thiết lập không - Bước 3: Cập nhật lại trang thái thời gian phục vụ củ thang máy nên bước thỏa mãn Sơ đồ giải thuật 36 Hình 31 Sơ đồ khối thiết lập thời gian hoạt động thang máy c Giải thuật kiểm tra tính định dạng thời gian đầu vào 37 Hình 32 Giải thuật kiểm tra tính định dạng thời gian đầu vào d Giải thuật kiểm tra tính xung đột thời gian Một số khái niệm - (t_start_1, t_end_1), (t_start_2, t_end_2) …: Là khoảng thời gian thang máy hoạt động trạng thái thang máy - (start, end) khoảng thời gian cần xem xét để thiết lập lại thời gian thang máy hoạt động 38 Ý tưởng - Duyệt qua toàn phần tử thời gian trạng thái thang máy Phần tử thời gian không xung đột (start>t_end_i) (end59) DK1 TC1 TC2 TC3 TC4 T F F F T F F T F DK2 DK3 THÀNH CÔNG - - - T BÁO LỖI T T T - - Dữ liệu test + TC1: -201-202: thông báo lỗi + TC2: 10-2530: thông báo lỗi + TC3: 10-2580: thông báo lỗi + TC4: 10-20: thành công 46 - Test case kiểm tra thời gian xung đột DK1: startt_end TC1 TC2 TC3 TC4 TC5 DK1 T T F F F DK2 T F DK3 T F T DK4 T F THÀNH CÔNG T - T - - XUNG ĐỘT - T - T T - Dữ liệu test + Giả sử có t_Start=10, t_End=13 có trường hợp liệu test sau + TC1: 8-9: thông báo thành công + TC2: 8-11 8-14: thông báo thời gian xung đột + TC3: 14-15: thông báo thành công + TC4: 12-13 12-15 thông báo thời gian xung đột + TC5: 14-12 14-9 thông báo thời gian xung đột Test case cho chức chọn tầng - DK1: tầng đứng > tầng cần đến - DK2: tầng đứng = tầng cần đến - DK3: tầng đứng < tầng cần đến 47 TC1 DK1 TC2 TC3 T DK2 T DK3 T THÀNH CÔNG T - T THẤT BẠI - T - - Dữ liệu test + TC1: tầng đứng – 10, tầng cần đến – + TC2: tầng đứng – 11, tầng cần đến – 11 + TC3: tầng đứng – 12, tầng cần đến – 20 Hết 48 [...]... phương thức thiết lập hiển thị gia tốc của thang máy dựa vào tham số đầu vào - Phương thức setFloor(int): là phương thức thiết lập hiển thị tầng thang máy đang ở - Phương thức setFloorWaiting(Strirng): là phương thức thiết lập hiển thị danh sách các tầng có trong hàng đợi của thang máy - Phương thức setSpeed(double): là phương thức thiết lập hiển thị tốc độ của thang máy dựa vào tham số đầu vào 26 - Phương... lý nhấn vào sẽ hiển thị form thiết lập thời gian hoạt động của thang máy - Phương thức showSetTimeDialog(String) là phương thức có chức năng hiển thị hộp thoại Dialog và lấy thời gian người quản lí nhập vào trả lại theo định dạng một chuỗi 27 - c Phương thức showSetFloorsServe(string) là phương thức có chức năng hiển thị hộp thoại Dialog và lấy các tầng hoạt động do người quản lý nhập vào và trả lại... chưa tôn tại thì thêm vào danh sách các tầng không phục vụ của thang máy và tiếp tục duyệt 35 Hình 30 Sơ đồ đồ khối thiết lập tầng hoạt động của thang máy b Giải thuật thiết lập thời gian hoạt động của thang máy Ý tưởng: - Bước 1: Kiểm tra thời gian đầu vào có đúng định dạng hay không (Thời gian sẽ có định dạng là giờ = time/100 và phút = time%100) - Bước 2: Kiểm tra thời gian đầu vào có xung đột với... Thiết kế kiến trúc I Use-case quản lý hoạt động của thang máy 1 Biểu đồ trình tự Hình 6 Biểu đồ trình tự của use-case quản lý hoạt động của thang máy 2 Biểu đồ giao tiếp 15 Hình 7.Biểu đồ giao tiếp của use-case quản lý hoạt động của thang máy - ManagerScreen: lớp giao diện cho phép người quản lý thiết lập tầng hoạt động của thang máy - ManagerController: xử lý các thông tin đã thiết lập và truyền vào... Chọn thang máy Thiết lập 4 5 Người quản lý Hệ thống Lưu Kiểm tra 6 Hệ thống Thông báo 3.5 Luồng sự kiện phụ STT 4a 3.6 3.7 Bên thực hiện Hành động Người quản lý Xóa Input và Output Input: thời gian hoạt động của thang máy Output: thông báo Biểu đồ hoạt động Dữ liệu Hiển thị danh sách thang máy đang hoạt động Số hiệu thang máy Thiết lập thời gian hoạt động của thang máy Lưu thông tin đã thiết lập Kiểm... IMainView và IliftSystem 2 Biểu đồ lớp chi tiết 24 Hình 17 Biều đồ lớp chi tiết - Lớp SettingScreen, LiftScreen, UserScreen lần lượt là lớp giao diện quản lí hoạt động của thang máy, quản lí thời gian hoạt động thang máy và của người dùng - Ba giao diện trên nằm trên cùng MainView nên được kết tập vào lớp MainView - Các lớp MainViewController, LiftSystem là các lớp xử lý tương tác người dùng yêu cầu và của... tính toán và đưa ra một phương án tối ưu nhất - ManagerController: Trả lại các thông tin của thang máy đã được thiết lập 20 Phần III: Thiết kế chi tiết I Biểu đồ trình tự chi tiết 1 Use case quản lí thời gian hoạt động của thang máy Hình 13 Biều đồ trình tự chi tiết của use case quản lí thời gian hoạt động của thang máy - Trong use-case sẽ có giao diện hiển thị lên để người quản lý thao tác thiết lập... thang máy cần thiết lập, hệ thống sẽ trả lại thang máy được yêu cầu - Tiếp theo người quản lý sẽ nhập thời gian hoạt động cho thang máy, khi nhấn ok thì nó gọi tới phương thức setTimeAction() trong lớp MainViewController, trong phương thức này gọi tới phương thức setLiftTime() để thiết lập thời gian cho thang máy và cuối cùng gọi phương thức setUptime() đề cập nhập thời gian vừa thiết lập vào mảng, rồi... thức next() trả lại đối tượng Lift dựa vào chỉ số currentIndex Phương thức iterator() thiết lập thuộc tính currentIndex bằng 0 Phương thức getLift(char) là phương thức trả lại đối tượng thang máy dựa vào tham số là tên thang máy được truyền vào Phương thức startSystem() là phương thức để cho các thang máy bắt đầu hoạt động Phương thức setFloorsNotServe(char, string) thiết lập số tầng không hoạt động của... MainViewController, nếu dữ liệu nhập vào đúng thì sẽ gọi phương thức setFloorsNotServe() trong lớp LiftSystem, còn nếu nhập sai thì sẽ có thông báo cho người quản lý - Tiếp theo từ phương thức setFloorsNotServe() trong lớp LiftSystem gọi đến phương thức setFloorsNotServe() trong lớp Lift để cho danh sách các tầng hoạt động vào mảng - Cuối cùng trả lại thông báo và được hiển thị để cho người quản lý ... Bước 2: - Xác định hướng thiết kế - Thiết kế hướng đối tượng Bước 3: Xác định công nghệ sử dụng - Ngôn ngữ lập trình: java - Ngôn ngữ mô hình hoá: UML Bước 4: Đi vào thiết kế cài đặt chương trình... động nào, đưa thiết lập cần thiết - Hệ thống phải xử lý tối ưu cho việc chọn tầng người dùng - Từ xác định vấn đề cần xử lý : + Xây dựng giao diện cho người dùng, người quản lý + Xây dựng thuật... lý hoạt động thang máy( Nguyễn Đa Long thiết kế) Quản lý thời gian hoạt động thang máy(Đỗ Văn Diện thiết kế) Chọn tầng cần đến(Bùi Văn Phước thiết kế) II Phân tích Use-case Quản lý số lượng