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 4.1 Mô tả biểu đồ trình tự UML bằng các đối tượng trong 4.1 Mô tả biểu đồ trình tự UML bằng các đối tượng trong
Java
Ta đã có ba lớp cơ bản: ClassifierRole, Message, TagedValue để mô tả hai thành phần quan trọng của biểu đồ trạng thái UML, đó là đối tượng và thông điệp trao đổi giữa các đối tượng. Trong một biểu đồ trình tự, không chỉ có một đối tượng hay một thông điệp, mà nó chứa mỗi chuỗi các đối tượng và các thông điệp trao đổi giữa các đối tượng, tạo nên giao thức trao đổi thông điệp giữa các đối tượng. Do đó, cũng giống như mô tả biểu đồ trình tự, để mô tả các thành phần có trong biểu đồ trình tự, chúng tôi cũng dùng một danh sách các ClassifierRole để lưu trữ tất cả các đối tượng có trong biểu đồ. Danh sách các Message và danh sách các TagedValue để lưu trữ tất cả các thông điệp trao đổi giữa các đối tượng trong biểu đồ. Các lớp này được mô tả trong hình 4.1.