Use case của toàn hệ thống:
Hình 5-5. Use case hệ thống.
Bảng các use case trong hệ thống:
Bảng 5-3 Các use case trong hệ thống.
61
ManageGame UC02
ManageSMS UC03
Manage MediaPlayer UC04
Chi tiết các use case xem trong phần Phụ lục
5.3.2 Thiết kế theme
Có 5 theme chính : menu, game, media , sms, voice call.
Từ các khung nhìn individual của các theme, xây dựng biểu đồ cấu trúc, seuqence cho các theme.
5.3.2.1Menu theme
62
Hình 5-7 thiết kế cấu trúc cho menu theme
5.3.2.2Thêm audible theme
Trong quá trình thiết kế , ta nhận thấy việc điều chỉnh âm thanh sẽ phục vụ cho rất nhiều theme (chức năng) trong hệ thống. như media, hay game. Thêm lớp audible vào một theme mới Audible để cho các lớp khác có liên quan đến chỉnh sửa âm thanh kế thừa nó.
63
5.3.2.3 Sms theme
Hình 5-9. Khung nhìn individual của SMS theme.
64
Hình 5-11. Biểu đồ tuần tự Create SMS.
65
1.1.1.1Media Player theme
66
Hình 5-14. Cấu trúc theme MediaPlayer.
67
Hình 5-16. Biểu đồ tuần tự PlayAudio.
68
Hình 5-18. Biểu đồ tuần tự StopAudio.
69
Hình 5-20 . Biểu đồ tuần tự PlayRadio.
70
Hình 5-22. Biểu đồ tuần tự resumeRadio.
71
Hình 5-24. Biểu đồ tuần tự PauseMemo .
72
Hình 5-26. Biểu đồ tuần tự ResumeMemo .
73
5.3.2.4voiceCall theme
Hình 5-28. Khung nhìn individual của theme VoiceCall.
74
Hình 5-30. Biểu đồ tuần tự thực hiện cuộc gọi với số phone lưu trong danh bạ.
75
5.3.2.5Game theme
Hình 5- 32. Khung nhìn ndividual của game theme
76
Hình 5-34 . Biểu đồ tuần tự chơi game.
77
Hình 5-36. Biểu đồ tuần tự lưu game.
78
5.3.2.6Thiết kế theme preempt
Hình 5-38. Khung nhìn individual của crosscutting Preempt.
79
HighPriority là các đối tượng trong theme base mà kích hoạt aspect: voice call, và SMS. Các hoạt động của lớp này là : start() - thay thế cho hoạt động đàm thoại, sound() - thay thế cho hoạt động xuất hiện một alert hay ring, và các hành động thực của các kích hoạt tương ứng là: _do_start(), do_sound().
Preempted là các đối tượng có hành vi cắt ngang các hành vi kích hoạt, trong lớp preempted có các phương thức: pause(), save(), resume(), restore(), mute(). Nó chính là đối tượng: Audible và Saveable.
Tập template thứ nhất ứng với lược đồ tuần tự sound. Hành vi kích hoạt aspect là HighPriority.sound, bao gồm hai hành vi VoiceCall.ring() và SMS.alert(). Đối tượng đang thực hiện bị tắt âm, Preempted.mute(). Hoạt động kích hoạt được thi hành, HighPriority. _do_sound(). Khi hoạt động kích hoạt hoàn thành, đối tượng bị thay thế được trả lại như cũ.
Tập template thứ hai ứng với hành vi kích hoạt voice call, sơ đồ tuần tự start. Hành vi kích hoạt HighPriority.start() bắt đầu xảy ra, đối tượng đang thực hiện bị dừng lại, Preempted.pause(), và sau đó được lưu lại, Preempted.save(). Và hành vi kích hoạt được thực hiện, HighPriority._do_start. Khi hành vi kích hoạt hoàn thành, đối tượng bị thay thế được trả về trạng thái cũ.
5.4 Tổng hợp theme
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.