Tiểu luận Công nghệ phần mềm
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
PHẦN I. MỞ ĐẦU
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ộ, chi 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 hợp thang máy 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.
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
1
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
PHẦN 2. NỘI DUNG
CHƯƠNG 1. TꢀNG QUAN Vꢀ 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 chi 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:
• Các phần tử cơ bản của mô hình trong UML.
• Các qui định liên kết các phần tử mô hình.
• 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.
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
2
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
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:
• Các phần tử cơ bản để xây dựng mô hình.
• 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.
• 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).
• Phần tử 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.
• Phần tử 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.
• 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
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
3
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
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.
• 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.
• Kết hợp (association): là 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.
• Khái quát hóa (generalization): là quan hệ đặc 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.
• 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.
• 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.
• 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 chi tiết của các đối tượng.
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
4
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
• 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.
• Biểu đồ thành phần (component): cho ta cái nhìn vật 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
phẩ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ề:
• Tổ chức của hệ thống phần mềm.
• Lựa chọn các phần tử cấu trúc và giao diện cho hệ thống.
• Hành vi của chúng thể hiện trong hợp tác giữa các phần tử.
• 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
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
5
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
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ả chi 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 chi 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.
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
6
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
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
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 máy. Vấn đề đặ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).
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
7
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
+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.
1 2 3 ... m-1 m
Tầng m
1 2 3 ... m-1 m
Tầng m-1
...
1 2 3 4 ... m-1 m
Tầng 4
1 2 3 ... m-1 m
1 2 3 ... m-1 m
Tầng 3
1 2 3 ... m-1 m
Tầng 2
1 2 3 ... m-1 m
Tầng 1
Minh hoạ hình ảnh thang máy trong toà nhà m tầng
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
8
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
2.2. Phân tích và 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.
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
9
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
- Cửa thang máy mở ra để người sử dụng đi ra.
- Người sử dụng ra khỏi thang máy.
- Cửa thang máy đóng.
nhan nut TM
nguoi dung
bat/tat nut
nhan nut tang
bo dieu khien
di chuyen TM
mo/dong cua
Biểu đồ use case của hệ thống điều khiển hoạt động của thang máy
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
10
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
2.2.2. Biểu đồ lớp.
Lớp là một mô tả về tập các đối tượng có cùng chung các thuộc tính, các
phương thức hành động, các mối quan hệ và giống nhau về ngữ nghĩa.
Khi xây dựng mô hình cho một hệ thống phần mềm thì những khái niệm
được sử dụng để tạo ra mô hình phải đơn giản, dễ hiểu và làm cơ sở để trao
đổi với nhau trong quá trình phát triển hệ thống. Những khái niệm về nghiệp vụ
phải được thiết kế sao cho phù hợp với quy trình xử lý công việc hiện tại và có
thể thích ứng với xu thế phát triển trong tương lai.
Trong 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:
Lớp Thang_may
Thang_may
huong : boolean
tanghientai : int
dichuyen()
dung()
tinhtrang()
-huong: là thuộc tính quy định hướng di chuyển của thang máy đi lên hay
đ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.
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
11
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
Bo_dieu_khien
huong : boolean
vitri : int
Lớp Bo_dieu_khien
matang : int
-huong: là thuộc tính quy định hướng mà thang máy phải di chuyển.
-vitri: là thuộc tính cho biết vị trí thang máy.
-matang: là thuộc tính quy định tầng thang máy phải đến.
Lớp Cua
Cua
dong : boolean = true
dong()
mo()
-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.
Nut
Lớp Nut
densang : boolean = off
densang()
tinhtrang()
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
12
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
Nut_thang_may
chisotang : int
Lớp Nut_thang_may
Lớp này kế thừa từ lớp Nut.
-chisotang: là thuộc tính quy định tầng mà người dùng yêu cầu ở trong
thang máy.
Nut_tang
Lớp Nut_tang
chisotang : int
huong : boolean
Lớp này kế thừa từ lớp Nut
-chisotang: là thuộc tính quy định tầng mà người dùng đang đứng bấm.
-huong: là thuộc tính quy định hướng di chuyển mà người dùng yêu cầu
thang máy.
Biểu đồ lớp của hệ thống điều khiển thang máy
Thang_may
Bo_dieu_khien
Cua
huong : boolean
tanghientai : int
huong : boolean
vitri : int
+Dieu khien
+Dieu khien
dong : boolean = true
matang : int
dichuyen()
dung()
dong()
mo()
tinhtrang()
+1
Tuong tac
+*
Nut
densang : boolean = off
densang()
tinhtrang()
Nut_thang_may
chisotang : int
Nut_tang
chisotang : int
huong : boolean
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
13
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
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 đồ trình tự của nút bấm trên tầng
Người sử dụng nhấn nút bấm ở 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ó bấm 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.
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
14
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
b/ Biểu đồ trình tự của nút bấm trong thang máy
Người sử dụng nhấn nút trong thang máy, bộ điều khiển sẽ cập nhật nút
mà người sử dụng vừa nhấn đồng thời chỉ thị cho đèn tương ứng bật sáng.
Tiếp theo bộ điều khiển chỉ thị cho thang máy di chuyển đến tầng người sử
dụng yêu cầu, khi đến tầng người sử dụng yêu cầu thì thang máy dừng, đồng
thời bộ điều khiển chỉ thị đèn của nút bấm tắt. Sau đó chỉ thị cho cửa mở ra,
khi khách ra hết hoặc sau một thời gian hạn định thì đóng cửa lại.
Biểu đồ trình tự của nút bấm trong thang máy
2.2.4. Các biểu đồ cộng tác
Tương tự như biểu đồ trình tự, biểu đồ cộng tác chỉ ra luồng sự kiện
xuyên qua kịch bản của Use case. Trong khi biểu đồ trình tự có trật tự theo
thời gian, thì biểu đồ cộng tác lại tập tập trung nhiều vào quan hệ giữa các đối
tượng, 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 đồ
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
15
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
cộng tác được sử dụng để các kỹ sư kiểm tra chất lượng và các kiến trúc sư
hệ thống thấy được việc phân bổ tiến trình giữa các đối tượng thông qua loại
biểu đồ này.
Biểu đồ cộng tác chính là một đồ thị chỉ ra một số các đối tượng và những
sự liên kết giữa chúng, trong đó các đỉnh là các đối tượng còn cạnh thể hiện
sự trao đổi thông điệp giữa các đối tượng.
Từ biểu đồ tuần tự chúng ta có thể tạo ra biểu đồ cộng tác của nút trong
thang máy. Qua đây chúng ta thấy sự tương tác giữa người sử dụng và với
nút bấm trên các tầng, nút bấm trong thang máy. Qua tương tác này bộ điều
khiển sẽ chỉ thị cho thang máy, cửa, đèn thực hiện những động tác cần thiết
để thang máy hoạt động đồng bộ và hiệu quả.
a/ Biểu đồ cộng tác của nút bấm trên tầng
Biểu đồ cộng tác của nút bấm trên tầng
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
16
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
b/ Biểu đồ cộng tác của nút bấm trong thang máy
Biểu đồ cộng tác của nút bấm trong thang máy
2.2.5. Biểu đồ chuyển trạng thái.
Biểu đồ chuyển trạng thái mô tả chu kỳ tồn tại của đối tượng, nó bao gồm
các thông tin về các trạng thái khác nhau của đối tượng, thể hiện cách thức
chuyển từ trạng thái này sang trạng thái khác của đối tượng. Biểu đồ trạng thái
còn cho biết các sự kiện tác động trên các trạng thái như thế nào.
Mỗi đối tượng trong hệ thống khi thực hiện đều có các trạng thái cụ thể.
Trạng thái là kết quả của các hoạt động do đối tượng thực hiện trước đó. Tại
mỗi thời điểm, đối tượng luôn ở trong một trạng thái xác định. Thông thường
trạng thái được xác định bởi giá trị các thuộc tính và các liên kết đến các đối
tượng khác.
Biểu đồ trạng thái có điểm khởi đầu (hình tròn đen) và một số điểm kết
thúc (Hình tròn bao quanh một hình tròn đen). Các trạng thái được biểu diễn
bằng hình chữ nhật góc tròn, có tên gọi và thao tác kết hợp. Trạng thái của đối
tượng sẽ bị thay đổi và chuyển sang trạng thái khác khi thỏa mãn một số điều
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
17
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
kiện nào đó. Dòng biến đổi trạng thái được biểu diễn bởi mũi tên có điều kiện
và nhãn mô tả một sự kiện xảy ra. Biểu đồ trạng thái giải thích cho chúng ta
cách thức và điều kiện để trạng thái của đối tượng thay đổi.
Biểu đồ trạng thái là cần thiết bởi nó giúp phân tích viên, người thiết kế và
người phát triển hệ thống hiểu hành vi của đối tượng trong hệ thống. Đặc biệt
người phát triển phải hiểu rõ hành vi đối tượng vì họ phải cài đặt hành vi trong
phần mềm. Họ không chỉ cài đặt đối tượng mà còn làm đối tượng thực hiện
cái gì đó.
Trong quá trình hoạt động của thang máy có một số trạng thái như sau:
-Trạng thái chờ ở tầng 0 (q1) : Lúc này thang máy vừa mới khởi động
hoặc vừa mới kết thúc xong một phiên làm việc, thang máy đang ở tầng 0.
Trong thời gian chờ các đèn tín hiệu tắt. Nếu có nút tầng được bấm thì chuyển
sang trạng thái q2 hoặc q3
-Trạng thái thang máy di chuyển lên (q2): Khi có một nút được bấm (đèn
tín hiệu sáng) ở một tầng cao hơn vị trí hiện tại của thang máy thì thang máy
sẽ di chuyển lên. Khi thang máy đến tầng nhấn nút thì đè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ó một nút được bấm
(đèn tín hiệu sáng) ở một tầng thấp hơn vị trí hiện tại của thang máy thì thang
máy sẽ di chuyển xuống. Khi thang máy đến tầng nhấn nút thì đè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
được bấm thì thang máy dừng, đèn tín hiệu tắt, ngay lúc đó cửa được mở, bộ
đếm thời gian t1 được đặt bằng 0, sau đó được tăng dần. Nếu t1 > k1 (k1 là
giới hạn thời gian mở cửa) thì cửa được đóng. Nếu nút dừng cửa được nhấn
thì t1 được đặt lại bằng 0 và sau đó lại tăng dần. Khi đóng cửa, bộ đếm t2 được
đặt lại bằng 0. Sau đó chuyển sang trạng thái q5.
-Trạng thái thang máy di chuyển xuống tầng 0 (q5): Nếu t2 > k2 (k2 là giới
hạn thời gian chờ) mà không có một nút được bấm thì thang máy sẽ di chuyển
xuống tầng 0 và chuyển sang trạng thái q1.
Có thể vẽ biểu đồ chuyển trạng thái như sau:
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
18
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
Biểu đồ chuyển trạng thái của thang máy
2.2.6 Lưu đồ hành động (Flow chart).
Lưu đồ hành động là một biến thể của biểu đồ trạng thái. Lưu đồ hành
động cung cấp thêm các thông tin để chúng ta hiểu hoạt động của thang máy.
Hành động được biểu diễn bởi hình chữ nhật, trong đó có tên gọi, đường có
mũi tên chỉ ra hướng xảy ra hành động tiếp theo, điều kiện quyết định hành
động được đặt trong hình thoi.
Dưới đây xin trình bày lưu đồ hành động chọn tầng mở cửa của thang
máy khi nó chuyển động lên và chuyển động xuống
-Gọi k là tầng tại thời điểm hiện tại.
-Gọi m là số tầng của tòa nhà.
-Gọi nl là tập hợp các nút tầng bấm lên và các nút thang máy lớn hơn k
nl={n1,n2,...ns / (ni >k) or (ni hướng lên)}
-Gọi nl1 là nl1={ni / (ni >k) and (ni thuộc nl)}
-Gọi nx là tập hợp các nút tầng bấm xuống và các nút thang máy nhỏ
hơn k
nx={n1,n2,...ns / (ni <k) or (ni hướng xuống)}
-Gọi nx1 là nx1={ni / (ni <k) and (ni thuộc nx)}
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
19
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
Bắt đầu
nl=Ø, nx=Ø
nl=nl {n1,n2,...ns / (ni >k) or (ni hướng lên)}
nx=nx {n1,n2,...ns / (ni <k) or (ni hướng xuống)}
nl1={ni / (ni >k) and (ni thuộc nl)}
F
Chuyển
nl1<>Ø
động xuống
T
t= min(nl1)
nl=nl \ t
T
dừng
k=t
mở cửa
F
T
k<m
k=k+1
F
Chuyển
động xuống
Lưu đồ hành động chọn tầng mở cửa của thang máy khi chuyển động lên
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
20
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
Bắt đầu
nl=Ø, nx=Ø
nl=nl {n1,n2,...ns / (ni >k) or (ni hướng lên)}
nx=nx {n1,n2,...ns / (ni <k) or (ni hướng xuống)}
nx1={ni / (ni <k) and (ni thuộc nx)}
Về tầng 0
F
nx1<>Ø
nl=Ø và nx=Ø
T
F
t= max(nx1)
Chuyển
nx=nx \ t
động lên
dừng,
T
k=t
mở cửa
k>0
k=k-1
Chuyển
nl=Ø và nx=Ø
động lên
Về tầng 0
Lưu đồ hành động chọn tầng mở cửa của thang máy khi chuyển động xuống
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
21
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
2.3 MỞ RỘNG BÀI TOÁN THANG MÁY
Bài toán điều khiển hoạt động thang máy đặt ra ở trên chỉ giới hạn trong
một tòa nhà có số tầng không quá 10. Trên thực tế hiện nay, có nhiều tòa nhà
rất cao (m<=100) với số lượng người sử dụng rất lớn. Với đặc điểm này nếu
một người đi từ tầng 100 về tầng 0 thì sẽ mất rất nhiều thời gian. Vấn đề cần
giải quyết ở đây là phải xây dựng hệ thống thang máy sao cho đáp ứng được
yêu cầu về mặt thời gian nhanh và số lượng người dùng lớn.
Để giải quyết vấn đề này chúng tôi đưa ra biện pháp như sau:
Căn cứ số lượng người dùng để chọn số lượng cầu thang cần thiết. Tất
nhiên trong tòa nhà cần phải có cả thang bộ lẫn thang máy.
Để giải quyết vấn đề thời gian, hệ thống thang máy phải có nhiều loại
mà ít nhất là 2 loại:
-Loại 1: Thang máy nhanh. Loại thang máy này có bước di chuyển k
(3<=k<=10) tầng dừng một trạm. Như vậy, thang máy chỉ dừng lại ở các tầng
có số hiệu chia hết cho k.
Ví dụ: Khi k=10 thì thang máy loại này chỉ dừng ở các tầng chia hết cho
10 (tầng trệt được quy định là tầng 0)
-Loại 2: Thang máy chậm: Là loại thang máy di chuyển cho mỗi nhóm
k+1 tầng: 0 ... k; k...2k; 2k...3k; 3k...4k;... ;9k...10k,.... Thang máy này có bước
di chuyển từng tầng 1 và chỉ di chuyển trong giới hạn k+1 tầng của nó.
Ví dụ: một người muốn đi từ tầng 4 đến tầng 93 thì có thể đi như sau:
Dùng thang máy chậm đi từ tầng 4 đến tầng 10.
Dùng thang máy nhanh đi từ tầng 10 đến tầng 90
Dùng thang máy chậm di từ tầng 90 đến 93.
Khi tòa nhà có số tầng m mà (m mod k <>0) thì ta có thể giải quyết bằng
cách xét các tầng lẽ ở trên cùng như là một trường hợp đặc biệt của thang
máy nhanh hoặc là các tầng lẽ đó sẽ không có thang máy nhanh phục vụ.
Ví dụ: m=97, k=10 thì có 7 tầng lẽ ở trên cùng sẽ không có thang máy
nhanh phục vụ. Những người ở các tầng này muốn đi thang máy nhanh phải đi
thang máy chậm về tầng 90, sau đó chuyển sang thang máy nhanh.
Các biểu đồ của hệ thống thang máy nhanh cũng tương tự như các biểu
đồ của hệ thống thang máy đã giải quyết.
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
22
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
100
99
...
92
91
90
...
....
40
39
...
32
31
30
29
...
22
21
20
19
...
12
11
10
9
...
2
1
0
Tầng
TM chậm
TM chậm
TM nhanh
Minh họa hình ảnh hệ thống thang máy gồm hai loại
thang máy nhanh và thang máy chậm.
Trong hình vẽ minh họa cho tòa nhà 100 tầng, dùng hai loại thang máy:
loại nhanh có bước di chuyển k=10 tầng, loại chậm có bước di chuyển 1 tầng.
Mũi tên hai chiều nhằm chỉ phạm vi hoạt động của mỗi thang máy.
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
23
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
PHẦN 3. KẾT LUẬN
Do nhu cầu xử lý thông tin của con người ngày một lớn và đòi hỏi ngày
càng nhanh nên nhiều phần mềm lớn, phức tạp ra đời. Không những thế, yêu
cầu xử lý lại luôn thay đổi theo thời gian sử dụng. Vì vậy nhiệm vụ của công
nghệ phần mềm là nghiên cứu các mô hình, phương pháp và công cụ để tạo
ra những hệ thống phần mềm có chất lượng cao trong phạm vi hạn chế về tài
nguyên nhằm đáp ứng được những nhu cầu thường xuyên thay đổi của khách
hàng, giải quyết được những vấn đề phức tạp đặt ra trong thực tế. Một
phương pháp phát triển phần mềm có tính đột phá đó là phương pháp hướng
đối tượng mà công cụ cơ bản 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. Đề tài này đã
minh hoạ cho quá trình phân tích và thiết kế trước khi bước vào lập trình một
phần mềm.
Låi kãt:
Âã hoan thanh âæåc âã tai nay, ngoai sæ nä læc, cä gàng cua ban thá
n, chung täi âa nhán âæåc sæ giup âå tán tçnh cua GS.TSKH Nguyãn Xuán
Huy qua tæng bai giang å trãn låp.
La mät hoc viãn cao hoc chuyãn nganh Tin hoc, du rát tám âàc våi vá
n âã âàt ra va âam mã våi män hoc nhæng våi thåi gian han chã va khäi læå
ng kiãn thæc con êt oi nãn chàc chàn tiãu luán se khäng tranh khoi nhæng sa
i sot trong viãc tiãp cán, nghiãn cæu va trçnh bay. Chung täi xin trán trong c
am ån sæ giup âå quy bau cua Quy Tháy, cua cac ban trong låp va mong âæ
åc âon nhán tæ Quy Tháy sæ gop y, bä sung âã giup chung täi co cach nhçn
âung hån âäi våi ván âã nghiãn cæu âäng thåi mong âæåc sæ læång thæ cho
nhæng så suát trong tiãu luán nay.
Xin trán trong cam ån!
Huã, Ngay 10 thang 02 nàm 2005
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
24
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
PHẦN 4. TÀI LIỆU THAM KHẢO
[1]. Nguyễn Xuân Huy, Giáo trình Công nghệ phần mềm.
[2]. Đoàn Văn Ban, Ngôn ngữ lập trình Java.
[3]. Đặng Văn Đức, Phân tích thiết kế hướng đối tượng bằng UML.
[4]. Sinan Si Alhir, UML in a nutshell.
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
25
TiÓu luËn m«n C«ng nghÖ phÇn mÒm
MỤC LỤC
Nội dung
Trang
Mở đầu
1
2
2
2
3
5
5
6
Nội dung
Chương 1: Tổng quan về UML
1. Giới thiệu về UML
2. Mô hình khái niệm UML
3. Kiến trúc hệ thống
4. Tổng quan Rational Rose
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
1. Phát biểu bài toán
2. Phân tích thiết kế
6
8
Biểu đồ use case
8
Biểu đò lớp
10
13
14
16
18
21
22
23
Biểu đồ trình tự
Biểu đồ cộng tác
Biểu đồ chuyển trạng thái
Lưu đồ hành động
3. Mở rộng bài toán thang máy
Kết luận
Tài liệu tham khảo
§iÒu khiÓn ho¹t ®éng cña hÖ thèng thang m¸y
26
Bạn đang xem tài liệu "Tiểu luận Công nghệ phần mềm", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
tieu_luan_cong_nghe_phan_mem.doc