Minh họa văn phạm của các định danh

Một phần của tài liệu (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 (Trang 137)

Chương 6 Kết luận

5.1 Minh họa văn phạm của các định danh

Digit Integer

Type , Identifier ; , Identifier = value features

Hình 5.3: Minh họa văn phạm của các thuộc tính.

resource value resource

,

identifier = { }

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

system resource

system resource

Hình 5.5: Minh họa văn phạm của tài nguyên hệ thống.

Integer duration

Type identifier = ;

Hình 5.6: Minh họa văn phạm của khoảng thời gian.

assert

predicate }

{

invariant

LTL formulas }

{

Hình 5.8: Minh họa văn phạm của các bất biến.

resource invariant

predicate }

{

Hình 5.9: Minh họa văn phạm của các bất biến tài nguyên.

term - term ) / * simple expression ( + - / * +

Hình 5.10: Minh họa văn phạm của các biểu thức đơn giản.

expression

simple expression

simple expression < <= > >= == !=

predicate simple expression simple expression < <= > >= == != term term

Hình 5.12: Minh họa văn phạm của các thành phần cơ bản.

5.4.4.2 Mô tả phương thức

Một thiết kế thời gian có ràng buộc các thành phần phi chức năng được đặc tả bằng từ khóa method, các phương thức ở đây hoặc là loại provided

hoặc làrequired, tên phương thức được đặt bằng từ khóa name và được trình bày chi tiết trong văn phạm dưới đây.

{ } name identifier resource duration assert specification ; ; method

1 <[provided][required] > method { 2 name <Name of method>;

3 resource r = {List of resource};

4 duration int d = constant;

5 assert {Predicate};

6 specification {predicate};

7 }

Thiết kế thời gian-tài nguyên là bản mô tả tĩnh cho một phương thức trong thành phần phần mềm. Tại dòng 1, từ khóa provided cho biết phương thức thuộc loại cung cấp, có nghĩa là thành phần phần mềm sẽ cung cấp phương thức cho mơi trường. Ngược lại với từ khóa required phương thức thuộc loại yêu cầu, tức là thành phần phần mềm cần phương thức như vậy đề có thể hoạt động được. Dịng 2, từ khóa name khai báo tên phương thức. Dịng 3 từ khóa

resource khai báo đặc tả tài nguyên được sử dụng cho phương thức. Dòng 4sử dụng từ khóa duration để khai báo thời gian phương thức có thể hồn thành nhiệm vụ, được biểu diễn bằng một số nguyên dương. Nếu trong method vắng mặt thành phần resource thì hệ thống trở thành hệ thống thời gian thực, tức là khơng có ràng buộc tài nguyên. Nếu trong các method vắng cả hai tham số thì thành phần phần mềm trở thành loại phi thời gian. Không chấp nhận trường hợp córesource mà thiếu duration. Dịng 5khai báo assertcho phương thức. Cuối cùng, từ khóa specification tài dịng 6 biểu diễn đặc tả chức năng của phương thức là biểu thức lơgíc tân từ cấp 1. Biểu thức lơgíc này chỉ rõ mối quan hệ giữa đầu vào/đầu ra của phương thức.

Ví dụ 5.4. Ví dụ minh họa cách khai báo một phương thức trong thành phần điều khiển cảm biến của Ví dụ 3.1.

1 provided method { 2 name gettemperature(); 3 resource r = {1,10,1,5,1,20}; //{1%,10KB,1%,5%,1 µW,20KB} 4 duration int d = 5; 5 assert (y=x); 6 specification 7 x≥ 0` (x≥ 0∧y =x) ; 8 }

Trong ví dụ này từ khóa resource khai báo tài nguyên được dùng cho phương thức trong thuộc tính (biến) r = {1,10,1,5,1,20}. Điều này cịn cho biết khi mơi trường muốn gọi phương thức gettemperature() thì mơi trường phải một lượng tài nguyên lớn hơn r. Biến d biểu diễn khoảng thời gian trong đặc tả tĩnh của phương thức cho biết khoảng thời gian phương thức thực thi hết ba đơn vị thời gian. Trong trường hợp này, nếu hệ thống gọi phương thức với khoảng thời gian nhỏ hơn ba đơn vị thời gian thì thành phần phần mềm chứa phương thức không đáp ứng kịp. <[provided] [required]> identifier { provided feature required feature system resource invariant resource invariant Method protocol } ; ; ; ; ; ; code { function } ; } { Regular Expression component

Hình 5.14: Minh họa văn phạm của thành phần phần mềm.

5.4.4.3 Mô tả hợp đồng

Luận án đã đặc tả các thông tin của một thành phần phần mềm thông qua hợp đồng như được định nghĩa trong Phần 5.4.2. Các dãy thực thi của thành

họa cách biểu diễn hợp đồng thời gian thực bằng ngôn ngữ mẫu. Trong đó, phần giao diện thành phần đặc tả danh sách các phương thức cung cấp và các phương thức yêu cầu; phần init khởi tạo các thuộc tính trong hợp đồng; thành phần bất biến cho phép khai báo điều kiện ràng buộc trên các thuộc tính; thành phần

MSpec biểu diễn danh sách các phương thức có trong thành phần phần mềm và

π đặc tả thể thức mà các hành vi của thành phần phần mềm phải tuân thủ. Luận án đưa ra ví dụ sơ khai về ngơn ngữ thời gian thực mẫu nhằm minh họa hệ thống thời gian thực dựa trên thành phần.

Phần mã nguồn được đưa vào trong đặc tả thành phần phần mềm được trình bày bởi văn phạm trong Hình 5.15.

(

identifier parameter ) { ,

instruction ; } function

Hình 5.15: Minh họa văn phạm của phương thức trong phần mã nguồn.

1 component <Component name>{

2 provided feature <List of features>;

3 required feature <List of features>;

4 system resource <Resource feature>;

5 invariant <LTL formulae>;

6 resource invariant <Predicates>;

7 <[provided][required]> method { 8 name <Name of method>;

9 resource r = Type of resource;

10 duration int d = constant;

11 specification Predicate;

12 }

13 protocol <List of Regular Expression>;

14 code {function}; 15 }

Từ khóa component dịng 1 sử dụng khai báo tên của thành phần phần mềm. Dịng 2 có hai từ khóa provided feature được sử dụng để khai báo tập thuộc tính mà thành phần phần mềm cung cấp ra ngồi. Dịng số 3 từ khóa

required feature khai báo thuộc tính u cầu, có nghĩa là tập thuộc tính sử dụng để nhận giá trị từ mơi trường. Dịng số 4 với từ khóa system resource

khai báo tham số tài nguyên mà hệ thống dành cho thành phần phần mềm thực thi các dịch vụ. Dịng số 5 với từ khóa invariant khai báo yếu tố bất biến cho thành phần phần mềm. Yếu tố bất biến này được đặc tả bằng cơng thức lơgíc thời gian tuyến tính LTL nhằm chỉ ra rằng thành phần phần mềm đã cho thỏa một tính chất nào đó của hệ thống. Dịng số 6với từ khóa resource invariant

cho biết thành phần bất biến thỏa một tính chất về ràng buộc tài nguyên hệ thống. Nếu yếu tố này bị vi phạm thì chứng tỏ thành phần phần mềm đã cho chưa đáp ứng được ràng buộc về việc sử dụng tài nguyên hệ thống. Từ dòng 7

đến dòng 12 khai báo phương thức trong thành phần phần mềm. Trong thành phần phần mềm có bao nhiêu phương thức thì khai báo bấy nhiêu đặc tả cho các phương thức này và tùy thuộc vào loại phương thức là provided hayrequired

để khai báo loại phương thức đó. Từ khóa protocol tại dịng 13 khai báo thể thức tương tác cho thành phần phần mềm. Thể thức này là một biểu thức chính quy với tập các hành động là tập các phương thức trong thành phần phần mềm. Từ khóa code{. . .} tại dịng 14 chỉ rõ mã nguồn của phương thức. Chú ý, mã nguồn chương trình trong cùng một thành phần phần mềm phải cùng một ngơn ngữ lập trình.

5.4.4.4 Mơ tả thành phần phần mềm chủ động

Mặc định thành phần phần mềm là loại thụ động, nếu thành phần phần mềm thuộc loại chủ động phải thêm từ khóa active vào trước từ khóa

component. Như vậy, thành phần phần mềm chủ động được đặc tả theo các

cú pháp sau:

1 active component <Component name>{

2 required feature <Type List of features>;

3 system resource <Resource feature>;

4 invariant <LTL formulae>;

5 system assert <Predicate>;

6 resource invariant <Predicates>;

7 <required> method {

9 resource r = Type of resource;

10 duration int d = constant;

11 assert <Predicate>;

12 specification Predicate;

13 }

14 protocol <List of Regular Expressions>;

15 code {Code}; 16 }

Thành phần phần mềm chủ động active component cũng được đặc tả giống như thành phần phần mềm thụ động. Tuy nhiên, ngồi trường hợp phải thêm từ khóaactivevào trước từ khóacomponentthì trong thành phần phần mềm chủ động chỉ có loại phương thức yêu cầu.

required identifier { required feature system resource invariant resource invariant Method protocol } ; ; ; ; ; code { function } ; } { Regular Expression active component system invariant ; ;

Hình 5.16: Minh họa văn phạm của thành phần phần mềm chủ động.

5.4.4.5 Mô tả hệ thống

Đặc tả hệ thống được tạo bởi sự đặc tả thành phần phần mềm chủ động và thành phần phần mềm thụ động. Với kỹ thuật đặc tả này, hệ thống có thể được đặc tả đầy đủ với các ràng buộc thời gian và tài nguyên hệ thống.

1 system <System name> {

2 component <Component name>{

3 provided feature <Type List of features>

4 required feature <Type List of features>

5 system resource <Resource feature>

7 resource invariant <Predicates> 8 <[provided][required]> method { 9 name <Name of method>;

10 resource r = Type of resource;

11 duration int d = constant;

12 specification Predicate;

13 }

14 protocol <List of Regular Expression>

15 code {Code}; 16 }

17 active component <Component name>{

18 required feature <Type List of features>

19 system resource <Resource feature>

20 invariant <LTL formulae>

21 system assert <Predicate>;

22 resource invariant <Predicates>

23 <required> method {

24 name <Name of method>;

25 resource r = Type of resource;

26 duration int d = constant;

27 assert <Predicate>;

28 specification Predicate;

29 }

30 protocol <List of Regular Expressions>

31 code {Code}; 32 } 33 } identifier component } system { active component

Hình 5.17: Minh họa văn phạm của hệ thống.

Dựa trên đặc tả hệ thống, một hệ thống thời gian thực được đặc tả một cách đầy đủ gồm các thành phần phần mềm với các yếu tố như tập thuộc tính, tập phương thức, các bất biến, v.v. Kết hợp với việc tích hợp mã nguồn cùng với đặc tả làm cho việc phát triển hệ thống hồn tồn đảm bảo được tính đúng đắn và tốc độ triển khai nhanh. Đặc biệt, có thể áp dụng kỹ thuật này để tự động hóa một số giai đoạn trong quá trình phát triển hệ thống thời gian thực như giai đoạn triển khai. Việc kiểm thử phần mềm khơng chỉ nhằm mục đích phát hiện lỗi mà chuyển thành việc khẳng định phần mềm có thỏa yêu cầu hệ thống hay khơng.

5.5 Tổng kết chương

Trong chương này, luận án trình bày 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à mở rộng cho đặc tả phi chức năng trên hai khía cạnh gồm (i) bổ sung đặc tả phi chức năng cho thiết kế thời gian trở thành thiết kế thời gian-tài nguyên và (ii) bổ sung ràng buộc phi chức năng vào hợp đồng thời gian để trở thành hợp đồng thời gian-tài nguyên nhằm lập luận khả năng sử dụng tài nguyên của hệ thống cần phát triển. Với sự đóng góp hệ thống lý thuyết trong chương này, khi phát triển hệ thống thời gian thực, các yếu tố chức năng và phi chức năng được xem xét một cách đầy đủ nhằm có sự phân tích, đánh giá toàn bộ các yếu tố trước khi triển khai phần mềm. Một số đóng góp được tóm tắt trong các mục sau:

Mơ hình này cho phép phân tích và lập luận các yếu tố ràng buộc của các thành phần chức năng và phi chức năng dựa trên đặc tả của các thành phần phần mềm.

Mơ hình dễ dàng được mở rộng để điều khiển nhiều loại hệ thống khác nhau có cả ràng buộc thời gian cũng như các hệ thống không ràng buộc thời gian. Đồng thời, hệ thống cũng cho phép mở rộng cho phù hợp với một số mơ hình như hệ thống nhúng, tác tử di động và điều khiển các thuộc tính phi chức năng của thành phần chẳng hạn như chất lượng dịch vụ và một số loại tài nguyên như bộ nhớ trong, hiệu năng CPU, năng lượng, v.v.

Cách tiếp cận lý thuyết trong chương này phản ánh đầy đủ hai khía cạnh trong kỹ thuật phát triển phần mềm thời gian thực, và cho phép phân tích đánh giá các yếu tố khác nhau trong quá trình phát triển hệ thống. Dựa trên lý thuyết này, hệ thống được phát triển giảm thiểu rủi ro, chi phí cho bảo trì và có chất lượng tốt. Phần lý thuyết trong chương này dựa trên các nghiên cứu được công bố trong các hội nghị “4th EAI International Conference on Context-Aware Systems and Applications (ICCASA 2015)”, “Hội nghị NAFOSTED Conference on Information and Computer Science (NICS 2017)” và “Hội thảo Khoa học Quốc gia Công nghệ Thông tin và Ứng dụng trong các lĩnh vực lần thứ 6 (CITA 2017). Dù các nghiên cứu được trình bày trong chương này là một giải pháp tốt cho đặc tả và kiểm chứng hệ thống thời gian thực dựa trên thành phần. Tuy nhiên, vẫn còn một số hạn chế chưa được khắc phục như chưa xây dựng được công cụ để kiểm tra lý thuyết đã đề xuất, chưa triển khai ngôn ngữ đặc tả

thời gian thực mẫu cho ngơn ngữ lập trình Java, C/C++, v.v. Do đó, hướng nghiên cứu tiếp theo luận án sẽ tiến hành cài đặt công cụ. Công cụ này cho phép sử dụng ngôn ngữ đặc tả thời gian thực mẫu để đặc tả các thành phần và hỗ trợ cho ngơn ngữ lập trình Java hoặc C/C++, v.v.

CHƯƠNG 6

Kết luận

Qua các chương đã trình bày trong luận án, chương này luận án tổng kết các kết quả đạt được cũng như đưa ra các hạn chế chưa giải quyết được và hướng phát triển tiếp theo.

6.1 Các kết quả đạt được

Các nghiên cứu trong luận án được trình bày trong ba chương chính gồm Chương 3, Chương4 và Chương 5. Cụ thể, luận án đã phát triển mơ hình phần

mềm thời gian thực dựa trên sự cải tiến mơ hình PECOS. Mơ hình này có thể áp dụng cho nhiều hệ thống thời gian thực có nền tảng phân cứng khác nhau gồm các thể thức tương tác của các thành phần phần mềm đã được chứng minh chặt chẽ, các thành phần phần mềm thời gian thực được đặc tả bằng các hợp đồng thời gian và hợp đồng thời gian có ràng buộc tài ngun. Do đó, tính đúng đắn của hệ thống thể hiện qua phương pháp phát triển nên các thành phần phần mềm. Từng phần yêu cầu của môi trường hệ thống được đảm bảo bằng các ràng buộc bất biến. Các ràng buộc này được biểu diễn bằng công thức logic thời gian tuyến tính. Mơ hình hệ thống cho phép phân tích đầy đủ các yếu tố chức năng cũng như phi chức năng trong thành phần phần mềm thời gian thực. Đặc tính của mơ hình được trình bày trong Chương 3.

Để mơ hình hóa các chuỗi hành vi của thành phần phần mềm thời gian thực, luận án đã đề xuất thể thức tương tác tương tranh thời gian để đặc tả chuỗi hành vi của thành phần phần mềm và sử dụng ôtômát thời gian để mơ hình hóa các hành vi của mơi trường. Để phân tích đánh giá các yếu tố phi chức năng, luận án bổ sung đặc tả thành phần này vào thể thức tương tác. Do đó,

thể thức tương tác này có thể đặc tả đầy đủ các thành phần chức năng và phi chức năng được sử dụng trong thành phần phần mềm thời gian thực. Luận án cũng chỉ ra rằng bài tốn kiểm tra liệu một ơtơmát thời gian hoặc ơtơmát trọng số là mơ hình của mơi trường có tn thủ thể thức tương tác thời gian và thể thức tương tác thời gian với ràng buộc tài nguyên đã cho là quyết định được, và đã phát triển các thuật toán để giải quyết bài toán này. Độ phức tạp của thuật tốn tỉ lệ thuận với kích thước của đồ thị vùng của ơtơmát thời gian và ôtômát trọng số. Nội dung kiến thức này được trình bày trong Chương 3.

Luận án cũng mở rộng lý thuyết giao diện thành phần bằng cách bổ sung ràng buộc thời gian vào quan hệ đầu vào/đầu ra để đặc tả và mơ hình hóa thành phần thời gian thực. Kỹ thuật phát triển phần mềm này dựa trên các phép ghép, phép làm min và phép cắm các thành phần phần mềm để phát triển hệ thống.

Một phần của tài liệu (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 (Trang 137)

Tải bản đầy đủ (PDF)

(166 trang)