Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 101 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
101
Dung lượng
3,88 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trần Lệ Huyền TÌM HIỂU VỀ TIẾP CẬN THEME VÀ ỨNG DỤNG CỦA CÁCH TIẾP CẬN VÀO XÂY DỰNG HỆ THỐNG ĐIỆN THOẠI KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng Nghệ Thơng Tin HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trần Lệ Huyền TÌM HIỂU VỀ TIẾP CẬN THEME VÀ ỨNG DỤNG CỦA CÁCH TIẾP CẬN VÀO XÂY DỰNG HỆ THỐNG ĐIỆN THOẠI KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng Nghệ Thơng Tin Cán hướng dẫn: TS Đặng Văn Hưng HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lời cảm ơn Lời đầu tiên, em xin bày tỏ lòng biết ơn sâu sắc tới thầy Đặng Văn HưngNgười trực tiếp hướng dẫn, tận tình giúp đỡ em thời gian thực khóa luận Em xin bày tỏ lịng biết ơn tới thầy, khoa Công Nghệ Thông Tin, trường Đại Học Công Nghệ, ĐHQGHN Các thầy nhiệt tình dạy bảo tạo điều kiện học tập tốt cho chúng em năm học tập ĐHCN Tôi xin cảm ơn bạn sinh viên lớp K51CC K51CNPM Trường Đại học Công nghệ, người bạn học tập rèn luyện suốt năm học đại học Hà Nội, ngày 19 tháng năm 2010 Trần Lệ Huyền LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tóm tắt Lập trình hướng khía cạnh (Aspect Oriented Programming - AOP) kiểu lập trình nhanh chóng thu hút nhà phát triển giới công nghệ thông tin AOP mô hình lập trình tách biệt chức phụ với logic nghiệp vụ chương trình Các chức phụ rải rác nằm xuyên suốt hệ thống tách thành đơn vị nhất, gọi aspect( khía cạnh) Một aspect đơn vị mơđun cho thi hành cắt ngang chương trình Nó đóng gói hành vi mà ảnh hưởng đến nhiều lớp vào mơ-đun có khả sử dụng lại Đây phương pháp lập trình phát triển dựa lập trình hướng đối tượng Bài luận tìm hiểu cách xây dựng hệ thống với phương pháp AOP Và ứng dụng AOP vào xây dựng thiết kế hệ thống điện thoại với chức LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Danh sách chữ viết tắt STT Từ viết tắt Giải nghĩa AOP Aspect Oriented Programming OOP Object Oriented Programming LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Mục lục Chương Tiếp cận AOP 1.1 Giới thiệu: 1.2 Đặc điểm AOP 1.2.1 Aspect gì? 1.2.2 Nguyên tắc: 1.2.3 Những lợi ích “separate of concerns” 1.2.4 Tiếp cận aspect 1.3 Giới thiệu sơ qua Theme 1.3.1 Định nghĩa Theme 1.3.2 Mối quan hệ theme : 1.3.3 Áp dụng cách tiếp cận theme: Chương Phân tích 11 2.1 Các khung nhìn Theme/Doc 11 2.1.1 Khung nhìn relationship theme 11 2.1.2 Khung nhìn crosscutting Theme 12 2.1.3 Khung nhìn individual 14 2.2 Quá trình xử lý Theme/Doc 14 2.3 Quyết định theme 16 2.3.1 Chọn theme ban đầu 16 2.3.2 Các hoạt động theme 19 2.3.3 Hoạt động Requirements 21 2.4 Quyết định Theme trách nhiệm 22 2.4.1 Xác định Theme aspect 23 2.4.2 Trì hỗn số định 25 2.5 Kế hoạch cho thiết kế 25 2.5.1 Xác định đối tượng 25 2.5.2 Khung nhìn theme base 26 2.5.3 Khung nhìn theme aspect 26 Chương Thiết kế theme 28 3.1 Thiết kế theme base 28 3.2 Thiết kế Theme crosscutting 29 3.2.1 Tổng quan thiết kế Theme crosscutting 29 3.2.2 Thay đổi với UML 32 Chương Tổng hợp theme 36 4.1 Pick Theme 36 4.2 Xác định phần tử thiết kế so khớp 37 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4.2.1 So khớp tường minh 38 4.2.2 So khớp ngầm định 38 4.2.3 Các nguyên tắc cho so khớp khái niệm chung với relationship tổng hợp 38 4.3 Kiểu tích hợp- Integration 39 4.3.1 Tích hợp merge 39 4.3.2 Tích hợp override 42 4.3.3 Kết hợp phương pháp tích hợp 43 4.4 Giải xung đột 43 4.4.1 Explicit values 44 4.4.2 Giá trị mặc định 44 4.4.3 Theme Precedence 45 4.5 Chỉ binding cho Theme aspect 46 Chương Xây dựng hệ thống điện thoại với phương pháp Theme 52 5.1 Tóm tắt dự án: 52 5.2 Phân tích yêu cầu dự án 52 5.2.1 Xác định theme ban đầu 54 5.2.2 Làm mịn tập theme 55 5.3 Thiết kế theme 60 5.3.1 Phân tích UseCase 60 5.3.2 Thiết kế theme 61 5.4 Tổng hợp theme 79 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Mở đầu Lập trình hướng đối tượng (Object Oriented Programming - OOP) mơ hình phát triển lựa chọn cho hầu hết dự án phần mềm OOP hữu hiệu việc lập mơ hình hành vi chung đối tượng, nhiên khơng giải thỏa đáng hành vi liên quan đến nhiều đối tượng AOP giải vấn đề này, bước phát triển lớn phương pháp lập trình Vấn đề cốt lõi AOP cho phép thực vấn đề riêng biệt cách linh hoạt kết hợp chúng lại để tạo nên hệ thống sau AOP bổ sung cho kỹ thuật lập trình hướng đối tượng việc hỗ trợ dạng mô-đun khác, cho phép kéo thể chung vấn đề đan vào khối Khối gọi ‘aspect’ (khía cạnh), từ chữ ‘aspect’ có tên phương pháp phát triển phần mềm mới: aspect-oriented programming Nhờ mã tách riêng, vấn đề đan trở nên dễ kiểm soát Các aspect hệ thống thay đổi, thêm xóa lúc biên dịch tái sử dụng Aspect-orientation hướng tiếp cận mạnh mẽ cho lập trình hệ thống phức tạp Áp dụng phương pháp aspect vào mơ hình thiết kế hệ thống có nhiều ưu điểm so với OOP Cách tiếp cận Theme (chủ đề) ưu điểm quan trọng AOP, cung cấp phương tiện để ứng dụng aspect-orientation Bài luận em tìm hiểu AOP dựa tài liệu “Aspect-Oriented Analysis and Design: The Theme Approach “ tác giả Siobhán Clarke Elisa Baniassad Bài luận trình bày phân tích xây dựng hệ thống phương pháp AOP Bài luận gồm năm chương: Chương 1: Giới thiệu trình bày đặc điểm AOP Chương 2: Phân tích u cầu hệ thống để tìm tập theme Chương 3: Thiết kế riêng biệt theme sử dụng UML, với số mở rộng UML chuẩn Chương 4: Tổng hợp thiết kế theme riêng biệt thành hệ thống hoàn chỉnh mạch lạc Chương 5: Ứng dụng AOP với phương pháp theme vào xây dụng đặc điểm cho hệ thống điện thoại LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Tiếp cận AOP 1.1 Giới thiệu: Vào ngày đầu ngành khoa học máy tính, thảo chương viên lập trình trực tiếp mã máy Những nhà phát triển phần mềm thời phải tốn nhiều thời gian suy nghĩ tập lệnh riêng phần cứng máy tính cụ thể tập trung để giải yêu cầu toán đặt Dần dần, người ta chuyển sang ngơn ngữ lập trình cấp cao hơn, cho phép khái qt hố mức độ mã máy chạy bên Rồi ngôn ngữ lập trình có cấu trúc cho phép phân tích toán thành thủ tục thực tác vụ cần thiết Phương pháp lập trình thực theo cách tiếp cận hướng chức chủ yếu dựa vào phân rã chức tốn thành chức đơn giản thực làm mịn dần từ xuống để tạo cấu trúc phân cấp Chương trình theo hướng tiếp cận thực chất tập chương trình (các hàm) mà máy tính cần thực để hồn thành nhiệm vụ hệ thống Trong liệu hàm tách rời nhau, hàm muốn liên kết trao đổi với phải thơng biến chung (global) Nếu phải sửa đổi liệu phải sửa đổi nơi mà sử dụng liệu đó, ảnh hưởng tới tất người tham gia lập trình Khi độ phức tạp tốn tăng lên, cần có kỹ thuật tốt lập trình hướng thủ tục Lập trình hướng đối tượng OOP trở thành lựa chọn phát triển xây dựng hệ thống phần mềm nhiều năm qua, mà thay hoàn toàn cho cách tiếp cận hướng thủ tục Một ưu điểm lớn hướng đối tượng hệ thống phần mềm xem việc xây dựng tuyển tập lớp riêng biệt Mỗi class (lớp) tuyển tập lớp chịu trách nhiệm cho tác vụ hệ thống Trong ứng dụng hướng đối tượng, lớp hợp tác lại với để hoàn thành mục tiêu chung ứng dụng Kỹ thuật OOP thực tốt việc đóng gói hành vi chủ thể , miễn chúng hoàn toàn riêng biệt Tuy nhiên, tốn thực tế thường có hành vi đan liên quan đến nhiều lớp, xem trách nhiệm riêng lớp Ví dụ việc tiến hành locking (khóa) ứng dụng phân tán, xử lí ngoại lệ, việc ghi log…Tất nhiên code xử lý phần thêm vào lớp cách riêng biệt, điều dẫn tới vi phạm trách nhiệm lớp mà ta định nghĩa Theo truyền thống, hầu hết ngôn ngữ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com lập trình hướng đối tượng C++ Java khơng hỗ trợ đóng gói hành vi đan nhau, dẫn đến mã chương trình nằm lẫn lộn, rải rác khó quản lý AOP kỹ thuật lập trình cho phép đóng gói hành vi có liên quan đến nhiều lớp Nó tập trung vào khái niệm cắt ngang khía cạnh - phần mã sử dụng chung cho đối tượng khác Nhờ mã tách riêng, vấn đề đan trở nên dễ kiểm soát AOP tách riêng đặc điểm mà rải rác, đan xen hệ thống thành mơ-đun riêng để xử lý, khơng phải kết hợp lập trình hướng thủ tục lập trình hướng đối tượng AOP xem bổ sung cho OOP, OOP cách thức mơ-đun hố mối quan tâm nói chung AOP cách mơ-đun hố mối quan tâm đặc biệt chạy xuyên suốt cắt ngang đơn vị mơđun hố tự nhiên (là class OOP truyền thống) AOP cho phép giải toán phức tạp tốt hiệu AOP tổng hợp hệ thống từ vấn đề đan đến vấn đề chính, cịn OOP theo hướng ngược lại Tuy nhiên, OOP AOP không phủ định mà bổ sung cho 1.2 Đặc điểm AOP 1.2.1 Aspect gì? Concern (mối quan tâm) đoạn code mà có liên quan đến mục tiêu, đặc điểm, khái niệm loại chức ứng dụng Aspect concern mà chức kích hoạt concern khác, nhiều tình khác Nếu concern không tách riêng biệt aspect, chức phải kích hoạt cách tường minh đoạn code có liên quan tới concern khác dẫn tới rối, lẫn lộn hai concern có liên quan tới nhau, giải rác code nhiều nơi hệ thống Ví dụ, hệ thống phần mềm cần ghi log tới method gọi thực thi (như constructor để tìm vết tạo đối tượng) Ở đây, việc thêm method log() cần thiết method cần phải gọi vị trí cụ thể code Chắc chắn khơng lãng phí, lạm dụng liên kết thừa kế lớp hoàn toàn khác (thực tác vụ khác nhau, khơng có điểm tương đồng cấu trúc kế thừa) mà để giới thiệu method log() lớp hệ thống AOP giúp bạn cách tạo aspect mà cung cấp method log() tới lớp mà cần ghi lại, cách gọi method đâu mà yêu cầu Một ví dụ khác mà aspect sử dụng trường hợp xử lí ngoại lệ, aspect định nghĩa LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 5-40 Tổng hợp theme base Tổng hợp theme base thành theme “Phone”, cách so khớp phần tử tên Các class tên menu, audible, saveable hợp thành class tương ứng theme kết Các sơ đồ theme base bổ sung vào thiết kế theme tổng hợp Theme kết qủa sau so khớp cấu trúc: 80 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 5-41 Theme tổng hợp theme base Bind theme base với crosscutting: Bind kết tổng hợp theme base với theme crosscutting Với nhãn bind: Bind[ ] 81 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 5- 42 Bind theme crosscutting với phone theme Theme kết bind crosscutting với theme base thể hình 543 Các class theme base cho nhãn bind so khớp với class template crosscutting Mơ hình theme tổng hợp có tên Telephone 82 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 5-43 Theme kết bind crosscutting với theme base Sau tổng hợp theme preempt với theme base, ta có ba biểu đồ ứng với ba hành vi kích hoạt : sd alert ( hình 5-44), sd ring (hình 5-45) sd connect (hình 5-46) Tập biểu đồ cho hệ thống gồm có ba biểu đồ này, bổ sung thêm tập biểu đồ theme “ Phone” mà tổng hợp base theme 83 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 5-44 Biêu đồ cho alert Hình 5-45 Biểu đồ cho gọi đến 84 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 5-45 Biểu đồ cho gọi xảy 85 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kết luận Sau nghiên cứu AOP, em nắm đặc điểm, thuật ngữ AOP Em thiết kế hệ thống điện thoại đơn giản theo hướng aspect cách áp dụng phương pháp theme Và viết chương trình demo nhỏ cho hành vi crosscutting hệ thống, sử dụng ngôn ngữ aspectJ mở rộng ngôn ngữ Java 86 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phụ lục Các user case cho xây dựng hệ thống điện thoại chương 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 để 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 - Hệ thống đưa giao diện voice call Người dùng chọn: Basic Flow +Người dùng nhập số điện thoại cần gọi + Tìm số điện thoại lưu 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” Special Requirements 87 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Pre Requirements Người dùng menu hệ thống Post Condition -Gọi tới 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 Use Case Number Manage Game UC02 Brief Descrition - Người dùng sử dụng chức để chơi game Flow of Events - Người dùng chọn game để chơi -Trong danh sách game người dùng chọn game ấn play để chơi Basic Flow -Hệ thống tải game người dùng chọn -Người dùng bắt đầu chơi game, có tùy chọn: pause game, save game, exit game, play game Alternative Flow Exit option -Người dùng chọn exit game 88 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Special Requirements Pre Requirements Người dùng menu hệ thống Post Condition Chơi game Hình 5-48: UC04 - Manage SMS 89 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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 để quản lý SMS: Create new sms, edit sms Flow of Events - Người dùng chọn mục SMS từ menu Basic Flow -Hệ thống hiển thị giao diện SMS, người dùng tùy chọn tạo SMS edit SMS -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 ấn nút send +Giao diện chọn người nhận tin nhắn xuất +Người dùng chọn số điện thoại lưu máy nhập từ bàn phím Rồi ấn Ok Exit option +Hệ thống hiển thị thông báo gửi -Người dùng chọn edit SMS có sẵn: +danh sách SMS máy hiển thị +Người dùng kích chọn tin +Tin nhắn chọn load vào trình editor, người dùng edit + Người dùng chọn save SMS, hiển thị thông báo save SMS Special Requirements Pre Requirements -Người dùng menu điện thoại 90 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Gửi SMS edit SMS Post Condition 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 để quản lý MediaPlayer : play audio, record audio… Flow of Events - Người dùng chọn mục “Media player” từ menu 91 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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 ghi audio +người dùng tùy chọn play audio : Danh sách file audio hiển thị Người dùng chọn file ấn nút start để nghe Hệ thống kiểm tra kiểu file chọn có hỗ trợ khơng Nếu có, file bắt đầu chơi Sau họ tùy chọn stop, pause save media resume media + người dùng tùy chọn record ghi audio mới: Hiển thị giao diện media với chức ghi audio Người dùng ấn nút start để bắt đầu ghi Ghi xong người dùng chọn nút save để lưu lại -Người dùng chọn nghe Radio: Basic Flow Danh sách kênh radio hiển thị Người dùng chọn kênh ấn nút start để nghe Nếu người dùng vùng phủ sóng kênh chọn radio phát Sau người dùng tùy chọn stop resume radio -Người dùng chọn memo Hệ thống hiển thị tùy chọn play memo ghi memo +người dùng tùy chọn play memo : Danh sách file memo hiển thị Người dùng chọn file ấn nút start để nghe Sau họ tùy chọn stop, pause save media resume media + người dùng tùy chọn record ghi file memo mới: Hiển thị giao diện media với chức ghi memo Người dùng ấn nút start để bắt đầu ghi Ghi xong người dùng chọn nút save để lưu lại 92 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Alternative Flow Exit option -Người dùng ấn nút stop -Và chuyển sang giao diện chức khác Special Requirements Pre Requirements Người dùng menu hệ thống Post Condition Nghe media ghi media 93 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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 [3] http://www.pcworld.com.vn 94 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... ĐẠI HỌC CÔNG NGHỆ Trần Lệ Huyền TÌM HIỂU VỀ TIẾP CẬN THEME VÀ ỨNG DỤNG CỦA CÁCH TIẾP CẬN VÀO XÂY DỰNG HỆ THỐNG ĐIỆN THOẠI KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng Nghệ Thơng Tin Cán... lớp vào mơ-đun có khả sử dụng lại Đây phương pháp lập trình phát triển dựa lập trình hướng đối tượng Bài luận tìm hiểu cách xây dựng hệ thống với phương pháp AOP Và ứng dụng AOP vào xây dựng. .. sử dụng UML, với số mở rộng UML chuẩn Chương 4: Tổng hợp thiết kế theme riêng biệt thành hệ thống hoàn chỉnh mạch lạc Chương 5: Ứng dụng AOP với phương pháp theme vào xây dụng đặc điểm cho hệ thống