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.