Mơ hình thành phần phần mềm thời gian thực

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 52 - 55)

Chương 2 Kiến thức nền tảng

3.3. Mơ hình thành phần phần mềm thời gian thực

Trong phần này, luận án trình bày kiến trúc cũng như các thành phần cơ bản của mơ hình thành phần phần mềm được đề xuất và bảng so sánh các đặc tính của các mơ hình thành phần phần mềm hiện có để hướng đến những khả năng mới cho mơ hình trong luận án.

3.3.1 Mơ hình thành phần phần mềm

Luận án mở rộng mơ hình PECOS do nhóm tác giả Genssler và cơng sự phát triển [20,64], và mơ hình được nhóm tác giả D. V. Hung và cộng sự đã phát triển cho mơ hình phi thời gian [71]. Mơ hình thành phần phần mềm được phát triển gồm hai phần được trình bày chi tiết dưới đây.

(i) Phần thụ động: Phần này bao gồm các thành phần phần mềm được ghép với nhau sao cho đến khi cung cấp mọi dịch vụ mà hệ thống cần. Các thành phần phần mềm được đặc tả bằng các hợp đồng thời gian. Kỹ thuật đặc tả này dựa trên cách tiếp cận tính đúng đắn bởi cách xây dựngthiết kế dựa trên hợp đồng [12,69,70]. Hợp đồng thời gian gồm các phần như giao diện, thuộc tính, khởi tạo, đặc tả phương thức, bất biến và thể thức tương tác tương tranh. Trong đó, các phương thức được đặc tả bằng các thiết kế thời gian, phần bất biến được đặc tả bằng cơng thức lơgíc thời gian tuyến tính (LTL) nhằm đảm bảo rằng thành phần phần mềm ln thỏa một tính chất nào đó của hệ thống, thể thức tương tác của hợp đồng chỉ ra rằng các phương thức trong thành phần phần mềm cần phải thực thi theo một trình tự nhất định, và phải thỏa các ràng buộc thời gian và tài nguyên mà hệ thống dành cho chúng. Thể thức tương tác này được đặc tả bằng biểu thức chính quy trên bằng chữ cái phần tán với các ràng buộc thời gian và tài nguyên. Ngoài đặc tả bằng hợp đồng, thành phần phần mềm được tích hợp cả mã nguồn thực thi. Như vậy, phần thụ động đóng vai trị là một kho chứa các thành phần phần mềm con để đáp ứng mọi yêu cầu theo thiết kế của hệ thống, và các thành phần phần mềm được phép thực thi các phương thức theo cách tương tranh.

(ii) Phần chủ động: Phần chủ động gồm các thành phần phần mềm 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, gọi các dịch vụ từ phần thụ động để thực thi sau đó trả kết quả cho mơi trường. Phần này cũng cho phép các tiến trình thực thi song song như trong các hệ thống thực thi đa luồng.

Mơ hình thành phần phần mềm được minh họa trong Hình 3.1. Phầ n thụ động Phầ n chủ động Giao diện hệ thống Giao diện thành phần Các tiến trình Các sự kiện Các chuỗi hành vi

Hình 3.1: Minh họa mơ hình thành phần phần mềm.

Trong Hình 3.1, các sự kiệncác chuỗi hành vi là các sự kiện và các chuỗi hành vi của môi trường sẽ tác động vào thành phần phần mềm thông qua

giao diện hệ thống.

Phần chủ động sẽ nhận các yêu cầu này và gọi các dịch vụ từ phần thụ động để xử lý sau đó sẽ trả kết quả lại mơi trường. Các tiến trình được biểu diễn bằng ba mũi tên song song nhau thể chỉ ra rằng phần chủ động chấp nhận các lời gọi song song được thể hiện bằng các tiến trình đa luồng.

Giao diện thành phần là phần giao tiếp giữa phần chủ động và phần thụ động. Phần này là một trong những ưu điểm của mơ hình mong muốn được phát triển, có nghĩa là hệ thống cho phép phần thụ động và phần chủ động tách rời nhau. Điều này giúp cho những hệ thống phát triển dựa trên mơ hình này có thể triển khai trên nhiều nền tảng khác nhau như dịch vụ Web, tác tử di động và các hệ thống nhúng, v.v.

