Sử dụng tích hợp hợp nhất giữa các theme so khớp. Đầu tiên chúng ta sẽ tổng hợp các theme base.
80
Hình 5-40. Tổng hợp theme base.
Tổng hợp các theme base thành một theme “Phone”, bằng cách so khớp các phần tử cùng tên.
Các class cùng tên menu, audible, saveable được hợp nhất thành mỗi class chính tương ứng trong theme kết quả. Các sơ đồ tuần tự trong các theme base được bổ sung vào thiết kế của theme tổng hợp.
81
Hình 5-41. Theme tổng hợp của các theme base.
Bind theme base với crosscutting:
Bind kết quả tổng hợp các theme base với theme crosscutting. Với nhãn bind: Bind[<{VoiceCall.ring(),SMS.alert()},Audible.mute(),Audible.unMute()> <VoiceCall.connect(), Saveable.stop(),Saveable.saveState(),Saveable.restore()>]
82
Hình 5- 42. Bind theme crosscutting với phone theme.
Theme kết quả của bind crosscutting với theme base được thể hiện trong hình 5- 43. Các class trong các theme base chỉ ra cho nhãn bind so khớp với class template của crosscutting. Mô hình theme tổng hợp có tên Telephone.
83
Hình 5-43. Theme kết quả của bind crosscutting với các theme base
Sau khi tổng hợp theme preempt với các theme base, ta có ba biểu đồ tuần tự ứng với ba hành vi kích hoạt : sd alert ( hình 5-44), sd ring (hình 5-45) và sd connect (hình 5-46). Tập biểu đồ tuần tự cho hệ thống gồm có ba biểu đồ này, và bổ sung thêm tập biểu đồ tuần tự trong các theme “ Phone” mà tổng hợp các base theme .
84
Hình 5-44. Biêu đồ tuần tự cho alert.
85
86
Kết luận
Sau khi nghiên cứu về AOP, em đã nắm được những đặc điểm, thuật ngữ cơ bản của AOP. Em đã thiết kế một hệ thống điện thoại đơn giản theo hướng aspect bằng cách áp dụng phương pháp theme. Và viết một chương trình demo nhỏ cho hành vi crosscutting trong hệ thống, sử dụng ngôn ngữ aspectJ mở rộng của ngôn ngữ Java.
87
Phụ lục
Các user case cho xây dựng hệ thống điện thoại trong chương 5.
Hình 5-46. UC01- Manage Call Bảng 5-4. Use case Manage Call
Use Case Name Manage Call
Use Case Number UC01
Brief Descrition - Người dùng sử dụng chức năng này để quản lý việc gọi
điện thoại.
Flow of Events - Người dùng lựa chọn mục “Make a call”từ menu chính.
Basic Flow
- Hệ thống sẽ đưa ra giao diện của voice call. Người dùng có thể chọn:
+Người dùng nhập số điện thoại cần gọi. + Tìm số điện thoại được lưu trong máy. -Người dùng ấn nút gọi điện để kết nối.
Alternative Flows
Exit Options -Ấn nút “end call” .
88
Pre Requirements Người dùng đang ở menu chính của hệ thống.
Post Condition -Gọi tới một số điện thoại đã chọn.
Hình 5-47. UC02- Manage Game Bảng 5-5. Use case quản lý game.
Use Case Name Manage Game
Use Case Number UC02
Brief Descrition - Người dùng sử dụng chức năng này để chơi game.
Flow of Events - Người dùng chọn một game để chơi.
Basic Flow
-Trong danh sách game người dùng chọn một game rồi ấn play để chơi.
-Hệ thống tải game người dùng chọn.
-Người dùng bắt đầu chơi game, và có thể có các tùy chọn: pause game, save game, exit game, play game.
Alternative Flow
89
Special
Requirements
Pre Requirements Người dùng đang ở menu chính của hệ thống.
Post Condition Chơi một game.
90
Bảng 5-6: Use case Manage SMS
Use Case Name Manage SMS
Use Case Number UC03
Brief Descrition - Người dùng sử dụng chức năng này để quản lý SMS: Create new sms, edit sms.
Flow of Events - Người dùng chọn mục SMS từ menu chính.
Basic Flow -Hệ thống hiển thị giao diện SMS, người dùng tùy chọn tạo SMS mới hoặc edit SMS.
Exit option
-Người dùng chọn tạo SMS mới: +Trình soạn thảo SMS hiển thị.
+Người dùng viết tin nhắn và ấn nút send. +Giao diện chọn người nhận tin nhắn xuất hiện.
+Người dùng có thể chọn một số điện thoại đã lưu trong máy hoặc nhập từ bàn phím. Rồi ấn Ok.
+Hệ thống hiển thị thông báo đã gửi.
-Người dùng chọn edit một SMS có sẵn: +danh sách các SMS trong máy hiển thị. +Người dùng kích chọn một tin.
+Tin nhắn được chọn load vào trình editor, và người dùng có thể edit.
+ Người dùng chọn save SMS, hiển thị thông báo đã save SMS.
Special
Requirements
91
Post Condition Gửi một SMS hoặc edit một SMS.
Hình 5-49: Use case Manage MediaPlayer Bảng 5-7: Use case Manage MediaPlayer
Use Case Name Manage MediaPlayer
Use Case Number UC04
Brief Descrition - Người dùng sử dụng chức năng này để quản lý MediaPlayer : như play audio, record audio…
92
Basic Flow
Hệ thống hiển thị menu media gồm ba tùy chọn media : memo, radio, audio.
-Người dùng chọn audio. Hệ thống hiển thị tùy chọn play audio hoặc ghi audio.
+người dùng tùy chọn play audio :
Danh sách các file audio hiển thị .
Người dùng chọn một file rồi ấn nút start để nghe.
Hệ thống kiểm tra kiểu của file được chọn có được hỗ trợ
không. Nếu có, thì file bắt đầu được chơi.
Sau đó họ có thể tùy chọn stop, pause và save media và
resume media.
+ người dùng tùy chọn record ghi một audio mới:
Hiển thị giao diện media với chức năng ghi audio.
Người dùng ấn nút start để bắt đầu ghi.
Ghi xong thì người dùng chọn nút save để lưu lại.
-Người dùng chọn nghe Radio:
Danh sách các kênh radio hiển thị .
Người dùng chọn một kênh rồi ấn nút start để nghe.
Nếu người dùng đang ở trong vùng phủ sóng của kênh đã
chọn thì radio được phát.
Sau đó người dùng có thể tùy chọn stop và resume
radio.
-Người dùng chọn memo. Hệ thống hiển thị tùy chọn play memo hoặc ghi memo.
+người dùng tùy chọn play memo :
Danh sách các file memo hiển thị .
Người dùng chọn một file rồi ấn nút start để nghe.
Sau đó họ có thể tùy chọn stop, pause và save media và
resume media.
+ người dùng tùy chọn record ghi một file memo mới:
Hiển thị giao diện media với chức năng ghi memo.
Người dùng ấn nút start để bắt đầu ghi.
93
Alternative Flow
Exit option -Người dùng ấn nút stop.
-Và chuyển sang giao diện chức năng khác.
Special
Requirements
Pre Requirements Người dùng đang ở menu chính của hệ thống.
94
Tài liệu tham khảo
[1] Ramnivas Laddad, AspectJ in Action.
[2] Siobhán Clarke, Elisa Baniassad, Aspect-Oriented Analysis and Design: The Theme Approach.