Tải bản đầy đủ (.pdf) (81 trang)

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ạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.51 MB, 81 trang )



ĐẠ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



Ngành : Công nghệ thông tin
Chuyên ngành : Công nghệ phần mềm
Mã số : 60.48.10




LUẬN VĂN THẠC SĨ





NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS Đoàn Văn Ban






Hà 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

- 1 -

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

STT
Ký hiệu/
Chữ viết tắt
Viết đầy đủ
Ý nghĩa
1
ATC
Air Traffic Control

Hệ thống điều khiển không
lƣu
2
CORBA
Common Object Request
Broker Architecture
Kiến trúc môi giới yêu cầu
đối tƣợng chung
3
ECS
Elevator Control System
Hệ thống điều khiển thang
máy
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
Group
Thời gian thực của nhóm
chuyên gia Java
12
UML
Unified Modeling
Language
Ngôn ngữ mô hình hoá
thống nhất











- 2 -

DANH 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

- 3 -

Hì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








- 4 -

MỞ ĐẦ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.

- 5 -


Chƣơ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.

























- 6 -

CHƢƠ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
1.1.1. Những hệ thống thời gian thực (Real Time System - RTS)
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.

- 7 -

1.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ụ
thuộc vào thời gian phát sinh kết quả [11].
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.

Tác nhân kích hoạt gồm có:
1. Sự kích hoạt liên tục, đều đặn (chu kỳ): xảy ra tại những khoảng thời gian
có thể báo trƣớc.
2. Sự kích hoạt rời rạc: xảy ra thất thƣờng, thƣờng đƣợc báo hiệu nhƣ là cơ
chế ngắt của máy tính.
Sự kích hoạt theo chu kỳ trong hệ thống thời gian thực thƣờng đƣợc phát
sinh bởi những bộ cảm biến liên kết với hệ thống. Những thông tin này cho biết
trạng thái của môi trƣờng hệ thống. Sự trả lời đƣợc gởi tới những bộ kích hoạt
điều khiển đơn vị phần cứng có tác động tới môi trƣờng hệ thống.

- 8 -

Sự 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.

- 9 -

1.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

- 10 -

trạ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.

- 11 -

1.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
Đồng hồ đƣợc gọi là chính xác tại thời điểm t

i
nếu: C(t
i
) = t
i

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.

- 12 -


Trê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
Với mỗi sự kích hoạt, hệ thống tiếp nhận vào một thời điểm t
0
, tiến hành cấp
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
điểm t
k
sau đó.
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)


- 13 -

1.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…
Ngoài ra còn có một số hệ thống khác:
 Real RTS: là hệ thống yêu cầu thời gian khắt khe và thời gian trả lời là rất
ngắn. Ví dụ hệ thống chỉ đạo phóng tên lửa.
 Firm RTS: là hệ thống Soft RTS nhƣng sẽ không có lợi từ một số lỗi của
hệ thống.
Thông thƣờng một RTS là sự kết hợp của Hard RTS và Soft RTS.
1.4. Ứng dụng hệ thống thời gian thực
1.4.1. Các lớp ứng dụng
Có nhiều lớp hệ thống chuẩn là ứng dụng của hệ thống thời gian thực, thông
thƣờng có những lớp sau:
 Hệ thống giám sát
 Hệ thống điều khiển và ra lệnh
 Hệ thống thu nhận dữ liệu

Mỗi một loại hệ thống có một số đặc trƣng kiến trúc riêng, trong đó hệ thống
giám sát điều khiển là một lớp quan trọng của hệ thống thời gian thực. Chúng
kiểm tra những bộ cảm biến cung cấp thông tin môi trƣờng hệ thống và đƣa ra

- 14 -

nhữ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.

- 15 -

1.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 đủ để

- 16 -

thự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ế
cho khả năng dự đoán trƣớc. Ngôn ngữ phổ biến nhƣ C, C
++
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ƣ

- 17 -

mộ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.

- 18 -

Trong 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() {…}
}

- 19 -

sả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.

- 20 -

1.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.

- 21 -

3. 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.
b. Thiết kế phần mềm
Tiến trình thiết kế có thể gồm một vài mô hình phát triển của hệ thống ở
những mức trừu tƣợng khác nhau. Khi đến giai đoạn thiết kế thì có thể phát hiện
ra những lỗi và những phần bị bỏ quên trong những giai đoạn trƣớc. Thực sự,
những hoạt động trong tiến trình thiết kế là xen kẽ nhau. Những thông tin phản
hồi từ giai đoạn này tới giai đoạn khác và việc thiết kế lại cho hợp lý chắc chắn
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ó.

- 22 -

4. 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ệ

- 23 -

thố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ử.

×