Phần thụ động với các hình vẽ biểu diễn tập hợp các thành phần phần mềm thụ động có vai trị cung cấp các dịch vụ cho phần chủ động. Các mũi tên song song thể hiện rằng các thành phần phần mềm trong phần thụ động này cũng hỗ trợ thực thi song song.

3.3.2 So sánh các mơ hình thành phần phần mềm

Phần này sẽ trình bày sự so sánh một số tính năng của các mơ hình thành phần phần mềm hiện có nhằm mục đích phân tích đánh giá các ưu nhược điểm của các mơ hình thành phần phần mềm. Đối với những mơ hình dựa trên sự mô tả kiến trúc cho hệ thống dựa trên thành phần ADLs (Architecture Description Languages) [80], các mơ hình này chỉ tập trung vào thiết kế và ghép các thiết kế. Trong khi đó UML là ngơn ngữ hợp nhất cũng chỉ đưa ra hệ thống cú pháp để dùng trong phân tích thiết kế [81]. PECOS là một mơ hình thành phần phần mềm [64], tuy nhiên mơ hình này tập trung vào hỗ trợ thiết kế và ghép các thiết kế. Các mơ hình trên khơng phát triển thành phần phần mềm từ những thành phần có sẵn, khơng có các kho chứa các thành phần phần mềm. Trong cấp độ triển khai, các hệ thống này không hỗ trợ phát triển các thành phần từ thành phần phần mềm có sẵn và ghép các thành phần. Các mơ hình EJB [82], OSGi [83], Fractal [84,85], COM [86], CCM (CORBA Component) [87], v.v. cho phép phát triển các thiết kế từ các thiết kế có sẵn và ghép các thiết kế. Trong quá trình triển khai, các nền tảng này không hỗ trợ phát triển từ các thành phần phần mềm có sẵn. Các cơng nghệ JavaBeans, .NET, Web Services hỗ trợ thiết kế các thành phần từ đầu và ghép các thành phần khi triển khai, tuy nhiên các công nghệ này không hỗ trợ phát triển thành phần phần mềm từ các thành phần phần mềm có sẵn [19,88–90]. Đối với các công nghệ Koala [91], SOFA [92], và SCA [93], các công nghệ này hỗ trợ thiết kế các thành phần phần từ đầu, cho phép ghép các thiết kế và ghép các thành phần trong quá trình triển khai. Mơ hình X-MAN hỗ trợ thiết kế các thành phần từ đầu, ghép các thiết kế, và cho phép ghép các thành phần phần mềm trong quá trình triển khai [65]. Tuy nhiên tất cả các mơ hình trên đều chưa hỗ trợ hệ thống thời gian thực hướng thành phần. Đặc biệt, chưa có mơ hình nào hỗ trợ khả năng phân tích các yếu tố tài nguyên cho hệ thống thời gian thực. Tồn bộ tổng hợp trên được trình bày trong Bảng 3.1.

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

Phân loại Các mơ hình

thành phần phần mềm

Thiết kế Triển khai

Ràng buộc thời gian Ràng buộc tài nguyên Có sẵn các thành phần từ đầu Ghép các thiết kế Trích chọn Phát triển từ có sẵn Ghép các thành phần Thiết kế và khơng kho chứa

Acme-like ADLs UML2.0, PECOS

7 3 7 7 7 7 7

Thiết kế và chỉ có kho chứa

EJB, OSGi, Fractal, COM

3 3 7 7 7 7 7

Triển khai với kho chứa thành phần JavaBeans, .NET, Web Services 3 7 7 7 3 7 7 Thiết kế với kho chứa

Koala, SOFA, Kobra, SCA

3 3 3 3 7 7 7

Thiết kế và triển khai với kho chứa

X-MAN 3 3 3 3 3 7 7

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 52 - 55)