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 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ậy cần phải 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 đã một cách làm việc được quản 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 tăng dần), mỗi vòng đời có 4 giai đoạn: Sơ bộ, chi tiết, xây  
dựng chuyển giao. Công cụ cơ bản để 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 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 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 đượ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, đượ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 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ỉ một phần của 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 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 triển khai hệ thống, nó không khó hiểu rất dễ sử dụng.  
UML không những 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ữ. đò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ử 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: 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: bộ phận tổ chức của mô hình UML. Chỉ 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  
thể cho vào gói.  
Phần tử chú thích: bộ phận chú giải của mô hình UML, đó là lời giải  
thích áp dụng đ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  
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 đ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 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 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 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. 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 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 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 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 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 độ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 một hệ thống cầu thang gồm cầu thang bộ 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 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 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ỉ một nút hướng xuống ở tầng dưới cùng chỉ 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 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 thuận  
lợi nhất.  
+ Trong thang máy, nếu 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ỉ một trong hai nút được  
nhấn. Nếu 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 nếu thang máy  
đang đi lên nếu 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 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 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 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. dụ: “Nhấn nút tầng” 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 một 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ệ 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 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 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 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 người dùng đang đứng bấm.  
-huong: là thuộc tính quy định hướng di chuyển 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ự 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ể 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 một trong những biểu đồ quan trọng. Sau đây chúng tôi sẽ 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ụ 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 bấm nút bật sáng, đồng thời chỉ  
thị cho thang máy di chuyển đến tầng người gọi thang máy. Khi thang máy  
đã đến tầng 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  
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ự 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 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 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ớ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ộ 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) 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 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 đ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 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 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.  
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 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  
F
T
k>0  
k=k-1  
F
F
Chuyển  
nl=Ø và nx=Ø  
động lên  
T
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 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ả thang bộ lẫn thang máy.  
Để giải quyết vấn đề thời gian, hệ thống thang máy phải 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  
số hiệu chia hết cho k.  
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 tầng 0)  
-Loại 2: Thang máy chậm: 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ó.  
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ư 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ụ.  
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 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 đò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ại luôn thay đổi theo thời gian sử dụng. 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 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á đó phương pháp hướng  
đối tượng mà công cụ cơ bản 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  
doc 26 trang yennguyen 21/07/2025 910
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:

  • doctieu_luan_cong_nghe_phan_mem.doc