Phân tích thiết kế hướng mẫu và ứng dụng

64 4 0
  • Loading ...
1/64 trang

Thông tin tài liệu

Ngày đăng: 16/03/2019, 19:37

Phân tích thiết kế hướng mẫu ứng dụng LỜI CẢM ƠN Trước hết em xin bày tỏ tình cảm lòng biết ơn Th.S Nguyễn Thị Thanh Thoan – Bộ môn Công nghệ thông tin – Trường Đại học Dân Lập Hải Phòng, người dành cho em nhiều thời gian quý báu, trực tiếp hướng dẫn tận tình giúp đỡ, bảo em suốt trình làm đồ án tốt nghiệp Em xin chân thành cảm ơn tất thầy cô giáo Bộ môn Công nghệ thông tin - Trường ĐHDL Hải Phòng, chân thành cảm ơn thầy giáo, giáo tham gia giảng dạy truyền đạt kiến thức quý báu suốt thời gian em học tập trường, đọc phản biện đồ án em giúp em hiểu rõ vấn đề nghiên cứu, để em hồn thành đồ án Em xin cảm ơn GS.TS.NGƯT Trần Hữu Nghị Hiệu trưởng Trường Đại học Dân lập Hải Phòng, Ban giám hiệu nhà trường, Bộ mơn tin học, Phòng ban nhà trường tạo điều kiện tốt suốt thời gian học tập làm tốt nghiệp Tuy có nhiều cố gắng trình học tập, thời gian thực tập trình làm đồ án khơng thể tránh khỏi thiếu sót, em mong góp ý quý báu tất thầy giáo, cô giáo tất bạn để kết em hoàn thiện Em xin chân thành cảm ơn! Hải Phòng, ngày 06 tháng 07 năm 2010 Sinh viên Lê Văn Minh Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng Phân tích thiết kế hướng mẫu ứng dụng MỞ ĐẦU Do nhu cầu hệ thống phần mềm tăng lên nhà nghiên cứu nhà thực hành giỏi ln cố gắng tìm kiếm phương pháp luận kỹ thuật phát triển để làm tự động hoá việc sản xuất phần mềm làm dễ dàng việc bảo trì chúng Những kỹ thuật bao hàm mẫu thiết kế khung làm việc thiết kế Đặc biệt, nhận cần thiết có phương pháp luận phát triển để phát triển hệ thống phức tạp qui mô lớn, đồng thời học tập kinh nghiệm từ nhà thiết kế hệ thống khác việc giải vấn đề thiết kế diễn Hiện có nhiều phương pháp kỹ thuật áp dụng để nghiên cứu phát triển phần mềm Nhưng để làm tự động hóa việc sản xuất phần mềm dễ dàng cho việc bảo trì phần mềm đó, ý tưởng sử dụng lý thuyết để phát triển phần mềm phương pháp hướng đối tượng mở hướng cho việc phát triển phần mềm có quy mơ lớn, sử dụng lại phần mềm cách hiệu Trong nghiên cứu lý thuyết hướng đối tượng song song với việc tạo phần mềm, lập trình viên người quản lý nhận số vấn đề giải giải pháp chung Vì giải pháp tương tự nên vận dụng Những giải pháp tương tự tổng qt hóa, hình thức hóa gọi mẫu thiết kế Việc tạo mẫu thiết kế vấn để trừu tượng hóa đặc điểm giống vấn để giải pháp hướng chung giải pháp gốc áp dụng tới vấn đề Đồ án giới thiệu tổng quan phương pháp phân tích thiết kế hướng đối tượng ngơn ngữ mơ hình hóa thống Đồng thời sâu tìm hiểu mẫu thiết kế nắm bắt mục đích sử dụng, vai trò tác dụng mẫu thiết kế việc phát triển phần mềm Áp dụng phương pháp phân tích thiết kế hướng mẫu kết hợp thử nghiệm ngơn ngữ lập trình C# để cài đặt chương trình demo cho việc ứng dụng mẫu thiết kế Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng Phân tích thiết kế hướng mẫu ứng dụng Đồ án bao gồm bốn chương: - Chƣơng 1: Ý tưởng phát triển phần mềm phương pháp hướng đối tượng Trình bày tổng quan phương pháp phân tích thiết kế hướng đối tượng Khái quát ý tưởng phát triển phần mềm phương pháp hướng đối tượng - Chƣơng 2: Phương pháp phân tích thiết kế hướng mẫu: Trình bày khái niệm mẫu thiết kế, mục đích vai trò sử dụng phương pháp phân tích thiết kế hướng mẫu, tác dụng mẫu thiết kế Qua rút vấn đề gải pháp phương pháp Đồng thời sâu tìm hiểu đặc trưng, cấu thành mẫu thiết kế việc phát triển phần mềm - Chƣơng 3: Tiến trình phương pháp phân tích thiết kế hướng mẫu Trong phần trình bày chi tiết mục đích, tiến trình, sản phẩm giai đoạn Đồng thời tìm hiểu thêm sinh mã nguồn lợi ích, hạn chế phương pháp phân tích thiết kế hướng mẫu - Chƣơng 4: Một số mẫu thiết kế Trong phần mẫu thiết kế thường dùng tìm hiểu thơng qua vấn đề đặt mẫu, giải pháp, lĩnh vực áp dụng chương trình ứng dụng minh họa cho mẫu Cuối phần kết luận hướng phát triển đề tài Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng Phân tích thiết kế hướng mẫu ứng dụng LỜI CẢM ƠN …1 MỞ ĐẦU CHƢƠNG 1: Ý TƢỞNG PHÁT TRIỂN PHẦN MỀM BẰNG PHƢƠNG PHÁP HƢỚNG ĐỐI TƢỢNG 1.1 Ý tưởng phát triển phần mềm phương pháp hướng đối tượng 1.2 Các giai đoạn chu trình phát triển phần mềm hướng đối tượng 1.3 Các vấn đề đặt phân tích thiết kế hướng đối tượng CHƢƠNG 2: PHƢƠNG PHÁP PHÂN TÍCH THIẾT KẾ HƢỚNG MẪU 2.1 Mẫu thiết kế 2.1.1 Định nghĩa khái niệm mẫu 2.1.2 Mục đích phân tich thiết kế hướng mẫu 10 2.1.3 Vai trò mẫu phát triển phần mềm 12 2.1.4 Những đề POAD 13 2.1.5 Giải pháp POAD 14 2.2 Sự cấu thành mẫu thiết kế kỹ nghệ phần mềm .15 2.2.1 Lịch sử mẫu thiết kế 15 2.2.2 Vòng đời mẫu thiết kế việc phát triển phần mềm .16 2.2.3 Sự cấu thành từ mẫu thiết kế 18 2.2.4.Tính cấu trúc cấu thành mẫu thiết kế 19 2.3 Các đặc trưng phân tích thiết kế hướng mẫu- POAD .21 2.3.1 Điều khiển mẫu (Pattern-Driven) 21 2.3.2 Phát triển dựa thành phần 22 2.3.3 Sự phát triển kiến trúc 23 2.3.4 Phát triển điều khiển thư viện (Library-Driven) 23 2.3.5 Sử dụng lại thiết kế 23 2.3.6 Phát triển phân cấp 24 2.3.7 Phát triển lặp 25 Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng Phân tích thiết kế hướng mẫu ứng dụng CHƢƠNG 3: TIẾN TRÌNH CỦA PHÂN TÍCH THIẾT KẾ HƢỚNG MẪU 26 3.1 Pha phân tích 29 3.2 Pha thiết kế 32 3.3 Pha làm mịn thiết kế 35 3.4 Sự sinh mã nguồn POAD 38 3.5 Những lợi ích hạn chế 39 3.5.1 Lợi ích 40 3.5.2 Các hạn chế 41 CHƢƠNG 4: MẪU THIẾT KẾ VÀ ỨNG DỤNG 42 4.1 Mẫu kiến trúc- Builder 42 4.2 Mẫu thay thế- Proxy 43 4.3 Mẫu chiến lược- Strategy 44 4.4 Mẫu quan sát- Observer 46 4.5 Mẫu cấu trúc Adapter 47 4.6 Ứng dụng 49 4.6.1 Builder-Gọi y cách lựa chọn thiết bị máy tính 49 4.6.2 Proxy- Xây dựng chương trình tải ảnh 51 4.6.3 Storage Explorer 52 KẾT LUẬN 62 TÀI LIỆU THAM KHẢO 63 Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng Phân tích thiết kế hướng mẫu ứng dụng CHƢƠNG 1: Ý TƢỞNG PHÁT TRIỂN PHẦN MỀM BẰNG PHƢƠNG PHÁP HƢỚNG ĐỐI TƢỢNG 1.1 Ý tƣởng phát triển phần mềm phƣơng pháp hƣớng đối tƣợng Ý tưởng tiếp cận hướng đối tượng phát triển hệ thống bao gồm đối tượng độc lập tương tương tác với thông qua thông báo Mỗi đối tượng bao hàm liệu xử lý tiến hành liệu gọi bao gói thông tin Nhờ thông báo để thực chức lớn đối tượng liên kết với 1.2 Các giai đoạn chu trình phát triển phần mềm hƣớng đối tƣợng a) Phân tích hướng đối tượng (Object Oriented Analysis - OOA) Là giai đọan phát triển mơ hình xác súc tích vấn đề, có thành phần đối tượng khái niệm đời thực, dễ hiểu người sử dụng b) Thiết kế hướng đối tượng (Object Oriented Design - OOD) Là giai đoạn tổ chức chương trình thành tập hợp đối tượng cộng tác với nhau, đối tượng lớp Các lớp thành viên tạo thành cấu trúc với mối quan hệ thừa kế hay tương tác thông báo c) Lập trình hướng đối tượng (Object Oriented Programming - OOP) Giai đoạn xây dựng phần mềm thực sử dụng kỹ thuật lập trình hướng đối tượng Đó phương thức thực việc chuyển thiết kế hướng đối tượng thành chương trình việc sử dụng ngơn ngữ lập trình có hỗ trợ tính hướng đối tượng Kết chung giai đoạn loạt mã máy chạy được, đưa vào sử dụng sau trải qua nhiều vòng quay nhiều bước thử nghiệm khác 1.3 Những vấn đề đặt phân tích thiết kế hƣớng đối tƣợng Đặc điểm phân tích thiết kế hướng đối tượng nhìn nhận hệ thống tập đối tượng tương tác với để tạo hành động cho kết mức cao Để thực điều người ta phải sử dụng hệ thống mơ hình đối tượng với đặc trưng sau: - Tính trừu tượng hố cao Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng Phân tích thiết kế hướng mẫu ứng dụng - Tính bao gói thơng tin - Tính mơ đun hố - Tính kế thừa Ngày nay, UML cơng cụ thiết kế có tất tính chất điều kiện giúp ta xây dựng mơ hình đối tượng có đặc trưng Quá trình phát triển gồm nhiều bước lặp mà bước lặp bao gồm: xác định yêu cầu hệ thống, phân tích, thiết kế, triển khai kiểm thử Trong hoạt động phân tích thiết kế đặt vấn đề lớn: - Làm cách để xác định lớp đối tượng từ hệ thống thực Các đối tượng trừu tượng hoá phận tham gia vào thực chức Ngoại trừ số đối tượng gắn với thực thể liệu, việc nhận lớp đối tượng khác tham gia thực ca sử dụng đơn giản Hoạt động phụ thuộc lớn vào cảm nhận, khả phân tích kinh nghiệm nhà phân tích - Đa số trường hợp có nhiều lớp đối tượng tương tác với để thực hành vi lớn Vậy phải phân công trách nhiệm đối tượng hợp lý, không để lớp phải thực nhiều, lớp khác thực làm ảnh hưởng đến chất lượng thời gian thực hành vi chung - Việc phân nhỏ lớp đến đâu vừa phải Về nguyên tắc việc phân nhỏ lớp cho phép ta dễ nắm bắt hiểu công việc để thiết kế dễ quản lý lớp đối tượng Nhưng tăng số lượng đối tượng số lượng mối quan hệ chúng tăng lên cách đáng kể dẫn đến việc làm tăng thời gian tương tác Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng Phân tích thiết kế hướng mẫu ứng dụng CHƢƠNG 2: PHƢƠNG PHÁP PHÂN TÍCH THIẾT KẾ HƢỚNG MẪU 2.1 Mẫu thiết kế Những người phát triển giàu kinh nghiệm nhận thấy họ cố gắng giải vấn đề Tình thường có số có chung giải pháp họ tạo nhìn thấy Những vấn đề khơng giống y hệt giải pháp y hệt giải vấn đề vấn đề tương tự, giải pháp tương tự nên vận dụng Giải pháp tương tự tổng qt hóa, hình thức hóa gọi mẫu thiết kế Việc tạo mẫu thiết kế vấn để trừu tượng đặc điểm giống vấn để giải pháp hướng(khía cạnh) chung giải pháp gốc áp dụng tới vấn đề Hai vấn đề liên quan kết hợp với mẫu thiết kế, phải làm với ứng dụng mẫu thiết kế Vấn đề việc nhận chất vấn đề kiểm thử mẫu thư viện cho tốt gọi pattern hatching Và John Vlissides tác giả sách ra”Chúng ta không tạo vài thứ phát triển từ nguyên lí tồn từ trước.” Những nguyên lí tồn từ trước mẫu thiết kế đạt chúng tơi chúng tơi sử dụng để xây dựng giải pháp làm việc tình Những kết khác, tất nhiên nhận dạng nắm bắt mẫu thiết kế để thêm vào thư viện Và trình gọi trình khai phá mẫu(pattern mining) Nó liên quan tới trừu tượng hóa vấn đề tới thuộc tính chất nó, việc tạo giải pháp chung sau hiểu kết giải pháp ngữ cảnh vấn đề mẫu áp dụng Những mẫu thiết kế không phần mềm dùng lại mà dùng lại khái niệm Hầu hết mẫu, ví dụ mẫu sách mẫu thiết kế Thiết kế luôn tối ưu mơ hình phân tích, mẫu thiết kế ln khái niệm cho mơ hình phân tích tối ưu phương pháp cụ thể với kết cụ thể Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng Phân tích thiết kế hướng mẫu ứng dụng Sự tối ưu đối tác ln thay đổi Sự tối ưu ln đòi hỏi cải tiến vài khía cạnh hệ thống phải chịu chi phí khác Ví dụ, vài mẫu tối ưu khả sử dụng lại hoàn thiện trường hợp xấu Những mẫu khác tối ưu an tồn chi phí th hệ thống(giá phần định vị) Bất bạn tối ưu tập khía cạnh, bạn tối ưu lại khác 2.1.1 Định nghĩa khái niệm mẫu Nói chung, mẫu mô tả môt vấn đề thường hay xảy thiết kế cài đặt phần mềm, sau mơ tả giải pháp để vấn đề theo cách dùng lại Các mẫu đưa để chứng minh cho thực hành thiết kế tốt Các mẫu phân loại theo giai đoạn phát triển, Mẫu Phân tích[ Fowler 1997], mẫu Kiến trúc[ Buschmann et al 1996], Mẫu thiết kế[ Gamma et al, 1995] idiom (Các cách diễn đạt) [Coplien 1992]: - Các mẫu phân tích: Việc phân tích bao hàm việc tìm kiếm phía sau bề mặt yêu cầu để hiểu vấn đề Martin Fowler 1997 định nghĩa mẫu phân tích “ …các nhóm ý tưởng thể việc xây dựng phổ biến mơ hình kinh doanh” Fowler chứng minh vài Mẫu phân tích bên ngồi kinh nghiệm làm dự án dành cho vài lĩnh vực kinh doanh Các mẫu Kiểu, Giám sát Đo đếm Mẫu số Mẫu phân tích Fowler chứng minh - Các mẫu kiến trúc: Mẫu kiến trúc giải thích giản đồ tổ chức có kiến trúc cốt lõi cho hệ thống phần mềm Nó cung cấp hệ thống định nghĩa trước thành phần, định trách nhiệm chúng bao gộp luật với guideline cho việc tổ chức quan hệ chúng[ Buschmann et al 1996] Các mẫu Broker, Blackboard, Filters-Pipes mẫu thuộc loại Các mẫu có kiến trúc biện pháp chứng minh kiến trúc dành cho hệ thống phức tạp không đồng nhất, việc giúp quản lý tự động phức tạp - Các mẫu thiết kế: mẫu thiết kế cung cấp biểu đồ cho việc cải tiến hệ thống thành phần hệ thống phần mềm mối quan hệ chúng Nó mơ tả cách phổ biến kiến trúc tuần hoàn thành phần giải vấn đề thiết kế tổng quát ngữ cảnh cụ thể[ Gamma et al 1995] Các mẫu chiến lược, trạng thái, Proxy ví dụ thuộc loại Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng Phân tích thiết kế hướng mẫu ứng dụng c Áp dụng Mẫu cấu trúc Adapter sử dụng để tạo giao diện tương ứng lớp đối tượng cho phù hợp với u cầu chương trình vị trí khác nhau, làm cho chương trình dễ dàng việc thao tác đối tượng Cụ thể, mẫu cấu trúc Adapter sử dụng để chuyển đổi giao diện lập trình lớp đối tượng thành giao diện lớp đối tượng khác Từ đó, lớp đối tượng khơng liên quan với kết hợp để thực thi chương trình ứng dụng d Kết Có thể hiểu cách đơn giản là: mẫu cấu trúc Adapter cho phép viết lớp đối tượng với giao diện đó, sau tạo khả giao tiếp với lớp đối tượng khác với giao diện khác Chuyển đổi giao diện số lớp thành giao diện mà số lớp khác hiểu Các AdapterPattern cho phép lớp với giao diện không tương thích làm việc 4.6 Ứng dụng 4.6.1 Builder- Gợi ý cách lựa chọn thiết bị máy tính Bài toán đặt lúc gợi ý cách lựa chọn số thiết bị phù hợp với cấu hình hai loại máy tính Desktop Laptop theo ý muốn Tạo hai loại đối tượng độc lập đối tượng chung Computer, hai đối tượng kế thừa từ đối tượng chung, đồng thời cần có đối tượng thông qua lớp cha quy định loại nội dung cho hai đối tượng Từ việc nghiên cứu làm quen với mẫu thiết kế em nhận thấy Builder giải tốn cách nhanh chóng Dựa vào biểu đồ mức mẫu Builder (hình 4.1) xây dựng biểu đồ chi tiết ứng dụng gọi biểu đồ l cho toán Gợi ý lựa chọn thiết bị phù hợp cho loại máy tính Lớp ComputerBuilder lớp trừu tượng chứa phương thức getResult() trả đối tượng thuộc lớp Computer Các phương thức BuildCPU(), BuildHDD(), BuildMoninor() xây dựng phần Computer Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 49 Phân tích thiết kế hướng mẫu ứng dụng Hai lớp DesktopBuilder LaptopBuilder thừa kế từ lớp ComputerBuilder cài đặt override phương thức BuildCPU(), BuildHDD(), BuildMoninor() lớp cha Lớp Manufacturer lớp client chứa reference computerBuilder kiểu ComputerBuilder thực xây dựng Computer cách gọi hàm getResult() computerBuilder ComputerBuilder {abstract} Manufacturer - computerBuilder : ComputerBuilder + SetBuilder (ComputerBuilder cptBuilder) : void + Assemble () : void + GetProduct () : Computer DesktopBuilder computerBuilder + + + + BuildCPU () : void BuildHDD () : void BuildMonitor () : void getResult () : Computer Computer + BuildCPU () + BuildHDD () : void : void + BuildMonitor () : void + CPU : string + HDD : string + Monitor : string LaptopBuilder + BuildCPU () : void + BuildHDD () : void + BuildMonitor () : void Hình 4.6 Biểu đồ lớp Giao diện chương trình: người dùng chọn loại máy tính cần lắp ráp, sau ấn nút Build để chương trình xây dựng máy tính từ thành phần cho phù hợp Hình 4.7 Giao diện CPU loại thường, ổ cứng máy để bàn, hình CRT Nếu chọn Desktop: Máy tính lắp từ thành phần phù hợp với máy để bàn: Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 50 Phân tích thiết kế hướng mẫu ứng dụng Hình 4.8 Giao diện cho Desktop Nếu chọn Laptop: Máy tính lắp từ thành phần phù hợp với laptop: CPU mobile, ổ cứng 2.5 inches cho máy laptop, hình LCD Hình 4.9 Giao diện cho Laptop 4.6.2 Proxy- Xây dựng chương trình tải ảnh Xây dựng trình duyệt đơn giản để tải file ảnh có dung lượng lớn Hình ảnh phải tải đầy đủ trước hiển thị, trình tải ảnh hình ảnh tạm thời hiển thị Khi tải xong nội dung hình ảnh hiển thị Frame xây dựng từ trước Yêu cầu hoàn toàn phù hợp với mẫu Proxy Dựa vào biểu đồ mức mẫu( hình 4.2) ta xây dựng biểu đồ chi tiết ứng dụng sau: Browser: yêu cầu từ trình duyệt ImageProxy: proxy để tải hình ảnh IImage: giao diện lớp đối tượng hình ảnh ActualImage: lớp đối tượng hình ảnh thực tế PlaceImage: lớp đối tượng hình ảnh thay Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 51 Phân tích thiết kế hướng mẫu ứng dụng Hình 4.10 Biểu đồ lớp Hình 4.11 Giao diện 4.6.3 Storage Explorer 4.6.3.1 Ý tưởng Gama cộng đề xuất 23 mẫu thiết kế sở thường gọi mẫu thiết kế GOF , nhiên hầu hết ví dụ minh họa sử dụng riêng biệt cho mẫu Và StorageExplorer ứng dụng nhỏ thiết kế sử dụng số mẫu thiết kế Trong mục đích chương trình người đọc hiểu thêm mẫu thiết kế Các ứng dụng sử dụng để sâu tìm hiểu thành phần bên tập tin lưu trữ máy tính Các mẫu thiết kế sử dụng là: Chiến lược, Observer, Adapter… Ý tưởng ứng dụng cần ứng dụng tương tự Windows Explorer hiển thị cho thành phần bên kích Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 52 Phân tích thiết kế hướng mẫu ứng dụng thước tập tin lưu trữ máy tính Ví dụ, thư mục Program Files, thư mục sử dụng mà kích thước khơng gian, bao gồm số tỷ lệ phần trăm Chúng ta muốn biết làm kích thước tổng số file mp3 ổ đĩa so với file jpg Những thơng tin muốn xem thể sau: Và điều Chúng ta cần thông tin trình bày biểu đồ để giúp hình dung số tốt 4.6.3.2 Các tính Các tính ứng dụng là: Một TreeView chứa thông số hay thư mục đại diện cho tập tin thư mục hệ thống Các thư mục chọn để xem thơng tin cấu trúc tập tin kích thước bên đường dẫn Cho thấy thơng tin kích thước tập tin nhóm lại theo thư mục Cho thấy thông tin kích thước tập tin phân nhóm theo loại file Thơng tin trình bày listview biểu đồ pie, biểu đồ bar bảng bên phải Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 53 Phân tích thiết kế hướng mẫu ứng dụng Hình 4.12 Giao diện Storage Explorer 4.6.3.3 Các mẫu thiết kế bên ứng dụng Như nêu StorageExplorer ứng dụng nhỏ thiết kế sử dụng số mẫu thiết kế Các mẫu vận dụng cách hiệu sản phẩm ứng dụng giúp có thể kiểm tra thành phần bên tập tài liệu hay thiết bị nhớ Và mẫu thể sơ đồ sau: Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 54 Phân tích thiết kế hướng mẫu ứng dụng Hình 4.13 Sơ đồ kết hợp mẫu [8] a Strategy Mục đích: Xác định họ thuật tốn, đóng gói thuật tốn đó, làm cho chúng thay cho (GOF) Các ứng dụng đ toán khác nhau, thực hai lớp chiến lược: FolderStrategy FileTypeStrategy (xem hình dưới) lớp FolderStrategy hước file bên nhỏ thư mục khác n Lớp FileTypeStrategy thực tập tin kích thước bên tập tin loại Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 55 Phân tích thiết kế hướng mẫu ứng dụng Hình 4.14 Strategy [8] Bây giả sử muốn thêm thuật tốn Nó thực cách tạo phân lớp theo lớp ExporationStrategy đưa đoạn code thuật toán theo phương thức Explore () Trong thời gian chạy tạo trường hợp lớp gán cho đến đối tượng explorer Khi gọi explore thuật toán phương thức Explore() chạy Đó ý tưởng mơ hình chiến lược: đóng gói thực thuật toán hoán đổi cho Việc thực sau: public abstract class ExplorationStrategy { public virtual void Explore ( ){} } public class NewAlgorithm : ExplorationStrategy { public override void Explore ( ) { // the new algorithm } } public class StorageExplorerForm : System.Windows.Forms.Form { // Somewhere in the initialization section ExplorationStrategy explorer; ExplorationStrategy folderStrategy = new FolderStrategy (); ExplorationStrategy fileTypeStrategy = new FileTypeStrategy (); Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 56 Phân tích thiết kế hướng mẫu ứng dụng ExplorationStrategy newStrategy = new NewAlgorithm (); // Somewhere else, an algorithm is selected switch ( ) { case 0: explorer = folderStrategy; break; case 1: explorer = fileTypeStrategy; break; case 2: explorer = newStrategy; break; } // Execute the algorithm explorer.Explore ( ); } b Observer Mục đích: Xác định phụ thuộc một-nhiều đối tượng để đối tượng thay đổi trạng thái, tất đối tượng phụ thuộc thông báo cập nhật tự động (GOF) Trong ứng dụng mơ hình tạo mối quan hệ đối tượng (đối tượng ExplorationStrategy) nhà quan sát (đối tượng ExplorationObserver), để q trình thăm dò kết thúc, thơng tin thông báo cho đối tượng quan sát, sau hình quan sát kết (xem hình dưới) Các chủ đề cụ thể (FolderStrategy FileTypeStrategy) thông báo cho đối tượng quan sát ( ListViewAdapter, PieChartAdapter BarChartAdapter) cách gọi phương thức OnFinish (), tạo kiện Sự kiện gửi tới đối tượng quan sát sau xử lý chúng mối quan hệ quy định lớp trừu tượng sau thừa hưởng Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 57 Phân tích thiết kế hướng mẫu ứng dụng Hình 4.15 Observer [8] Các đối tượng mối quan hệ quan sát thiết lập cách đăng ký đối tượng quan sát thông qua phương thức UpdateDisplay () tới kiện ExplorationStrategy.Finish, hình đây: public abstract class ExplorationObserver { public void SubscribeToExplorationEvent (ExplorationStrategy obj) { obj.Finish += new ExplorationFinishEventHandler (UpdateDisplay); } } Và trình khởi tạo ứng dụng máy khách (mẫu đơn), đối tượng quan sát cụ thể gọi phương thức SubscribeToExplorationEvent () thông qua ví dụ strategy cụ thể tham số Kể từ đó, mối quan hệ đối tượng quan sát- đối tượng quan sát thiết lập cho thấy chấp thuận: / Initialization in the client: / Create the concrete subject ExplorationStrategy folderStrategy = new FolderStrategy (); ExplorationStrategy fileTypeStrategy = new FileTypeStrategy (); // Create the concrete observer ExplorationObserver pieChart = new PieChartAdapter (); // Subscribe the concrete observer object to the concrete strategy object pieChart.SubscribeToExplorationEvent (folderStrategy); pieChart.SubscribeToExplorationEvent (fileTypeStrategy); Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 58 Phân tích thiết kế hướng mẫu ứng dụng Bây xem mơ hình Giả sử muốn thay đổi ứng dụng để chứa yêu cầu Chúng ta muốn lưu kết thăm dò vào tập tin ngồi việc hiển thị hình Đối với mục đích đó, kế thừa lớp từ lớp ExplorationObserver đưa đoạn code lưu kết vào tập tin bên phương thức UpdateDisplay() Tạo thể lớp gọi SubscribeToExplorationEvent() với đối tượng cụ thể ExplorationStrategy tham số Khi ứng dụng chạy, thông tin gửi đến hiển thị tập tin tốt Các mã hiển thị public class NewConcreteObserver : ExplorationObserver { public override void UpdateDisplay (object o, ExplorationFinishEventArgs e) { Hashtable result = e.ExplorationResult; // Write the result to a file } } // Somewhere, during the initialization in the client ExplorationObserver fileSaver = new NewConcreteObserver (); fileSaver.SubscribeToExplorationEvent (folderStrategy); fileSaver.SubscribeToExplorationEvent (fileTypeStrategy); c Adapter Mục đích: Chuyển đổi giao diện lớp vào giao diện khách mong đợi Các lớp Adapter cho phép làm việc với dù khơng có giao diện tương thích (GOF) Bây kết thăm dò hiển thị mạng lưới lớp ListView sử dụng Tuy nhiên cần phải sửa đổi ListView để khả nhận thơng báo tự động thăm dò kết thúc Cần phải thay đổi lớp ListView phải có xác nhận lớp ExplorationObserver ghi đè lên phương thức UpdateDisplay () gọi FinishEvent kèm Giải pháp sửa đổi lớp ListView tạo lớp mới, cụ thể ListViewAdapter, có khả sử Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 59 Phân tích thiết kế hướng mẫu ứng dụng dụng ListView có xác nhận ExplorationObserver Các lớp ListViewAdapter Adapter Trong điều kiện GOF: lớp ListViewAdapter thay đổi giao diện lớp ListView để có giao diện ExplorationObserver mà hy vọng Mẫu adapter có hai hình thức: Lớp adapter chuyển đổi đối tượng Các chuyển đổi lớp thực cách tạo ListViewAdapter thừa hưởng từ ListView lớp ExplorationObserver Thực tế thể ExplorationObserver giao diện thay lớp trừu tượng ListViewAdapter sau thực giao diện kế thừa từ lớp ListView Nhưng trường hợp ExplorationObserver có số thực bên lớp mà làm cho giao diện khơng phải lựa chọn Hình thức thứ hai, chuyển đổi đối tượng, sử dụng ứng dụng này, sử dụng thành phần đối tượng (xem hình bên dưới) Hình 4.16 Adapter [8] Các lớp ListViewAdapter kế thừa lớp ExplorationObserverl Để có ListView có khả năng, chuyển đổi tạo đối tượng ListView sử dụng cần thiết Ưu điểm phương pháp đối tượng ListView thành viên ẩn từ ListViewAdapter người dùng Các mã hiển thị đây: Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 60 Phân tích thiết kế hướng mẫu ứng dụng public class ListViewAdapter : ExplorationObserver { protected ListView listView; public ListViewAdapter() { // Create a ListView object and initialze it listView = new ListView(); } } Phương pháp tương tự áp dụng cho PieChartAdapater lớp BarChartAdapter Giả sử có lớp biểu đồ khơng muốn thay đổi chúng Giải pháp lần để tạo lớp adapter kế thừa từ lớp ExplorationObserver tạo đối tượng biểu đồ bên chuyển đổi Ngoài việc sử dụng mẫu Storage explorer sử dụng thêm mẫu thiết k Template Method, Singleton, Wrapper Faỗade Lờ Vn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 61 Phân tích thiết kế hướng mẫu ứng dụng KẾT LUẬN Qua trình thực đồ án tốt nghiệp với đề tài “Phương pháp phân tích thiết kế hướng mẫu ứng dụng” em thấy đạt số kết định thu số kết sau: Nắm bắt kiến thức phương pháp phân tích thiết kế hướng đối tượng Đó bước đệm quan trọng mở đường cho việc tiếp cận làm quen bước đầu với phương pháp phân tích thiết kế hướng mẫu Rút số kinh nghiệm học cách làm việc khoa học, chủ động nghiên cứu vấn đề cơng nghệ Có thể áp dụng kiến thức học vào thực tiễn, đồng thời thu thập nhiều kiến thức khác từ trình làm đồ án Vận dụng kiến thức học vào việc nghiên cứu áp dụng cho vấn đề gặp phải trình làm việc cách hiệu Thử nghiệm ngôn ngữ C# để tạo ứng dụng minh họa cho đề tài Với lợi ích mà phương pháp phân tích thiết kế hướng mẫu mang đến việc thiết kế phát triển bảo trì phần mềm, phương pháp phương pháp mang lại hiệu cơng việc cao Đồng thời phương pháp phân tích hướng mẫu phương pháp luận áp dụng thời gian tới, áp dụng ngày rộng rãi lĩnh vực phát triển công nghệ phần mềm Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 62 Phân tích thiết kế hướng mẫu ứng dụng TÀI LIỆU THAM KHẢO TÀI LIỆU TIẾNG VIỆT [1] Nguyễn Văn Vỵ- Phân tích thiết kế hệ thống thông tin đại, hướng cấu trúc hướng đối tượng, NXB Thống kê , Hà Nội, 2002 [2] Nguyễn Thị Thanh Thoan- Hệ thống thời gian thực ứng dụng mẫu thiết kế, Luận văn thạc sĩ chuyên nghành công nghệ phần mềm, ĐHQG Hà Nội 2007-Mã số 68.40.10 [3]Trần Đan Thư, Huỳnh Thụy Bảo Trân- Áp dụng mẫu thiết kế hướng đối tượng phát triển phần mềm web, Trường ĐHKHTN- ĐHQG HCM, Tạp chí phát triển khoa học cơng nghệ 2007 [4] http://www.ebook.edu.vn/?page=1.39&view=2387 [5] http://cntt.tv/nodes/show/164 http://www.fpt.edu.vn/technology-news/design-pattern-thiet-ke-theo-mo-hinh- [6] mau TÀI LIỆU TIẾNG ANH [7]Graig Larman (1998), Applying UML and Patterns (An Introduction to ObjectOriented Analysis and Design), Prentice Hall, New Jersey [8] http://www.codeproject.com/KB/architecture/sinagastorageexplorer.aspx [9]http://www.as3dp.com/2008/08/26/actionscript-proxy-design-pattern-the-virtual- proxy-a-minimal-abstract-example/comment-page-1/#comment-5198 [10] Design Patterns Libraray- http://www.dofactory.com/Patterns/Patterns.aspx Lê Văn Minh- CT1001- Trường Đại học Dân Lập Hải Phòng 63 ... hướng đối tượng - Chƣơng 2: Phương pháp phân tích thiết kế hướng mẫu: Trình bày khái niệm mẫu thiết kế, mục đích vai trò sử dụng phương pháp phân tích thiết kế hướng mẫu, tác dụng mẫu thiết kế. .. Với tài liệu mẫu thiết kế đủ để thiết kế ứng dụng sử dụng mẫu thiết kế? Kiểu mẫu sử dụng? - Chúng ta phát triển cách có hệ thống ứng dụng sử dụng mẫu thiết kế? Đã có quy trình thiết kế xác định... Phân tích thiết kế hướng mẫu ứng dụng CHƢƠNG 3: TIẾN TRÌNH CỦA PHÂN TÍCH THIẾT KẾ HƢỚNG MẪU Các khía cạnh tiến trình POAD giải thích pha bước để phát triển thiết kế ứng dụng có sử dụng mẫu Đầu
- Xem thêm -

Xem thêm: Phân tích thiết kế hướng mẫu và ứng dụng , Phân tích thiết kế hướng mẫu và ứng dụng

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay