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

(Luận án tiến sĩ) một số phương pháp mô hình hoá 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 TS máy tính 94801

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 (6.77 MB, 166 trang )

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


ĐẠ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
Mã số:
9480103.01

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


Mụ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

i


2.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 tố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

ii


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

iii

134



Tài liệu tham khảo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

iv

135


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

2.2

Minh họa phép ghép song song (a) và phép ghép nối tiếp (b).

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à A : a, b ∈ Σi , c

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

v

. . . . . . . . . . . . . . . . . 8

Σi .

. . . . . . . 9

. . . . . . . . . . . . . . . 46


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

vi



Danh 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

vii


LỜ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ôn
Cô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ình
nào khác.
Hà Nội, ngày 16 tháng 8 năm 2018
Tác giả

Nguyễn Trịnh Đông


LỜ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ọc
Quố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 Hồ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 trong
luận án đã nhận được sự giúp đỡ nhiệt tình và sự động viên kịp thời của các
thầy cô, các nhà khoa học. Tôi xin trân trọng cảm ơn lãnh đạo Trường Đại
họ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à hồn thành chương trình nghiên cứu của
mì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 q 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ập
Hả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ọng
cả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 trong
luận án vì đã cung cấp nguồn tư liệu quý báu, những kiến thức liên quan trong
q trình nghiên cứu hồ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ị em
trong 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ộc
sống trong suốt q trình hồn thành luận án.
Hà Nội, ngày 16 tháng 8 năm 2018

Nguyễn Trịnh Đông

ix


Danh mc t vit tt
T vit tt


T gc

Gii thớch ngha

BA


uchi Automata

ễtụmỏt Bă
uchi

BIP

Behaviour Interaction Priority

Tờn ca mt cụng c

CB-RTS

Component-Based
System

Real-time H thng thời gian thực dựa
trên thành phần

CBSE

Component-based

Engineering

Software Kỹ nghệ phần mềm dựa trên
thành phần

CBSD

Component-based
Development

Software Phát triển phần mềm dựa trên
thành phần

CORBA

Common Object Request Bro- Kiến trúc trung gian yêu cầu
ker Architecture
đối tượng chung

COM

Component Object Model

Mơ hình đối tượng thành phần

CTL

Computation Tree Logic

Logic cây tính tốn


DCOM

Distributed Component Ob- Mơ hình đối tượng thành phần
ject Model
phân tán

DTS

Distributed Transition System

ECDAR

An Environment for Composi- Môi trường cho phân tích và
tional Design and Analysis of thiết kế thành phần cho hệ
Real Time Systems
thống thời gian thực

JML

Java Modelling Language

Ngơn ngữ mơ hình hóa Java

LTL

Linear Temporal Logic

Logic thời gian tuyến tính


MITL

Metric Interval Temporal Logic Logic thời khoảng tuyến tính

MRMC

Markov
Checker

PECOS

Pervasive Component Systems

Reward

Hệ thống dịch chuyển phân tán

Model Tên cơng cụ kiểm chứng mơ
hình

x

Các hệ thống thành phần phần
mềm phổ biến


Từ viết tắt

Từ gốc


Giải thích nghĩa

PRISM

Probabilistic Model Checker

Bộ kiểm chứng mơ hình xác
suất

PTA

Priced Timed Automaton

Ơtơmát trọng số

RTS

Real-time systems

Hệ thống thời gian thực

rCOS

A refinement calculus for ob- Sự tinh giảm tính toán cho các
ject systems
hệ thống đối tượng

SysML

System Modeling Language


TIMES

A Tool for Modeling and
Công cụ cho sự thực thi và mô
Implementation of Embedded
hình hóa của hệ thống nhúng
Systems

UPPAAL

Cơng cụ kiểm chứng thời gian
Uppsala University and Aalthực do hai trường đại học
borg University
cùng phát triển

UPPAAL
- SMC

