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

Một phần của tài liệu Kiểm tra ràng buộc thời gian sử dụng phương pháp AOP (Trang 41 - 44)

Đư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.

Chương 4. Tự động sinh mã Aspect từ máy trạng thái

Một phần của tài liệu Kiểm tra ràng buộc thời gian sử dụng phương pháp AOP (Trang 41 - 44)