Giống như theme base, theme crosscutting cũng có sự chia sẻ khái niệm về cấu trúc và hành vi giữa các theme với nhau, ngoài ra chúng có thể xác định hành vi mà được kích hoạt bởi theme khác. Hình3-2 chỉ ra sự mở rộng cần thiết cho thiết kế theme aspect, liên quan tới hành vi được kích hoạt. Đầu tiên xác định nơi hành vi aspect được kích hoạt, và giữ các kích hoạt giống như các template. Sau đó mô hình hành vi cắt ngang liên quan tới các template đó, và chỉ ra các giới hạn luồng điều khiển liên quan với các kích hoạt. Các phần tử còn lại trong theme không được kích hoạt thì sử dụng chuẩn UML thiết kế.
Hình 3-2 Quá trình thiết kế aspect
Trong hình 3-3, khung nhìn individual của theme aspect có một số nút hành vi, đối tượng được tô màu xám đậm, chỉ ra rằng chúng được tìm thấy trong theme khác.
30
Hình 3-3 Ánh xạ khung nhìn individual của theme aspect sang thiết kế aspect-theme
Các nút cấu trúc màu xám nhạt (object1 và object5) và các nút hành vi màu xám nhạt (behavior3) là khái niệm tương tự như các theme base, thiết kế chúng giống như quá trình thiết kế theme base. Với các nút đối tượng màu xám (object2, object3, và object4) không nên đặc tả nhiều cho chúng trong thiết kế, bởi vì ta chỉ tham chiếu đến chúng trong thiết kế của aspect, chúng sẽ được thiết kế chi tiết ở một theme base bên ngoài.. Đối với mọi thiết kế theme, chúng ta cần chỉ rõ các vấn đề để về nắm bắt hết các requirements mà theme chịu trách nhiệm.
Khi thiết kế crosscutting, chúng ta cần nói về hành vi kích hoạt trong các theme base mà không đề cập một cách rõ ràng tới nó. Nhưng chúng ta không muốn kết hợp thiết kế aspect với base cùng với nhau. Cho vấn đề này, chúng ta mở rộng khái niệm template của UML, template chính là các kích hoạt (trừu tượng), được đặt trong thiết kế crsscutting theme để theme đó có thể tham chiếu đến các hành động kích hoạt thực
31
ở theme base. Ta có thể lấy tên template giống tên hoạt động kích hoạt để cài đặt hành vi crosscutting được định nghĩa trong aspect. Để chỉ ra hành vi kích hoạt trong base theme xảy ra thật có thể thêm tiền tố _do_ vào tên template, nó sẽ gây ra chuỗi hành vi trong crosscutting.
Hình 3-4 thiết kế theme aspect .
Hình 3-4 minh họa một aspect-theme thiết kế như là một gói chuẩn UML với mô hình cấu trúc và hành vi, nhưng có thêm các tập template được liệt kê trong hình chữ nhật nét đứt góc trên phải của gói theme, với một biểu đồ tuần tự cho mỗi nhóm template. Trong hình có hai nhóm template viết trong mỗi ngoặc < >, sẽ có tương ứng hai biểu đổ tuần tự op1(), op2() miêu tả các chuỗi hành vi crosscutting.
Các template được tham số cho các loại phần tử thiết kế khác nhau, như: class, operation, hoặc attribute. Khi tổng hợp, các phần tử thực trong theme base được cắt ngang sẽ thay thế các template trong thiết kế. Nếu template là một class, phần tử thiết kế trong theme crosscutting được thêm vào phần tử đã tồn tại trong class thực. Nếu template là một operation, sự thi hành của operation xuất hiện như được chỉ ra trong biểu đồ cộng tác của theme crosscutting. Nếu template là một attribute, attribute thực được sử dụng nơi các template được tham chiếu tới trong theme crosscutting.
32