nghiên cứu mẫu thiết kế kiến trúc phần mềm trong java

74 442 1
nghiên cứu mẫu thiết kế kiến trúc phần mềm trong java

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN QUANG HUY NGHIÊN CỨU MẪU THIẾT KẾ KIẾN TRÚC PHẦN MỀM TRONG JAVA LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - 2010 Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN QUANG HUY NGHIÊN CỨU MẪU THIẾT KẾ KIẾN TRÚC PHẦN MỀM TRONG JAVA Chuyên ngành: Khoa học máy tính Mã số: 60.48.01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC PGS. TS. Đặng Văn Đức Thái Nguyên - 2010 - i - Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn LỜI CAM ĐOAN Tôi xin cam đoan bản luận văn “Nghiên cứu mẫu thiết kế kiến trúc phần mềm trong Java” là công trình nghiên cứu của tôi dưới sự hướng dẫn khoa học của PGS.TS. Đặng Văn Đức, tham khảo các nguồn tài liệu đã được chỉ rõ trong trích dẫn và danh mục tài liệu tham khảo. Các nội dung công bố và kết quả trình bày trong luận văn này là trung thực và chưa từng được ai công bố trong bất cứ công trình nào. Thái Nguyên, tháng 10 năm 2010 Nguyễn Quang Huy - ii - Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Lời cảm ơn Tôi xin gửi lời cảm ơn sâu sắc tới PGS.TS. Đặng Văn Đức – Viện Công nghệ thông tin, người đã tận tình có những chỉ bảo cần thiết để giúp đỡ tôi trong suốt quá trình nghiên cứu và phát triển luận văn. Xin chân thành cảm ơn quý Thầy cô trong khoa Sau đại học trường Đại học Thái Nguyên đã nhiệt tình giảng dạy, trang bị cho tôi những kiến thức quý báu trong suốt thời gian học tập tại trường. Xin chân thành cảm ơn các bạn cùng lớp, đồng nghiệp và đơn vị nơi tôi công tác đã tạo điều kiện cho tôi hoàn thành luận văn này. Xin gửi lời cảm ơn tới gia đình tôi đã động viên tôi trong suốt quá trình học và hoàn thành luận văn. - iii - Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn MỤC LỤC LỜI CAM ĐOAN i MỤC LỤC iii DANH MỤC CÁC TỪ VIẾT TẮT v MỞ ĐẦU 1 CHƢƠNG I. TỔNG QUAN VỀ MẪU THIẾT KẾ VÀ NGÔN NGỮ 3 MÔ HÌNH HÓA THỐNG NHẤT UML 3 1.1. Tổng quan về mẫu thiết kế 3 1.1.1 Vấn đề trong thiết kế phần mềm hướng đối tượng 3 1.1.2 Lịch sử Mẫu thiết kế 3 1.1.3 Mẫu thiết kế là gì ? 5 1.1.4 Một số vấn đề về mẫu thiết kế 5 1.2 Ngôn ngữ mô hình hóa thống nhất UML 7 1.2.1 Khái quát về UML 7 1.2.2 Biểu đồ lớp (Class Diagrams) 8 1.2.3 Lược đồ trình tự (Sequence Diagrams) 14 Chƣơng II. CÁC MẪU THIẾT KẾ KIẾN TRÚC PHẦN MỀM TRONG JAVA 16 2.1 Mẫu khởi tạo 16 2.1.1 Factory Method 16 2.1.2 Singleton 17 2.1.3 Abstract Factory 18 2.1.4 Prototype 20 2.1.5 Builder 20 2.2 Mẫu cấu trúc 22 2.2.1 Decorator 22 2.2.2 Adapter 23 2.2.3 Façade 24 2.2.4 Proxy 25 2.2.5 Bridge 26 2.2.6 Composite 28 - iv - Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 2.2.7 Flyweight 30 2.3 Mẫu hành vi 31 2.3.1 Mẫu Chain of Responsibility 32 2.3.2 Command 35 2.3.3 Interperter 37 2.3.4 Iterator 38 2.3.5 Mediator 39 2.3.6 Memento 40 2.3.7 Observer 41 2.3.8 Sate 42 2.3.9 Strategy 43 2.3.10 Template Method 44 2.3.11 Visitor 45 2.4 Mẫu tương tranh 46 2.4.1. Critical Section 46 2.4.2 Consistent Lock Order 49 2.4.3 Guarded Suspension 51 2.4.4 Read-Write Lock 52 Chƣơng III. PHÁT TRIỂN CHƢƠNG TRÌNH THỬ NGHIỆM 55 3.1 Cơ sở lý thuyết 55 3.1.1 Giao dịch phân tán 55 3.1.2 Các vấn đề về xung đột dữ liệu và một số giải thuật điều khiển 56 3.2 Xây dựng chương trình thử nghiệm 60 3.2.1 Sơ đồ UML 60 3.2.2 Lập trình mođun demo 62 3.2.3 Đánh giá kết quả thu được 64 KẾT LUẬN 65 HƢỚNG PHÁT TRIỂN 66 TÀI LIỆU THAM KHẢO 67 - v - Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn DANH MỤC CÁC TỪ VIẾT TẮT UML Unified Modeling Language CSDL Cơ sở dữ liệu DBMS Database Management System (Hệ quản trị CSDL) V Validation (Thẩm tra) R Read (Đọc) C Computation (Tính toán) W Write (Ghi) - 1 - Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn MỞ ĐẦU Ngôn ngữ lập trình Java được Sun Microsystems giới thiệu vào tháng 6 năm 1995. Từ đó, nó đã trở thành một công cụ lập trình của các lập trình viên chuyên nghiệp. Java được sử dụng rộng rãi để viết chương trình chạy trên Internet. Nó là ngôn ngữ lập trình hướng đối tượng độc lập thiết bị, không phụ thuộc vào hệ điều hành. Nó không chỉ dùng để viết các ứng dụng chạy đơn lẻ hay trong mạng mà còn để xây dựng các trình điều khiển thiết bị cho điện thoại di động, PDA, … Các phương pháp phân tích thiết kế hướng đối tượng đã phát triển rất mạnh mẽ và góp phần đáng kể vào việc cải tiến chất lượng của phần mềm nhờ vào khả năng xây dựng các lớp đối tượng có tính tái sử dụng cao, dễ bảo trì và mở rộng. Ngôn ngữ UML (Unified Modeling Language) được đề xuất để sử dụng như một ngôn ngữ chuẩn để mô hình hóa các thành tố phần mềm trong quá trình phân tích thiết kế hướng đối tượng. Tuy nhiên, các phương pháp hướng đối tượng tập trung chủ yếu vào các hoạt động tổng thể trong tiến trình phát triển phần mềm hướng đối tượng. Những phương pháp này thường không giải quyết các vấn đề chi tiết nảy sinh trong quá trình thiết kế phần mềm. Để bổ sung cho phương pháp hướng đối tượng, các mẫu thiết hướng đối tượng là một tiếp cận độc đáo, được đề xuất để giải quyết các vấn đề nảy sinh trong quá trình thiết kế phần mềm hướng đối tượng. Các mẫu GoF có tầm quan trọng và ảnh hưởng rất lớn đối với giới nghiên cứu cũng như giới công nghiệp phần mềm. Rất nhiều công trình đặc sắc khác về mẫu thiết kế hướng đối tượng được đề xuất để giải nhiều vấn đề đặc thù cho từng lĩnh vực ứng dụng phần mềm. Trong đó, tôi quan tâm đến việc nghiên cứu các mẫu thiết kế để áp dụng trong quá trình phát triển phần mềm hướng đối tượng, đặc biệt là giải quyết các vấn đề về cài đặt giao diện người dùng và các vấn đề liên quan đến các ứng dụng trong Java. Vì thế, tôi đã thực hiện đề tài luận văn: “Nghiên cứu mẫu thiết kế kiến trúc phần mềm trong Java”. - 2 - Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Mục tiêu đề tài là nghiên cứu, nắm vững được phương pháp phân tích thiết kế hướng đối tượng bằng ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language). Đồng thời sử dụng được một số mẫu thiết kế vào công đoạn xây dựng kiến trúc phần mềm bằng ngôn ngữ Java. Bố cục của luận văn bao gồm phần mở đầu, phần kết luận và ba chương nội dung được tổ chức như sau: Chương I. Tổng quan về mẫu thiết kế và ngôn ngữ mô hình hóa thống nhất UML Chương này trình bày tổng quan về mẫu thiết kế kiến trúc phần mềm hướng đối tượng, lịch sử phát triển, định nghĩa mẫu thiết kế và một số vấn đề về mẫu. Khái quát về ngôn ngữ mô hình hóa thống nhất UML, các biểu đồ cấu trúc, biểu đồ hành vi, biểu đồ quản lý mô hình, các ký pháp của UML… Chương II. Các mẫu thiết kế kiến trúc phần mềm trong Java Trong chương này tập trung vào trình bày các mẫu thiết kế kiến trúc phần mềm trong Java bao gồm các mẫu khởi tạo, mẫu cấu trúc, mẫu hành vi, mẫu tương tranh. Các mẫu được mô tả, định nghĩa đưa ra mô hình UML và sau đó là ví dụ áp dụng. Chương III. Phát triển chương trình thử nghiệm Trong chương này phát triển ứng dụng sử dụng mẫu thiết kế, chủ yếu tập trung minh họa việc sử dụng các mẫu tương tranh để giải quyết xung đột trong môi trường mạng, môi trường đa tiến trình. Chương trình được phân tích và thiết kế bằng UML lập trình mô-đun demo bằng Java. - 3 - Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn CHƢƠNG I. TỔNG QUAN VỀ MẪU THIẾT KẾ VÀ NGÔN NGỮ MÔ HÌNH HÓA THỐNG NHẤT UML 1.1. Tổng quan về mẫu thiết kế 1.1.1 Vấn đề trong thiết kế phần mềm hướng đối tượng Việc thiết kế một phần mềm hướng đối tượng là một công việc khó, và việc thiết kế một một phần mềm hướng đối tượng phục vụ cho mục đích dùng lại còn khó hơn. Chúng ta phải tìm ra những đối tượng phù hợp, đại diện cho một lớp các đối tượng. Sau đó thiết kế giao diện và cây kế thừa cho chúng, thiết lập mối quan hệ giữa chúng. Thiết kế của chúng ta phải đảm bảo là giải quyết được các vấn đề hiện tại, có thể tiến hành mở rộng trong tương lai mà tránh phải thiết kế lại phần mềm. Và một tiêu trí quan trọng là phải nhỏ gọn. Thiết kế một phần mềm hướng đối tượng phục vụ cho mục đích dùng lại là một công việc khó, phức tạp vì vậy chúng ta không thể mong chờ thiết kế của mình sẽ là đúng, và đảm bảo các tiêu trí trên ngay được. Thực tế là nó cần phải được thử nghiệm sau vài lần và sau đó nó sẽ được sửa chữa lại. Đứng trước một vấn đề, một người phân tích thiết kế tốt có thể đưa ra nhiều phương án giải quyết, anh ta phải duyệt qua tất cả các phương án và rồi chọn ra cho mình một phương án tốt nhất. Phương án tốt nhất này sẽ được anh ta dùng đi dùng lại nhiều lần, và dùng mỗi khi gặp vấn đề tương tự. Mà trong phân tích thiết kế phần mềm hướng đối tượng ta luôn gặp lại những vấn đề tương tự như nhau. 1.1.2 Lịch sử Mẫu thiết kế Ý tưởng dùng mẫu xuất phát từ ngành kiến trúc, Alexander, Ishikawa, Silverstein, Jacobson, Fiksdahl-King và Angel (1977) lần đầu tiên đưa ra ý tưởng dùng các mẫu chuẩn trong thiết kế xây dựng và truyền thông. Họ đã xác định và lập sưu liệu các mẫu có liên quan để có thể dùng để giải quyết các vấn đề thường xảy ra trong thiết kế các cao ốc. Mỗi mẫu này là một cách thiết kế, chúng đã được phát triển hàng trăm năm như là các giải pháp cho các vấn đề mà người ta làm trong lĩnh vực xây dựng thường gặp. Các giải pháp tốt nhất có được ngày hôm nay là qua một quá trình sàng lọc tự nhiên. Mặc dù nghành công nghệ phần mềm không có lịch sử [...]... Một số vấn đề về mẫu thiết kế Mẫu thiết kế là khái niệm rộng và bao quát trong công đoạn thiết kế phần mềm Giống như các yêu cầu của thiết kế và phân tích hướng đối tượng (nhằm đạt được khả năng tái sử dụng), việc sử dụng các mẫu cũng cần đạt được khả năng tái sử dụng các giải pháp chuẩn đối với các vấn đề thường xuyên xảy ra Mẫu thiết kế giúp đỡ thúc đẩy sử dụng lại trong pha thiết kế vì chúng cung... cho thiết kế, chúng cung cấp những phương tiện để hiểu thiết kế, và chúng được tạo thành khối hợp nhất từ đó xây dựng những ứng dụng phức tạp hơn Mẫu thiết kế không đơn thuần là một bước nào đó trong giai đoạn phát triển phần mềm mà nó đóng vai trò là sáng kiến để giải quyết một bài toán thông dụng nào đó Các giai đoạn phần mềm vẫn hoàn chỉnh mà không có mẫu thiết kế, nhưng sự góp mặt của mẫu thiết kế. .. phần mềm nói chung, mẫu thiết kế là sự hình thức hóa của các cách tiếp cận một vấn đề thường gặp trong một ngữ cảnh cụ thể Mỗi mẫu thiết kế là một giải pháp cho một vấn đề thiết kế cụ thể trong một ngữ cảnh xác định Giải pháp được đưa ra đã được kiểm nghiệm, được sử dụng nhiều lần đem lại kết quả tốt và do đó được trìu tượng hóa thành một mẫu mẫu thiết kế chính là kinh nghiệm thiết kế được đúc kết lại... tự như mẫu thiết kế và dễ gây ra nhầm lẫn với mẫu thiết kế (Design Patterns) Bảng sau phân biệt khung với mẫu thiết kế Design Patterns Frameworks Những mẫu thiết kế là những giải pháp có định kỳ cho những vấn đề xuất hiện trong thời gian sống của một ứng dụng phần mềm trong một ngữ cảnh đặc biệt Các mục tiêu chính là: Một khung là nhóm những thành phần mà hợp tác với nhau để cung cấp một kiến trúc dùng... đang thiết kế Năm mẫu này đều được áp dụng để thiết kế giao diện người dùng trong môi trường Windows 1.1.3 Mẫu thiết kế là gì ? Mẫu thiết kế mô tả một giải pháp chung đối với một vấn đề nào đó trong thiết kế thường được “lặp lại” trong nhiều dự án Nói một cách khác, một Pattern có thể được xem như một “khuôn mẫu có sẵn áp dụng được cho nhiều tình huống khác nhau để giải quyết một vấn đề cụ thể Trong. .. thường, mẫu thường được mô tả độc lập với ngôn ngữ lập trình hoặc được thực hiện chi tiết Mẫu chung hơn và có thể được sử dụng trong gần như bất kỳ loại ứng dụng nào Một mẫu thiết kế không tự ý tồn tại trong mẫu của một thành phần phần mềm Nó cần thực hiện rõ ràng mỗi thời điểm nó được sử dụng Mẫu cung cấp một cách để làm “tốt” thiết kế và được sử dụng để giúp thiết kế khung Vì khung tồn tại trong mẫu. .. nghiệm thiết kế được đúc kết lại thành mẫu chuẩn mực Sử dụng mẫu thiết kế người thiết kế không phải thiết kế hệ thống từ đầu, không phải giải quyết lại những bài toán đã được giải quyết mà sử dụng các kinh nghiệm, tri thức và kết quả đã có từ trước Điều này làm cho chất lượng thiết kế tốt hơn, tăng tính sử dụng của bản thiết kế và tạo điều kiện cho người thiết kế tập trung vào sáng tạo những cái mới... chính là:  Giúp cải thiện chất lượng phần  Giúp đỡ cải thiện chất lượng phần mềm dưới dạng phần mềm dùng mềm dưới dạng phần mềm dùng lại lại được, có thể duy trì được, dễ được, có thể duy trì được, dễ mở mở rộng rộng  Giảm bớt thời gian phát triển  Giảm bớt thời gian phát triển Mẫu là lôgíc Khung là về vật lý hơn, trong khi chúng tồn tại trong các mẫu của phần mềm Số hóa bởi Trung tâm Học liệu -... Vì khung tồn tại trong mẫu của phần mềm nào đó, chúng được thực hiện cụ thể Khung cung cấp chức năng trong lĩnh vực cụ thể Khung tự nó thì không phải là ứng dụng đầy đủ Những ứng dụng đầy đủ trực tiếp có thể được xây dựng bởi hoặc thừa kế những thành phần không đổi Mẫu thiết kế có thể được sử dụng trong thiết kế và thi hành của một khung Khung tiêu biểu gồm vài mẫu thiết kế 1.2 Ngôn ngữ mô hình hóa thống... lý Mẫu thiết kế không chỉ được sử dụng để xác định bài toán và cách giải quyết Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn -6- mà mẫu thiết kế còn được sử dụng nhằm cô lập các thay đổi trong mã nguồn, từ đó làm cho hệ thống có khả năng tái sử dụng cao Điều này là tất yếu vì mẫu tuân thủ rất nghiêm ngặt các nguyên lý thiết kế hướng đối tượng Cũng giống như mẫu trong phần . Các mẫu thiết kế kiến trúc phần mềm trong Java Trong chương này tập trung vào trình bày các mẫu thiết kế kiến trúc phần mềm trong Java bao gồm các mẫu khởi tạo, mẫu cấu trúc, mẫu hành vi, mẫu. VỀ MẪU THIẾT KẾ VÀ NGÔN NGỮ 3 MÔ HÌNH HÓA THỐNG NHẤT UML 3 1.1. Tổng quan về mẫu thiết kế 3 1.1.1 Vấn đề trong thiết kế phần mềm hướng đối tượng 3 1.1.2 Lịch sử Mẫu thiết kế 3 1.1.3 Mẫu thiết. I. TỔNG QUAN VỀ MẪU THIẾT KẾ VÀ NGÔN NGỮ MÔ HÌNH HÓA THỐNG NHẤT UML 1.1. Tổng quan về mẫu thiết kế 1.1.1 Vấn đề trong thiết kế phần mềm hướng đối tượng Việc thiết kế một phần mềm hướng đối

Ngày đăng: 25/11/2014, 20:22

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan