Từ quá trình nghiên cứu về mô hình hệ thống dựa trên thành phần và mô hình thời gian thực ta có thể xây dựng một mô hình thành phần trên hệ thống nhúng. Hiện nay, hầu hết các công việc của con người đã được áp dụng công nghệ, tự động hóa nhằm mục đích nâng cao hiệu quả công việc, đảm bảo an toàn cho con người. Cùng với mục đích đó, hệ thống hướng dẫn xe (Car Navigation System – viết tắt là CNS) được xây dựng nhằm dẫn đường cho các lái xe đi qua một khu vực. Để tương tác với lái xe, hệ thống phải có một thiết bị hiển thị để thể hiện bản đồ của khu vực xung quanh xe, một bàn phím để thực hiện các lệnh cơ bản như hiển thị bản đồ, phóng to/thu nhỏ và tìm đường đi tới đích.
Một thành phần đặt cơ sở thiết kế cho CNS mà được thể hiện trong hình 6, gồm có những thành phần chính sau đây, trong đó quan hệ Dep giữa những thành phần được đại diện cho bởi những mũi tên trong hình.
Hình 6: Sơđồ thành phần cho Hệ thống hướng dẫn xe
• Thành phần GPS:
Thành phần này có một phương thức get_pos(out : src) với đặc tả
f
{src}, true ⊢ src = current_position,0 < l′ ≤1 . Mặc dù mã chương trình không được trình bày ởđây nhưng ta giảđịnh rằng mã chương trình không chứa bất kì lời gọi nào đến một phương thức của thành phần khác. Thành phần khác duy nhất có thể sử dụng thành phần này là Controller. Ở đây không chỉ rõ tài nguyên cụ thể được sử dụng nhưng giả định rằng tiền điều kiện tài nguyên cho phương thức
get_pos(out : src) là true.
• Thành phần RouteDB:
Khai báo tài nguyên của thành phần này bao gồm bộ nhớ các biến tài nguyên (khởi tạo 4 MB) và bộ xử lí 75 MHz (khởi tạo là 1). Thành phần có 2 phương thức:
_ ( : , , : )
{src dstn map true, , }, ⊢f map′ =map_ for the area_ _ ,0< ≤l 1 và find_route in src in dstn out route( : , : , : ) với đặc tả là
{ , , },
_ _ ,
75 es 1 4
src dstn route true route
route to the_destination MHz proc or memory n,0 l 11 ′ = = ∧ = < ≤ ⊢ ⊢ .
Thành phần khác duy nhất có thể sử dụng thành phần này là Controller. Đoạn mã chương trình cho find_route in src in dstn out route( : , : , : ) là
get_map(src,dstn,map);
compute(src,dstn,map,route);
Giảđịnh rằng compute(src,dstn,map,route) cần 10 giây để một bộ xử lí 75MHz sử dụng 4MB để thực hiện. Do đó đoạn mã này là một bản làm mịn đặc tả của find_route in src in dstn out route( : , : , : ).
• Thành phần chủđộng Controller:
Thành phần này có một biến cố find_route command_ _arrival và một phương thức find_route handle_ . Tài nguyên được khai báo của thành phần này là biến 75MHz_processor được khởi tạo là 1. Đoạn mã của phương thức này như sau:
: _ ; ( ( , ) || . _ os( )); ( ( , ) || . _ ( , , )); _ ( ); dstn read dstn
Schedule Controller GPS GPS get p src
Schedule Controller RouteDB
RouteDB find route src dstn route
display route dstn
=
Đặc tả thời gian của phương thức này là 0< ≤l 14. Giả định rằng mỗi một
: _
dstn =read dstn và display route dstn_ ( ) có thời gian tiêu dùng nhỏ hơn 1 với dùng một bộ xử lí 75 MHz. Ta giả định rằng lệnh Schedule Controller RouteDB( , )
và Schedule Controller RouteDB( , ) không tốn thời gian, nghĩa là l =d (ta không thể giả định l = 0 vì giả định trước đó) là hậu điều kiện của chúng cho đặc tả có ràng buộc thời gian (tiền điều kiện của chúng được đưa ra sau đó như là nất biến cho cả ba thành phần). Với d là thời gian nhỏ nhất để thực hiện một lệnh. Nó được suy ra trực tiếp từ luật thành phần liên tiếp và song song mà mã lệnh của phương thức này là bản
làm mịn của đặc tả của nó. Một luồng của thành phần này là
always _ _
after _ _ _
find route handle
find route command arrival.
Vậy trong mô hình này của hệ thống dựa trên thành phần ta có thể sử dụng UTP và các luật bổ sung cho đặc tả thời gian thực cho các thiết kếđể kiểm chứng nếu một phương thức được cài đặt đúng hay không. Tuy nhiên, để mô hình này hỗ trợ chứng thực thuộc tính phụ thuộc thời gian và theo thời gian thực. Ta phải đưa ra một nghĩa hình thức cho các luồng và một đặc tả hình thức cho các thuộc tính thời gian thực.
KẾT LUẬN
Sau khi nghiên cứu các khái niệm về hệ thống dựa trên thành phần, mô hình thành phần, các khái niệm về hệ thống dựa trên thành phần thời gian thực, tôi đã nắm rõ được các khái niệm. Tôi đã trình bày về mô hình thành phần, kiến trúc của mô hình thành phần. Với mô hình được trình bày ở trên thì nó có thểđược mở rộng một cách dễ dàng điều khiển các thuộc tính phi chức năng của thành phần như chất lượng dịch vụ. Đặc tính chính của mô hình thành phần được trình bày ở trên nằm ở ngữ nghĩa hình thức của nó trong UTP. Nó đóng vai rò như là một nền tẳng xho việc phát triển mẫu ngôn nhữ cho lập trình dựa trên thành phần. Mẫu ngôn ngữ này được áp cho các ngôn ngữ lập trình khác để thiết kế, lập trình dựa trên thành phẫn dễ dàng hơn. Cũng trong mô hình đó, các thành phần được xác định tính đúng đắn bằng thiết kế. điều đó cũng có nghĩa là cài đặt dịch vụ thỏa mãn các yêu cầu của nó. Điều đó được đẳm bảo chắc chắn bằng cả kiểm chứng mô hình hoặc chứng minh định lý. Ngoài ra, tôi cũng trình bày về mô hình thành phần thời gian thực. Mô hình này hỗ trợ đặ tả, làm mịn thành phần và kiểm chứng một vài thuộc tính thời gian thực, điều mà mô hình trước không có. Mô hình cũng hỗ trợ sự tách biệt giữa đặc tả chức năng từđặc tả phi chức năng của các thành phần, mà có thểđơn giản hóa kiểm chứng yêu cầu chức năng, và trong nhiều rường hợp có thể đơn giản hóa cả các kiểm chứng yêu cầu phi chức năng nữa. Dựa trên các kiến thức thu được tôi đã phân tích và trình bày một ví dụ về áp dụng mô hình dựa trên thành phần. Việc nghiên cứu cá khái niệm, định nghĩa trong mô hình thành phần và hệ thống dựa trên thành phần giúp cho thiết kế, phân tích và bảo trì các hệ thống lớn một cách dễ dàng hơn.
TÀI LIỆU THAM KHẢO
[1] R. Alur and D.L. Dill. A Theory of Timed Automata. Theoretical Computer Science, pages 183–235, 1994.
[2] E. Asarin, P. Caspi, and O. Maler. A Kleene Theorem for Timed Automata. LICS’97, pages 160–171. IEEE computer Society Press, 1997.
[3] C.A.R. Hoare and He Jifeng. Unifying Theories of Programming. Prentice Hall, 1998.
[4] Dang Van Hung. Toward a formal model for component interfaces for real- time systems. In FMICS ’05,pages 106–114, New York, 2005. ACM Press.
[5] Dang Van Hung. Toward a Formal Model for Component Interfaces for Real- time Systems. FMICS’05, September 5–6, 2005, Lisbon, Portugal.
[6] Pham Hong Thai, Dang Van Hung, Towards a Template Language for Component-based Programming. WORLDCOMP’07 Conference, June 25-28, 2007, USA.
[7] Hung Le Dang, Dang Van Hung. Timing and Concurrency Specification in Component-based Real-Time Embedded Systems development. Proceedings of TASE’07, June 6-8, 2007, Shanghai, China.
[8] Kurt Wallnau, Scott Hissam, and Robert Seacord, Component-Based Software Engineering (series), 2000
[9] Ananda Basu, Marius Bozga, and Joseph Sifakis. Modeling Heterogeneous Real-time Components in BIP. Proceedings of SEFM’06, pages 3–12, September 2006. IEEE Computer Society.
[10] He Jifeng, Zhiming Liu, and Xiaoshan Li. A Theories of Contracts. Electronic Notes of Theoretical Computer Science, Volume 160 , pp. 173-195, 2006.
[11] Barbora Zimmerová, Component-Based Systems (CBSs) (slide bài giảng), 2005