MỤC LỤC Nội dung TrangMở đầu 1Nội dung 2Chương 1: Tổng quan về UML 21. Giới thiệu về UML 22. Mô hình khái niệm UML 33. Kiến trúc hệ thống 54. Tổng quan Rational Rose 5Chương 2: Phân tích và thiết kế bài toán điều khiển hoạt động của thang máy 61. Phát biểu bài toán 62. Phân tích thiết kế 8Biểu đồ use case 8Biểu đò lớp 10Biểu đồ trình tự 13Biểu đồ cộng tác 14Biểu đồ chuyển trạng thái 16Lưu đồ hành động 183. Mở rộng bài toán thang máy 21Kết luận 22Tài liệu tham khảo 23
Trang 1PHAN I MO’ DAU
Ngày nay, kỷ thuật phần cứng ngày càng phát triển, các máy tính mỗi ngày một mạnh hơn nên người sử dụng mong đợi ở chúng ngày một nhiều hơn Do đó xu hướng phát triển phần mềm ngày càng lớn và càng phức tạp Một mặt ta muốn có nhiều phần mềm thích ứng tốt hơn với nhu cầu của mình nhưng chính điều đó lại làm cho phần mềm trở nên phức tạp hơn Mặt khác yêu cầu thời gian sản xuất phần mềm ngày càng ngắn Vì vậy cần phải có một công nghệ mới để đáp ứng mục đích phát triển phần mềm phức tạp ngày nay
Tổ chức sản xuất phần mềm đã có một cách làm việc được quản lý, đó
là một quá trình mà tích hợp nhiều mặt của phát triển phần mềm, một quá trình
mà cung cấp hướng dẫn về trật tự họat động của một đội làm phần mềm; chỉ đạo những nhiệm vụ của mỗi người phát triển và nhóm trong một thể thống
nhất; chỉ ra các chế tác cần được phát triển; đề xuất các tiêu chuẩn cho việc
giám sát và đo lờng sản phẩm cũng như các hoạt động của 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 và tăng dần), mỗi vòng đời có 4 giai đoạn: Sơ bộ, chỉ tiết, xây dựng và chuyển giao Công cụ cơ bản để phát triển phần mềm là sử dụng ngôn ngữ mô hình hóa để đặc tả, xây dựng và làm tài liêu các vật phẩm trong quá trình xây dựng hệ thống phần mềm Trong đó UML là ngôn ngữ được sử dụng phổ biến nhát
Để tiếp cận với giải pháp này, chúng tôi minh họa thông qua bài toán
“Điều khiển hoạt động của hệ thống thang máy”
Nội dung tiểu luận gồm có 2 chương:
Chương 1: Tổng quan về UML
Chương 2: Phân tích và thiết kế bài toán điều khiển hoạt động của thang máy Chương này đi sâu giải quyết vấn đề đối với thang máy có số tầng 1<=m<=10 Sau đó phát triển bài toán cho trường hop thang may có số tầng 1<=m<=100 bằng cách kết hợp nhiều loại thang máy có bước di chuyển khác nhau
Trang 2
PHAN 2 NOI DUNG
CHUO'NG 1 TONG QUAN VE UML
(Unified Modeling Language)
1.1 Giới thiệu UML
Các ngôn ngữ mô hình hoá ra đời và ngày càng được cải tiến, trong đó
sự ra đời của UML (Unified Modeling Language) dựa trên ba phương pháp hướng đối tượng Booch, OMT, OOSE đã nhanh chóng trở thành một ngôn ngữ chuẩn dùng để trực quan hoá, đặc tả, xây dựng và làm sưu liệu cho các sản phẩm phần mềm và được hỗ trợ bởi các tổ chức, các công ty phát triển phần mềm trên thế giới
UML - Unified Modeling Language- tạm dịch là ngôn ngữ mô hình hợp nhất, nó được hiểu như một ngôn ngữ thống nhất những xu hướng và hình
thái của cuộc cách mạng tri thức trong lĩnh vực thông tin Nó là một phương
tiện giúp cho các tổ chức có thể nhận thức một cách tốt nhất lợi thế cạnh tranh thông qua việc nắm bắt, truyền đạt, trao đổi và nâng cao tri thức trong lĩnh vực
công nghệ phần mềm Chính xác hơn UML là một ngôn ngữ mô hình hóa dùng
để đặc tả, trực quan hoá, xây dựng và làm sưu liệu cho các hệ thống phần
mêm
UML là ngôn ngữ chuẩn để viết kế hoạch chỉ tiết phần mềm Để sử dụng UML có hiệu quả, đòi hỏi phải hiểu được ba vấn đề chính sau:
e _ Các phần tử cơ bản của mô hình trong UML
e Các qui định liên kết các phần tử mô hình
e Một số cơ chế chung áp dụng cho ngôn ngữ này
UML là ngôn ngữ và nó chỉ là một phần của tiến trình phát triển phần mềm, nó độc lập với tiến trình Vì vậy, UML rất phù hợp cho việc mô hình hóa các hệ thống như: hệ thông tin doanh nghiệp, các ứng dụng phân tán trên nền Web, hệ thống nhúng thời gian thực, Các quan sát của ngôn ngữ tập trung vào phát triển và triển khai hệ thống, nó không khó hiểu và rất dễ sử dụng UML không những là một ngôn ngữ mà còn là ngôn ngữ để hiển thị, ngôn ngữ để đặc tả, ngôn ngữ để xây dựng và ngôn ngữ để làm tài liệu
1.2 Mô hình khái niệm của UML
Để hiểu được UML ta phải hình dung được mô hình khái niệm của ngôn ngữ Nó đòi hỏi phải nắm được ba vấn đề chính:
Trang 3
e Các phần tử cơ bản để xây dựng mô hình
e _ Qui tắc liên kết các phần tử của mô hình
«_ Một số cơ 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ệ và biểu đồ Phần tử là trừu tượng căn bản trong mô hình; các quan hệ gắn các phần tử này lại với nhau; còn biểu đồ là nhóm tập hợp các phần tử
1.2.1 Các phần tử mô hình trong UML
Trong UML có bốn loại phần tử mô hình, đó là phần tử cấu trúc, phần tử hành vi, phần tử nhóm và phần tử chú thích Các phần tử này là các khối xây
dựng hướng đối tượng cơ bản của UML
e Phần tử cấu trúc: là các danh từ trong mô hình UML, là bộ phận tĩnh của mô hình để biểu diễn các thành phần khái niệm hay vật lý Có bảy 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 và nút (node)
e Phan tt hành vi: là bộ phận động của mô hình UML, chúng là động từ
của mô hình, biểu diễn hành vi theo thời gian và không gian Có hai loại chính là tương tác và trạng thái
e Phan ti nhóm: là bộ phận tổ chức của mô hình UML Chỉ có một phần
tử thuộc nhóm này là gói (package) Gói là cơ chế đa năng để tổ chức các phần tử vào nhóm Các phần tử cấu trúc, hành vi và ngay cả phần tử nhóm
có thể cho vào gói
e _ Phần tử chú thích: là bộ phận chú giải của mô hình UML, đó là lời giải thích áp dụng để mô tả các phần tử khác trong mô hình
1.2.2 Các quan hệ trong UML
Có bốn loại quan hệ trong UML, bao gồm quan hệ phụ thuộc, kết hợp,
khái quát hóa và hiện thực hóa; chúng là các khối cơ sở để xây dựng mọi
quan hệ trong UML
e _ Phụ thuộc (dependency): là quan hệ ngữ nghĩa giữa hai phần tử, trong
đó thay đổi phần tử độc lập sẽ tác động đến ngữ nghĩa của phần tử phụ thuộc
e Két hop (association): lA quan hệ cấu trúc để mô tả tập liên kết Khi đối tượng của lớp này gửi/nhận thông điệp đến/từ đối tượng của lớp kia
Trang 4e Khai quat hoa (generalization): la quan hé dac biệt hóa/ khái quát hóa
mà trong đó đối tượng cụ thể sẽ kế thừa các đối tượng tổng quát
e _ Hiện thực hóa (realization): là quan hệ ngữ nghĩa giữa giao diện và
lớp hiện thực lớp, giữa UC và hợp tác hiện thực UC
1.2.3 Các biểu đồ sử dụng trong UML
« Biểu đồ trường hợp sử dụng (Use Case - UC): biểu đồ này chỉ ra tương tác giữa các UC và tác nhân UC biểu diễn các chức năng hệ thống Tác nhân là con người hay hệ thống khác cung cấp hay thu nhận thông tin từ
hệ thống đang được xây dựng
e« Biểu đồ trình tự (sequence): chỉ ra luồng chức năng xuyên qua các
UC, nó là biểu đồ tương tác tập trung vào mô tả trật tự các thông điệp theo thời gian
e_ Biểu đồ cộng tác (collaboration): chỉ ra các thông tin như biểu đồ trình
tự nhưng theo cách khác, nó tập trung tổ chức cấu trúc của các đối tượng gửi và nhận thông điệp
« Biểu đồ lớp (class): chỉ ra tương tác giữa các lớp trong hệ thống, các lớp được xem như kế hoạch chỉ tiết của các đối tượng
« _ Biểu đồ chuyển trạng thái (state transition): cung cấp cách thức mô hình hóa các trạng thái khác nhau của đối tượng Trong khi biểu đồ lớp cung cấp bức tranh tĩnh về các lớp và quan hệ của chúng thì biểu đồ chuyển trạng thái được sử dụng để mô hình hóa các hành vi động của hệ thống
e Biéu dé thanh phan (component): cho ta cai nhin vat lý của mô hình Biểu đồ thành phần cho ta thấy các thành phần phần mềm trong hệ thống và quan hệ giữa chúng Có hai loại thành phần trong biểu đồ, đó là thành phần
khả thực và thành phần thư viện
« Biểu đồ triển khai (deployment): chỉ ra bố trí vật lý của mạng và các thành phần hệ thống sẽ đặt ở đâu
1.3 Kiến trúc hệ thống
Kiến trúc là trừu tượng hóa các khía cạnh quan trọng nhất của hệ thống,
nó cung cấp khung trong đó thiết kế sẽ được xây dựng Nó mô tả tầm cỡ, sức mạnh của hệ thống, thu thập các UC quan trọng nhất và các yêu cầu ứng dụng Nó thể hiện phần mềm sẽ được tổ chức như thế nào và cung cấp các giao thức trao đổi dữ liệu và giao tiếp giữa các modul Kiến trúc hệ thống là vật
Trang 5phẩm quan trọng nhất, được sử để quản lý các điểm nhìn khác nhau nhằm điều khiển phát triển hệ thống tăng dần và lặp trong suốt chu kỳ sống Kiến trúc là tập các quyết định về:
e _ Tổ chức của hệ thống phần mềm
e_ Lựa chọn các phần tử cấu trúc và giao diện cho hệ thống
e _ Hành vi của chúng thể hiện trong hợp tác giữa các phần tử
e _ Tổ hợp các phần tử cấu trúc và hành vi vào hệ con lớn hơn
1.4 Tổng quan về Rational Rose
Rational Rose là phần mềm công cụ mạnh hỗ trợ phân tích, thiết kế hệ thống phần mềm theo hướng đối tượng Nó giúp mô hình hóa hệ thống trước khi viết mã trình, nó đảm bảo tính đúng đắn, hợp lý của kiến trúc hệ thống từ khi khởi đầu dự án Mô hình Rose là bức tranh hệ thống, nó bao gồm toàn bộ
biểu đồ UML, tác nhân, trường hợp sử dụng, đối tượng, lớp, thành phần và
các nút triển khai trong hệ thống Nó mô tả chỉ tiết hệ thống bao gồm các gì và chúng làm việc ra sao để người phát triển hệ thống có thể sử dụng mô hình như kế hoạch chỉ tiết cho việc xây dựng hệ thống Rose hỗ trợ giải quyết vấn
đề muôn thủa là đội ngũ dự án giao tiếp với khách hàng và làm tài liệu yêu cầu
Trang 6
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ BÀI TOÁN
ĐIỀU KHIỂN HOẠT ĐỘNG CUA THANG MAY
2.1 Phát biểu bài toán
Công ty xây dựng nhà ở muốn xây một toà nhà có m tầng (m<=10) Để khách đi lại cần phải có một hệ thống cầu thang gồm cầu thang bộ và cầu
thang may Van đề đặt ra là phải xây dựng được một hệ thống thang máy hoạt
động một cách tối ưu và thuận lợi nhất Cụ thể thang máy phải đáp ứng được các yêu cầu sau:
-Yêu cầu về giao diện sử dụng:
+Trong thang máy có m nút bắm Mỗi nút tương ứng với một tầng Khi
được nhắn các nút này được bật sáng
+Trén mỗi tầng có hai nút bám có hướng ngược chiều nhau nhằm cho người sử dụng yêu cầu thang máy di chuyển đi lên hay đi xuống Riêng ở tầng trên cùng chỉ có một nút hướng xuống và ở tầng dưới cùng chỉ có một
nút hướng lên Khi được nhấn, các nút này được bật sáng
+Trên mỗi tầng có một dãy m đèn Nếu thang máy đang ở tầng nào thì đèn tương ứng với tầng đó sẽ sáng Mục đích của nó là giúp người dùng biết hiện tại thang máy đang đứng ở tầng nào
-Yêu cầu về hoạt động:
Nguyên tắc chung: Thang máy phải hoạt động một cách tối ưu và thuận
lợi nhất
+ Trong thang máy, nếu có nhiều nút được nhắn thì các nút đó được bật sáng Khi thang máy di chuyển đến tầng tương ứng thì các nút trở lại trạng thái bình thường
+Ở mỗi tầng có hai nút, tại một thời điểm chỉ có một trong hai nút được
nhắn Nếu có nhiều tầng nhắn nút, thì các nút ở mỗi tầng đều được bật sáng Khi thang máy di chuyển đến tầng nào thì nút ở tầng đó trở lại trạng thái bình thường
+Nếu không có yêu cầu, thang máy sẽ dừng lại tầng cuối cùng của hành trình và cứa đóng Nếu chờ quá k giây và không có yêu cầu thì thang máy sẽ
di chuyển về tầng 0 (tầng trệt)
Trang 7
+Thang máy hoạt động theo nguyên tắc nhân tiện: tức là nếu thang máy đang đi lên nếu có người yêu cầu ở tầng lớn hơn vị trí hiện tại của thang máy
thì thang máy sẽ mở cửa đón những người này lên
+Ngoài ra, thang máy hoạt động theo nguyên tắc ưu tiên: tức là nếu như
không thể nhân tiện được thì tầng nào bắm nút thang máy trước thì thang máy
sẽ ưu tiên mở cửa trước
123 m-1† m
Tầng m
123 m-1 m
123 m1 m Tầng 3
123 m1 m
Trang 82.2 Phan tich va thiét ké
Trong phần này chúng tôi sử dụng ngôn ngữ mô hình hóa UML để đặc tả thông qua các biểu đồ Các biểu đồ được sử dụng cho quá trình phân tích và thiết kế bao gồm: Biểu đồ use-case, biểu đồ lớp, biểu đồ trình tự, biểu đồ cộng tác và dòng dữ liệu, biểu đồ chuyển trạng thái, lưu đồ hành động
2.2.1 Biểu đồ Use case
Mục tiêu của use case trong quá trình phát triển phần mêm điều khiển hoạt động thang máy
- Mô tả khái quát hoạt động và các chức năng chính của hệ thống điều khiển hoạt động thang máy Là kết quả của quá trình khảo sát, nghiên cứu các yêu cầu và những thỏa thuận giữa người sử dụng thang máy với người phát triển phần mềm
- Làm cơ sở để người phân tích viên hiểu, người thiết kế xây dựng các kiến trúc, người lập trình cài đặt các chức năng, người kiểm duyệt kiểm tra các kết quả thực hiện của thang máy
- Use case được biểu diễn là một hình elip có ghi hoạt động của use case
Hoạt động
Trong đó, “Hoạt động” là các chức năng , nhiệm vụ hay gọi chung là dịch
vụ của hệ thống Ví dụ: “Nhắn nút tầng” là một use case
Chuỗi sự kiện:
- Người sử dụng nhấn nút yêu cầu thang máy thang máy phục vụ
- Hệ thống thang máy xác định nút được nhắn ở tầng nào
- Thang máy di chuyển đến tầng người sử dụng gọi thang máy phục vụ
- Cửa thang máy mở ra để đón người sử dụng
- Người sử dụng bước vào trong thang máy và nhắn nút để chọn tầng cần đến
- Cửa thang máy đóng lại
- Thang máy di chuyển đến tầng người sử dụng yêu cầu
Trang 9
- Cửa thang máy mở ra để người sử dung di ra
- Người sử dụng ra khỏi thang máy
- Cửa thang máy đóng
Trang 10Trong UML, mô hình khái niệm của hệ thống được mô tả bởi biểu đồ lớp Vấn đề quan trọng của pha này là xác định đầy đủ và chính xác các lớp đối tượng của hệ thống cần phát triển
Biểu đồ lớp mô tả quan sát tỉnh của hệ thống thông qua các lớp và các mối quan hệ của chúng
Trong hệ thống điều khiển thang máy chúng tôi sử dụng các lớp sau:
@huong : boolean ћtanghientai : int
đi xuống
-tanghientai: là thuộc tính quy định tầng hiện tại của thang máy
-dichuyen(): là phương thức điều khiển thang máy di chuyền
-dung(): là phương thức điều khiển thang máy dừng
-tinhtrang(): là phương thức cho biết tình trạng hiện thời của thang máy: dừng, đi lên hay đi xuống
Trang 11
Bo_dieu_khien
-matang: là thuộc tính quy định tầng thang máy phải đến
-dong: là thuộc tính quy định trạng thái của cửa, đặt ngầm định là true
-dong(): là phương thức điều khiển đóng cửa thang máy
-mo(): là phương thức điều khiển mở cua thang máy
&densang : boolean = off
Trang 12
Lớp Nut_thang_ may
Lớp này kế thừa từ lớp Nut
Nut thang_may
thang máy
Lớp Nut_tang
Lớp này kế thừa từ lớp Nut
Nut_tang
@ptanghientai : int +Dieu khien| Ñhuong : boolean Ì+ Djeu khien dong : boolean = true ` Ñ»vtri : int :
Trang 13
2.2.3 Các biểu đồ trình tự
Biểu đồ trình tự là biểu đồ tương tác theo trật tự thời gian của các giao tiếp bằng thông điệp giữa các đối tượng Biểu đồ được đọc từ đỉnh xuống đáy Mỗi use case có thể có nhiều luồng dữ liệu, mỗi biểu đồ trình tự biểu diễn một luồng dữ liệu
Đây là một trong những biểu đồ quan trọng Sau đây chúng tôi sẽ mô tả một số biểu đồ trình tự trong hệ thống điều khiển hoạt động của thang máy a/ Biéu dé trình tự của nút bám trên tầng
Người sử dụng nhấn nút bam ở tầng mình cần gọi thang máy phục vụ, thang máy nhận yêu cầu phục vụ và cập nhật thông tin tầng này vào bộ điều khiển Bộ điều khiển chỉ thị cho đèn ở tầng có bam nút bật sáng, đồng thời chỉ 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 rồi thì dừng lại, đồng thời bộ điều khiển chỉ thị đèn ở tầng đó tắt đi Tiếp theo bộ điều khiển chỉ thị cho cửa mở, người sử dụng đi 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 trong thang máy
; : Nut_tang Bo dieu khien Thang may Cua
: Nguøi dung 1: Nhan