Uppaal - Statistical Model Công cụ kiểm chứng mơ hình
Checker
thống kê dựa trên UPPAAL

TA

Timed Automata

TCTL

Timed

Logic

UTP

Unifying Theories of Program- Lý thuyết hợp nhất ngơn ngữ
ming
lập trình

Computational

Ngơn ngữ mơ hình hóa hệ
thống

Ơtơmát thời gian
Tree

Logic cây tính tốn thời gian

X-MAN

X-MAN

Tên của một cơng cụ do nhóm
tác giả Nannan He, K.K. Lau
phát triển

WCET

Worst-case Execution Time


Thời gian thực thi lớn nhất


Danh mục các ký hiệu
ν

Phép gán các giá trị đồng hồ (clock interpretation)

17

Σi

Bảng chữ cái thứ i

37

Tập powerset của tập đồng hồ trong ôtômát thời gian

17

2

[b, e] Khoảng thời gian

68

Tập đồng hồ

17


Lớp tương đương

19



Độ lệch thời gian tối thiểu giữa hai hành động

16

ð

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
thời gian
17
Hàm gán nhãn

λ

20


, ν Một trạng thái của ôtômát thời gian

17

ν(x) Phần nguyên của giá trị các đồng hồ

19

Phần nguyên của số thực r

42

C

Thành phần phần mềm

11

Ei

Biểu thức chính quy thứ i

37

N

Tập số tự nhiên

17


r

xii


R≥0

Miền thời gian là một số thực không âm

16

A, A , B Ơtơmát thời gian

20

Bi

20

Một ơtơmát trên bảng chữ cái Σi

L(M ) Ngơn ngữ của ơtơmát M

42

R(M ) Ơtơmát vùng của ôtômát thời gian M

19


|=

Ký hiệu thỏa được

20



Tập các hành động trong thành phần phần mềm, Ω =

ω

Chuỗi ký tự hoặc chuỗi hành vi

k
i=1 Σi

37
17

ω − automata Ơtơmát đốn nhận ngôn ngữ ω − language

16

ω − language Ngôn ngữ vô hạn

16




Phép toán nhân trên tập tài nguyên

20

1, n

Dãy số tự nhiên từ 1 đến n

20

Φ

Tập các quan hệ giữa đầu vào, đầu ra của giao diện thành phần

68

φ

Tập ràng buộc các đồng hồ

17

Φ( ) Tập các ràng buộc giữa các đồng hồ

17

π

Thể thức tương tác tương tranh trong thành phần phần mềm


37

R

Tập tài nguyên

20

Σ

Bảng chữ cái

17

σ

Từ vô hạn phi thời gian

17

τ

Chuỗi thời gian, một dãy số thực tăng dần, τ ∈ R≥0

17

fract(r) Phần thập phân số thực r, fract(r) = r − r
Phép kết hợp các bất biến tài nguyên
c


Hằng số

42
110
19

xiii


d

Thời gian trôi qua

17

e

Một dịch chuyển, e ∈ T

17

f ract(ν(x)) Phần thập phân của giá trị các đồng hồ

19

Kx

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

P

Tính chất P của hệ thống

11

r1 , . . . , rn Các thành phần tài nguyên, n ∈ N
T

Tập các dịch chuyển trong ôtômát thời gian

20
17

T ime Tập thời gian

69

x

Biến đồng hồ

19


Z

Vùng đồng hồ

19

F(X ∪ Y ) Tập các cơng thức lơgíc vị từ cấp 1 trên X ∪ Y

69

V(X ∪ Y ) Tập các phép gán giá trị trên X ∪ Y

69


TÓ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ương
tác tương tranh thời gian và thể thức tương tác tương tranh thời gian với ràng
buộ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 vi
củ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ữa
các phương thức trong thành phần phần mềm và giữa các thành phần phần
mềm với môi trường. Luận án cũng đề xuất kỹ thuật đặc tả thành phần phần
mề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ểu
diễ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ên
cạnh đó, luận án đề xuất kỹ thuật đặc tả thành phần phần mềm thời gian thực

