Kiểm tra sự tuân thủ giữa thực thi và đặc tả ràng buộc thời gian

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Kiểm tra ràng buộc thời gian sử dụng phương pháp AOP (Trang 39 - 44)

tả ràng buộc thời gian

3.1 Phương pháp đặc tả

Xét một tiến trình kiểm chứng chung được mô tả trong hình 3.1. Nó bao gồm hai thành phần: Phần bên trái, và một phần khác bên phải.

Trong phần bên trái, block đầu tiên được định rõ từ hệ thống phần mềm, vẽ trong Timing Diagram với ràng buộc thời gian được chỉ rõ trong này. Điểm thời gian t1, t2,…,tn

được miêu tả trong block này.

Block hai (Generator) trích ra ràng buộc thời gian từ UML Timing Diagram và mẫu khác của ràng buộc. Ràng buộc trên t1,t2,….,tn được đổi mẫu một trong XML hoặc ngôn ngữ XMI. Thông tin đạt được từ block này được qua thông qua block tiếp.

Block thứ ba ( mã AspectJ) gồm có mã sinh ra trong AspectJ, một sự mở rộng của AOP trong ngôn ngữ Java. Mã Aspect này gặp tất cả ràng buộc thời gian được biểu diền trong block đầu tiên.

Thành phần bên phải giúp chúng tôi hiểu tiến trình chuẩn Java application.

Thông thường Java Application ( miêu tả trong block đầu tiên) được dịch trong block 2 (Java compiler). Kết quả là Java bytecode. Thực thi cho chúng ta nhận được kết quả.

Trong áp dụng thú vị Java applycation ( trong block đầu tiên) chúng ta xác định rõ chắc chắn bất biến mối quan tâm ràng buộc thời gian. thời gian tương ứng bất biến được biểu thị (tv1,tv2,….,tvm).

Hình 3.1: Tiến trình kiểm chứng chung

Java compiler cung cấp Java bytecode đưa ra bất biến chúng ta mong đợi. Có nghĩa ràng buộc thời gian được chỉ ra. Nhưng vấn đề bằng cách này, ràng buộc thời gian là phù hợp hay không.

Trong hình 3.1 hai thành phần được kết hợp bao gồm toàn bộ tiến trình kiểm chứng.

- Sự chỉ rõ ràng buộc thời gian được phân chia t1,t2,…,tn;

Chúng ta nhìn block đầu tiên của phần bên trái (UML Specification) kết nối block đầu tiên của bên phải (Java applycation) bằng nét đứt với nghĩa là thực thi. Tiến trình thực thi cần m=n. Nghĩa là sự định rõ ràng buộc thời gian trong lược đồ đầu tiên phù hợp với sự định rõ thời gian thứ hai. Cách khác ràng buộc thời gian dựa trên đặc trưng tương ứng trong hai lược đồ. Chúng ta có thể thống nhất ti và tvi với i=1,2,..,n.

Tên block đan thời gian chạy được thực thi dưới một vài giả định

- Nhận ra ràng buộc thời gian trong sự định rõ t1 ,t2,…,tn; từ mã AspectJ của lược đồ đầu tiên.

- Nhận ra thông tin từ sự kiện liên quan t1 ,t2 ,…,tn

Block này (Runtime weaving) so sánh ràng buộc thời gian trong sự định rõ và thời gian trong khi đang chạy. Nếu thời gian đang chạy thoả mãn ràng buộc thời gian, chương trình chạy thành công. Nếu không, chương trình chạy (phần thực thi) vi phạm ràng buộc trong sự định rõ và nhận được thông báo vi phạm.

3.2 Đặc tả làm quy tắc sinh mã Aspect tự động

Đưa vào sự kiểm chứng một tiến trình là thời gian đặc tả và một chương trình, sự thực thi của phần mềm hệ thống. Trong sự đặc tả một vài công cụ có ràng buộc thời gian.chúng tôi muốn kiểm chứng sự phù hợp giữa đặc tả và thực thi tự động. Bởi vì đan aspect vào trong mã của chương trình, chúng tôi cần mẫu cho aspect nhận ra công việc này. Một mẫu viết trong Aspect được định nghĩa. Nó có thể đạt được các ràng buộc thời gian từ biểu đồ thời gian UML và thực thi thời gian của công việc đang thi hành. Khi đan mã AspectJ vào trong chương trình, nó có thể kiểm tra sự phù hợp thời gian giữa sự đặc tả và thực thi.

Các bước sinh aspect được tổng kết như sau:

Ràng buộc thời gian được biểu diễn bởi biểu đồ thiết lập thời gian UML xuất ra từ XML

Lợi ích tên phương thức và ràng buộc thời gian tương ứng từ file XML tạo ra aspect trong aspect J.

Định nghĩa đưa ra trong Aspect mà có thể tính được thực thi thời gian của phương thức trong chạy ứng dụng. Để sinh ra sự kiểm tra aspect từ biểu đồ thời gian UML biểu

diễn trong hình, chúng ta xây dựng một mẫu.

Hình 3.2: Biểu đồ trình tự UML Timing Diagram

Trong mẫu này, đầu tiên chúng ta đưa vào một số biến riêng sử dụng tính toán thời gian thực thi khi một phương thức được thực thi. Chúng ta định nghĩa hai advice của aspect. Đầu tiên, advice before():execution, thêm một lệnh tìm thời gian trước khi thực thi một phương thức ( trong một phần triệu giây) Advice thứ hai, after():execution, tính toán thời gian sau khi thực thi phương thức. Thực thi thời gian của phương thức được đo bởi sự loại trừ bởi hai thời điểm:

Ở khía cạnh trạng thái này, mà khi một phương thức được gọi, chúng ta có thể thêm đoạn code trước hoặc sau khi thực thi phương thức. Giả sử rằng t(α) là thời gian thực thi của công việc α. Nếu α, β là hai trình tự thực thi công việc thì t(α, β)= t(α) + t(β), v à є là giới hạn trên thời gian của trình tự công việc. Chúng ta chính thức hoá ràng

Import org.aspectj.lang.JoinPoint; Variables

Variables are declared here; ….

Aspect AspectName {

Before():(execution(* *.*(..)))  !within(AspectName) {

- Get t1;// the current system time

- Get method name from XML file(task1, task2,…);

- Get lower and upper bound on timing from XML file (r1,r2,…); - t=t2-t1;// Caculate the execution time of the method;

if ((t,r1,r2,...)=false)// Timing constraint conditions; - produce violation reports;

buộc thời gian của mỗi kịch bản có thể kiểm tra như sau:

- Ràng buộc thời gian của mỗi công việc, r1≤t(α)≤r2, r1, r2 là giới hạn thời gian dưới và trên của công việc α .

- Ràng buộc thời gian của một vài trình tự thực thi công việc, t(α)+t(β)≤є. - Chúng ta cũng kiểm tra sự sớm thực hiện hai công việc song song: t(α)≤t(β). Trong đó α, β là hai công việc song song được bắt đầu cùng một thời điểm.

.

3.3 Kết luận

Chương này nhằm giới thiệu kiểm chứng ràng buộc thời gian trong phần mềm hệ thống, đưa ra phương pháp kiểm chứng ràng buộc thời gian phù hợp với đặc tả và thực thi trong phần mềm hệ thống sử dụng AOP.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Kiểm tra ràng buộc thời gian sử dụng phương pháp AOP (Trang 39 - 44)

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

(76 trang)