Sinh aspect từ FSM mô tả biểu đồ trình tự UML

Một phần của tài liệu KIỂM CHỨNG ĐẶT TẢ UML CHO TÁC TỬ PHẦN MỀM (Trang 58 - 59)

Kiểm chứng giao thức trên nhiều lớp đối tượng giống như việc gọi tuần tự các

phương thức trong biểu đồ trình tựđược đề cập rất rõ trong bài báo [5]. Ởđây, tác giả

của bài báo dùng hai lớp là SharedStateSharedStateManager để kiểm chứng giao thức trên nhiều lớp đối tượng. SharedState để ràng buộc các đối tượng của các lớp trong giao thức và SharedStateManager cung cấp một vài phương thức để tạo ra

SharedState, liên kết SharedState với các đối tượng. Các pointcut trong aspect này

được chia ra làm ba loại:

- pc_entry: pointcutdùng để bắt phương thức đầu tiên trong giao thức - pc_exit: pointcutdùng để bắt phương thức cuối cùng trong giao thức - pc: pointcutdùng để bắt các phương thức khác.

Beforeadvice của pc_entry sẽ tạo ra một đối tượng SharedState mới nếu nó chưa

có ràng buộc với bất kỳđối tượng SharedState nào.

Beforeadvice của pcpc_exit dùng để kiểm tra đối tượng khi nó còn ràng buộc với bất kỳ đối tượng SharedState nào đó. Nó kiểm tra xem có vi phạm các ràng buộc

không và đưa ra các thông báo khi có vi phạm xảy ra.

After advice của pc_entrypc pointcut là giống nhau, chúng được sử dụng để lưu lại trạng thái và đặt giá trị mới cho biến trạng thai sau khi mỗi phương thức được gọi.

After advice của pc_exit ngoài việc lưu lại trạng thái, nó xóa bỏ đối tượng

SharedState đã được tạo ra trong before advice của pc_entry. Thuật toán sinh mã aspectđược cài đặt như sau:

51

- Duyệt lần lượt các hàm trong entrySigs tạo ra loại pointcut pc_entry và các

advice.

- Duyệt lần lượt các hàm trong exitSigs tạo ra loại pointcut pc_exit và các

advice.

- Duyệt lần lượt các hàm trong key của fsm, tạo ra loại pointcut pc và các

advice

- Ba loại pointcut này đều được tạo ra bằng cách xử lý các xâu ký tự, tách chuỗi thành tên hàm, kiểu trả về, tên tham số truyền vào, kiểu tham số

truyền vào…

- Kết hợp các pointcutadvice đã tạo ra ở trên thành aspect kiểm chứng hoàn chỉnh.

- Thêm nữa, để quản lý trạng thái của SharedState, ta cần phải có dữ liệu của FSM mô tả biểu đồ trình tự UML. Vì vậy, trong aspect này sẽ chứa thêm phần mã nguồn tạo ra FSM từ biểu đồ trình tự UML như trong chương 4 đã trình bày.

Một phần của tài liệu KIỂM CHỨNG ĐẶT TẢ UML CHO TÁC TỬ PHẦN MỀM (Trang 58 - 59)