bằng các hợp đồng thời gian và hợp đồng thời gian có ràng buộc tài nguyên
nhằ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ống
cầ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ần
mềm. Để hợp nhất các ngôn ngữ đặc tả thời gian thực, luận án mở rộng ngôn
ngữ đặc tả mẫu (cho các hệ thống khơng có yếu tố thời gian) trở thành ngơn
ngữ đặ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ác
rà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ết
như sau:
Thứ nhất, luận án đã mở rộng mơ hình PECOS (PErvasive COmponent
Systems) 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ời
gian 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ần
thụ động và phần chủ động. Phần thụ động đóng vai trị như một kho chứa
cá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 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. Ngồi ý nghĩa trên, mơ hình được chia thành hai phần

xv


cũ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ên
chiến lược chia để trị. Trong đó, với phần chủ động, chúng ta có thể kiểm số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ình
nà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ần
phầ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ày
cũ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ực

hiện thực hiện song song. Bên cạnh đó, để phân tích chính xác sự tương tác
trong hệ thống thời gian thực dựa trên thành phần, luận án đề xuất thể thức
tương tác tương tranh thời gian và thể thức tương tranh có ràng buộc tài nguyên
bằ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ần
mề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ình
hó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át
trọng số. Đồng thời, luận án cũng đề xuất thuật toán kiểm tra sự tuân thủ của
dã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ía
cạ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ết
khả 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ành
phần phần mềm. Do đó, dựa trên sự kiểm tra tính tn 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ầu
thiế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ời
gian thực dựa trên thành phần. Giao diện thời gian thực là một bộ ba thành
phầ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 đầu
và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ằng
nế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 giao
diệ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ành
phần phần mềm được đặc tả đơn giản hơn, cô đọng hơn nhưng lại phản ánh được
chi 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 vi
củ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át
khoảng (duration automata) để biểu diễn hữu hạn các dãy hành vi của giao diện
thà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
xvi



mộ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ực
vớ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ống
thời gian thực dựa trên thành phần một cách hiệu quả. Sự kiểm chứng được
thự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ép
ghé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ằng
hợ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ên
cá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ày
cũ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ên
nà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ày
cũ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ương
tá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ương
thứ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ài
ngun. Khi mơi trường muốn sử dụng các dịch vụ từ thành phần phần mềm
thì 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ải
tuâ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ân
thủ 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ựa
trê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ời
gian thực và các yếu tố được phân tích và đánh giá đầy đủ trên hai khía cạnh
chứ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ăng

cho 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ềm
thời gian thực được đặc tả đầy đủ và các đặc tả được sử dụng làm cơ sở cho cho
việ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ên
thà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
xvii


nhau trong quá trình phát triển phần mềm thời gian thực gồm mở rộng mơ hình
PECOS cho thành phần phần mềm thời gian thực, đề xuất thể thức tương tác
tươ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ời
gian 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.

xviii


CHƯƠNG 1

Giới thiệu

1.1 Đặt vấn đề
Phát triển phần mềm thời gian thực dựa trên thành phần (Real-time
Component-based Software Development) đóng một vai trị quan trọng trong
lĩnh vực cơng nghệ phần mềm. Các hệ thống phần mềm được phát triển bằng
cách ghép dần các thành phần cho đến khi thỏa các yêu cầu của hệ thống. Dựa
trên cách tiếp cận này, hệ thống được phát triển một cách nhanh chóng, dễ
bảo trì và độ chính xác cao. Tuy nhiên, một trong những hạn chế lớn nhất của

