VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA ĐÀO TẠO SAU ĐẠI HỌC LỚP CAO HỌC CÔNG NGHỆ THÔNG TIN KHÓA 2 BÁO CÁO ĐỀ TÀI PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG HỆ THỐNG ĐIỀU KHIỂN THANG MÁY Thầy giáo hướng dẫn P[.]
VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA ĐÀO TẠO SAU ĐẠI HỌC LỚP: CAO HỌC CƠNG NGHỆ THƠNG TIN KHĨA BÁO CÁO ĐỀ TÀI PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG HỆ THỐNG ĐIỀU KHIỂN THANG MÁY Thầy giáo hướng dẫn: PGS.TS Đồn Văn Ban Nhóm 2: Thành viên: Nguyễn Tiến Độ Nguyễn Văn Hòa Phương Bá Hưởng Tháng 12 năm 2014 LỜI MỞ ĐẦU Ngày nay, kỹ thuật phần cứng ngày phát triển, máy tính ngày mạnh nên người sử dụng mong đợi chúng ngày nhiều Do xu hướng phát triển phần mềm ngày lớn phức tạp Một mặt ta muốn có nhiều phần mềm thích ứng tốt với nhu cầu điều lại làm cho phần mềm trở lên phức tạp Mặt khác yêu cầu thời gian sản xuất phần mềm ngày ngắn Vì cần phải có cơng nghệ để đáp ứng mục đích phát triển phần mềm phức tạp ngày Tổ chức sản xuất phần mềm có cách làm việc quản lý, q trình mà tích hợp nhiều mặt phát triển phần mềm, trình mà cung cấp hướng dẫn trật tự hoạt động đội làm phần mềm, đạo nhiệm vụ người phát triển nhóm thể thống nhất, chế tác cần phát triển, đề xuất tiêu chuẩn cho việc giám sát đo lường sản phẩm hoạt động dự án Theo giải pháp này, mô hình để phát triển phần mềm dựa theo mơ hình vịng đời (lặp tăng dần), vịng đời có bốn giai đoạn: Sơ bộ, chi tiết, xây dựng chuyển giao Công cụ để phát triển phần mềm sử dụng ngơn ngữ mơ hình hóa để đặc tả, xây dựng làm tài liệu vật phẩm trình xây dựng hệ thống phần mềm Trong UML ngơn ngữ sử dụng phổ biến Để tiếp cận với giải pháp này, nhóm chúng em minh họa thông qua đề tài “ Hệ thống điều khiển thang máy” Nội dung tiểu luận gồm chương: Chương 1: Tổng quan UML Chương 2: Phân tích thiết kế hệ thống điều khiển thang máy Do hạn chế thời gian nghiên cứu, khuôn khổ đề án kiến thức kinh nghiệm ứng dụng thực tiễn nên đề án nhóm em khơng tránh khỏi thiếu sót Rất mong nhận cảm thơng đóng góp ý kiến thầy giáo, bạn bè, để đề án nhóm em hoàn thiện Chúng em xin chân thành cảm ơn! Hà Nội, ngày 05, tháng 02, năm 2015 Nhóm sinh viên thực Nhóm MỤC LỤC Chương 1.1 Giới thiệu 1.2 Mơ hình khái niệm UML 1.2.1 Các phần tử mơ hình UML 1.2.2 Các quan hệ UML 1.2.3 Các biểu đồ sử dụng UML 1.3 Kiến trúc hệ thống Chương 2.1 Mơ tả tốn 2.2 Biểu đồ Ca sử dụng (Use case) 2.2.1 Các tác nhân 2.2.2 Các ca sử dụng 2.2.3 Biểu đồ ca sử dụng 2.2 Biểu đồ lớp 2.2.1 Các lớp hệ thống điều khiển thang máy 2.2.2 Phân tích mối quan hệ lớp 2.3 Biểu đồ trình tự 2.3.1 Biểu đồ trình tự nút bấm tầng 2.3.2 Biểu đồ trình tự nút bấm thang máy 2.4 Biểu đồ cộng tác 2.4.1 Biểu đồ cộng tác nút bấm tầng 10 2.4.2 Biểu đồ cộng tác nút bấm thang máy 11 2.5 Biểu đồ chuyển trạng thái 11 2.6 Lưu đồ hành động 12 Chương Tổng quan UML 1.1 Giới thiệu UML - Unified Modeling Language – tạm dịch ngơn ngữ mơ hình hợp nhất, hiểu ngơn ngữ thống xu hướng hình thái cách mạng tri thức lĩnh vực thơng tin Nó phương tiện giúp cho tổ chức nhận thức cách tốt lợi cạnh tranh thông qua việc nắm bắt, truyền đạt, trao đổi nâng cao tri thức lĩnh vực công nghệ phần mềm Chính xác UML ngơn ngữ mơ hình hóa dùng để đặc tả, trực quan hóa, xây dựng làm sưu liệu cho hệ thống phần mềm UML ngôn ngữ chuẩn để viết kế hoạch chi tiết phần mềm Để sử dụng UML có hiệu quả, địi hỏi phải hiểu ba vấn đề sau: - Các phần tử mơ hình UML - Các quy định liên kết phần tử mơ hình - Một số chế chung áp dụng cho ngơn ngữ UML ngơn ngữ phần tiến trình phát triển phần mềm, độc lập với tiến trình Vì vậy, UML phù hợp cho việc mơ hình hóa hệ thống như: hệ thống thông tin doanh nghiệp, ứng dụng phân tán Web, hệ thống nhúng thời gian thực,… Các quan sát ngôn ngữ tập trung vào phát triển triển khai hệ thống, khơng khó hiểu dễ sử dụng UML khơng ngơn ngữ mà cịn ngơn ngữ để hiển thị, để đặc tả, để xây dựng để làm tài liệu 1.2 Mơ hình khái niệm UML Để hiểu UML ta phải hình dung mơ hình khái niệm ngơn ngữ Nó địi hỏi phải nắm ba vấn đề chính: - Các phần tử để xây dựng mơ hình - Quy tắc liên kết phần tử mơ hình - Một số chế chung sử dụng cho ngôn ngữ Các khối để hình thành mơ hình UML gồm ba loại: phần tử, quan hệ biểu đồ Phần tử trừu tượng mơ hình; quan hệ gắn phần tử lại với nhau; biểu đồ nhóm tập hợp phần tử 1.2.1 Các phần tử mơ hình UML Trong UML có bốn loại phần tử mơ hình, phần tử cấu trúc, phần tử hành vi, phần tử nhóm phần tử thích Các phần tử khối xây dựng hướng đối tượng UML - Phần tử cấu trúc: danh từ mơ hình UML, phận tĩnh mơ hình để biểu diễn thành phần khái niệm hay vật lý Có loại phần tử cấu trúc: lớp, giao diện, phần tử cộng tác, trường hợp sử dụng (use case), lớp tích cực (active class), thành phần nút (node) 2 - Phần tử hành vi: phận hành động mô hình UML Có loại phương pháp trạng thái - Phần tử nhóm: phận tổ chức mơ hình UML Chỉ có phần tử thuộc nhóm gói (package) - Phần tử thích: phận giải mơ hình UML 1.2.2 Các quan hệ UML Có bốn loại quan hệ UML, bao gồm quan hệ phụ thuộc, kết hợp, khái quát hóa thực hóa; chúng khối sở để xây dựng quan hệ UML 1.2.3 Các biểu đồ sử dụng UML - Biểu đồ Use Case: tương tác UC tác nhân - Biểu đồ trình tự (sequence): luồng chức xuyên qua UC - Biểu đồ cộng tác (collaboration): tập trung tổ chức cấu trúc đối tượng gửi nhận thông điệp - Biểu đồ lớp (class): tương tác lớp hệ thống - Biểu đồ thành phần (component): cho thấy thành phần phần mềm hệ thống quan hệ chúng 1.3 Kiến trúc hệ thống Kiến trúc tập định về: - Tổ chức hệ thống phần mềm - Lựa chọn phần tử cấu trúc giao diện hệ thống - Hành vi chúng thể hợp tác phần tử - Tổ hợp phần tử cấu trúc hành vi vào hệ lớn Chương PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN THANG MÁY 2.1 Mơ tả tốn Cơng ty xây dựng muốn xây tịa nhà có m tầng Để khách lại cần phải có hệ thống cầu thang gồm cầu thang thang máy Vấn đề đặt phải xây dựng hệ thống thang máy hoạt động cách tối ưu thuận lợi Cụ thể hoạt động hệ thống phải đáp ứng yêu cầu: - Mỗi thang máy có m nút bấn (button), nút ứng với tầng nhà Khi nút nhấn đèn nút bật sáng thang máy chuyển đến tầng tương ứng Đèn nút tắt thang máy đến tầng yêu cầu Tầng có mũi tên xuống, tầng có mũi tên lên - Mỗi tầng, trừ tầng tầng cuối cùng, có nút: nút có mũi tên lên để yêu cầu lên tầng nút vó mũi tên xuống để yêu cầu xuống tầng Những nút bật sáng chúng nhấn sau tự động tắt có thang máy đến tầng yêu cầu, dừng mở cửa để đưa / đón người theo chiều - Khi khơng có u cầu thang máy đứng nguyên vị trí thời với cửa đóng chờ yêu cầu - Thang máy hoạt động theo nguyên tắc nhân tiện: tức thang máy lên có người yêu cầu tầng lớn vị trí thang máy thang máy mở cửa đến tầng yêu cầu 2.2 Biểu đồ Ca sử dụng (Use case) Biểu đồ Use case mô tả khái quát hoạt động chức hệ thống điều khiển thang máy; kết trình khảo sát, nghiên cứu yêu cầu thỏa thuận người sử dụng thang máy với người phát triển phần mềm Trước tiên chúng dễ nhận thấy, hệ thống thang máy có hai loại nút cần phân biệt: - Nút thang máy đánh số theo tầng nhà để người vào thang máy nhấn tầng cần đến - Nút tầng mũi tên lên / xuống để người thang máy nhấn có yêu cầu lên xuống Để hiểu rõ hoạt động hệ thống thường phải xác định số kịch bản, trường hợp cụ thể ca sử dụng Quan hệ kịch ca sử dụng tương tự quan hệ đối tượng lớp - Ca sử dụng đề cập đến quan hệ tương tác lớp hệ thống với tác nhân (người sử dụng) - Kịch lại tập cụ thể tương tác đối tượng tác nhân xác định Một kịch thông thường hệ thống thang máy xây dựng sau: • tầng • Người A tầng nhấn nút “mũi tên lên” () để yêu cầu thang máy lên Nút tầng bật sáng • Một thang máy đến tầng Trong thang máy có người B vào từ tầng nhấn nút để lên tầng • Nút tầng tắt • Thang máy mở cửa người A vào • Người A nhấn nút thang máy • Nút số thang máy bật sáng • Thang máy đóng cửa lên tầng • Thang máy đến tầng • Nút số bên thang máy tắt • Thang máy mở cửa để người A tầng • Thang máy đóng cửa • Thang máy tiếp tục lên theo yêu cầu người B • v.v Những kịch tương tự trên, khơng bình thường xẩy như: - Ở tầng có người người A vào thang máy đồng thời lại muốn xuống tầng Trong bên thang máy có người B nhấn để lên tầng - Khi thang máy lên tầng theo yêu cầu người B (yêu cầu trước) để người xuống tầng Lưu ý: UML có hai biểu đồ mơ tả kịch biểu đồ trình tự biểu đồ cộng tác 2.2.1 Các tác nhân STT Tác nhân Vai trò tác nhân Người sử dụng Sử dụng hệ thống thang máy Bộ điều khiển Quản lý toàn hệ thống điều khiển thang máy 2.2.2 Các ca sử dụng - Nhấn nút thang máy: phục vụ cho người sử dụng lên xuống tầng nhà theo yêu cầu - Nhấn nút tầng: phục vụ cho người sử dụng cần lên xuống - bật/tắt nút: - di chuyển thang máy - mở/đóng cửa: 2.2.3 Biểu đồ ca sử dụng Nhan nut TM Bat/Tat nut NguoiSuDung Nhan nut tang BoDieuKhien Di chuyen TM Mo/Dong cua Hình 2.1: Biểu đồ ca sử dụng hệ thống thang máy 2.2 Biểu đồ lớp Lớp mô tả tập đối tượng có chung thuộc tính, phương thức hành động, mối quan hệ giống ngữ nghĩa Nhiệm vụ bước là: + Xác định lớp (đối tượng) thuộc tính chúng + Xác định mối quan hệ lớp 2.2.1 Các lớp hệ thống điều khiển thang máy Dựa vào mơ tả tốn hệ thống điều khiển thang máy, ta xác định lớp sau: + Lớp thang máy, đặt tên ThangMay -huong: thuộc tính quy định hướng di chuyển thang máy lên hay xuống 6 -tanghientai: thuộc tính quy định tầng thang máy -dichuyen(): phương thức điều khiển thang máy di chuyển -dung(): phương thức điều khiển thang máy dừng -tinhtrang(): phương thức cho biết tình trạng thời thang máy: dừng, lên hay xuống + Lớp cửa thang máy, đặt tên CuaTM -dong: thuộc tính quy định trạng thái cửa, mặc định true -dong(): phương thức điều khiển đóng cửa thang máy -mo(): phương thức điều khiển mở cua thang máy + Lớp DieuKhienTM -huong: thuộc tính quy định hướng mà thang máy phải di chuyển -vitri: thuộc tính cho biết vị trí thang máy -matang: thuộc tính quy định tầng thang máy phải đến -dieukhien(): điều khiển hoạt động thang máy -capnhat(): cập nhật lại yêu cầu + Lớp NutBam + Lớp nút thang máy, đặt tên NutThangMay Lớp kế thừa từ lớp NutBam -chisotang: thuộc tính quy định tầng mà người dùng yêu cầu thang máy + Lớp nut tầng, đặt tên NutTrenTang Lớp kế thừa từ lớp NutBam -chisotang: thuộc tính quy định tầng mà người dùng đứng bấm -huong: thuộc tính quy định hướng di chuyển mà người dùng yêu cầu thang máy 2.2.2 Phân tích mối quan hệ lớp - Nhận thấy hai lớp NutThangMay NutTrenTang có thuộc tính, hành vi tương tự nhau, gộp thành lớp tổng quát, lớp sở chúng Lớp đặt tên NutBam - Trong hệ thống điều khiển thang máy, nút bấm không trao đổi trực tiếp với thang máy mà thường thông qua Bộ điều khiển thang máy - lớp DieuKhienTM thực việc điều khiển hoạt động thang máy có người nhấn nút yêu cầu lên xuống Biểu đồ lớp hệ thống thang máy mô tả hình Hình 2.2: Biểu đồ lớp 2.3 Biểu đồ trình tự Biểu đồ trình tự biểu đồ tương tác theo trật tự thời gian giao tiếp thông điệp đối tượng Biểu đồ đọc từ đỉnh xuống đáy Mỗi use case có nhiều luồng liệu, biểu đồ trình tự biểu diễn luồng liệu Đây biểu đồ quan trọng Sau chúng tơi mơ tả số biểu đồ trình tự hệ thống điều khiển hoạt động thang máy 2.3.1 Biểu đồ trình tự nút bấm tầng Người sử dụng nhấn nút bấm tầng cần gọi thang máy phục vụ, thang máy nhận yêu cầu phục vụ cập nhật thông tin tầng vào điều khiển Bộ điều khiển thị cho đèn tầng có bấm nút bật sáng, đồng thời thị cho thang máy di chuyển đến tầng có người gọi thang máy Khi thang máy đến tầng có người gọi dừng lại, đồng thời điều khiển thị đèn tầng tắt Tiếp theo điều khiển thị cho cửa mở, người sử dụng vào thang máy Bộ điều khiển yêu cầu thang máy đóng cửa lại để chuẩn bị phục vụ cho nút bấm thang máy : NutTrenTang : NguoiSuDung : DieuKhienTM : ThangMay 1:Nhan 2: Cap nhat 3:Bat sang 4: Di chuyen 5: Den 6: Dung 7: Tat 8: Mo cua 9: Dong cua Hình 2.3: Biểu đồ trình tự nút bấm tầng : CuaTM 2.3.2 Biểu đồ trình tự nút bấm thang máy Người sử dụng nhấn nút thang máy, điều khiển cập nhật nút mà người sử dụng vừa nhấn đồng thời thị cho đèn tương ứng bật sáng Tiếp theo điều khiển thị cho thang máy di chuyển đến tầng người sử dụng yêu cầu, đến tầng người sử dụng yêu cầu thang máy dừng, đồng thời điều khiển thị đèn nút bấm tắt Sau thị cho cửa mở ra, khách hết sau thời gian hạn định đóng cửa lại : NutThangMay 1: Nhan : DieuKhienTM : NguoiSuDung : ThangMay : CuaTM 2: Cap nhat 3: Bat sang 4: Di chuyen 5: Den 6: Dung 7: Tat 8: Mo cua 9: Dong cua Hình 2.4: Biểu đồ trình tự nút bấm thang máy 2.4 Biểu đồ cộng tác Tương tự biểu đồ trình tự, biểu đồ cộng tác luồng kiện xuyên qua kịch Use case Trong biểu đồ trình tự có trật tự theo thời gian, biểu đồ cộng tác lại tập tập trung nhiều vào quan hệ đối tượng, tổ chức cấu trúc đối tượng gửi nhận thông điệp Biểu đồ cộng tác sử dụng để kỹ sư kiểm tra chất lượng kiến trúc sư hệ thống thấy việc phân bổ tiến trình đối tượng thơng qua loại biểu đồ 10 Biểu đồ cộng tác đồ thị số đối tượng liên kết chúng, đỉnh đối tượng cạnh thể trao đổi thông điệp đối tượng Từ biểu đồ tạo biểu đồ cộng tác nút thang máy Qua thấy tương tác người sử dụng với nút bấm tầng, nút bấm thang máy Qua tương tác điều khiển thị cho thang máy, cửa, đèn thực động tác cần thiết để thang máy hoạt động đồng hiệu 2.4.1 Biểu đồ cộng tác nút bấm tầng : NutTrenTang 2: Cap nhat 1: Nhan 3: Bat sang 7: Tat : DieuKhienTM 5: Den : NguoiSuDung 4: Di chuyen 6: Dung 8: Mo cua 9: Dong cua : ThangMay : CuaTM Hình 2.5: Biểu đồ cộng tác nút bấm tầng 11 2.4.2 Biểu đồ cộng tác nút bấm thang máy : NutThangMay 2: Cap nhat 1: Nhan 3: Bat sang 7: Tat : NguoiSuDung : DieuKhienTM 5: Den 4: Di chuyen 6: Dung 8: Mo cua 9: Dong cua : ThangMay : CuaTM Hình 2.6: Biểu đồ cộng tác nút bấm thang máy 2.5 Biểu đồ chuyển trạng thái Biểu đồ chuyển trạng thái mô tả chu kỳ tồn đối tượng, bao gồm thơng tin trạng thái khác đối tượng, thể cách thức chuyển từ trạng thái sang trạng thái khác đối tượng Biểu đồ trạng thái cho biết kiện tác động trạng thái Mỗi đối tượng hệ thống thực có trạng thái cụ thể Trạng thái kết hoạt động đối tượng thực trước Tại thời điểm, đối tượng trạng thái xác định Thông thường trạng thái xác định giá trị thuộc tính liên kết đến đối tượng khác Biểu đồ trạng thái có điểm khởi đầu (hình trịn đen) số điểm kết thúc (Hình trịn bao quanh hình trịn đen) Các trạng thái biểu diễn hình chữ nhật góc trịn, có tên gọi thao tác kết hợp Trạng thái đối tượng bị thay đổi chuyển sang trạng thái khác thỏa mãn số điều kiện Dịng biến đổi trạng thái biểu diễn mũi tên có điều kiện nhãn mơ tả kiện xảy Biểu đồ trạng thái giải thích cho cách thức điều kiện để trạng thái đối tượng thay đổi Biểu đồ trạng thái cần thiết giúp phân tích viên, người thiết kế người phát triển hệ thống hiểu hành vi đối tượng hệ thống Đặc biệt người phát triển phải hiểu rõ hành vi đối tượng họ phải cài đặt hành vi phần mềm Họ khơng cài đặt đối tượng mà cịn làm đối tượng thực Trong q trình hoạt động thang máy có số trạng thái sau: 12 -Trạng thái chờ tầng (q1) : Lúc thang máy vừa khởi động vừa kết thúc xong phiên làm việc, thang máy tầng Trong thời gian chờ đèn tín hiệu tắt Nếu có nút tầng bấm chuyển sang trạng thái q2 q3 -Trạng thái thang máy di chuyển lên (q2): Khi có nút bấm (đèn tín hiệu sáng) tầng cao vị trí thang máy thang máy di chuyển lên Khi thang máy đến tầng nhấn nút đèn tín hiệu tắt Sau chuyển sang trạng thái q4 -Trạng thái thang máy di chuyển xuống (q3): Khi có nút bấm (đèn tín hiệu sáng) tầng thấp vị trí thang máy thang máy di chuyển xuống Khi thang máy đến tầng nhấn nút đèn tín hiệu tắt Sau chuyển sang trạng thái q4 -Trạng thái thang máy dừng (q4): Khi thang máy chuyển đến tầng có nút bấm thang máy dừng, đèn tín hiệu tắt, lúc cửa mở, đếm thời gian t1 đặt 0, sau tăng dần Nếu t1 > k1 (k1 giới hạn thời gian mở cửa) cửa đóng Nếu nút dừng cửa nhấn t1 đặt lại sau lại tăng dần Khi đóng cửa, đếm t2 đặt lại Sau chuyển sang trạng thái q5 -Trạng thái thang máy di chuyển xuống tầng (q5): Nếu t2 > k2 (k2 giới hạn thời gian chờ) mà khơng có nút bấm thang máy di chuyển xuống tầng chuyển sang trạng thái q1 Có thể vẽ biểu đồ chuyển trạng thái sau: Dang o tang Co nut bam len Di chuyen len Den Den Co nut bam lon hon vi tri hien tai cua thang may Di chuyen xuong tang Di chuyen xuong Den Dung Co nut bam nho hon vi tri hien tai cua TM Qua k giay ma khong co nut nao duoc bam Hình 2.7: Biểu đồ trạng thái 2.6 Lưu đồ hành động Lưu đồ hành động biến thể biểu đồ trạng thái Lưu đồ hành động cung cấp thêm thông tin để hiểu hoạt động thang máy Hành động biểu diễn hình chữ nhật, có tên gọi, đường có mũi tên hướng xảy hành động tiếp theo, điều kiện định hành động đặt hình thoi 13 Dưới xin trình bày lưu đồ hành động chọn tầng mở cửa thang máy chuyển động lên chuyển động xuống -Gọi k tầng thời điểm -Gọi m số tầng tòa nhà -Gọi nl tập hợp nút tầng bấm lên nút thang máy lớn k nl={n1,n2, ns / (ni >k) or (ni hướng lên)} -Gọi nl1 nl1={ni / (ni >k) and (ni thuộc nl)} -Gọi nx tập hợp nút tầng bấm xuống nút thang máy nhỏ k nx={n1,n2, ns / (ni