Luận án đã đề xuất sự cải tiến mô hình cho thành phần phần mềm thời gian thực, và đã đề xuất thể thức tươngtác tương tranh thời gian và thể thức tương tác tương tranh thời gian với ràngb
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Trịnh Đông
MỘT SỐ PHƯƠNG PHÁP MÔ HÌNH HÓA
VÀ KIỂM CHỨNG HÌNH THỨC CHO CÁC HỆ THỐNG THỜI GIAN THỰC
HƯỚNG THÀNH PHẦN
LUẬN ÁN TIẾN SĨ NGÀNH CÔNG NGHỆ THÔNG TIN
Hà Nội - 2018
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Trịnh Đông
MỘT SỐ PHƯƠNG PHÁP MÔ HÌNH HÓA
VÀ KIỂM CHỨNG HÌNH THỨC CHO CÁC HỆ THỐNG THỜI GIAN THỰC
HƯỚNG THÀNH PHẦN
Chuyên ngành: Kĩ thuật Phần mềm
LUẬN ÁN TIẾN SĨ NGÀNH CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC:
1 TS Đặng Văn Hưng
2 PGS TS Trương Anh Hoàng
Hà Nội - 2018
Trang 3Mục lục
Trang
Mục lục i
Danh mục hình vẽ v
Danh mục bảng vii
Phụ lục viii
Tóm tắt xv
Chương 1 Giới thiệu 1
1.1 Đặt vấn đề 1
1.2 Các đóng góp chính của luận án 3
1.3 Bố cục của luận án 5
Chương 2 Kiến thức nền tảng 6
2.1 Phát triển phần mềm dựa trên thành phần 6
2.1.1 Kỹ nghệ phần mềm dựa trên thành phần 6
2.1.2 Tính đúng đắn bởi cách xây dựng 10
2.1.3 Kiến trúc hệ thống phát triển phần mềm dựa trên thành phần 11
2.2 Các phương pháp mô hình hóa hệ thống thời gian thực 12
2.2.1 Ôtômát thời gian và vùng thời gian 13
2.2.2 Ôtômát trọng số 19
Trang 42.2.3 Ôtômát khoảng 20
2.3 Bài toán kiểm chứng hệ thống thời gian thực 23
2.3.1 Đặc tả và mô hình hóa hệ thống 24
2.3.2 Đặc tả tính chất của hệ thống 24
2.3.3 Bài toán kiểm tra tính rỗng 25
2.4 Tổng kết chương 25
Chương 3 Mô hình thành phần phần mềm thời gian thực và thể thức tương tác 27
3.1 Giới thiệu 27
3.2 Các nghiên cứu liên quan 30
3.3 Mô hình thành phần phần mềm thời gian thực 32
3.3.1 Mô hình thành phần phần mềm 32
3.3.2 So sánh các mô hình thành phần phần mềm 34
3.4 Thể thức tương tác tương tranh ràng buộc thời gian 35
3.4.1 Thể thức tương tác 35
3.4.2 Phép chiếu 41
3.4.3 Thuật toán kiểm chứng tính cắm được 42
3.5 Thể thức tương tác thời gian thực ràng buộc tài nguyên 53
3.5.1 Thể thức thời gian - tài nguyên 53
3.5.2 Mô hình hóa và sự tuân thủ thể thức thời gian - tài nguyên 58
3.6 Tổng kết chương 66
Chương 4 Đặc tả và mô hình hóa giao diện thời gian thực 68
4.1 Giới thiệu 68
4.2 Các nghiên cứu liên quan 70
Trang 54.3 Giao diện thành phần phần mềm thời gian thực 72
4.4 Ghép giao diện thành phần 78
4.5 Sự làm mịn giao diện thành phần 83
4.6 Mô hình hóa hành vi của giao diện 87
4.7 Tổng kết chương 91
Chương 5 Đặc tả và kiểm chứng bằng hợp đồng thời gian thực với ràng buộc tài nguyên 93
5.1 Giới thiệu 93
5.2 Các nghiên cứu liên quan 95
5.3 Hợp đồng thời gian 96
5.3.1 Thiết kế thời gian 97
5.3.2 Hợp đồng 99
5.3.3 Ghép hợp đồng 100
5.3.4 Hệ thống 104
5.4 Hợp đồng thời gian-tài nguyên 106
5.4.1 Thiết kế thời gian - tài nguyên 107
5.4.2 Hợp đồng thời gian - tài nguyên 110
5.4.3 Hệ thống thời gian - tài nguyên 115
5.4.4 Ngôn ngữ đặc tả thời gian thực mẫu 117
5.5 Tổng kết chương 128
Chương 6 Kết luận 130
6.1 Các kết quả đạt được 130
6.2 Hướng phát triển tiếp theo 132
Danh mục công trình nghiên cứu của tác giả liên quan đế luận án 134
Trang 6Tài liệu tham khảo 135
Trang 7Danh mục hình vẽ
1.1 Các đóng góp chính của luận án 4
2.1 Minh họa giao diện thành phần phần mềm 8
2.2 Minh họa phép ghép song song (a) và phép ghép nối tiếp (b) 9
2.3 Minh họa kiến trúc chung hệ thống CB-RTS 11
2.4 Minh họa máy bán hàng bằng ôtômát hữu hạn 15
2.5 Minh họa phép giao hai khoảng (a) và phép ghép nối tiếp hai khoảng (b) 22
3.1 Minh họa mô hình thành phần phần mềm 33
3.2 Minh họa hệ thống điều tiết không khí và nhiệt độ 36
3.3 Minh họa chuỗi hành động ω trên trục thời gian. 39
3.4 Sự dịch chuyển trong A và A0: a, b ∈ Σ i , c < Σ i 46
4.1 Minh họa sự thực thi theo thời gian của giao diện 74
4.2 Minh họa phép song song (a) phép nối tiếp (b) 80
4.3 Minh họa ôtômát khoảng giao diện và môi trường 89
5.1 Minh họa văn phạm của các định danh 117
5.2 Minh họa văn phạm của số nguyên 117
5.3 Minh họa văn phạm của các thuộc tính 118
5.4 Minh họa văn phạm của thành phần tài nguyên trong thành phần phần mềm 118
Trang 85.5 Minh họa văn phạm của tài nguyên hệ thống 118
5.6 Minh họa văn phạm của khoảng thời gian 118
5.7 Minh họa văn phạm của các khẳng định 118
5.8 Minh họa văn phạm của các bất biến 119
5.9 Minh họa văn phạm của các bất biến tài nguyên 119
5.10 Minh họa văn phạm của các biểu thức đơn giản 119
5.11 Minh họa văn phạm của các biểu thức trong đặc tả hệ thống 119
5.12 Minh họa văn phạm của các thành phần cơ bản 120
5.13 Minh họa văn phạm cho đặc tả phương thức 120
5.14 Minh họa văn phạm của thành phần phần mềm 122
5.15 Minh họa văn phạm của phương thức trong phần mã nguồn 123
5.16 Minh họa văn phạm của thành phần phần mềm chủ động 126
5.17 Minh họa văn phạm của hệ thống 127
Trang 9Danh mục bảng
3.1 Bảng so sánh các mô hình thành phần phần mềm hiện tại 35
3.2 Các toán tử tăng giảm các thành phần tài nguyên 56
Trang 10LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu do tôi thực hiện dưới sựhướng dẫn của TS Đặng Văn Hưng và PGS TS Trương Anh Hoàng tại Bộ mônCông nghệ Phần mềm, Khoa Công nghệ Thông tin, Trường Đại học Công nghệ,Đại học Quốc gia Hà Nội Các số liệu và kết quả trình bày trong luận án làtrung thực, chưa được công bố bởi bất kỳ tác giả nào hay ở bất kỳ công trìnhnào khác
Hà Nội, ngày 16 tháng 8 năm 2018
Tác giả
Nguyễn Trịnh Đông
Trang 11LỜI CẢM ƠN
Luận án này được thực hiện tại Trường Đại học Công nghệ, Đại họcQuốc gia Hà Nội dưới sự hướng dẫn khoa học của TS Đặng Văn Hưng vàPGS TS Trương Anh Hoàng Tôi xin bày tỏ lòng biết ơn sâu sắc tới các thầy
đã quan tâm, hướng dẫn từ các kỹ năng cơ bản đến định hướng khoa học,tạo điều kiện thuận lợi trong suốt quá trình nghiên cứu tại Trường
Tôi cũng xin cảm ơn tới các thầy cô trong Bộ môn Công nghệ Phần mềm.Trong quá trình học tập và nghiên cứu tại Trường, các kết quả khoa học trongluận án đã nhận được sự giúp đỡ nhiệt tình và sự động viên kịp thời của cácthầy cô, các nhà khoa học Tôi xin trân trọng cảm ơn lãnh đạo Trường Đạihọc Công nghệ, Đại học Quốc Gia Hà Nội đã tạo những điều kiện tốt nhất đểtôi có được môi trường nghiên cứu và hoàn thành chương trình nghiên cứu củamình Xin chân thành cám ơn khoa Công nghệ Thông tin, phòng Đào tạo vàcác phòng ban về sự hỗ trợ và cộng tác hiệu quả trong quá trình làm việc.Tôi xin gửi lời cảm ơn tới Ban Lãnh đạo Trường Đại học Dân lậpHải Phòng, khoa Công nghệ Thông tin và các đồng nghiệp đã tạo nhiều thuận lợi
hỗ trợ cho tôi có đủ điều kiện thực hiện đề tài nghiên cứu Tôi cũng xin trân trọngcảm ơn các nhà khoa học, tác giả các công trình công bố được trích dẫn trongluận án vì đã cung cấp nguồn tư liệu quý báu, những kiến thức liên quan trongquá trình nghiên cứu hoàn thành luận án
Cuối cùng, tôi bày tỏ lòng biết ơn tới bố mẹ, vợ, các con, các anh chị emtrong gia đình và những người bạn thân thiết đã liên tục động viên để duy trìnghị lực, sự cảm thông, chia sẻ về thời gian, sức khỏe và các khía cạnh của cuộcsống trong suốt quá trình hoàn thành luận án
Hà Nội, ngày 16 tháng 8 năm 2018
Nguyễn Trịnh Đông
Trang 12Danh mục từ viết tắt
BIP Behaviour Interaction Priority Tên của một công cụ
Composi-Môi trường cho phân tích vàthiết kế thành phần cho hệthống thời gian thực
MITL Metric Interval Temporal Logic Logic thời khoảng tuyến tính
Trang 13Từ viết tắt Từ gốc Giải thích nghĩa
suất
Công cụ cho sự thực thi và môhình hóa của hệ thống nhúng
Aal-borg University
Công cụ kiểm chứng thời gianthực do hai trường đại họccùng phát triển
Program-ming
Lý thuyết hợp nhất ngôn ngữlập trình
Tên của một công cụ do nhómtác giả Nannan He, K.K Lauphát triển
Trang 14Danh mục các ký hiệu
ð Thể thức tương tác thời gian thực có ràng buộc tài nguyên 52
Γ Tập các vị trí chấp thuận (đến) được trong ôtômát thời gian 17
~ Tập đồng hồ được thiết lập lại giá trị sau mỗi bước chuyển của ôtômát
Trang 15R≥0 Miền thời gian là một số thực không âm 16
Ω Tập các hành động trong thành phần phần mềm, Ω =Sk
i=1Σi 37
Trang 16d Thời gian trôi qua 17
K x Giá trị lớn nhất của vùng đồng hồ trong ôtômát thời gian 42
L Tập các vị trí trong ôtômát thời gian hoặc trong ôtômát trọng số 17
Trang 17TÓM TẮT
Nghiên cứu những kỹ thuật để áp dụng trong mô hình hóa, đặc tả vàkiểm chứng hệ thống thời gian thực dựa trên thành phần đóng một vai tròquan trọng trong lĩnh vực công nghệ phần mềm Luận án đã đề xuất sự cải tiến
mô hình cho thành phần phần mềm thời gian thực, và đã đề xuất thể thức tươngtác tương tranh thời gian và thể thức tương tác tương tranh thời gian với ràngbuộc tài nguyên cùng với các kỹ thuật kiểm tra tính tuân thủ của dãy hành vicủa môi trường với thể thức tương tác tương tranh của thành phần phần mềm.Dựa trên những thể thức tương tác này, chúng ta có thể phân tích hành vi giữacác phương thức trong thành phần phần mềm và giữa các thành phần phầnmềm với môi trường Luận án cũng đề xuất kỹ thuật đặc tả thành phần phầnmềm bằng lý thuyết giao diện thời gian thực với quan hệ đầu vào/đầu ra và biểudiễn hữu hạn các hành vi của giao diện thời gian thực bằng ôtômát khoảng Bêncạnh đó, luận án đề xuất kỹ thuật đặc tả thành phần phần mềm thời gian thựcbằng các hợp đồng thời gian và hợp đồng thời gian có ràng buộc tài nguyênnhằm lập luận cho việc sử dụng hiệu quả tài nguyên hệ thống Đồng thời, luận
án cũng đưa ra thuật toán ước lượng tài nguyên được sử dụng trong hệ thốngcần phát triển dựa trên sự tương tác giữa môi trường và các thành phần phầnmềm Để hợp nhất các ngôn ngữ đặc tả thời gian thực, luận án mở rộng ngônngữ đặc tả mẫu (cho các hệ thống không có yếu tố thời gian) trở thành ngônngữ đặc tả thời gian thực mẫu cho phép đặc tả các ràng buộc thời gian và cácràng buộc phi chức năng Luận án có ba đóng góp chính được trình bày chi tiếtnhư sau:
Thứ nhất, luận án đã mở rộng mô hình PECOS (PErvasive COmponentSystems) cho thành phần phần mềm thời gian thực với mục đích tạo ra một
mô hình thành phần phần mềm có thể giúp cho việc phát triển hệ thống thờigian thực nhanh chóng, chính xác và có thể phân tích nhiều yếu tố khác nhau
từ chức năng đến phi chức năng Mô hình này được chia thành hai phần, phầnthụ động và phần chủ động Phần thụ động đóng vai trò như một kho chứacác thành phần phần mềm thời gian thực cho đến khi thỏa mọi yêu cầu của hệthống Phần chủ động đóng vai trò tương tác với môi trường, nhận các yêu cầu
từ môi trường và gọi các dịch vụ từ phần thụ động để xử lý sau đó lấy kết quảtrả về cho môi trường Ngoài ý nghĩa trên, mô hình được chia thành hai phần
Trang 18cũng nhằm mục đích giảm độ phức tạp của hệ thống do cách phát triển dựa trênchiến lược chia để trị Trong đó, với phần chủ động, chúng ta có thể kiểm soátđược các tiến trình song song trong những hệ thống phát triển dựa trên mô hìnhnày; phần thụ động đóng vai trò là một kho chứa các thành phần phần mềm,chúng ta phát triển hệ thống thời gian thực bằng cách ghép các thành phầnphần mềm trong phần này cho đến khi thỏa yêu cầu của hệ thống Mô hình nàycũng cho phép các tiến trình của các thành phần phần mềm ở cả hai phần thựchiện thực hiện song song Bên cạnh đó, để phân tích chính xác sự tương táctrong hệ thống thời gian thực dựa trên thành phần, luận án đề xuất thể thứctương tác tương tranh thời gian và thể thức tương tranh có ràng buộc tài nguyênbằng cách tiến hành đặc tả thứ tự lời gọi các dịch vụ trong thành phần phầnmềm bằng biểu thức chính quy thời gian trên bảng chữ cái phân tán và mô hìnhhóa các dãy hành vi của môi trường hệ thống bằng ôtômát thời gian và ôtômáttrọng số Đồng thời, luận án cũng đề xuất thuật toán kiểm tra sự tuân thủ củadãy hành vi của môi trường với thể thức của thành phần phần mềm trên khíacạnh chức năng và phi chức năng Sự tuân thủ thể thức tương tác còn cho biếtkhả năng sử dụng hiệu quả các tài nguyên mà môi trường dành cho các thànhphần phần mềm Do đó, dựa trên sự kiểm tra tính tuân thủ này, chúng ta cóthể khẳng định được sự thỏa mãn của các thành phần phần mềm so với yêu cầuthiết kế của hệ thống.
Thứ hai, luận án mở rộng lý thuyết giao diện thành phần trở thành
lý thuyết giao diện thời gian thực để đặc tả và mô hình hóa các hệ thống thờigian thực dựa trên thành phần Giao diện thời gian thực là một bộ ba thànhphần gồm tập biến đầu vào, tập biến đầu ra và mối quan hệ giữa tập biến đầuvào và tập biến đầu ra và thời gian ràng buộc trên mối quan hệ này Mối quan
hệ này được biểu diễn bằng biểu thức lôgíc tân từ cấp 1 nhằm khẳng định rằngnếu môi trường gán một bộ giá trị thỏa điều kiện trên tập biến đầu vào của giaodiện thì giao diện sẽ đảm bảo dữ liệu đầu ra sẽ thỏa yêu cầu của môi trường
hệ thống trong khoảng thời gian theo thiết kế Với cách tiếp cận này, một thànhphần phần mềm được đặc tả đơn giản hơn, cô đọng hơn nhưng lại phản ánh đượcchi tiết các hành vi và chức năng của thành phần phần mềm Do các hành vicủa giao diện thành phần thời gian thực là vô hạn nên luận án sử dụng ôtômátkhoảng (duration automata) để biểu diễn hữu hạn các dãy hành vi của giao diệnthành phần và môi trường thời gian thực Ôtômát khoảng có ưu điểm là có thể
mô hình hóa và biểu điễn được khoảng thời gian lớn nhất và nhỏ nhất dành cho
Trang 19một hành vi trong thành phần phần mềm Việc sử dụng giao diện thời gian thựcvới quan hệ trên tập biến đầu vào/đầu ra có thể đặc tả và kiểm chứng hệ thốngthời gian thực dựa trên thành phần một cách hiệu quả Sự kiểm chứng đượcthực thực hiện bằng quá trình phát triển tăng dần từng bước dựa trên các phépghép, phép làm mịn và phép cắm môi trường vào thành phần phần mềm.
Thứ ba, luận án đề xuất kỹ thuật đặc tả thành phần phần mềm bằnghợp đồng thời gian và hợp đồng thời gian với các ràng buộc tài nguyên dựa trêncách tiếp cận tính đúng đắn bởi cách xây dựng và thiết kế bằng hợp đồng
Kỹ thuật này cho phép đặc tả thành phần phần mềm thời gian thực chi tiếtđến từng phương thức và tập biến đầu vào đầu ra của phương thức cũng nhưràng buộc trên tập biến đầu vào/đầu ra Bên cạnh đó, phương pháp đặc tả nàycũng chỉ rõ thành phần phần mềm cần những phương thức và loại tài nguyênnào để có thể thực thi được yêu cầu của hệ thống và cung cấp những dịch vụ
gì cho môi trường với các chi phí tài nguyên là bao nhiêu Phương pháp nàycũng cho phép đặc tả các thành phần bất biến, thành phần bất biến tài nguyên,đặc tả các phương thức Đặc biệt, phương pháp này cũng đặc tả thể thức tươngtác của các dịch vụ trong thành phần phần mềm và môi trường sử dụng chúng
Cụ thể, trong một thành phần phần mềm, trình tự thực thi của các phươngthức được biểu diễn bằng biểu thức chính quy thời gian thực có ràng buộc tàinguyên Khi môi trường muốn sử dụng các dịch vụ từ thành phần phần mềmthì môi trường phải cung cấp đủ tài nguyên cho các dịch vụ và môi trường phảituân thủ thứ tự lời gọi các dịch vụ trong thành phần phần mềm Nhờ sự tuânthủ này, thành phần phần mềm sẽ đảm bảo được chất lượng của các dịch vụ
mà nó cung cấp Do đó, bằng kỹ thuật này, một hệ thống thời gian thực dựatrên thành phần được phát triển tăng dần dựa trên việc ghép các hợp đồng thờigian thực và các yếu tố được phân tích và đánh giá đầy đủ trên hai khía cạnhchức năng và phi chức năng Để có thể triển khai trên thực tế, luận án cũng đềxuất ngôn ngữ đặc tả thời gian thực mẫu nhằm hợp nhất các ngôn ngữ đặc tảthời gian thực với đầy đủ tính năng đặc tả về phần chức năng và phi chức năngcho thành phần phần mềm Dựa trên kỹ thuật này, các thành phần phần mềmthời gian thực được đặc tả đầy đủ và các đặc tả được sử dụng làm cơ sở cho choviệc nâng cao chất lượng phần mềm
Tất cả các đóng góp trong luận án hướng đến việc đề xuất những kỹ thuậtđặc tả, phân tích, đánh giá và kiểm chứng hệ thống thời gian thực dựa trênthành phần Các đóng góp của luận án được thể hiện trên ba khía cạnh khác
Trang 20nhau trong quá trình phát triển phần mềm thời gian thực gồm mở rộng mô hìnhPECOS cho thành phần phần mềm thời gian thực, đề xuất thể thức tương táctương tranh thời gian thực với các ràng buộc chức năng và phi chức năng, đặc tảthành phần phần mềm thời gian thực bằng lý thuyết giao diện thành phần thờigian và lý thuyết hợp đồng thời gian, và mở rộng ngôn ngữ đặc tả cho việc đặc
tả thành phần thời gian thực trên hai khía cạnh chức năng và phi chức năng
Trang 21Để giải quyết những hạn chế trong phát triển phần mềm dựa trên thànhphần Hiện nay, kiểm chứng mô hình [1 3] và chứng minh định lý [4] đang đượcxem là hai cách tiếp cận chính để giải quyết những hạn chế trên Đối với phươngpháp kiểm chứng mô hình, người ta sử dụng ôtômát thời gian để biểu diễn cácchuỗi hành vi hệ thống Tuy nhiên, do tập trạng thái của ôtômát thời gian là
vô hạn nên người ta sử dụng ôtômát vùng (regional automata) để biểu diễnhữu hạn ôtômát thời gian [5] Trong phương pháp này, các tính chất của hệthống cần kiểm chứng được biểu diễn bằng một trong các loại lôgíc như lôgíc
Trang 22thời gian tuyến tính (LTL - Linear temporal logic), lôgíc cây tính toán (CTL
- Computation tree logic) [1], lôgíc hệ mét (MTL - Metric temporal logic) [6],lôgíc thời khoảng hệ mét (MILT - Metric Interval Temporal Logic) [7], v.v.Phương pháp kiểm chứng này thường được thực hiện tại giai đoạn triển khai
và đôi khi mã nguồn chương trình được sử dụng như là một mô hình của hệthống để đưa vào kiểm chứng Tuy nhiên, đối với những hệ thống quy mô lớnnếu áp dụng phương pháp kiểm chứng mô hình sẽ dẫn đến độ phức tạp cao,bùng nổ không gian trạng thái, chi phí lớn và còn nhiều nguy cơ tiềm ẩn Ngoàinhững lý do trên, việc ghép các thành phần phần mềm thời gian thực cũng làmcho bài toán kiểm chứng mô hình đối diện với hiện tượng bùng nổ không giantrạng thái Đặc biệt, các ràng buộc thời gian trên các chuỗi hành vi trong hệthống thời gian thực cũng làm tăng khó khăn trong việc kiểm chứng dựa trên môhình Bên cạnh yếu tố thời gian, các ràng buộc tài nguyên như hiệu năng CPU,năng lượng, băng thông mạng, bộ nhớ, dung lượng thiết bị lưu trữ, v.v cũngtạo ra thách thức rất lớn trong quá trình kiểm chứng hệ thống thời gian thựcdựa trên thành phần có tính toán đến các yếu tố tài nguyên Đây là một trongnhững rào cản lớn trong việc triển khai kiểm chứng mô hình cho hệ thống thờigian thực trên thực tế Đối với phương pháp kiểm chứng phần mềm dựa trênchứng minh định lý, tính đúng đắn của phần mềm được chứng minh và kiểm tradựa trên các biểu thức toán học và cũng chỉ tập trung vào những hệ thống phithời gian
Mục đích của luận án là đề xuất các kỹ thuật đặc tả và kiểm chứng hìnhthức hệ thống thời gian thực dựa trên thành phần một cách hiệu quả Trong đó,luận án cần phải xác định rõ mô hình thành phần phần mềm của hệ thống cầnkiểm chứng nhằm đề xuất những kỹ thuật kiểm chứng phù hợp Luận án bắt đầubằng việc đề xuất mô hình cho thành phần phần mềm thời gian thực Mô hìnhnày được phát triển theo chiến lược chia để trị nhằm phát huy các ưu điểm củaphương pháp phát triển phần mềm thời gian thực dựa trên thành phần và chophép phát triển hệ thống có quy mô tăng dần dựa trên việc ghép các thành phầnphần mềm Luận án cũng bổ sung thể thức tương tác thời gian thực vào đặc tảthành phần phần mềm để kiểm soát sự tương tác giữa các thành phần phầnmềm và giữa các thành phần phần mềm với môi trường để hệ thống hoạt độnghiệu quả trên cả khía cạnh thực thi và khía cạnh duy trì các hoạt động Đặc biệt,đối với hệ thống thời gian thực thì chúng ta phải xét đến ràng buộc thời gian
và tính hiệu quả của việc sử dụng tài nguyên hệ thống Do đó, luận án xác địnhbài toán đặc tả các yếu tố chức năng và phi chức năng là một trong những bài
Trang 23toán quan trọng cần phải giải quyết Hơn nữa, bài toán kiểm chứng hệ thốngthời gian thực với các ràng buộc chức năng và phi chức năng thường đối diện vớiviệc bùng nổ không gian trạng thái, độ phức tạp cao Vì vậy, luận án áp dụng
lý thuyết giao diện thời gian thực, thiết kế bằng hợp đồng và tính đúng đắn dựatrên cách xây dựng để giải quyết bài toán đặc tả và kiểm chứng hệ thống thờigian thực Tính hiệu quả của các phương pháp kiểm chứng còn được thể hiệntrong việc tự động hóa các giai đoạn của quá trình kiểm chứng Do vậy, luận án
đã cụ thể hóa các kỹ thuật kiểm chứng bằng các thuật toán
Đối tượng nghiên cứu của luận án là các phương pháp phát triển các
hệ thống thời gian thực dựa trên thành phần và hệ thống thời gian thực dựatrên thành phần Các đối tượng này được thể hiện trên hai phương diện là hệthống lý thuyết và các kỹ thuật phát triển phần mềm trong thực tế của lĩnh vựcnày Cụ thể, luận án tập trung nghiên cứu mô hình thành phần phần mềm thờigian thực, thể thức tương tác tương tranh trong hệ thống, cùng với các kỹ thuậtđặc tả và mô hình hóa thành phần phần mềm thời gian thực trên hai khía cạnhràng buộc chức năng và phi chức năng
1.2 Các đóng góp chính của luận án
Qua quá trình nghiên cứu, luận án đã đề xuất được ba đóng góp chính baogồm (i) Mở rộng mô hình PECOS cho thành phần phần mềm thời gian thực dựatrên thành phần bao gồm đề xuất thể thức tương tác tương tranh thời gian thực
và thể thức tương tác tương tranh thời gian với ràng buộc tài nguyên Đồng thời,luận án cũng đưa ra thuật toán kiểm tra sự tuân thủ thể thức của thành phầnphần mềm đối với chuỗi hành vi của môi trường trên hai khía cạnh chức năng vàphi chức năng (ii) Đặc tả và mô hình hóa thành phần phần mềm thời gian thựcbằng giao diện thành phần có ràng buộc thời gian với quan hệ đầu vào/đầu ra.(iii) Đặc tả thành phần phần mềm thời gian thực bằng hợp đồng thời gian và hợpđồng thời gian có ràng buộc phi chức năng nhằm phân tích, đánh giá hệ thốngthời gian thực trên hai khía cạnh chức năng và phi chức năng Các đóng gópchính của luận án được minh họa trong Hình 1.1
Thứ nhất, luận án đề xuất mô hình thành phần phần mềm gian thực dựatrên sự mở rộng mô hình PECOS cho hệ thống thời gian thực Mô hình có haiphần, phần thụ động và phần chủ động Phần thụ động đóng vai trò là một kholưu trữ, tập hợp các thành phần phần mềm đủ lớn để đáp ứng tất cả các yêu cầucủa hệ thống Phần chủ động đóng vai trò tương tác với môi trường, nhận các
Trang 24yêu cầu từ môi trường sau đó gọi các dịch vụ từ phần thụ động để thực hiện rồitrả kết quả lại môi trường Luận án cũng đề xuất thể thức tương tác tương tranhthời gian thực được sử dụng để đặc tả các thứ tự lời gọi các dịch vụ, đặc tả cácyếu tố chức năng và phi chức năng trong thành phần phần mềm của hệ thốngthời gian thực, lập luận và phân tích tính hiệu quả của việc sử dụng tài nguyên
hệ thống Khi môi trường muốn sử dụng dịch vụ của thành phần phần mềm,chuỗi hành vi của môi trường phải tuân thủ thể thức tương tác của thành phầnphần mềm bao gồm cả yếu tố chức năng và phi chức năng Việc tuân thủ thểthức của các chuỗi hành vi của môi trường chứng tỏ thành phần phần mềm đượcphát triển đúng với yêu cầu thiết kế
1
Đề xuất phương pháp đặc tả và mô hình hóa thành phần phần mềm bằng hợp đồng thời gian
và hợp đồng thời gian ràng buộc tài nguyên.
Thư viện thành phần Bộ chứa
Hình 1.1: Các đóng góp chính của luận án.
Thứ hai, luận án đề xuất phương pháp đặc tả và mô hình hóa thành phầnphần mềm bằng lý thuyết giao diện thời gian với quan hệ đầu vào/đầu ra vàbiểu diễn hữu hạn giao diện thời gian thực bằng ôtômát khoảng Dựa trên sự đặc
tả và mô hình hóa này, các giao diện thành phần đảm bảo rằng khi môi trườngcung cấp một bộ giá trị thỏa mãn tiền điều kiện của giao diện thì giao diện cũng
sẽ đảm bảo trả kết quả tại đầu ra thỏa yêu cầu của môi trường Bên cạnh đó,các tính chất làm mịn, giao hoán và kết hợp trong phép ghép song song, phépghép nối tiếp và sự làm mịn dùng chung của giao diện cũng được phân tích vàđánh giá Đặc biệt, bài toán kiểm chứng tính chất cắm được của môi trường vớithành phần phần mềm cũng được chứng minh
Trang 25Thứ ba, dựa trên cách tiếp cận thiết kế bằng hợp đồng và tính đúng đắndựa trên cách xây dựng, luận án đề xuất kỹ thuật đặc tả thành phần phần mềmthời gian thực bằng hợp đồng thời gian và hợp đồng thời gian có ràng buộctài nguyên Với cách tiếp cận này, tính đúng đắn của các thành phần phần mềmđược phát triển và sự kết hợp các thành phần với nhau sẽ được đảm bảo bởicác ràng buộc đã được đặc tả bên trong từng phương thức trong thành phầnphần mềm Do đó, dựa trên các đặc tả, các yếu tố chức năng và phi chức năng
sẽ được phân tích và đánh giá một cách đầy đủ trong quá trình phát triển hệthống Dựa trên Lý thuyết hợp nhất ngôn ngữ lập trình (UTP - Unifying Theory
of Programming), luận án đề xuất ngôn ngữ đặc tả thời gian thực mẫu nhằmhướng đến hợp nhất các ngôn ngữ đặc tả thời gian thực gồm đặc tả chức năng
và đặc tả các yếu tố phi chức năng Dựa trên ngôn ngữ đặc tả này, việc nâng caochất lượng trong quá trình phát triển hệ thống được đảm bảo
1.3 Bố cục của luận án
Các nội dung còn lại của luận án được cấu trúc như sau: Chương 2 trìnhbày các kiến thức nền tảng cũng như các khái niệm về phát triển phần mềmdựa trên thành phần và một số khái niệm về hệ thống thời gian thực được sửdụng làm kiến thức cơ sở cho các nghiên cứu tiếp theo Chương 3 trình bày
mô hình thành phần phần mềm thời gian thực Mô hình này được phát triểndựa trên sự mở rộng của mô hình PECOS cho thành phần phần mềm thời gianthực, cách tiếp cận thiết kế bằng hợp đồng và tính đúng đắn bởi cách xây dựng.Chương này cũng trình bày thể thức tương tác tương tranh trong các thànhphần phần mềm thời gian thực và các thuật toán kiểm chứng sự tuân thủ củadãy hành vi của môi trường hệ thống với thể thức tương tác của thành phầnphần mềm trên hai khía cạnh chức năng và phi chức năng Chương 4 mô tả kỹthuật đặc tả giao diện thành phần phần mềm thời gian thực trên quan hệ giữađầu vào và đầu ra của thành phần phần mềm Mô hình hóa các dãy hành vicủa hệ thống thời gian thực bằng ôtômát khoảng và kiểm chứng tính cắm đượccủa môi trường vào thành phần phần mềm Chương 5 trình bày kỹ thuật đặc tảthành phần phần mềm thời gian thực với các yếu tố chức năng và phi chức năngnhằm phân tích và đánh giá chất lượng dịch vụ dựa trên các ràng buộc phi chứcnăng, đồng thời ước lượng tài nguyên hệ thống tiêu thụ và sử dụng trong quátrình hoạt động ngay từ giai đoạn đầu của sự phát triển hệ thống phần mềm và
bổ sung ngôn ngữ đặt tả thời gian thực mẫu nhằm hợp nhất các ngôn ngữ lậptrình thời gian thực Và chương cuối cùng, luận án tổng kết các kết quả nghiêncứu và hướng phát triển tiếp theo
Trang 26CHƯƠNG 2
Kiến thức nền tảng
Trong chương này, luận án trình bày các khái niệm và kiến thức cơ bảnđược áp dụng trong lĩnh vực phát triển phần mềm thời gian thực dựa trên thànhphần và các khái niệm cũng như kiến thức về hệ thống thời gian thực để phục
vụ những nghiên cứu chuyên sâu của luận án
2.1 Phát triển phần mềm dựa trên thành phần
Hệ thống phần mềm ngày càng trở nên phức tạp và có quy mô lớn, trong
đó phát triển phần mềm dựa trên thành phần được đánh giá là phương phápđem lại nhiều ưu thế [8] Phương pháp này phát triển phần mềm bằng cách ghépdần các thành phần phần mềm cho đến khi thỏa mọi yêu cầu của hệ thống cầnphát triển
2.1.1 Kỹ nghệ phần mềm dựa trên thành phần
Trong lịch sử phát triển của phương pháp này đã có một số định nghĩa vềthành phần phần mềm, điển hình có những định nghĩa được trình bày dưới đây.Theo tác giả Clemens Szyperski [9]:
“Một thành phần phần mềm là một đơn vị hợp thành với giao diện được đặc tả theo kiểu hợp đồng và chỉ phụ thuộc vào ngữ cảnh rõ ràng Một thành phần phần mềm có thể được triển khai một cách độc lập và là chủ thể dùng để lắp ghép bởi bên thứ ba.”
Từ định nghĩa trên, một thành phần phần mềm có thể gồm những yếu tốsau:
Trang 27(i) Là một đơn vị phần mềm độc lập: Thành phần phần mềm thực thi đầy đủ
một chức năng nào đó
(ii) Có tính ẩn đối với hệ thống bên ngoài: Một thành phần phần mềm chỉ
được quan sát thông qua giao diện của chúng và khi tương tác với cácthành phần khác thông qua một thỏa thuận gọi là hợp đồng
(iii) Là chủ thể cho nhiều mục đích sử dụng khác nhau: Một thành phần phần
mềm được thiết kế và cài đặt sao cho chức năng của thành phần đó được
sử dụng và phục vụ nhiều hệ thống khác nhau
(iv) Tái sử dụng: Thành phần phần mềm có thể được tái sử dụng và có thể
thay thế bằng thành phần phần mềm khác
Một định nghĩa khác về thành phần phần mềm của tác giả Bertrand Meyer [10]:
“Một thành phần phần mềm là một phần tử phần mềm (đơn vị mô đun) thỏa ba điều kiện sau:
1 Được sử dụng bởi các phần tử phần mềm khác là ‘khách hàng’ của nó,
2 Sở hữu một mô tả cách sử dụng có tính chất hình thức, và
3 Không bị cột chặt với bất kỳ nhóm ‘khách hàng’ cố định nào.”
Như vậy, một thành phần phần mềm theo tác giả Bertrand Meyer có cácđặc tính gồm:
(i) Là một mô đun phần mềm độc lập thực thi một chức năng đầy đủ nào đó,được sử dụng bởi bên thứ ba là khách hàng của chúng
(ii) Được đặc tả bằng một phương pháp hình thức, ẩn đối với bên ngoài.(iii) Là chủ thể được sử dụng cho nhiều hệ thống khác nhau
Nhóm tác giả thứ ba, Heineman và Councill [11] đã định nghĩa thành phần phầnmềm như sau:
“Một thành phần phần mềm là một phần tử phần mềm phù hợp với một
mô hình thành phần và có thể được kết hợp và triển khai một cách độc lập mà không cần sự điều chỉnh theo một tiêu chuẩn kết hợp nào.”
Qua định nghĩa của Heineman và Councill chúng ta thấy khái niệm
“Mô hình thành phần phần mềm” được hiểu là mô hình xác định sự tương tác
và các tiêu chuẩn kết hợp cụ thể Sự thực thi của mô hình là tập các cam kếtcủa các phần tử phần mềm có thể thực thi được
Tóm lại, qua ba định nghĩa về thành phần phần mềm của ba nhóm tác giả,luận án sẽ trình bày các yếu tố chính trong phát triển phần mềm dựa trên thànhphần theo các mục sau
Trang 28a Mô hình thành phần phần mềm: Mô hình thành phần phần mềm là một
tập các quy chuẩn nhằm xác định một tập các tính chất mà các thành phầnphần mềm phải tuân thủ nhằm làm cho hệ thống hoạt động thỏa được yêu cầu.Như vậy, mô hình thành phần phần mềm phải có cách thức cho phép phát triểnthành phần phần mềm từ các thành phần nguyên tử, tập các quy tắc đặc tảthuộc tính và phương thức, tập các thể thức tương tác giữa các phương thức vàcác thành phần với nhau, và tập các quy tắc kết hợp cũng như thay thế giữacác thành phần
b Giao diện thành phần phần mềm: Trong kỹ nghệ phát triển phần mềm
dựa trên thành phần, các thành phần phần mềm thường sẽ được coi là “hộp đen”,người dùng sẽ không “quan sát” được bên trong [9] Để sử dụng các thành phầnphần mềm này, các nhà phát triển phải tìm kiếm một phương pháp đặc tả saocho đơn giản nhưng phản ánh chi tiết các thuộc tính và hành vi của thành phầnphần mềm Hình 2.1 minh họa một giao diện thành phần gồm tập biến đầu vào
X = {x1, x2}, tập biến đầu ra Y = {y1, y2, y3} và bên trong là mô hình củagiao diện Hiện nay, kỹ thuật đặc tả giao diện thành phần phần mềm là một kỹthuật tiên tiến được áp dụng để đặc tả các thành phần phần mềm, kỹ thuật này
“chụp” được đầu vào/đầu ra, các thuộc tính và các ràng buộc giữa đầu vào/đầu
ra của thành phần phần mềm Tuy nhiên, hướng tiếp cận này chưa đủ chi tiết
để phản ánh hết những hành vi của thành phần phần mềm Do đó, luận án sử
dụng thiết kế là kỹ thuật đặc tả chi tiết đến từng phương thức của thành phần
phần mềm trên hai khía cạnh chức năng và phi chức năng để làm tăng sức mạnhcủa lý thuyết giao diện thành phần
Hình 2.1: Minh họa giao diện thành phần phần mềm.
c Làm mịn: Là kỹ thuật làm chi tiết hóa việc thiết kế của những thành
phần phần mềm đã có bằng những thành phần phần mềm khác có chất lượngtốt hơn Kỹ thuật làm mịn có thể áp dụng vào trong trường hợp tìm kiếm nhữngthành phần phần mềm hoặc các chi tiết bên trong thành phần đó để thay bằng
Trang 29những thành phần mới hoặc chi tiết mới tương ứng sao cho những bộ phận mớinày đáp ứng tốt hơn những bộ phận cũ.
d Hợp đồng: Khi nói đến thành phần phần mềm, người ta sẽ nghĩ đến
thành phần này có chức năng gì Tuy nhiên, trong lĩnh vực kỹ nghệ phần mềmdựa trên thành phần, người ta quan tâm hơn đến việc các thành phần phần mềmđược sử dụng như thế nào cho hiệu quả Kỹ thuật đặc tả thành phần phần mềmbằng hợp đồng đã đáp ứng được các yêu cầu khắt khe đó Một hợp đồng là mộtthỏa thuận của thành phần phần mềm với các “khách hàng” của chúng Chỉ khicác ràng buộc trong hợp đồng thỏa được thì thành phần phần mềm đó sẽ thựcthi đúng theo yêu cầu
e Ghép các thành phần phần mềm: Các hệ thống ngày càng phức tạp và
có quy mô tăng dần Kỹ thuật ghép các thành phần phần mềm đáp ứng đượcmục tiêu đó Tuy nhiên, khi ghép các thành phần phần mềm với nhau luôn phảibảo toàn các tính chất của hệ thống Các phương pháp ghép có thể là ghépsong song, ghép nối tiếp và quan trọng nhất là phép cắm môi trường vào thànhphần phần mềm Phép cắm cho biết thành phần phần mềm có thỏa yêu cầu của
hệ thống hay không và cho biết thành phần phần mềm được sử dụng như thếnào
Hình 2.2: Minh họa phép ghép song song (a) và phép ghép nối tiếp (b).
Hình 2.2minh họa phép ghép hai thành phần phần mềm C1và C2theo cách
ghép song song và ghép nối tiếp, trong đó (X1, Y1) là tập các biến đầu vào/đầu
ra tương ứng của C1 và (X2, Y2) là tập các biến đầu vào/đầu ra tương ứng của
C2 Thành phần “Delay” là độ trễ khi ghép hai thành phần phần mềm theo cáchnối tiếp Yếu tố này chỉ sự đồng bộ thời gian tại đầu ra của các thành phầnphần mềm khi ghép nối tiếp với nhau
Trang 302.1.2 Tính đúng đắn bởi cách xây dựng
Hệ thống phần mềm ngày càng có quy mô lớn và phức tạp, đòi hỏi thờigian triển khai nhanh, độ chính xác cao, giảm chi phí, v.v Hiện nay, các phươngpháp phát triển phần mềm truyền thống vẫn phổ biến, điều này làm gia tăngđáng kể các chi phí trong quá trình phát triển và đảm bảo tính đúng đắn của
hệ thống mới như kiểm thử, bảo trì, v.v
Hiện nay, một hướng tiếp cận mới trong việc đảm bảo tính đúng đắn của
hệ thống phần mềm là tính đúng đắn bởi cách xây dựng Hướng tiếp cận nàyđược trình bày trong một số công trình điển hình của các tác giả Anthony Hall
và Roderick Chapman [12], Gregor G¨ossler và Joseph Sifakis [13,14], D V Hung
và đồng nghiệp [15] và Derrick G Kourie và Bruce W Watson [16] đều thốngnhất một hệ thống cần có một số tính chất sau:
(i) Tính đúng đắn: Có phương pháp xây dựng các thành phần phần mềmnguyên tử một cách đúng đắn
(ii) Luật phối ghép: Cho Π, Π0 và ~ là các phép ghép nào đó của hệthống và C1, C2, , C k là các thành phần phần mềm, k ∈ N Giả sử
(vi) Hệ thống cần có kho các thành phần phần mềm đủ lớn để cho phép lựachọn các thành phần thỏa mọi yêu cầu của hệ thống
Trang 312.1.3 Kiến trúc hệ thống phát triển phần mềm dựa trên thành phần
Phương pháp phát triển phần mềm dựa trên thành phần được phát triển
ổn định và trở thành một hướng tiếp cận chính trong phát triển phần mềm hiệnnay Phương pháp này tùy thuộc vào từng hãng công nghệ khác nhau thì sảnphẩm phần mềm cũng có các kiến trúc khác nhau Trên thực tế, nhiều kiếntrúc được đề xuất như EJB, CORBA, RMI, COM, DCOM, NET [17–19], v.v.Các sản phẩm này là những công nghệ dựa trên lập trình hướng đối tượng.Tuy nhiên, các kiến trúc luôn được cải tiến và phát triển cho phù hợp với cácyêu cầu thực tế Do vậy, có nhiều mô hình và các kiến trúc mới được đề xuấtnhư mô hình PECOS [20], là một mô hình thành phần phần mềm được pháttriển cho thành phần phần mềm dựa trên thành phần; bộ phát triển ứng dụngBIP hỗ trợ phát triển các thành phần phần mềm từ mức nguyên tử cho đến hỗtrợ thiết kế và phân tích cả hệ thống thời gian thực [14]; và mới đây nhất môhình X-MAN được nhóm tác giả Nannan He phát triển trong dự án CESARcủa Châu Âu [21] Điểm chung của các đề xuất này là một hệ thống đều có bốntầng, tầng dưới cùng là phần cứng, đến hệ điều hành, bộ khung phát triển ứngdụng (framework) và cuối cùng là môi trường và được minh họa trong Hình2.3
Trang 322.2 Các phương pháp mô hình hóa hệ thống thời gian thực
Do đòi hỏi thực tế ngày càng cao, đã có nhiều nghiên cứu liên quan đến
hệ thống thời gian thực Vì vậy, cũng có nhiều cách định nghĩa về hệ thốngthời gian thực được đưa ra [22] Theo tổng kết của các tác giả M Timmerman
và L Perneel, hệ thống thời gian thực là hệ thống: “ phản ứng theo cách đoán
trước được (kịp thời) các kích thích không dự đoán được đến từ bên ngoài.” [22].Cũng theo M Timmerman và đồng nghiệp [23] và Yahor Bondarau [24],
hệ thống thời gian thực được chia thành các loại cơ bản gồm hệ thống thời gianthực nghiêm ngặt, hệ thống thời gian thực ổn định, hệ thống thời gian thực linhđộng và hệ thống phi thời gian được trình bày chi tiết sau đây
Hệ thống thời gian thực nghiêm ngặt: Hệ thống thời gian thực phải đưa
ra kết quả đúng trong thời gian đã định Các yêu cầu đối với hệ thống này rấtchặt chẽ, thường áp dụng trong những hệ thống đòi hỏi nghiêm ngặt sự tuânthủ theo thời gian
Ví dụ 2.1 Hệ thống túi khí của xe hơi, khi xe xảy ra va chạm, các túi khí này
phải mở ra trong khoảng thời gian đã định Nếu không sẽ ảnh hưởng đến tính mạng người điều khiển xe.
Hệ thống thời gian thực ổn định: Hệ thống không bị dừng khi không đáp
ứng được các ràng buộc thời gian nhưng kết quả không sử dụng được, tức là kếtquả không đáp ứng được yêu cầu ràng buộc thời gian thì không có giá trị
Ví dụ 2.2 Một giao dịch trên hệ thống Internet-Banking đòi hỏi khách hàng
phải nhập chuỗi mã xác thực trong khoảng thời gian nhất định Nếu quá thời hạn mã xác thực không còn giá trị cho giao dịch đó nữa.
Hệ thống thời gian thực linh động: Những hệ thống vẫn đòi hỏi thực hiện
các tác vụ theo thời gian đã định nếu không đáp ứng được yêu cầu thời gian đóthì có thể kéo theo các thành phần khác hoạt động chậm lại, nhưng đến mộtlúc nào đó vẫn nhận được kết quả theo yêu cầu và lỗi không đáp ứng kịp yêucầu thời gian không gây tắc nghẽn hệ thống
Ví dụ 2.3 Một ứng dụng trình chiếu video trực tuyến có thể bị gián đoạn do
tốc độ đường truyền Internet chậm, tức là hệ thống không cung cấp đủ số khung hình/giây Tuy nhiên, khi hệ thống nạp đủ nội dung ứng dụng vẫn tiếp tục hoạt động.
Trang 33Hệ thống phi thời gian: Các chức năng của hệ thống không yêu cầu
ràng buộc về thời gian Đây là trường hợp riêng của hệ thống thời gian thực khiràng buộc thời gian bằng 0
Ngoài cách phân loại trên, hệ thống thời gian thực phải đảm bảo đượcmột số tính chất được trình bày dưới đây bao gồm tính kịp thời, tính dự đoán,tính xử lý đồng thời [22,24]
(i) Tính kịp thời: Các hoạt động của hệ thống thời gian thực đáp ứng kịp thời
các sự kiện trong giới hạn thời gian cho phép
(ii) Tính dự đoán: Các hành động của hệ thống thời gian thực phải phản ứng
lại tất cả các sự kiện một cách kịp thời
(iii) Tính xử lý đồng thời: Hệ thống phản ứng kịp thời với tất cả các sự kiện
xảy ra đồng thời
2.2.1 Ôtômát thời gian và vùng thời gian
Mọi hoạt động trong thế giới chúng ta đều phụ thuộc vào thời gian, ở mộtmức hoạt động nào đó yếu tố thời gian có thể bị ẩn đi hoặc chưa phải là yếu
tố cần xem xét Các hành động có thể xảy ra theo một trình tự nào đó và đôilúc cảm thấy chúng xảy ra tức thời và sự nhanh chậm không ảnh hưởng đến kếtquả của công việc Khi ràng buộc về mặt thời gian ảnh hưởng đến chất lượngcông việc thì nhu cầu cần phải tính toán yếu tố này trong các hoạt động củamột hệ thống trở nên cấp thiết Chúng ta xét ví dụ sau:
Ví dụ 2.4 Khi nhấn phanh xe ôtô, mất bao nhiêu phần trăm giây để xe có thể
giảm tốc độ và dừng lại, và việc xe đáp ứng lại yêu cầu của người điều khiển có đúng như trong thiết kế hay không?
Như vậy, trước khi có chiếc xe hoạt động trên thực tế, các nhà sản xuất đãtính toán trong thiết kế của họ mọi khả năng có thể xảy ra Điều này khẳng địnhnhu cầu trừu tượng hóa các hoạt động của hệ thống trên thực tế trở thành các
mô hình lý thuyết là rất cần thiết Dựa trên các mô hình, người ta có thể sửdụng chúng để phân tích, đánh giá các hoạt động và tính hiệu quả của hệ thốngcần phát triển thay vì làm trên mô hình thật trước khi triển khai trên thực tế
Từ Ví dụ 2.4, chúng ta có thể rút ra một phát biểu, hành động a thực hiện
trong khoảng thời gian t có thỏa một tính chất P cho trước hay không?
Trang 34Trên thực tế, các hành động xảy ra rời rạc theo một trình tự nào đó và đượcxem như một chuỗi các hành động Khi gán nhãn thời gian cho từng hành động,thì tập hợp các hành động xảy ra trên từng thời điểm khác nhau cũng sẽ tạothành một chuỗi sự kiện xảy ra trên trục thời gian Để biểu diễn và xử lý nhữngchuỗi sự kiện này, đã có nhiều công trình nghiên cứu và đề xuất như Timed PetriNets [25], Đại số tiến trình thời gian (Timed process algebras) [26,27], Biểu thứcchính quy thời gian (Timed Regular Expressions) [28,29], Lôgíc thời gian hệ mét(MTL) [6], lôgíc thời gian tuyến tính (LTL) [30] và Tính toán khoảng (Durationcalculus) [31], v.v Trong số các nghiên cứu về hệ thống thời gian thực, ôtômátthời gian được nhóm tác giả Rajeev Alur và David L Dill đề xuất trở thành
kỹ thuật tốt nhất trong việc mô hình hóa các chuỗi hành vi của hệ thống thờigian thực và là lý thuyết chính trong các công cụ kiểm chứng hệ thống thời gianthực [5] Phần tiếp theo, luận án trình bày lần lượt các khái niệm, kiến thức vềôtômát thời gian Chúng ta xem xét ví dụ sau đây
Ví dụ 2.5 Giả sử cho một máy bán đồ uống tự động, khách hàng nạp tiền với
mệnh giá được quy định trước, gồm 50000, 20000 và 10000 đồng, vào máy Các mặt hàng được bán đều có giá như nhau và bằng 10000 đồng Máy sẽ kiểm tra tổng số tiền đã nạp và chuyển sang chế độ sẵn sàng cho khách hàng lựa chọn mặt hàng Giả sử máy bán ba loại hàng là nước coca, cam ép và cà phê đóng lon Khi khách hàng chọn loại hàng nào thì máy trả mặt hàng đó ra khay đựng cho người mua Máy trả hàng cho đến khi tổng tiền của khách bằng 0.
Luận án sẽ thảo luận Ví dụ 2.5 theo hai trường hợp
Trường hợp thứ nhất: Yếu tố thời gian không được xem xét Khách
hàng nạp tiền, sau đó chọn loại hàng cần mua và máy sẽ đáp ứng đượcyêu cầu Như vậy toàn bộ hành động của máy được biểu diễn bằng một
ôtômát hữu hạn trạng thái Đặt ôtômát M biểu diễn máy bán hàng với tập trạng thái S = {S0, S1, S2, S3}, đặt tập các hành động của máy Σ =
{Coin, Orange, Coffee, Coca} Trạng thái khởi tạo là S0 và đồ thị chuyển đượcminh họa trong Hình 2.4
Trang 35Hình 2.4: Minh họa máy bán hàng bằng ôtômát hữu hạn.
Trong ôtômát ở Hình 2.4, S0 là trạng thái sẵn sàng của máy bán hàng vàcũng là trạng thái kết thúc của một giao dịch Khi khách hàng nạp tiền, máy
sẽ kiểm tra mệnh giá và cho phép khách hàng chọn loại đồ uống Nếu một loại
đồ uống được chọn máy sẽ chuyển sang trạng thái sẵn sàng trả hàng tương ứng
với một trong ba trạng thái S1, S2, S3 Khi trả hàng xong máy lại quay về trạngthái chờ cho một giao dịch tiếp theo Do đó, các hành động của máy được lặp
đi lặp lại cho đến khi máy bị dừng Vậy, một dãy các hành động của máy được
biểu diễn bằng một từ, ký hiệu bằng σ Ví dụ một chuỗi hành động của máy
bán hàng
σ =(Coin Coca Coca Orange Orange Coin Coca Coca).
Trường hợp thứ 2: Khi xét đến chất lượng các dịch vụ, yếu tố thời gian
là một trong những tiêu chí hàng đầu để đánh giá Một câu hỏi đặt ra là mấtbao nhiêu thời gian thì một giao dịch được hoàn thành? Nếu khách hàng phảiđợi một khoảng thời gian thì liệu khách hàng có biết được lý do máy trả hàngchậm hay máy đã bị treo? Từ những lý do này, việc cần thiết phải đặc tả ràngbuộc thời gian cho các hành động của các hệ thống Để đơn giản, chúng ta coimỗi hành động của máy tiêu thụ thời gian 5 giây Giả sử, khách hàng tùy ýtrong việc nạp tiền và lựa chọn đồ uống Chúng ta có thể minh họa một chuỗi
hành động được gắn nhãn thời gian bằng từ ω sau:
ω = (Coin, 0)(Coca, 7)(Coca, 12)(Orange, 18)(Orange, 24)
(Coffee, 35)(Coffee, 45)
Trang 36Như vậy, một chuỗi hành động của máy có thể được biểu diễn bằng một
từ thời gian ω, trong đó mỗi hành động của hệ thống được gán nhãn thời gian
là thời điểm hành động đó xảy ra Đặt τ biểu diễn thời gian xảy ra hành động.
Các hành động của máy bán hàng bị ràng buộc về thứ tự thời gian thực hiện
trước sau, nghĩa là hành động xảy ra tại thời điểm τ i thì phụ thuộc vào hành
động tại thời điểm thời điểm τ i−1 , tức là τ i − τ i−1 ≥ δ i−1 , ở đây δ i−1 là khoảng
thời gian tối thiểu dành cho hành động thứ i − 1 Như vậy, khi một hệ thống
hoạt động, các hành động của hệ thống phụ thuộc vào các ràng buộc thời gianxảy ra sự kiện, ràng buộc về thời gian thực hiện, ràng buộc về thứ tự các hànhđộng và thời gian để hoàn thành một hành động Trên thực tế, hoạt động củamột hệ thống thời gian thực rất phức tạp và vô hạn
Để phân tích và mô hình hóa các hành vi của hệ thống thời gian thực,
lý thuyết ôtômát thời gian do nhóm tác giả Rajeev Alur và David L Dill đề xuất
với đối tượng nghiên cứu là lớp ngôn ngữ ω− ngôn ngữ (ω − language) được đoán nhận bằng ω− ôtômát (ω − automata) [5] Các tác giả này đã xây dựng
lý thuyết ôtômát thời gian bằng cách bổ sung một số thực không âm, ký hiệu
R≥0, được gọi là miền thời gian, tương ứng với từng ký tự trong từ thời gian
trên bảng các hành động Một chuỗi thời gian τ được định nghĩa như sau:
Định nghĩa 2.1 (Chuỗi thời gian [5]) Một chuỗi thời gian τ = τ1τ2 là một chuỗi vô hạn các giá trị thời gian τ i ∈ R≥0 với τ i > 0, thỏa mãn các ràng buộc sau:
(i) Đơn điệu tăng: τ tăng một cách đơn điệu, tức là τ i < τ i+1 với mọi i ≥ 1, và
(ii) Sự tiến triển: Với mỗi t ∈ R≥0, tồn tại một i ≥ 1 nào đó sao cho τ i > t.
Theo Định nghĩa 2.1, chuỗi thời gian là một dãy số thực tăng vô hạn Khi
kết hợp chuỗi thời gian với một từ σ nào đó chúng ta có một từ thời gian ω Đặt
L là tập các vị trí và Σ là tập các hành động Ta có định nghĩa về từ thời gian
như sau:
Định nghĩa 2.2 (Từ thời gian [5]) Một từ thời gian ω = (a i , t i ) trên bảng chữ
cái Σ, ký hiệu bằng một cặp (σ, τ ), trong đó σ = a1a2 ., i ≥ 1, là một từ vô hạn trên bảng chữ cái Σ và τ = τ1τ2 là một chuỗi thời gian, tức là ω ∈ (Σ × R≥0)∗ Một ngôn ngữ thời gian trên bảng chữ cái Σ là tập các từ thời gian trên Σ.
Trang 37Để phân tích và đánh giá chất lượng của hệ thống thời gian thực, cáchoạt động của hệ thống cần được mô hình hóa bằng ôtômát thời gian Đặt { làtập hữu hạn các đồng hồ, ~ là tập các đồng hồ có giá trị được thiết lập bằng 0
khi một hành động nào đó được kích hoạt, ~ ⊆ { Đặt x là một đồng hồ, x ∈ {.
Đặt Φ({) là tập các ràng buộc trên tập đồng hồ được biểu diễn bằng tập cácquan hệ giữa các đồng hồ với giá trị số tự nhiên N
Đặt φ là mối quan hệ giữa các đồng hồ với các bộ giá trị của chúng,
φ ∈ Φ({), n ∈ N, và có ngữ nghĩa như sau:
Đặt ν là phép gán giá trị lên các đồng hồ, với mỗi hành động của ôtômát được kích hoạt thì ν sẽ gán lần lượt các đồng hồ trong { một giá trị tại thời điểm kích hoạt Ký hiệu ν0 biểu diễn việc thiết lập giá trị khởi tạo cho tất cả các đồng
hồ trong {, [~ 7→ 0]ν sẽ gán giá trị tất cả các đồng hồ thuộc ~ với giá trị bằng 0,
và các đồng hồ còn lại bằng giá trị được gán bởi ν tại thời điểm hành động được
kích hoạt Sau đây là định nghĩa về ôtômát thời gian theo các tác giả Alur vàDill [5]
Định nghĩa 2.3 (Ôtômát thời gian [5]) Ôtômát thời gian là một bộ
M = hL, Σ, `b 0, {, T, Γi, trong các thành phần được mô tả lần lượt sau đây.
h`, a, φ, ~, `0i ∈ T biểu diễn một dịch chuyển từ vị trí ` sang vị trí `0, được
biểu thị một cách tương ứng là ←−e và −→e ; φ là một ràng buộc đồng hồ trên
{ phải thỏa được khi dịch chuyển e được kích hoạt và ~ ⊆ { là tập các
đồng hồ được thiết lập lại bởi dịch chuyển e khi nó xảy ra Tiếp theo, ký hiệu e được làm chỉ số dưới của φ và ~ để chỉ rằng có mối tương quan giữa
φ và ~ với e, và
(vi) Γ là tập các vị trí có thể chấp nhận được.
Trang 38Ngữ nghĩa của ôtômát thời gian tương tự như ω-ôtômát ngoại trừ trường hợp bổ sung thêm chuỗi thời gian Hệ thống khởi tạo tại vị trí `0 ∈ L và sự dịch
chuyển của ôtômát thời gian có hai hình thức
(i) Thời gian trôi: h`, νi−→ h`, ν + di với mọi d ∈ R d ≥0
(ii) Dịch chuyển rời rạc: h`, νi −→ h` e 0, ν0i nếu tồn tại một dịch chuyển e = h`, a, φ, ~, `0i ∈ T sao cho ν |= φ, φ ∈ Φ({), và ν0 = [~ 7→ 0]ν.
Do ôtômát thời gian đoán nhận từ vô hạn và bị ràng buộc trên tập cácđồng hồ với giá trị là các số thực dương, nên trong lý thuyết ôtômát thời gian,
các tác giả đã đưa ra khái niệm vùng đồng hồ và ôtômát vùng để biểu diễn hữu hạn ôtômát thời gian Giả sử τ là một thời điểm xảy ra hành động nào đó,
phân Phần thập phân của τ ký hiệu bởi f ract(τ ), phần nguyên ký hiệu bởi bτ c.
Như vậy τ = bτ c + f ract(τ ), vùng đồng hồ được khái quát bằng Định nghĩa2.4
Định nghĩa 2.4 (Vùng đồng hồ [5]) Cho ôtômát thời gian M =
hL, Σ, `0, {, T, Γi, đặt c là số nguyên lớn nhất sao cho x ≤ c hoặc c ≤ x là một công thức con của ràng buộc đồng hồ nào đó trong { Quan hệ tương đương
được định nghĩa trên tập tất các các phép gán đồng hồ của {, ν ν0 khi và chỉ khi các điều kiện sau đúng:
Trang 39Định nghĩa 2.5 (Ôtômát vùng [5]) Cho ôtômát thời gian M =
hL, Σ, `0, {, T, Γi, Một ôtômát vùng của M, ký hiệu bởi P(M ) trên bảng chữ cái Σ gồm các thành phần sau.
(i) Các trạng thái của P(M ) có dạng h`, Zi, trong đó ` ∈ L và Z là một vùng đồng hồ.
(ii) Các trạng thái khởi động có dạng h`0, [ν0]i, trong đó `0 ∈ L và ν0(x) = 0
với mọi x ∈ {.
h`, a, φ, ~, `0i ∈ T và một vùng Z00 sao cho (i) Z00 là một phần tử thời gian kế tiếp của Z, (ii) Z00 thỏa φ và (iii) Z0 = [~ 7→ 0]Z00.
Ôtômát vùng được sử dụng trong việc biểu diễn hữu hạn ôtômát thời gian
Do đó, chúng ta có thể sử dụng ôtômát vùng trong bài toán kiểm chứng các tínhchất của hệ thống thời gian thực
2.2.2 Ôtômát trọng số
Trong phần này, luận án trình bày các khái niệm và kiến thức cơ bản củaôtômát trọng số [32,33] Các đại lượng gồm tập các đồng hồ {, phép gán giá
trị cho tập đồng hồ ν, v.v tương tự như được định nghĩa trong Mục 2.2.1 Đặt
R{≥0 là tập tất cả các phép gán bộ giá trị cho tập đồng hồ {, ν ∈ R{≥0 Theo quy
ước, ν0 luôn gán giá trị 0 cho tập các đồng hồ trong { Trong quá trình hoạtđộng không phải đồng thời tất cả các đồng hồ trong { được thiết lập giá trị 0.Giả sử, ~ ⊆ { là tập con các đồng hồ trong { được thiết lập giá trị về 0, ký
hiệu bởi [~ ← 0]ν, các đồng hồ còn lại nhận giá trị do ν gán cho Mối quan hệ giữa các đồng hồ với các bộ giá trị của chúng gọi là φ và được định nghĩa trong
Trang 40Ngữ nghĩa của ôtômát này tương đương với ôtômát thời gian khi không
có hàm gán nhãn λ và H Một dịch chuyển e = h`, a, φ, ~, `0i ∈ T biểu diễn sự dịch chuyển từ vị trí ` sang `0 với nhãn là hành động a, φ là tập ràng buộc đồng hồ trên { và phải được thỏa khi dịch chuyển e được kích hoạt Thành phần ~ ⊆ { là tập đồng hồ sẽ được thiết lập lại khi e xảy ra Khi một thành phần phần mềm thực hiện một dịch vụ thì ôtômát M dịch chuyển từ vị trí ` i thông qua bước chuyển thứ e i tới vị trí thứ ` i+1 , hàm gán nhãn λ sẽ gán giá trị trên cả cạnh e và vị trí ` của ôtômát M Đặt z là chi phí của một dịch chuyển
từ trạng thái h`, νi sang trạng thái h`0, ν0i, ký hiệu bằng h`, νi −→a z h`0, ν0i, bất
cứ khi nào e = h`, a, φ, ~, `0i ∈ T được xác định Giả sử cho một dãy thực thi
% = h`0, ν0i a1
−→z1 h`2, ν2i a2
−→z2 h`3, ν3i a n
−→z n h` n , ν ni của M, n ∈ N Chi phí cho dãy % được tính bằng cost(%), cost(%) = Σ i=1,n z i Cho một trạng thái h` k , ν ki,
chi phí nhỏ nhất của h` k , ν k i, ký hiệu bằng mincost(h` k , ν ki), là chi phí nhỏ nhất
của dãy thực thi bắt đầu từ h`0, ν0i và kết thúc h` k , ν k i, k ≤ n.
Giống như dịch chuyển trong ôtômát thời gian, ôtômát trọng số cũng cóhai hình thức dịch chuyển là thời gian trôi trên cùng một vị trí và dịch chuyểnrời rạc [32,33] Như vậy, dịch chuyển trong ôtômát trọng số được khái quát theohai hình thức sau:
(i) Thời gian trôi: h`, νi−→ h`, ν + di với mọi d ∈ R d ≥0, z = λ(h`, νi).
(ii) Dịch chuyển rời rạc: h`, νi −→ h` e 0, ν0i nếu tồn tại một dịch chuyển e = h`, a, φ, ~, `0i ∈ T sao cho ν |= φ và ν0 = [~ 7→ 0]ν, và λ(h`0, ν0i) =
λ(h`, νi → h`−e 0, ν0i)
2.2.3 Ôtômát khoảng
Tính toán khoảng và ôtômát khoảng được đề xuất lần đầu bởi Z Chaochennăm 1994 [34] Tác giả sử dụng ôtômát khoảng để biểu diễn các ràng buộc thờigian của hệ thống thời gian thực Ôtômát khoảng không có các biến đồng hồnhư ôtômát thời gian mà thay vào đó là sử dụng hai biến cận trên và cận dướicho mỗi dịch chuyển [34] Phần này, luận án trình bày những khái niệm cơ bảncủa tính toán khoảng và ôtômát khoảng để phân tích và đánh giá chi phí thờigian lớn nhất và nhỏ nhất trong các dịch chuyển của giao diện thời gian thực(real-time interface) Việc sử dụng ôtômát khoảng làm cơ sở cho việc đặc tảthành phần phần mềm thời gian thực và làm phong phú thêm cách giải quyếtbài toán đặc tả và kiểm chứng hệ thống thời gian thực dựa trên thành phần