phương pháp này là làm thế nào đảm bảo được tính đúng đắn của hệ thống
sau khi ghép các thành phần phần mềm. Đặc biệt, đối với các hệ thống thuộc
lĩnh vực hàng không, vũ trụ, tự động hóa, an ninh quốc phịng, v.v. Hiện nay,
các lý thuyết và kỹ thuật phát triển phần mềm dựa trên thành phần đang ở
mức kiểm tra hệ thống phần mềm từ giai đoạn triển khai, trong khi đó việc đảm
bảo tính đúng đắn của hệ thống cần phải được giải quyết ngay tại giai đoạn
thiết kế.
Để giải quyết những hạn chế trong phát triển phần mềm dựa trên thành
phần. Hiện nay, kiểm chứng mơ hình [1–3] và chứng minh định lý [4] đang được
xem 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ương
phá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ác
chuỗ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ễn
hữ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

1


thời gian tuyến tính (LTL - Linear temporal logic), lơgíc cây tính tố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ớn
nế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ài
nhữ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àm
cho bài tốn kiểm chứng mơ hình đối diện với hiện tượng bùng nổ không gian
trạ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ũng
tạ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ực
dựa trên thành phần có tính tốn đến các yếu tố tài ngun. Đây là một trong
nhữ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ời
gian 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ên
chứng minh định lý, tính đúng đắn của phần mềm được chứng minh và kiểm tra
dự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 phi
thờ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ình
thứ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ần
kiểm chứng nhằm đề xuất những kỹ thuật kiểm chứng phù hợp. Luận án bắt đầu
bằng việc đề xuất mơ hình cho thành phần phần mềm thời gian thực. Mơ hình
này được phát triển theo chiến lược chia để trị nhằm phát huy các ưu điểm của
phươ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à cho
phé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ần
phầ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ần
mề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 động
hiệ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 định
bà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
2


toá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ống
thờ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ới

việ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ựa
trê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ời
gian thực. Tính hiệu quả của các phương pháp kiểm chứng cịn được thể hiện
trong 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ựa
trê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ực
nà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ời
gian 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ạnh
rà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 bao
gồm (i) Mở rộng mơ hình PECOS cho thành phần phần mềm thời gian thực dựa
trê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ần
phầ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ực
bằ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ống
thờ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óp
chí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ựa
trên sự mở rộng mơ hình PECOS cho hệ thống thời gian thực. Mơ hình có hai

phần, phần thụ động và phần chủ động. Phần thụ động đóng vai trò là một kho
lư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 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
3


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ồi
trả 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 tranh
thờ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ác
yế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ống
thờ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ần
phầ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 được
phát triển đúng với yêu cầu thiết kế.
Đặc tả

Mã thực thi

Đóng gói

2

1
Đề xuất mơ hình
thành phần phần
mềm thời gian
thực, và thể thức
tương tác tương

tranh thời gian và
thể thức tương
tranh với ràng
buộc tài nguyên.

= ( 1, 1)...( k, k),
p|| = (p1|| p2)...(pn|| pm)
p = (p1 p2)...(pn pm)

Ghép các
thành phần

Thể thức
tương tác
tương tranh
thời gian thực

Thư viện
thành phần

Bộ chứa

3

Các kết nối

Đề 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 ngun.

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ần
phầ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ường
cung 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ép
ghé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 tốn kiểm chứng tính chất cắm được của môi trường với
thành phần phần mềm cũng được chứng minh.

4


Thứ ba, dựa trên cách tiếp cận thiết kế bằng hợp đồng và tính đúng đắn
dự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ề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
tà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ởi
các ràng buộc đã được đặc tả bên trong từng phương thức trong thành phần
phầ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ằm
hướ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 cao
chấ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ình
bà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ềm
dự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ển
dựa trên sự mở rộng của mơ hình PECOS cho thành phần phần mềm thời gian
thự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ành
phầ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ủa
dã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ần
phầ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 vi
củ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 được
củ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ăng
nhằ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ức
nă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ập
trì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ên
cứu và hướng phát triển tiếp theo.
5



×