DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 1 ATC Air Traffic Control Hệ thống điều khiển không 4 OOA Object-Oriented Analysis Phân tích hướng đối tượng 5 OOD Object-Oriented Design Thiết kế
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
- - - - - -
Đoàn Thị Thu Cúc
PHÂN TÍCH THIẾT KẾ HỆ THỐNG THỜI GIAN
THỰC THEO CÁCH TIẾP CẬN HƯỚNG ĐỐI TƯỢNG
Chuyên ngành : Công nghệ phần mềm
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS Đoàn Văn Ban
Trang 2Hà Nội – 2007
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
- - - - - -
Đoàn Thị Thu Cúc
PHÂN TÍCH THIẾT KẾ
HỆ THỐNG THỜI GIAN THỰC THEO CÁCH TIẾP CẬN HƯỚNG
ĐỐI TƯỢNG
LUẬN VĂN THẠC SĨ
Hà Nội - 2007
Trang 3DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
1 ATC Air Traffic Control Hệ thống điều khiển không
4 OOA Object-Oriented Analysis Phân tích hướng đối tượng
5 OOD Object-Oriented Design Thiết kế hướng đối tượng
6 OOAF Object-Oriented
Application Framework
Khung ứng dụng hướng đối tượng
7 QoS Quality of Service Chất lượng dịch vụ
8 RTOS Real Time Operating
System Hệ điều hành thời gian thực
9 RTS Real Time System Hệ thống thời gian thực
10 RUP Rational Unified Process
Tiến trình phát triển phần mềm thống nhất của Rational
11 RTJEG Real-Time for Java Experts
Trang 4DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Hướng đối tượng nhấn mạnh sự trình bày các đối tượng. 18
Hình 2.1 Một biểu đồ lớp. 29
Hình 2.2 Biểu đồ đối tượng tương ứng với biểu đồ lớp ở hình 2.1. 29
Hình 2.3 Biểu đồ thành phần. 30
Hình 2.4 Biểu đồ triển khai. 30
Hình 2.5 Biểu đồ gói. 31
Hình 2.6 Biểu đồ cấu trúc đa hợp. 31
Hình 2.7 Biểu đồ ca sử dụng. 32
Hình 2.8 Biểu đồ trình tự. 32
Hình 2.9 Biểu đồ truyền thông. 33
Hình 2.10 Biểu đồ máy trạng thái. 33
Hình 2.11 Biểu đồ hoạt động. 34
Hình 2.12 Biểu đồ bao quát tương tác. 34
Hình 2.13 Biểu đồ thời khắc. 34
Hình 2.14 Biểu đồ ca sử dụng của hệ thống thang máy. 37
Hình 2.15 Biểu đồ lớp của ECS. 39
Hình 2.16 Biểu đồ lớp - khung nhìn kiến trúc phần mềm. 42
Hình 2.17 Kịch bản 1 và 2 – Yêu cầu đến tầng. 45
Hình 2.18 Kịch bản 1 và 2 – Yêu cầu buồng Thang máy. 45
Hình 2.19 Di chuyển thang máy từ trạng thái dừng. 46
Hình 2.20 Kịch bản 3 và 4 di chuyển thang máy cho đến khi dừng hẳn. 46
Hình 2.21 Kịch bản 1 và 2 - Cho biết vị trí thang máy. 47
Hình 2.22 Kịch bản 1 và 2 - Cho biết hướng di chuyển. 48
Hình 2.23 Kịch bản 1 và 2 - Mở/đóng cửa. 48
Hình 2.24 Kịch bản 3 - Đảo trạng thái cửa. 49
Hình 2.25 Kịch bản 1 Ngắt khẩn cấp - Thang máy không dừng tại tầng yêu cầu. 49
Hình 2.26 Kịch bản 2 Ngắt khẩn cấp - Buồng thang máy không di chuyển. 50
Hình 2.27 Kịch bản 3 Ngắt khẩn cấp Cửa không mở khi thang máy dừng tại tầng yêu cầu. 50
Hình 2.28 Kịch bản 4 Ngắt khẩn cấp -Cửa mở khi thang máy đang di chuyển. 51
Hình 2.29 Kịch bản 1 và 2 – Yêu cầu đến tầng. 51
Hình 2.30 Kịch bản 1 và 2 – Yêu cầu buồng Thang máy. 52
Hình 2.31 Di chuyển thang máy từ trạng thái dừng. 52
Hình 2.32 Kịch bản 3 và 4 di chuyển thang máy cho đến khi dừng hẳn. 52
Hình 2.33 Kịch bản 1 và 2 - Cho biết vị trí thang máy. 53
Trang 5Hình 2.34 Kịch bản 1 và 2 - Cho biết hướng di chuyển. 53
Hình 2.35 Kịch bản 1 và 2 - Mở/đóng cửa. 54
Hình 2.36 Kịch bản 3 - Đảo trạng thái cửa. 54
Hình 2.37 Kịch bản 1 Ngắt khẩn cấp - Thang máy không dừng tại tầng yêu cầu. 55
Hình 2.38 Kịch bản 2 Ngắt khẩn cấp - Buồng thang máy không di chuyển. 55
Hình 2.39 Kịch bản 3 Ngắt khẩn cấp Cửa không mở khi thang máy dừng tại tầng yêu cầu. 56
Hình 2.40 Kịch bản 4 Ngắt khẩn cấp - Cửa mở khi thang máy đang di chuyển. 56
Hình 2.41 Sơ đồ trạng thái cho điều khiển cửa. 57
Hình 2.42 Sơ đồ trạng thái của điều khiển di chuyển. 57
Hình 2.43 Sơ đồ trạng thái cho điều khiển đèn. 57
Hình 2.44 Sơ đồ trạng thái của điều khiển nút tầng. 58
Hình 2.45 Sơ đồ trạng thái của điều khiển nút thang máy. 58
Hình 2.46 Sơ đồ trạng thái cho Bộ gởi. 58
Hình 3.1 Biểu đồ lớp chi tiết hệ thống thang máy. 62
Hình 3.2 Sự cộng tác trong hệ thống thang máy. 63
Hình 3.3 Biểu đồ lớp thể hiện mối quan hệ tổng quát hóa giữa lớp Nut và phân lớp NutTang và NutThangMay. 65
Hình 3.4 Biểu đồ lớp thể hiện mối quan hệ tổng quát hóa giữa lớp Cua và lớp CuaThangMay. 64
Hình 3.5 Biểu đồ lớp mô hình hóa mối quan hệ tổng quát hóa giữa lớp trừu tượng ViTri và phân lớp ThangMay và lớp Tang. 66
Hình 3.6 Biểu đồ lớp chi tiết những thuộc tính và thao tác (bao hàm sự kế thừa). 65
Hình 3.7 Biểu đồ lớp đã cập nhật thay đổi. 67
Hình 3.8 Biểu đồ hoạt động của 1 đối tượng người. 69
Hình 3.9 Biểu đồ hoạt của đối tượng thang máy. 70
Trang 6MỞ ĐẦU
Hệ thống thời gian thực ngày càng trở nên quan trọng trong xã hội của chúng
ta, là một trong những lĩnh vực hấp dẫn thu hút sự đầu tư nghiên cứu của các nhà khoa học trên thế giới vì những ứng dụng thiết thực của nó trong cuộc sống
và những ứng dụng này góp phần đáng kể cho sự phát triển xã hội Những hệ thống thời gian thực (RTS) đã phát triển rộng khắp từ những hệ thống yêu cầu chất lượng cao như lò phản ứng hạt nhân, tàu vũ trụ, đến những hệ thống trong cuộc sống hằng ngày như viễn thông, những hệ thống vận chuyển, những hệ thống nhúng trong các thiết bị Những RTS đã thực sự xâm nhập mọi lĩnh vực
ngay cả trong kỹ thuật mạng không dây như Bluetooth, cho phép người dùng có
thể thực hiện những sự kết nối không dây tức thời giữa những dạng thiết bị truyền thông khác nhau mà không mấy khó khăn như là giữa các điện thoại di động với nhau, giữa điện thoại di động, máy tính cá nhân và máy tính xách tay Những hệ thống này sử dụng sự truyền sóng vô tuyến, truyền cả giọng nói và dữ liệu theo phương thức thời gian thực Những RTS cũng đang tồn tại và phát triển
ở cả những trường học và ngành công nghiệp
Bên cạnh đó, do sự tiến bộ nhanh chóng của công nghệ phần cứng, tốc độ của máy tính tăng nhanh sau mỗi khoảng thời gian (theo định luật More: công suất máy tính tăng gấp đôi sau 18 tháng) Vì vậy, thách thức đặt ra cho công nghệ phần mềm trong 20 năm tới không phải là tốc độ thực hiện chương trình hay kinh phí mà là phải phát triển phần mềm như thế nào để tận dụng được các tiềm năng
to lớn của phần cứng Điều tất yếu là xu hướng của phần mềm ngày càng lớn, càng phức tạp hơn, và thực tế cho thấy nhu cầu về phần mềm tăng rất nhanh Cùng với sự phát triển những phần mềm có quy mô lớn với tính năng đa dạng, yêu cầu bảo trì và bảo hành đối với các hệ thống lớn và phức tạp ngày càng trở nên nghiêm trọng Trước những thách thức to lớn như vậy, công nghệ phát triển phần mềm hướng đối tượng cùng với công cụ tự động hóa đi theo nó trở thành một giải pháp công nghệ hữu hiệu cho các vấn đề đặt ra Phân tích thiết kế hướng đối tượng đang là xu thế tất yếu trong công nghệ phát triển phần mềm
Nắm bắt được nhu cầu cần thiết của việc phát triển các RTS kết hợp công nghệ phát triển phần mềm hướng đối tượng với sự hỗ trợ của UML Tôi đã chọn đề tài
luận văn: “Phân tích thiết kế hệ thống thời gian thực theo cách tiếp cận hướng đối tượng” Bố cục của luận văn bao gồm phần mở đầu, kết luận và ba chương
Trang 7Chương I: Trình bày các khái niệm cơ bản cũng như các đặc trưng của RTS Những ứng dụng phổ biến của RTS, phân biệt hệ thống thời gian thực và hệ thống không phải thời gian thực, cùng với những vấn đề liên quan đến việc phân tích thiết kế hệ thống thời gian thực
Chương II: Tập trung vào phân tích, thiết kế hướng đối tượng một bài toán cụ thể: hệ thống điều khiển thang máy sử dụng UML và phần mềm Rational Rose Chương III: Giới thiệu và cài đặt chương trình mô phỏng các hoạt động cơ bản của hệ thống thang máy với ngôn ngữ lập trình hướng đối tượng Java
Trang 8CHƯƠNG I
HỆ THỐNG THỜI GIAN THỰC
Với sự gia tăng mạnh mẽ việc sử dụng những hệ thống thông minh trong cuộc sống hằng ngày như các thiết bị điện tử dân dụng, những dụng cụ cá nhân tự động, và những thiết bị y học, càng tăng thêm tầm quan trọng của việc đầu tư nghiên cứu hệ thống thời gian thực Từ những hệ thống đòi hỏi sự an toàn và độ chính xác cao như lò phản ứng hạt nhân, bộ điều khiển tự động, điều khiển không lưu, những hệ thống giám sát trực tuyến trong y học, những hệ thống phòng thủ, khoa học điện tử áp dụng cho ngành hàng không, hệ thống tàu ngầm, sản xuất Robot đến những phần mềm giải trí như game, phim hoạt hình, từ những máy dân dụng đơn giản tới những thiết bị sản xuất hoàn chỉnh Những ứng dụng này có mặt ở khắp mọi nơi, trong các lĩnh vực thương mại, chính phủ, quân sự, y học, giáo dục, v.v và đang phát triển nhanh cả về số lượng và chất lượng
1.1 Khái niệm hệ thống thời gian thực
Những hệ thống điều khiển như những hệ thống sản xuất linh hoạt thực hiện tuần tự những nhiệm vụ dựa vào những sự kiện bên ngoài, như khi ta nhấn nút hay một sự tác động nào đó Kết quả thực hiện của hệ thống phụ thuộc vào sự thực hiện tuần tự chứ không phụ thuộc vào thời gian Vì vậy đó không phải là RTS Mặc dù những hệ thống này không phụ thuộc thời gian khi thực hiện nhiệm vụ nhưng việc thực hiện tổng thể của nó vẫn có liên quan đến thời gian
Ví dụ một tiêu chuẩn lập lịch cho một hệ thống sản xuất linh hoạt không phải RTS, tổng thời gian thực hiện là tối thiểu hay lượng vật liệu đưa vào sản xuất là tối đa Thường thì tác động của những ràng buộc thời gian trong những hệ thống này không làm ảnh hưởng đến sự ổn định của hệ thống Do vậy những hệ thống này không phải là RTS
Những hệ thống thời gian thực là những hệ thống điều khiển có ràng buộc chính xác thời gian thực hiện nhiệm vụ và xem như là những ràng buộc thời gian thực [14]
Từ đây, có thể đưa ra một khái niệm hệ thống thời gian thực (RTS), được trình bày ở phần sau
Trang 91.1.2 Khái niệm
Một hệ thống thời gian thực (RTS) là một hệ thống phần mềm mà sự thực hiện đúng đắn của hệ thống không chỉ phụ thuộc vào kết quả sinh ra mà còn phụ
Những hệ thống thời gian thực là những hệ thống máy tính giám sát, trả lời hay điều khiển môi trường ngoài Môi trường này được kết nối tới hệ thống máy tính thông qua những bộ cảm biến, bộ kích hoạt và những giao diện vào ra khác Những thiết bị này là những đối tượng vật lý hay sinh học Thông thường con người là phần liên kết với thế giới bên ngoài nhưng có thể hiểu một cách tổng quát những đối tượng tự nhiên như những con vật hay đối tượng nhân tạo cũng
có thể liên kết với môi trường ngoài
Hệ thống máy tính phải đáp ứng được những ràng buộc thời gian và những ràng buộc khác theo hành vi thời gian thực được cài trong hệ thống Mục đích chính của hệ thống là đáp lại hay phản ứng lại những tín hiệu từ môi trường ngoài Một hệ thống máy tính thời gian thực có thể là một phần được gắn vào hệ thống lớn gọi là một hệ thống nhúng
Có thể nhìn nhận hệ thống thời gian thực như là một hệ thống kích hoạt/ trả lời Khi nhận một sự kích hoạt, hệ thống phải sinh ra hành động đáp trả tương ứng Vì vậy, hành vi của hệ thống thời gian thực có thể định nghĩa là danh sách những tác nhân kích hoạt mà hệ thống nhận được, có sự liên hệ giữa hồi đáp và thời gian hồi đáp
Trang 10Sự kích hoạt rời rạc có thể được phát sinh từ những bộ kích hoạt hay bộ cảm biến Chúng thường chỉ ra một vài những tình trạng khác thường như lỗi phần cứng mà lỗi này chỉ có thể khắc phục bằng tay
Một hệ thống thời gian thực phải trả lời lại sự kích hoạt tại những khoảng thời gian khác nhau Vì vậy kiến trúc của hệ thống phải được tổ chức để truyền sự điều khiển tới bộ điều khiển thích hợp ngay khi nhận được sự kích hoạt Trong những chương trình tuần tự, điều này là không thực tế, vì vậy RTS thường được thiết kế như là một tập các tiến trình đồng thời và tiến trình cộng tác
Một cách tổng quát, mô hình kích hoạt/trả lời của RTS dẫn đến mô hình kiến trúc gồm ba loại tiến trình: tiến trình quản lý bộ cảm biến; tiến trình tính toán yêu cầu trả lời khi hệ thống nhận được sự kích hoạt; tiến trình điều khiển kích hoạt quản lý hoạt động của tác nhân kích hoạt
1.1.3 Những ràng buộc thời gian thực [14]
Một ràng buộc thời gian thực được định nghĩa như là một điều kiện kiểu boolean trong những giá trị của biến đồng hồ Biến đồng hồ là biến có giá trị tăng theo thời gian Các biến đồng hồ có thể là biến cục bộ hay biến chung Giá trị của những đồng hồ chung là có thể thấy được cho tất cả các tiến trình của hệ thống còn những đồng hồ cục bộ có thể thấy được chỉ cho những tiến trình của
nó Những đồng hồ có thể là tuyệt đối hay tương đối Những đồng hồ tuyệt đối (Absolute clock) lấy giá trị từ một thiết bị bấm giờ chung, và sẽ không bao giờ đặt lại giờ sau khi đã khởi tạo Những đồng hồ tương đối cũng lấy giá trị từ một thiết bị bấm giờ, nhưng có thể là hai giá trị đồng hồ khác nhau cho hai đồng hồ Những đồng hồ có giá trị có thể là rời rạc hay liên tục Những đồng hồ rời rạc có giá trị tăng theo số nguyên, còn những đồng hồ liên tục gia tăng theo những định lượng thời gian thực Trong một hệ thống thời gian thực đơn, tất cả các đồng hồ hoặc là rời rạc hoặc là liên tục, nhưng đồng hồ tuyệt đối chỉ khi là đồng hồ chung và đồng hồ tương đối khi là đồng hồ cục bộ và có thể cùng tồn tại trong một hệ thống Từ những mô hình khác nhau đề xuất những cú pháp khác nhau cho việc đặc tả ràng buộc thời gian thực Cú pháp chính xác của một điều kiện boolean trong những biến đồng hồ là phụ thuộc vào mô hình hệ thống
Trang 111.1.4 Đặc điểm của hệ thống thời gian thực [6]
Đặc điểm đầu tiên là sự ràng buộc thời gian (timing constrain) Một chương
trình không chỉ đưa ra kết quả đúng đắn mà còn đưa ra kết quả đúng lúc Nói cách khác, chương trình phải đúng cả về mặt logic và thời gian thực hiện Thông thường hệ thống phải thỏa mãn những yêu cầu về thời gian bao hàm cả những
yêu cầu khác Phổ biến nhất và đơn giản nhất là yêu cầu về hạn định (deadline) -
thời hạn tối đa để chương trình thực hiện xong một yêu cầu nào đó Hầu hết
những ràng buộc thời gian là đơn định (deterministic)
Đặc điểm thứ hai của RTS là tính đồng thời (concurrency) Hệ thống máy
tính sử dụng tính đồng thời để nâng cao hiệu quả thực hiện của chương trình, ví
dụ nhiều bộ xử lý cùng chạy song song để xử lý một công việc nào đó Hệ thống thời gian thực phải đáp ứng sự đồng thời vốn có của tự nhiên là một phần của thế giới bên ngoài được kết nối tới hệ thống Tức là, những tín hiệu từ môi trường ngoài có thể tác động vào hệ thống một cách đồng thời Những hệ thống máy tính đơn có thể giám sát những hành động rời rạc hay cùng lúc trong tự
nhiên Vì vậy, hệ thống thời gian thực rất cần biết “thời gian thực” của những
tín hiệu mà hệ thống nhận được, cũng như đưa ra những tín hiệu kết quả tương ứng đúng lúc và đáp ứng những ràng buộc thời gian
Một đặc tính thứ ba của hệ thống thời gian thực cần quan tâm là độ tin cậy và
độ kháng lỗi của hệ thống Độ tin cậy là một sự ước lượng mức độ xảy ra lỗi của
hệ thống nhiều hay ít, thường xuyên hay không thường xuyên Tuy nhiên, hầu như không có hệ thống nào là có độ tin cậy tuyệt đối Độ kháng lỗi là sự nhận biết
và tự sửa lỗi của hệ thống Sự thất bại và lỗi của hệ thống có thể gây ra những hậu quả nghiêm trọng như mất tiền, thiệt hại tài sản và tính mạng con người
Đặc tính cuối cùng của hệ thống thời gian thực là hệ thống có sự kiểm thử và
được chứng nhận Vì giá thành cao cho việc sửa lỗi và những thiệt hại của hệ
thống, điều này thường là không thể hiện trong quá trình kiểm thử và gỡ rối của
hệ thống với môi trường thực tế Thay vì chỉ dựa vào sự mô phỏng, kiểm thử hệ thống con, đặc tả cẩn thận, phân tích thiết kế toàn diện, xây dựng những thủ tục phát hiện lỗi và sửa lỗi
1.1.5 Mô hình hóa hệ thống thời gian thực
Hệ thống thời gian thực phải đáp lại những sự kiện (tác nhân) tác động tại những khoảng thời gian không đều nhau, làm cho hệ thống chuyển sang một
Trang 12trạng thái mới Đó là lý do sử dụng mô hình hóa máy trạng thái để mô tả hệ thống thời gian thực Tại một thời điểm nào đó, hệ thống đang ở trạng thái này khi nhận được sự kiện kích hoạt sẽ chuyển sang trạng thái khác
Mô hình máy trạng thái rất phù hợp cho sự thiết kế hệ thống thời gian thực
1.1.6 Thực hiện thời gian thực
Một thực hiện thời gian thực là tương tự như một hệ điều hành trong máy tính Nó quản lý tiến trình và cấp phát tài nguyên trong hệ thống thời gian thực Thực hiện bắt đầu và dừng tiến trình thích hợp để điều khiển, cấp phát bộ nhớ và tài nguyên cho bộ xử lý khi nhận được sự kích hoạt
Những thành phần của một thực hiện phụ thuộc vào kích thước và độ phức tạp của hệ thống thời gian thực, gồm có:
1 Đồng hồ thời gian thực: cung cấp thông tin để lập lịch định kỳ tiến trình
2 Bộ điều khiển ngắt: quản lý những yêu cầu rời rạc của dịch vụ
3 Bộ định biểu: kiểm tra và lựa chọn việc thực hiện của tiến trình
4 Bộ quản lý tài nguyên: quản lý cấp phát tài nguyên và bộ nhớ cho tiến trình
5 Bộ thực hiện: điều khiển việc bắt đầu thực hiện của một tiến trình
Khi hệ thống đòi hỏi sự giám sát và độ tin cậy cao thì có thêm các thành phần sau:
Bộ quản lý cấu hình: xác định lại cấu hình động của phần cứng hệ thống
Bộ quản lý lỗi: phát hiện những lỗi phần cứng và phần mềm để có phương
án phục hồi hệ thống
Hệ thống thời gian thực xử lý những tác nhân nhận được ở những mức độ ưu tiên khác nhau Vì vậy, thực hiện trong hệ thống thời gian thực phải quản lý ít nhất là 2 mức ưu tiên sau:
Mức ngắt: đây là mức ưu tiên cao nhất, là một trong những tiến trình xử
lý đồng hồ thời gian thực
Mức đồng hồ: được chỉ định cho những tiến trình tuần hoàn
Sự phân bố quyền ưu tiên của tiến trình cần sự phân tích mở rộng và mô phỏng
Trang 131.2 Vấn đề thời gian trong hệ thống thời gian thực
1.2.1 Đồng hồ hệ thống [8, 17]
Trong hệ thống thời gian thực, thời gian được báo bởi một đồng hồ, gọi là đồng hồ hệ thống Trong môi trường có nhiều bộ vi xử lý có thể có nhiều đồng
hồ và những đồng hồ này phải đồng bộ với nhau
Có thể dùng hàm số biểu diễn mức độ chính xác đồng hồ hệ thống như sau: C(t) = t
1.2.2 Các loại đồng hồ hệ thống
Đơn giản nhất là hệ thống chỉ có một đồng hồ phục vụ (server clock), yêu cầu độ chính xác và độ tin cậy rất cao Loại đồng hồ này chi phí rất đắt
Một loại đồng hồ khác được dùng trong hệ thống là gồm có một đồng hồ chủ (master clock) hoạt động đồng bộ với nhiều đồng hồ phụ (slave clock) theo phương thức “polling”, tất cả các đồng hồ có cùng độ chính xác, nếu đồng hồ chủ bị hỏng thì được thay thế bằng một trong các đồng hồ phụ
Trong các hệ thống phân tán, đồng hồ hệ thống là tất cả các đồng hồ phân tán, hoạt động đồng bộ với nhau theo cùng một thuật toán
1.2.3 Quan niệm về sự rời rạc thời gian
Trong RTS, thời gian được coi như là một thành phần rời rạc, là một lĩnh vực phức tạp nhưng khá hấp dẫn
1 Trong các hệ điều hành truyền thống, có một đồng hồ quản lý thời gian đồng bộ giữa các tiến trình Hệ thống được báo hiệu theo chu kỳ dựa vào việc phát sinh ra ngắt của đồng hồ Có thể điều chỉnh được chu kỳ thường
là vào khoảng vài chục mili giây, nhưng không được điều chỉnh quá nhanh hay quá chậm làm ảnh hưởng đến thời gian thực hiện của các tiến trình Chính chu kỳ này đã chia thời gian ra thành các phần đủ nhỏ
2 Trong các RTS, hệ thống có sử dụng một đồng hồ có khả năng lập trình điều phối ngắt theo chu kỳ đủ nhỏ một cách hợp lý, thường là vào khoảng vài micro giây
Trang 14Trên thực tế thì các RTS thường áp dụng kết hợp hai quan niệm trên, thường thì quan niệm 1) là cơ sở có sự hỗ trợ của quan niệm 2)
1.2.4 Ràng buộc thời gian
phát tài nguyên, tiến hành các xử lý tính toán và hoàn tất việc trả lời tại thời
Có thể định nghĩa một sự ràng buộc tối thiểu như sau:
(IP, TimeBg (cond 1), TimeEd (cond 2));
với:
IP: chỉ số của tiến trình
TimeBg (cond 1): thời gian bắt đầu của tiến trình
TimeEd (cond 2): thời gian hoàn thành việc xử lý, tính toán
Tùy thuộc vào hệ thống và thời gian xác định tài nguyên cần cấp phát, cũng như quá trình giải phóng sau khi tiến trình sử dụng Có thể đưa ra một ràng buộc khắt khe hơn như sau:
(IP, TimeBg (cond 1), CIP, FIP, TimeEd (cond 2));
với:
IP: chỉ số của tiến trình
TimeBg (cond 1): thời gian bắt đầu của tiến trình
TimeEd (cond 2): thời gian hoàn thành việc xử lý, tính toán
CIP: thời gian dự kiến của tiến trình (số mẫu thời gian)
FIP: tần số mẫu thời gian
1.3 Các lớp chính của hệ thống thời gian thực
Thông thường RTS gồm có:
Hệ thống thời gian thực cứng (Hard RTS)
Hệ thống thời gian thực mềm (Soft RTS)
Trang 151.3.1 Hệ thống thời gian thực cứng
Hard RTS [19] là hệ thống mà sự cố định là một đặc tính của sự đúng lúc trong việc tính toán của một hệ thống Một ràng buộc thời gian thực cố định trong hệ thống nghĩa là sự tính toán trong hệ thống sẽ không có giá trị nếu như
bị trễ, và có thể gây ra hậu quả nghiêm trọng đến hệ thống Nói cách khác một
hệ thống thời gian thực cố định đòi hỏi tất cả các hoạt động phải được hoàn thành đúng giờ Ví dụ những hệ thống có độ tin cậy cao như những lò phản ứng hạt nhân, khoa học điện tử áp dụng trong ngành hàng không, những thiết bị cấp cứu trong y học, v.v…
1.3.2 Hệ thống thời gian thực mềm
Soft RTS [19] là hệ thống có thể bỏ qua một vài lỗi (trễ so với hạn định) khi thực hiện mà không ảnh hưởng đến sự đúng đắn của kết quả nhận được Ví dụ như những hệ thống viễn thông, những hệ thống mạng, những thiết bị điện dân dụng, những hệ thống tự động hóa trong văn phòng, v.v…
Trang 16những hoạt động dựa vào việc đọc bộ cảm biến Hệ thống giám sát đưa ra những hoạt động khi nhận những giá trị của bộ cảm biến Hệ thống liên tục điều khiển
bộ khởi động phần cứng dựa vào giá trị của bộ cảm biến nhận được Hệ thống thu nhận dữ liệu thu thập dữ liệu từ những bộ cảm biến và phân tích
1.4.2 Các ứng dụng hệ thống thời gian thực
1.4.2.1 Hệ thống điều khiển không lưu [6]
Những hệ thống điều khiển không lưu (Air Traffic Control - ATC) là ứng dụng quan trọng, phổ biến và được sử dụng rộng rãi trên thế giới ATC chứa đựng tất cả những nét đặc trưng của hệ thống thời gian thực
Chúng ta xem xét hệ thống ATC giám sát không phận ở Mỹ Mục tiêu của hệ thống là an toàn, hiệu quả và ngăn chặn sự xung đột và những mối nguy hiểm khác đồng thời ATC phải hiển thị dấu vết của tất cả các máy bay và đảm bảo rằng máy bay luôn duy trì một khoảng cách tối thiểu trong mọi thời điểm
Một Radar theo dõi vị trí của mỗi máy bay trong không gian Khi một máy bay xuất hiện trong không gian, sẽ được báo đến một hệ thống truyền thông kỹ thuật số; khi bay trong không gian hệ thống máy tính sẽ thông báo sự khởi hành của nó cho các khu vực lân cận Hệ thống truyền thông còn được sử dụng để truyền thông trực tiếp đến máy bay Những hoạt động điều khiển máy bay của con người thông qua màn hình giao diện đồ họa với phím điều khiển; màn hình hiển thị dấu vết của mỗi máy bay và sự trả lời của nó khi nhận được những hành động ra lệnh Trong hệ thống ATC có những ràng buộc thời gian cho việc điều khiển các thiết bị và môi trường như: Radar phải theo dõi dấu vết của mỗi máy bay trong không gian tối thiểu mỗi lần quan sát cách nhau 10 giây cho mỗi máy bay, vị trí hiện tại và dấu vết của mỗi máy bay nên được cập nhật và hiển thị cứ
3 giây một lần, v.v …
1.4.2.2 Hệ thống máy tính trợ giúp bác sĩ phẫu thuật
Đây cũng là một ứng dụng quan trọng của hệ thống RTS Khi tiến hành phẫu thuật, máy tính sẽ nhận các hình ảnh từ camera, tiến hành phân tích và đưa ra những chỉ thị, nhận định, giúp bác sĩ chẩn đoán và quyết định điều trị như thế nào
Trang 171.4.2.3 Một số ứng dụng khác [15]
Nhiều RTS là hệ thống tới hạn an toàn (safety-critical) Một hệ thống tới hạn
an toàn là hệ thống nếu xảy ra sự cố sẽ dẫn đến thiệt hại tính mạng, tài sản của
con người và gây tổn hại đến môi trường như là hệ thống giám sát nhịp tim
Nhiều phần mềm thời gian thực được nhúng trong những thiết bị phần cứng như phần mềm nhúng trong điện thoại, tivi và những bộ điều khiển thang máy Thường trong những thiết bị này có những yêu cầu thời gian thực ngắn và những yêu cầu về không gian chặc chẽ trong việc cài đặt phần mềm
Những RTS thường là những hệ thống điều khiển: hệ thống thi hành theo hành vi trong môi trường của nó Như: hệ thống tuần tra, hệ thống điều khiển thang máy, v.v… những hệ thống có thể giao tiếp trực tiếp với con người
Một lớp quan trọng của những ứng dụng cần mức độ thông tin cao như là
những hệ thống lập kế hoạch nguồn kinh doanh Những hệ thống này cung cấp
một tập hợp các thiết bị để lập kế hoạch nguồn tài nguyên cần thiết cho một quy trình sản xuất Chúng phải ghi nhận những sự kiện xảy ra trong quy trình sản xuất để đưa ra những lịch biểu sản xuất và đóng vai trò liên kết trao đổi thông tin giữa nhà cung cấp và nhà sản xuất thông qua một mạng máy tính
Trong những ngân hàng hay công ty bảo hiểm có những hệ thống quản lý
luồng công việc giám sát việc thực hiện những nhiệm vụ trong một tổ chức và
phân công những nhiệm vụ này tới người thực hiện trong tổ chức đó Để làm được việc này, hệ thống phải tuân theo những chu kỳ sống và ràng buộc của những nhiệm vụ
Một lớp ứng dụng của hệ thống RTS cần mức độ thông tin cao như là những
hệ thống thương mại điện tử Một hệ thống đấu giá điện tử cung cấp một cơ sở
hạ tầng phân tán trong đó những người tiêu dùng có thể gặp nhau để buôn bán hàng hóa và thỏa thuận giá cả Hệ thống thương mại điện tử 2B (business to business) cho phép những người kinh doanh giới thiệu những dịch vụ của họ, tìm kiếm những đối tác phù hợp, có thể ký kết hợp đồng thông qua hệ thống
1.5 Ngôn ngữ lập trình
Những ứng dụng thời gian thực cũng sử dụng ngôn ngữ lập trình thông thường như những ứng dụng khác Tuy nhiên để sử dụng những ngôn ngữ đó thì cần bổ sung thêm một số đặc trưng thường là không có sẳn hay không đủ để
Trang 18thực hiện những ứng dụng thời gian thực Điều quan trọng nhất để thực hiện được những ứng dụng thời gian thực là những ngôn ngữ đó phải tập hợp nhiều tính năng như: truy cập và điều khiển thời gian, điều khiển đồng thời và khả năng dự đoán trước Để điều khiển và giám sát hành vi thời gian trong một chương trình, nhiều ngôn ngữ chương trình được thiết kế dành riêng cho những yêu cầu của hệ thống thời gian thực Những ngôn ngữ được lựa chọn như là Ada
- một ngôn ngữ chuẩn của quốc tế, Java – là ngôn ngữ phổ biến nhất, và là ngôn ngữ chương trình hướng đối tượng được sử dụng rộng rãi vào cuối thế kỷ XX đầu thế kỷ XXI thích ứng với hệ thống thời gian thực, Occam cũng thu hút sự chú ý bởi sự gọn nhẹ và tao nhã của nó, Esterel [6] cung cấp một ngôn ngữ hướng sự kiện mới lạ cho việc lập trình tương tác như một phần của ứng dụng, Real Time Eucid [8] là ngôn ngữ tìm kiếm với một hệ thống hỗ trợ được thiết kế
hay ngay cả Fortran cũng không chứa đựng những đặc trưng cho áp dụng thời gian thực, vì vậy nó cần được tích hợp liên tục hay thêm những kỹ năng cao để đáp ứng được phần mềm thời gian thực
1.6 Hệ điều hành thời gian thực
1.6.1 Khái niệm hệ điều hành
Một hệ điều hành (OS) là một chương trình mà sau khi được cài vào máy
bằng chương trình boot, nó sẽ quản lý tất cả các chương trình khác trong máy
tính Những chương trình khác là những ứng dụng sử dụng hệ điều hành bằng cách đưa ra những yêu cầu phục vụ thông qua một giao diện chương trình ứng dụng đã được định nghĩa Người sử dụng có thể tương tác trực tiếp với hệ điều hành thông qua một giao diện người dùng như là một ngôn ngữ mệnh lệnh hay qua một giao diện người dùng dạng đồ họa Trong thực tế có rất nhiều hệ điều hành đang được dùng phổ biến như là: UNIX, MS-DOS, MS-Windows, Windows/NT, v.v …
1.6.2 Hệ điều hành thời gian thực [6]
Chức năng quan trọng của hệ điều hành là phải quản lý phần cứng và tài nguyên phần mềm của máy tính cũng như cung cấp dịch vụ cho người sử dụng Những hệ thống thời gian thực ngoài những chức năng này còn được bổ sung thêm những đặc trưng riêng để đáp ứng nhiệm vụ của một hệ điều hành thời gian thực (RTOS) Hỗ trợ thời gian chạy cho ngôn ngữ lập trình, hoạt động như
Trang 19một giao diện giữa phần cứng và những ứng dụng của nó đặc biệt là hỗ trợ những chức năng xử lý liên tục và rời rạc
Tính có thể đoán trước chắc chắn là một yêu cầu quan trọng nhất Điều này
liên quan chặc chẽ với yếu tố thời gian - tất cả các dịch vụ phải thực hiện trong giới hạn và thời gian định trước, và phát sinh điều khiển tại thời điểm đó Ngoài
ra còn có yêu cầu về việc sử dụng những nguồn tài nguyên khác của hệ thống như lưu trữ, thiết bị I/O, tập tin Một chức năng không kém phần quan trọng đó
là việc quản lý lỗi tức là khả năng phát hiện lỗi và điều khiển sửa lỗi phải được
dự đoán trước
Một yêu cầu thứ hai đó là việc có thể thấy được và điều khiển tất cả các
thành phần hệ thống Đối với hệ điều hành thông thường thì phần cứng và hệ thống bị ẩn hoặc bị trừu tượng hóa đối với người sử dụng hay người thiết kế ứng dụng Tuy nhiên, người sử dụng RTOS phải được truy cập và điều khiển hành vi những thành phần của hệ thống để đảm bảo tính có thể đoán trước
Hệ điều hành thời gian thực nên là hệ thống mở - một tập những cơ cấu thích
hợp và linh động, nhưng không ép buộc thực hiện đối với người dùng Nên có thể để định nghĩa một phạm vi rộng rãi các cách thực hiện như là những cách thực hiện khác nhau cho nhiệm vụ lập lịch tùy thuộc vào ứng dụng Tuy nhiên thật khó để xây dựng những hệ thống thỏa mãn mọi ràng buộc đưa ra
1.7 Phân tích thiết kế hệ thống hướng đối tượng với UML
1.7.1 Phân tích, thiết kế hướng đối tượng [9]
Phân tích hướng đối tượng (Object-Oriented Analysis - OOA) là sự điều tra, nghiên cứu trong lĩnh vực hay hệ thống của bài toán theo các khái niệm của lĩnh vực đó, giống như các lớp khái niệm, các liên kết, và sự thay đổi trạng thái Trong OOA nhấn mạnh đến việc tìm kiếm và mô tả các đối tượng hay các khái niệm trong lĩnh vực bài toán Ví dụ, trong hệ thống thông tin quản lý các chuyến bay, gồm có một số khái niệm như máy bay, chuyến bay và phi công Thiết kế hướng đối tượng (Object-Oriented Design - OOD) là sự đặc tả của một giải pháp phần mềm logic trong những giới hạn của các đối tượng phần mềm, như các lớp, các thuộc tính, các phương thức, và sự cộng tác của các đối tượng trong phần mềm
Trang 20Trong OOD nhấn mạnh đến việc định nghĩa những đối tượng phần mềm và chúng cộng tác với nhau như thế nào để thực thi các yêu cầu Ví dụ, đối tượng máy bay phải có một thuộc tính số hiệu đuôi máy bay (tailNum) và phương thức
là lịch sử chuyến bay (FlightHistory)
Hình 1.1 Hướng đối tượng nhấn mạnh sự trình bày các đối tượng
Cuối cùng, trong sự thực hiện hay lập trình hướng đối tượng, thì thực hiện các đối tượng đã được thiết kế ví dụ như là lớp Plane trong Java
1.7.2 Cơ chế của cách tiếp cận hướng đối tượng
Các đối tượng, sự bao gói, sự kế thừa, và đa xạ là những cơ sở quan trọng cho việc phát triển những hệ thống hướng đối tượng Để hiểu rõ và mô tả sự cần thiết cũng như những đặc điểm nổi bậc của một ứng dụng trong thế giới thực phức tạp, một mô hình hướng đối tượng được xây dựng quanh các đối tượng Một đối tượng bao gói cả dữ liệu và hành vi của nó, điều này hàm ý rằng những nhà phân tích có thể sử dụng cách tiếp cận hướng đối tượng chứa đựng cả việc
mô hình hóa dữ liệu và mô hình hóa tiến trình
Những đối tượng cụ thể trong một hệ thống có thể kế thừa những đặc tính từ một thể hiện tổng thể của một đối tượng Ví dụ, nhiều loại đối tượng có thể có một tên và một ngày tạo lập Những đối tượng cụ thể có thể kế thừa những đặc tính tổng thể này từ những đối tượng bố mẹ, và nó có thể kế thừa từ nhiều đối tượng bố mẹ Kế thừa để tránh những định nghĩa dư thừa các đặc tính tương tự
đã được định nghĩa ở những mức cao của hệ thống
1.7.3 Các ưu điểm của lập trình hướng đối tượng [2]
Lập trình hướng đối tượng (LTHDT) đem lại một số lợi thế cho cả người thiết kế lẫn người lập trình Cách tiếp cận hướng đối tượng giải quyết được nhiều vấn đề tồn tại trong quá trình phát triển phần mềm và tạo ra được những
Plane tailNum
Sự hình dung từ miền khái niệm
Sự thể hiện của một ngôn ngữ lập trình hướng đối tượng
Miền khái niệm
public class Plane {
private String tailNum;
public hien FlightHistory() {…}
}
Trang 21sản phẩm phần mềm có chất lượng cao Những phương pháp này mở ra một triển vọng to lớn cho những người lập trình Hy vọng sẽ có nhiều sản phẩm phần mềm tốt hơn, đáp ứng được những tính chất về sản phẩm chất lượng cao trong Công nghệ phần mềm và nhất là bảo trì hệ thống ít tốn kém hơn Những ưu điểm chính của LTHDT là:
1 Thông qua nguyên lý kế thừa, chúng ta có thể loại bỏ được những đoạn chương trình lặp lại, dư thừa trong quá trình mô tả các lớp và mở rộng khả năng sử dụng các lớp đã được xây dựng
2 Chương trình được xây dựng từ những đơn thể (đối tượng) trao đổi với nhau nên việc thiết kế và lập trình sẽ được thực hiện theo quy trình nhất định chứ không phải dựa vào kinh nghiệm và kỹ thuật như trước Điều này đảm bảo rút ngắn được thời gian xây dựng hệ thống và tăng năng suất lao động
3 Nguyên lý che dấu thông tin giúp người lập trình tạo ra được những chương trình an toàn không bị thay đổi bởi những đoạn chương trình khác một cách tùy tiện
4 Có thể xây dựng được ánh xạ các đối tượng của bài toán vào đối tượng của chương trình
5 Cách tiếp cận thiết kế đặt trọng tâm vào dữ liệu, giúp chúng ta xây dựng được mô hình chi tiết và phù hợp với thực tế
6 Những hệ thống hướng đối tượng dễ mở rộng, nâng cấp thành những hệ thống lớn hơn
7 Kỹ thuật truyền thông điệp trong việc trao đổi thông tin giữa các đối tượng giúp cho việc mô tả giao diện với các hệ thống bên ngoài trở nên đơn giản hơn
8 Có thể quản lý được độ phức tạp của những sản phẩm phần mềm
9 Không phải trong hệ thống hướng đối tượng nào cũng có tất cả các tính chất nêu trên Khả năng xây dựng được chương trình có các tính chất đó còn phụ thuộc vào lĩnh vực ứng dụng của dự án tin học và vào phương pháp thực hiện của người phát triển phần mềm
Trang 221.7.4 Quá trình phát triển phần mềm
1.7.4.1 Các bước của quá trình phát triển [4]
Các giai đoạn của một quá trình phát triển một phần mềm gồm có: xác định yêu cầu hệ thống, phân tích, thiết kế, triển khai, vận hành và bảo trì hệ thống Thông thường quá trình phát triển phần mềm được chia thành bốn pha: sơ bộ, soạn thảo, xây dựng và chuyển giao Trong mỗi pha lại chia thành nhiều bước lặp nhỏ Mỗi bước lặp đều gồm một số lượng công việc thực hiện hoàn chỉnh một sản phẩm phần mềm: lập mô hình nghiệp vụ, xác định yêu cầu, phân tích, thiết
kế, triển khai và kiểm thử Tuy nhiên, trong mỗi pha bước lặp khác với bước lặp
ở các pha khác về nội dung cũng như khối lượng công việc cần thực hiện
Ở đây, chỉ xem xét một số giai đoạn chính của quá trình phát triển một phần mềm:
a Đặc tả phần mềm [11]
Là hoạt động đầu tiên để tạo lập những dịch vụ được yêu cầu từ hệ thống và những ràng buộc trong hoạt động và triển khai hệ thống Những hoạt động này thường được gọi là những yêu cầu kỹ nghệ Những yêu cầu kỹ nghệ là một giai đoạn đặc biệt khó khăn của tiến trình phần mềm vì những lỗi phát sinh trong giai đoạn này chắc chắn sẽ dẫn đến những vấn đề nghiêm trọng trong giai đoạn thiết
kế và cài đặt hệ thống
Có bốn pha chính trong tiến trình này:
1 Nghiên cứu khả thi: cần có một sự đánh giá sơ bộ là liệu từ những yêu cầu người dùng có được thỏa mãn khi sử dụng những kỹ thuật phần mềm và phần cứng hiện tại không Việc nghiên cứu sẽ quyết định liệu hệ thống được
đề xuất có hiệu quả về giá cả nhìn từ góc độ kinh doanh và liệu có thể được triển khai trong những giới hạn ngân sách Việc nghiên cứu khả thi được tiến hành dựa trên tiêu chí là „rẻ‟ và „nhanh‟ Và kết quả của việc nghiên cứu đưa đến quyết định là có tiếp tục phân tích chi tiết nữa hay không
2 Những yêu cầu phân tích và suy luận: đây là tiến trình phát sinh từ những yêu cầu hệ thống thông qua việc quan sát những hệ thống đã có, thảo luận với người sử dụng, phân tích nhiệm vụ hệ thống Điều này bao gồm cả sự phát triển của một vài mô hình hệ thống khác
Trang 233 Những yêu cầu đặc tả: là hoạt động chuyển đổi những thông tin thu được trong giai đoạn phân tích thành tài liệu, bao gồm: những yêu cầu người dùng được trừu tượng hóa thành những yêu cầu hệ thống; những chức năng thu được của những yêu cầu hệ thống được mô tả chi tiết hơn
4 Những yêu cầu xác nhận: là hoạt động kiểm tra những yêu cầu, tính vững chắc và đầy đủ Trong suốt tiến trình này chắc chắn sẽ tìm ra lỗi Những lỗi này phải được sửa đổi
Hiển nhiên, những hoạt động trong giai đoạn này là không dễ gì để tiến hành tuần tự Những yêu cầu phân tích sẽ tiếp tục được đặc tả từ đó phát sinh những yêu cầu mới trong tiến trình Vì vậy những hoạt động phân tích, chỉ định, đặc tả
là những hoạt động lặp đi lặp lại cho đến khi phù hợp với yêu cầu hệ thống
sẽ xảy ra trong suốt tiến trình thiết kế
Một đặc tả cho giai đoạn tiếp theo đó là đầu ra cho mỗi hoạt động thiết kế Đặc tả này có thể là trừu tượng, hình thức để làm rõ những yêu cầu hệ thống, và những đặc tả này ngày càng chi tiết hơn Kết quả cuối cùng của tiến trình sẽ là những đặc tả tỉ mỉ, rõ ràng về những thuật toán và cấu trúc dữ liệu để phục vụ cho việc cài đặt hệ thống
Chi tiết những hoạt động của tiến trình thiết kế:
1 Thiết kế kiến trúc: phải chỉ ra và lập thành tài liệu những hệ thống con tạo nên hệ thống và mối quan hệ giữa những hệ thống con
2 Đặc tả trừu tượng: đối với mỗi hệ thống con có một đặc tả trừu tượng những dịch vụ của nó và chỉ ra những ràng buộc giữa các hệ thống này
3 Thiết kế giao diện: đối với mỗi hệ thống con phải thiết kế giao diện cho
nó và giao diện giữa các hệ thống con Đặc tả giao diện phải rõ ràng không được mù mờ cho phép các hệ thống con giao tiếp thông qua các giao diện mà không cần thể hiện thao tác của nó
Trang 244 Thiết kế thành phần: những dịch vụ được phân chia cho các thành phần khác nhau và phải thiết kế giao diện cho các thành phần này
5 Thiết kế cấu trúc dữ liệu: phải thiết kế một cách chi tiết và chỉ định những cấu trúc dữ liệu được sử dụng trong cài đặt hệ thống
6 Thiết kế thuật toán: phải chỉ định và thiết kế một cách chi tiết những thuật toán được sử dụng cho các dịch vụ
Trên đây là mô hình chung cho tiến trình thiết kế Tuy nhiên trong thực tế có thể thay đổi cho phù hợp với từng hệ thống cụ thể
1.7.4.2 Đặc trưng tiến trình phát triển phần mềm hướng đối tượng với UML [10]
Quá trình phát triển phần mềm hướng đối tượng với UML có ba đặc trưng sau đây (đặc trưng tiến trình RUP):
Ca sử dụng điều khiển quá trình phát triển phần mềm
Đặt trọng tâm vào kiến trúc
Tiến trình phát triển là quá trình lặp và tăng dần
Một tiến trình gồm một tập các bước đi có thứ tự, các hoạt động cần thực hiện, các sản phẩm qua từng giai đoạn (các tài liệu, các mô hình), cách điều khiển tiến trình đó và cách đánh giá chất lượng của các kết quả nhận được
UML là một tiến trình độc lập quy mô lớn, điều này có nghĩa rằng có thể dùng nó với một số tiến trình kỹ nghệ phần mềm RUP là một tiến trình đặc biệt phù hợp với UML Mục tiêu của RUP là phải tạo ra sản phẩm phần mềm chất lượng tốt nhất đáp ứng nhu cầu sử dụng của người dùng cuối trong phạm vi các hạn mục và ngân quỹ được dự đoán RUP nắm bắt những luồng công việc phát triển phần mềm tốt nhất phù hợp yêu cầu của các dự án và các tổ chức RUP cung cấp một cách tiếp cận có nguyên tắc về sự phân công những nhiệm vụ như thế nào và có trách nhiệm trong phạm vi một tổ chức phát triển phần mềm trong khi vẫn cho phép đội dự án điều phối sự thay đổi cần thiết của một dự án
Như đã nêu ở trên, một trong những đặc trưng của RUP là tiến trình lặp Trong những hệ thống đơn giản, dường như việc thực hiện rất hoàn hảo khi định
rõ dãy công việc đầy đủ của bài toán, thiết kế giải pháp tổng thể, xây dựng phần mềm, sau đó là kiểm thử sản phẩm cuối cùng Tuy nhiên, đối với những hệ
Trang 25thống phức tạp và yêu cầu tinh vi thì cách tiếp cận tuyến tính này đối với sự phát triển của hệ thống là không thực tế Cách tiếp cận lặp cùng với việc phát triển tăng dần của tiến trình thông qua việc làm mịn liên tục và tăng dần sự phát triển của một giải pháp hiệu quả qua nhiều chu kỳ phát triển phần mềm Việc xây dựng trong phương pháp lặp là mềm dẻo, linh động để cung cấp những nhu cầu mới hay những thay đổi chiến lược trong các đối tượng nghiệp vụ Ngoài ra nó còn cho phép dự án nhận biết và giải quyết sớm những rủi ro phát sinh
Đặc trưng tiếp theo của RUP là đặt trọng tâm vào kiến trúc Kiến trúc phần mềm đóng vai trò như một khung nền mà dựa trên nó phần mềm được xây dựng
và phát triển đến hoàn chỉnh Có một kiến trúc mạnh mẽ làm cho việc phát triển song song được thuận lợi, giảm tối thiểu công việc làm lại, và tăng thêm khả năng dùng lại các thành phần cũng như việc bảo trì hệ thống Kế hoạch chi tiết kiến trúc được xem như là một cơ sở vững chắc mà dựa vào đó để lập kế hoạch
và quản lý việc phát triển phần mềm theo thành phần của nó
Những hoạt động phát triển của RUP được điều khiển bởi ca sử dụng RUP nhấn mạnh vào việc xây dựng những hệ thống dựa vào một sự hiểu biết trọn vẹn làm thế nào mà hệ thống được thực hiện Những khái niệm của các ca sử dụng
và những kịch bản được dùng để sắp xếp luồng tiến trình từ những yêu cầu được nắm bắt thông qua việc kiểm thử và để cung cấp dấu vết công việc qua việc phát triển hệ thống
RUP hỗ trợ các kỹ thuật hướng đối tượng Những mô hình của RUP hỗ trợ các khái niệm về các đối tượng, các lớp, các mối quan hệ giữa chúng
1.8 Thiết kế hệ thống thời gian thực
1.8.1 Thiết kế hệ thống thời gian thực [14]
Thiết kế RTS đề cập đến vấn đề làm thế nào những ràng buộc thời gian thực
có thể được cài đặt trong phần cứng, phần mềm hoặc cả hai Thông thường RTS được thiết kế như sau: một tập những đặc tả hệ thống, bao gồm cả những ràng buộc thời gian thực, được đặc tả bởi nhà thiết kế
Một phương pháp luận tổng hợp dùng nhiều loại mô hình hệ thống, mô hình thực hiện, mô hình đánh giá, mô hình khảo sát, để thiết kế hệ thống thỏa mãn tất
cả những đặc tả hệ thống Khâu thiết kế cuối cùng phải được kiểm tra, xác nhận thông qua sự mô phỏng, kiểm thử
Trang 26Trong thiết kế RTS ta phải chú trọng đến ba lĩnh vực quan trọng đó là lịch biểu thời gian thực, thiết kế phần cứng và thiết kế phần mềm thời gian thực
1.8.1.1 Lịch biểu thời gian thực
Trong RTS thường phải xử lý những nhiệm vụ đồng thời khác nhau Lịch biểu thời gian thực được định nghĩa để ấn định thời gian thực hiện chính xác cho một tập những nhiệm vụ thời gian thực cũng như những ràng buộc tạm thời Trong đó các thành phần chu kỳ, pha, hạn định, quyền ưu tiên, những yêu cầu tài nguyên phải được thỏa mãn
Một nhiệm vụ là một dãy hữu hạn của các bước tính thực hiện vài hành động
của RTS và có thể đặc trưng bởi thời gian thực hiện, hạn định (deadline) của nó
Những nhiệm vụ định kỳ là những nhiệm vụ thực hiện lặp lại trong một chu kỳ thời gian Mỗi trường hợp thực hiện của nhiệm vụ định kỳ gọi là một công việc của nhiệm vụ đó
Lịch biểu có thể là dựa vào thời gian (time-driven) hay theo quyền ưu tiên
(priority-driven) Một giải thuật lập lịch time-driven định rõ thời gian thực hiện
chính xác của tất cả các nhiệm vụ Một giải thuật lập lịch priority-driven gán
quyền ưu tiên cho những nhiệm vụ và định rõ nhiệm vụ nào sẽ được thực hiện tại một thời điểm đặc biệt dựa vào quyền ưu tiên của nó
Trang 271.8.1.3 Thiết kế phần mềm
Thiết kế phần mềm thời gian thực là phải giải quyết những vấn đề thời gian thực đó là vấn đề lập lịch, tức là một tập những nhiệm vụ phải được lập lịch trên một tập những bộ xử lý thỏa mãn đồng thời những ràng buộc thời gian thực và
sử dụng hiệu quả nhất có thể những tài nguyên bộ nhớ và bộ xử lý Bài toán giải quyết vấn đề lập lịch là một một bài toán thuộc NP-complete Sau đây, sẽ giới thiệu các chiến lược lập lịch cho phần mềm
1.8.1.3.1 Tổng hợp phần mềm hình thức
Việc lập lịch cho phần mềm có thể căn cứ vào sự tính toán dữ liệu, những cấu trúc điều khiển trong một sự đặc tả hệ thống Để có được một kỹ thuật lập
lịch có thể kết hợp ba dạng lập lịch sau: lập lịch tĩnh (static) được dùng để khai
thác những phụ thuộc cố định giữa các khối của sự hoạt động Thứ hai là lập lịch
bán tĩnh (quasi-static) dùng để chỉ rõ những hoạt động phụ thuộc dữ liệu trong xét theo tỉ lệ lập lịch Thứ ba là lập lịch động (dynamic) có thể được sử dụng để
xác định nên thực hiện những nhiệm vụ nào
Việc tổng hợp thực hiện phần mềm trong một bộ xử lý đơn, vẫn đang tiếp tục nghiên cứu Buck đã đề xuất một giải thuật tính toán lập lịch quasi-static dựa vào mô hình luồng dữ liệu logic (Boolean Data Flow) Theon và các đồng nghiệp đã đề xuất một kỹ thuật khai thác thông tin tĩnh trong việc đặc tả và trích
ra từ một sự mô tả ràng buộc của các cụm trong những luồng của hệ thống lập lịch tĩnh
1.8.1.3.2 Những khung ứng dụng hướng đối tượng
Một mô hình khác của phát triển phần mềm cho những hệ thống thời gian thực là những khung ứng dụng hướng đối tượng (OOAF) Một OOAF là một ứng dụng có thể dùng lại, có thể dùng chung, và có thể dùng để đặc tả những ứng dụng của khách hàng
1.8.1.3.3 Hệ điều hành thời gian thực
Cuối cùng là hệ điều hành thời gian thực (RTOS), được tách rời và có các phiên bản tối ưu của các hệ điều hành chia sẻ thời gian RTOS có những nét đặc trưng sau: chuyển mạch ngữ cảnh nhanh, kích thước nhỏ gọn, hồi đáp nhanh cho các ngắt bên ngoài, tối thiểu các khoảng thời gian của ngắt lỗi, không có bộ nhớ
ảo, mã và dữ liệu chỉ ở trong bộ nhớ, và sự tích lũy dữ liệu nhanh thông qua các
Trang 28dãy tập tin riêng biệt [12] RTOS kernel duy trì một đồng hồ thời gian thực, cung cấp các cơ chế lập lịch ưu tiên, cung cấp những đồng hồ báo thức đặc biệt,
và cho phép các tác vụ tạm ngưng hay lấy lại quyền thực hiện Trong các RTOS kernel phổ biến là đa tác vụ và truyền thông giữa các tác vụ (inter-task communication) và đạt được sự đồng bộ theo những dạng chuẩn như các hộp thư (mailboxes), các sự kiện, các tín hiệu, và các cờ lệnh (semaphores)
1.8.2 Phương pháp hướng đối tượng trong RTS với UML
Các RTS có thể được mô hình hóa bởi phương pháp hướng đối tượng được
áp dụng rộng rãi trong việc thiết kế phần mềm và phần cứng Phương pháp hướng đối tượng có rất nhiều lợi ích trong thiết kế cấu trúc truyền thống mà còn rất hiệu quả trong RTS, mỗi luồng tiến trình có thể được mô hình hóa bởi một lớp Sự bao gói dữ liệu và thời gian trong một lớp làm cho hệ thống an toàn hơn,
và có thể được nâng cấp dễ dàng hơn những hệ thống thông thường
Một ngôn ngữ mô hình hóa hướng đối tượng chuẩn UML được áp dụng trong RTS UML được xem là mẫu mô hình hóa rất tốt trong RTS Thêm nữa, những ngôn ngữ chương trình như Java, gần đây được mở rộng cho việc thiết kế những ứng dụng thời gian thực
Trong những tài nguyên mô hình hóa UML thời gian thực, những đặc tính chất lượng dịch vụ (QoS) cũng được nhắc đến dựa vào sự phân tích số lượng Những đặc tính này được đưa ra như là những ràng buộc đến các phần tử mô hình định rõ hành vi thời gian chạy, bao gồm các ca sử dụng (use cases), những
sự tương tác, các thao tác, những sự chuyển đổi máy trạng thái, các hoạt động,
và các hành động Một sự ánh xạ thực hiện (realization mapping) được sử dụng
để so sánh những đặc trưng của QoS Việc ánh xạ này là một sự khai báo cú pháp giống như là một tài nguyên đặc biệt hỗ trợ một phần tử logic đặc biệt trong một vài cách không chỉ định rõ Người dùng phải xác định ngữ nghĩa và
tính hợp lệ của sự thực hiện (realization) Nhiều hình thức hơn và nhiều mẫu
phức tạp hơn giống như các khuôn mẫu chuẩn, bao gồm sự kết hợp tri thức ngữ nghĩa của tự nhiên và của các phần tử mô hình kỹ nghệ Ví dụ một kênh của CORBA có thể thực hiện một sự kết nối truyền thông giữa hai đối tượng trong một mô hình logic Một gói thực hiện được mô hình hóa như là một gói UML và trình bày một tập những biểu đồ nhất quán tương thích và không loại trừ lẫn
Trang 29nhau Một mô hình logic có thể có một số gói thực hiện, mỗi một gói trình bày một biểu đồ riêng biệt của mô hình logic ánh xạ chính xác một mô hình kỹ nghệ.
Sự đặc tả thời gian thực trong Java gần đây được đề xuất bởi một nhóm các chuyên gia nghiên cứu thời gian thực trong Java (RTJEG) bắt đầu thực hiện từ 3/1999 Ngôn ngữ lập trình Java, tự bản thân nó không được hỗ trợ lập trình thời gian thực Việc định nghĩa thêm bảy lớp mới cung cấp tính năng thời gian thực làm cho Java càng trở nên nổi bậc Đó là: lập lịch, quản lý bộ nhớ, đồng bộ, điều khiển sự kiện không đồng bộ, chuyển giao điều khiển không đồng bộ, luồng kết thúc không đồng bộ, truy cập bộ nhớ vật lý Mỗi một lĩnh vực xem xét trạng thái
kỹ thuật trong hệ thống thời gian thực và triển khai ứng dụng
Đối với lập lịch, chỉ đặc tả một lịch biểu chiếm quyền ưu tiên cố định không vượt quá 28 quyền ưu tiên Trong quản lý bộ nhớ, định nghĩa một vài vùng bộ nhớ như scoped memory, immortal memmory, và Java heap Đối với vấn đề đồng bộ, yêu cầu cài đặt giao thức kế thừa ưu tiên mặc định và định nghĩa hàng đợi cho sự truyền thông trong những luồng Java thông thường, luồng thời gian
thực và luồng No-Heap Real-Time Trong điều khiển sự kiện không đồng bộ,
định nghĩa hai lớp mới: sự kiện không đồng bộ và bộ điều khiển sự kiện không
đồng bộ (AsyncEvent and AsyncEventHandler) Một lớp Clock được đặc tả cho
vấn đề mô hình hóa thời gian Có thể cài đặt nhiều hơn một clock Đối với sự chuyển giao không đồng bộ, một ngoại lệ ngắt không đồng bộ
(AsynchronouslyInterruptedException) được đặc tả cho sự chuyển giao điều
khiển không đồng bộ Đối với luồng kết thúc không đồng bộ cài đặc việc ngừng
lại an toàn Trong truy cập bộ nhớ vật lý, định nghĩa hai lớp: RawMemoryAccess
cho phép truy cập bộ nhớ dạng byte, word, long, nhóm nhiều byte, và
PhysicalMemory thì những đối tượng trong Java có thể định vị
1.9 Kết luận
Chương này đã trình bày những khái niệm cơ bản nhất về hệ thống thời gian thực, những đặc điểm nổi bậc của nó so với các hệ thống khác Trình bày các vấn đề về thời gian cũng như những yêu cầu về hệ điều hành thời gian thực, về ngôn ngữ lập trình, những ứng dụng phổ biến của RTS Chương này mô tả khái quát phương pháp phân tích thiết kế hướng đối tượng, về những đặc trưng của tiến trình phát triển phần mềm hướng đối tượng với UML, cùng với những ưu điểm của phương pháp hướng đối tượng đối việc phát triển RTS
Trang 30UML là một ngôn ngữ mô hình đồ họa, trực quan, đặc tả có cấu trúc, là ngôn ngữ làm tài liệu, và mô hình hóa rất tốt các hệ thống phần mềm Nó là công cụ dành cho việc thiết kế các hệ thống phần mềm chuyên sâu UML không hạn chế trong việc mô hình hóa phần mềm Trên thực tế nó biểu diễn khá tốt mô hình hóa các hệ thống không phải phần mềm UML làm đơn giản hóa tiến trình phức tạp của việc thiết kế phần mềm Nó cung cấp cả khung nhìn cấu trúc và khung nhìn hành vi của hệ thống
Riêng đối với các phần mềm hướng đối tượng, UML nổi bậc với các khả năng sau:
Cho phép mô tả toàn bộ các sản phẩm phân tích và thiết kế
Trợ giúp việc tự động hóa quá trình thiết kế trên máy tính
Trợ giúp việc dịch xuôi và dịch ngược các thiết kế sang mã nguồn của ngôn ngữ lập trình và cơ sở dữ liệu
2.1.2 Các biểu đồ trong UML 2.0
2.1.2.1 Các biểu đồ về cấu trúc [1]
Đây là các biểu đồ dùng để phản ánh sắc thái tĩnh của hệ thống Gồm có sáu loại biểu đồ:
1) Biểu đồ lớp: Biểu đồ lớp thể hiện cấu trúc tĩnh của các lớp trong hệ thống
(xem hình 2.1) Các lớp biểu diễn cho các sự vật mà hệ thống quan tâm
Trang 31Các lớp có thể liên quan với nhau theo nhiều cách: liên kết (kết nối với nhau), phụ thuộc (lớp này phụ thuộc hay dùng một lớp khác), tổng quát hóa (một lớp được tổng quát hóa thành một lớp khác) và gói (cùng gom vào một gói) Các mối liên quan được trình bày trong biểu đồ lớp cùng với cấu trúc bên trong của mỗi lớp (các thuộc tính cùng với các thao tác) Biểu đồ lớp được xem là tĩnh vì cấu trúc mà nó mô tả luôn luôn đúng vào mọi lúc trong chu trình sống của hệ thống Thường thì hệ thống được mô
tả bởi một số biểu đồ lớp (không phải là gom mọi lớp vào cùng một biểu đồ), và một lớp có thể tham gia vào nhiều biểu đồ
Hình 2.1 Một biểu đồ lớp
Trong biểu đồ lớp trên thể hiện một nhân viên có thể không dùng, dùng một hay nhiều máy tính Và mỗi nhân viên được thể hiện qua tên và tuổi, cũng như mỗi máy tính có các đặc trưng của nó như tên, bộ nhớ
2) Biểu đồ đối tượng: Biểu đồ đối tượng thể hiện các đối tượng thay cho các
lớp Một biểu đồ đối tượng đưa ra một tập các đối tượng và các mối quan
hệ của chúng tại một thời điểm Nó dùng các ký pháp như biểu đồ lớp (xem hình 2.2), ngoại trừ hai điểm: tên đối tượng được gạch dưới và mọi kết nối cụ thể trong liên kết đều được vẽ ra Biểu đồ đối tượng ít được dùng, trừ khi nó được dùng làm nền cho biểu đồ truyền thông, trên đó được vẽ thêm các thông điệp chuyển giao giữa các đối tượng
Hình 2.2 Biểu đồ đối tượng tương ứng với biểu đồ lớp ở hình 2.1
Biểu đồ này trình bày một đối tượng Ba của lớp Nhan vien sử dụng cụ thể là hai máy tính: máy tính ở nhà và máy tính ở cơ quan
0 1 1 *
Dung
Nhan vien ten : String tuoi : Integer
May tinh ten : String
Trang 32bo nho = 128 meg
Bo tri:
dbadmin.exe tkmsd.exe
:RAID farm
<<RS-232>>
<<Tethernet>>
3) Biểu đồ thành phần: Biểu đồ thành phần trình bày cấu trúc vật lý của
chương trình dưới dạng các thành phần, cùng với các mối quan hệ phụ thuộc giữa chúng (xem hình 2.3) Một thành phần có thể là thành phần mã nguồn, thành phần mã nhị phân, hoặc thành phần exe Mỗi thành phần trong biểu đồ thành phần tương ứng với một hay nhiều lớp, giao diện hay hợp tác trong biểu đồ lớp Biểu đồ thành phần dùng để trình bày góc nhìn thực thi của hệ thống
Hình 2.3 Biểu đồ thành phần
Trong biểu đồ thành phần trên thể hiện mối quan hệ giữa tệp thực thi (find.exe), hai tệp thư viện (abcd.dll, nagha.dll) và hai tệp tài liệu (index.html, find.html)
4) Biểu đồ triển khai: Biểu đồ triển khai trình bày kiến trúc vật lý của phần
cứng và phần mềm hệ thống Nó cho thấy các máy tính và thiết bị (các nút), cùng với các kết nối giữa chúng Các thành phần thực hiện được (exe) được phân vào các nút, cho thấy các đơn vị phần mềm được thực hiện trên các nút nào (hình 2.4)
Hình 2.4 Biểu đồ triển khai
Trang 335) Biểu đồ gói: Gói là một hình thức gom nhóm các phần tử Phần tử ở đây
có thể là các lớp, các ca sử dụng, các thành phần, v.v … Giữa các gói (hình chữ nhật có quai) có thể có các mối quan hệ phụ thuộc, tạo nên một biểu đồ, gọi là biểu đồ gói (hình 2.5)
Hình 2.5 Biểu đồ gói
6) Biểu đồ cấu trúc đa hợp: Là biểu đồ diễn tả cấu trúc bên trong của một loài
(classifier), như lớp, gói, giao diện, hợp tác, v.v…, chỉ ra các điểm tương tác của loài đó với các thành phần còn lại của hệ thống, cũng như chỉ ra vai
trò của các bộ phận tham gia thực hiện hành vi chung của loài đó
Hình 2.6 Biểu đồ cấu trúc đa hợp
Trong biểu đồ trên diễn tả cấu trúc nội tại của lớp ô tô, đối tượng bánh sau của lớp bánh xe liên kết với động cơ qua khớp nối
2.1.2.2 Các biểu đồ hành vi
Đây là các biểu đồ dùng để phản ánh sắc thái động của hệ thống Gồm có bảy loại biểu đồ
7) Biểu đồ ca sử dụng: Biểu đồ ca sử dụng trình bày một số tác nhân ngoài
và sự liên hệ của chúng với các ca sử dụng mà hệ thống cung cấp (hình 2.7) Một ca sử dụng là sự diễn tả một chức năng mà hệ thống có khả năng cung cấp Ca sử dụng có thể được đặc tả (ngoài biểu đồ) bằng một
Dich vu Nguoi dung
Trang 34văn bảng hay bằng một biểu đồ hoạt động, ở đó chỉ đề cập hệ thống làm
gì, chứ không nói hệ thống làm như thế nào
Khach hang
Thong ke ban hang
Ky hop dong bao hiem
Nguoi ban bao hiem
Thong ke khach hang
Hình 2.7 Biểu đồ ca sử dụng
8) Biểu đồ trình tự: Biểu đồ trình tự trình bày một số đối tượng với các
thông điệp được chuyển giao giữa chúng, đặc biệt làm rõ trình tự chuyển giao các thông điệp dọc theo trục thời gian (trục thẳng đứng) Biểu đồ trình tự dùng để diễn tả một sự hợp tác (hay tương tác) của một nhóm đối
tượng (xem hình 2.8)
Hình 2.8 Biểu đồ trình tự
Trong biểu đồ trên mô tả yêu cầu in tệp của máy tính Máy tính gởi yêu cầu tới dịch vụ in, nếu máy in rãnh thì tiến hành in nội dung của tệp, còn ngược lại thì lưu tệp vào hàng đợi và gởi thông tin phản hồi về dịch vụ in, máy tính
9) Biểu đồ truyền thông: Biểu đồ truyền thông cũng trình bày một sự hợp tác
(tương tác) của một nhóm đối tượng như biểu đồ trình tự song biểu đồ truyền thông lại nhấn mạnh đến bối cảnh của sự hợp tác Nó cũng cho một nhóm các đối tượng cùng với các liên kết giữa chúng, như trong biểu đồ
Trang 35đối tượng, nhưng vẽ thêm các thông điệp (mũi tên nhỏ) dọc theo các kết
nối đó Các thông điệp được đánh số để phân biệt trước sau (xem hình 2.9)
Hình 2.9 Biểu đồ truyền thông
10) Biểu đồ máy trạng thái: Có những đối tượng có các cách phản ứng linh
hoạt trước những sự kiện từ bên ngoài Hành vi của loại đối tượng này được diễn tả bởi một biểu đồ máy trạng thái Biểu đồ máy trạng thái trình bày các trạng thái có thể của đối tượng và chỉ rõ các sự kiện nào sẽ làm cho đối tượng thay đổi từ trạng thái này sang trạng thái kia (xem hình 2.10) Một sự kiện có thể là một tín hiệu đặc biệt, một tin báo vừa hết một thời hạn hay một điều kiện nào đó vừa được thỏa mãn, mà đối tượng tiếp nhận qua thông điệp gởi tới từ một đối tượng khác Một sự thay đổi trạng thái gọi là một dịch chuyển Có thể có các hành động xảy ra gắn với trạng thái hay các bước dịch chuyển Biểu đồ máy trạng thái không phải được
vẽ cho tất cả các lớp, mà chỉ cho các lớp khi đối tượng của nó có khả năng ứng xử trước các sự kiện xảy đến tùy thuộc vào trạng thái hiện tại của nó
Hình 2.10 Biểu đồ máy trạng thái
11) Biểu đồ hoạt động: Biểu đồ hoạt động trình bày luồng dịch chuyển từ
hành động này sang hành động khác, bao gồm sự dịch chuyển tuần tự, rẽ nhánh theo điều kiện hay rẽ nhánh song song (xem hình 2.11) Thường thì biểu đồ hoạt động dùng để đặc tả một thao tác của một lớp, song nó cũng
[ May in ranh] 1.1: In (tep)
[ May in ban] 1.2: Luu (tep) 1: In (tep)
xuong (tang) den noi den tang tret
o tang tret
Di len
Di xuong tang tret
Di xuon
g
Dung
Trang 36có thể được dùng để mô tả các luồng hoạt động khác, như là ca sử dụng
hay tương tác
Hình 2.11 Biểu đồ hoạt động
12) Biểu đồ bao quát tương tác: Đây là một biến thể của biểu đồ hoạt động,
mà trong đó các nút không những là các hành động, mà còn có thể là các biểu đồ tương tác Nó cho ta một cái nhìn bao quát đối với một tương tác phức tạp (hình 2.12)
Hình 2.12 Biểu đồ bao quát tương tác
Trong biểu đồ này, ký hiệu ref chỉ ra khung tương tác cụ thể, ký hiệu sd là biểu đồ tuần tự, cd là biểu đồ truyền thông
13) Biểu đồ thời khắc: Là biểu đồ diễn tả các giai đoạn trải qua theo thời gian
của một (hay nhiều) đối tượng (hình 2.13)
phong Giu sach Vat kho
{60 phut} {30 phut}
Mayin.In(tep) [dia con]
Trang 37Biểu đồ trên thể hiện thời gian thực hiện cụ thể các công đoạn của máy giặt,
từ công đoạn trộn xà phòng cho đến công đoạn kết thúc
2.2 Hệ thống điều khiển thang máy (ECS)
2.2.1 Mô tả hệ thống
Xây dựng hệ thống thang máy phục vụ trong một tòa nhà nhiều tầng Trong buồng thang máy có các nút số tương ứng với số tầng trong toà nhà Mỗi tầng cũng có các nút để yêu cầu thang máy Thang máy có thể được yêu cầu dừng tại một tầng hay di chuyển theo hướng phù hợp Thang máy phải phục vụ tất cả các yêu cầu trong cùng hướng trước khi nó di chuyển theo hướng ngược lại Khi thang máy đến một tầng khác tầng đích (tầng hành khách muốn đến), mà không
có yêu cầu ra vào thang máy trong cùng hướng di chuyển của nó thì nó tiếp tục
di chuyển đến tầng đích mà không dừng lại hay mở cửa tầng Tuy nhiên, khi có yêu cầu thì thang máy sẽ dừng lại và mở cửa (trong khoảng thời gian quy định) Khi thang máy đến một tầng là yêu cầu cuối cùng theo hướng di chuyển của nó, cửa mở và sau đó hành vi của nó phụ thuộc vào trạng thái của toà nhà (nếu không có yêu cầu gì thì thang máy sẽ dừng ở tầng hiện tại và cửa thang máy đóng) Nếu thang máy không có yêu cầu di chuyển trong cùng hướng mà hành khách có yêu cầu đi thang máy theo hướng đó thì phải bước vào buồng thang máy và nhấn nút đến tầng mong muốn trước khi cửa thang máy đóng Mặt khác thang máy sẽ tự do di chuyển theo hướng ngược lại để phục vụ yêu cầu khác, nếu có Yêu cầu của hệ thống thang máy là phải phục vụ hành khách trong thời gian (thời gian thực) phù hợp thực tế
2.2.2 Các chức năng chính của hệ thống
Dựa vào sự mô tả hoạt động của ECS ở phần trên, có thể đưa ra các chức năng chính của hệ thống như sau:
Phục vụ yêu cầu gọi thang máy của hành khách;
Đưa hành khách đến tầng được yêu cầu;
Mở/đóng cửa thang máy phục vụ yêu cầu ra, vào thang máy của hành khách;
Di chuyển/dừng thang máy;
Ngắt khẩn cấp khi phát hiện sự không an toàn
Trang 382.2.3 Mục tiêu của hệ thống
Minh họa việc phân tích thiết kế hướng đối tượng với UML;
Minh họa tiêu biểu cho hệ thống thời gian thực;
Ứng dụng mô phỏng phần mềm theo ngôn ngữ lập trình hướng đối tượng Java – là một ngôn ngữ lập trình hướng đối tượng hiện nay đang được dùng rất phổ biến;
Hiển thị giao diện thuận tiện giúp cho hành khách có thể điều khiển thang máy;
hành khách giữa các tầng trong toà nhà một cách tự động, nhanh chóng, tiện lợi và an toàn
2.3 Phân tích thiết kế hệ thống ECS qua các biểu đồ của UML
Một biểu đồ ca sử dụng mô hình hóa khung nhìn thiết kế động của hệ thống Các biểu đồ ca sử dụng đặt trọng tâm vào việc mô hình hóa hành vi của một hệ thống, một hệ thống con, hay một lớp Biểu đồ ca sử dụng trình bày một tập các các ca sử dụng, các tác nhân và các mối quan hệ của chúng Các thành phần chính của một biểu đồ ca sử dụng:
Các ca sử dụng
Các tác nhân
Các quan hệ phụ thuộc, tổng quát hóa và liên kết
Qua sự khảo sát, và dựa vào các chức năng chính của ECS, các biểu đồ ca sử dụng của hệ thống thang máy được thể hiện trong hình sau:
Trang 39Hình 2.14 Biểu đồ ca sử dụng của hệ thống thang máy
Có tám ca sử dụng của hệ thống thang máy được mô tả chi tiết như sau:
Yeu cau thang may (yêu cầu thang máy): ca sử dụng này gồm một số
các kịch bản được trình bày trong phần sau Những kịch bản này mô tả việc thang máy nhận yêu cầu thang máy từ hành khách, bật tắt đèn, chuyển nút nhấn (chế độ được nhấn hay chưa nhấn), cập nhật các yêu cầu gọi thang máy tới bộ phận điều khiển thang máy, v.v …
Yeu cau den tang (yêu cầu đến tầng): tương tự như ca sử dụng yêu cầu
thang máy, ca sử dụng này gồm các chức năng thang máy nhận yêu cầu đến tầng từ hành khách, bật tắt đèn, chuyển nút nhấn (chế độ được nhấn hay chưa nhấn) trong thang máy, cập nhật các yêu cầu đến tầng tới bộ phận điều khiển thang máy, v.v …
Cho biet huong di chuyen (cho biết hướng di chuyển lên/xuống): thang
máy nên cung cấp cơ chế này để hành khách biết được hướng di chuyển hiện tại của thang máy, để có thể quyết định là bước vào hay ra khỏi thang máy
Cho biet vi tri thang may (cho biết vị trí thang máy hiện tại đang đến
tầng nào): giúp cho hành khách chuẩn bị rời khỏi thang máy
Mo/dong cua (mở/đóng cửa): thang máy có thể mở hay đóng cửa để hành
khách có thể bước vào hay ra khỏi thang máy Ca sử dụng này còn bao hàm chức năng chuyển trạng thái của cửa (cửa đang đóng nếu hành khách muốn vào thang máy thì cửa phải mở trong thời gian quy định)
Yeu cau den tang
Di chuyen/
dung thang may
Mo/dong cua Cho biet
huong di chuyen thang may
Cho biet vi tri thang may
Khoi dong/
dong thang máy
Nguoi quan ly
Bo kich hoat ngat khan cap
Trang 40 Di chuyen/dung thang may (di chuyển/dừng thang máy): đây là chức
năng chính của thang máy, đưa ra quyết định dừng hay điều khiển hướng của thang máy
Khoi dong/dong thang máy (khởi động/đóng thang máy): cho phép
người quản lý có thể khởi động hay kết thúc việc sử dụng thang máy
Bo kich hoat ngat khan cap (bộ kích hoạt ngắt khẩn cấp): đây là cơ chế
an toàn trong buồng thang máy để đảm bảo không phát sinh tình trạng không an toàn
Từ đây có thể nhận thấy có hai tác nhân tương tác với ECS: một tác nhân cụ thể là người quản lý, chỉ rõ người quản lý thang máy, một tác nhân trừu tượng là hành khách sử dụng thang máy Trong đó hành khách sử dụng thang máy đóng vai trò tương tác chính đến hệ thống Hành khách tương tác với thang máy bằng cách ra yêu cầu gọi thang máy và yêu cầu đến tầng nào trong tòa nhà, thang máy phải cho hành khách biết hướng di chuyển cũng như vị trí thang máy đang đi đến đâu (tầng nào) theo hướng nào (lên hay xuống)
2.3.2 Biểu đồ lớp
Biểu đồ lớp, một trong những biểu đồ được sử dụng phổ biến nhất trong hệ thống hướng đối tượng, mô hình hóa khung nhìn thiết kế tĩnh của một hệ thống Mục đích chính của khung nhìn này là hỗ trợ các yêu cầu chức năng của hệ thống – là các dịch vụ mà hệ thống cung cấp cho người dùng cuối Các biểu đồ lớp trong hệ thống qua hai khung nhìn khác nhau (khung nhìn xây dựng đối tượng và khung nhìn kiến trúc phần mềm) sẽ được trình bày cụ thể trong phần sau
Một biểu đồ lớp thể hiện một tập các lớp, các giao diện, các sự cộng tác và các mối quan hệ của chúng Các biểu đồ lớp mô tả tổng thể hệ thống, như là kiến trúc hệ thống, bao gồm các thuộc tính và các thao tác trong lớp Thường các thành phần của một biểu đồ lớp bao gồm: