ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Đức Toàn VẬN DỤNG CÁC MẪU THIẾT KẾ ĐỂ GIẢI QUYẾT BÀI TOÁN QUẢN LÝ THEO CÔNG NGHỆ HƯỚNG ĐỐI TƯỢNG LUẬN VĂN THẠC SỸ Hà nội, 11/2006 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Ệ Nguyễn Đức Toàn VẬN DỤNG CÁC MẪU THIẾT KẾ ĐỂ GIẢI QUYẾT BÀI TOÁN QUẢN LÝ THEO CÔNG NGHỆ HƯỚNG ĐỐI TƯỢNG Ngành: Công nghệ thông tin Mã số: 1.10 LUẬN VĂN THẠC SỸ Người hướng dẫn khoa học : PGS. TS Nguyễn Văn Vỵ Hà nội, 11/2006 Hanoi, November 2006 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CÁC THUẬT NGỮ VIẾT TẮT Design pettern Mẫu thiết kế GOF(gang of five) Nhóm 5 thành viên Creational patterns Các mẫu tạo sinh Structual patterns Các mẫu cấu trúc Behavioral pattern Các mẫu hành vi Framework Khung làm việc IDOMS Thành ngữ Abstract factory pattern Mẫu chế tạo trừu tượng Factory pattern Mẫu chế tạo Base- object Đối tượng cơ sở Base- class Lớp cơ sở Singleton pattern Mẫu đơn chiếc Proxy pattern Mẫu uỷ nhiệm Proxy class Lớp uỷ nhiệm Remote Proxy Uỷ nhiệm từ xa Virtual Proxy Uỷ nhiệm ảo Monitor Proxy Uỷ nhiệm màn hình Protection proxy Chống uỷ nhiệm Cache proxy Không gian lưu trữ tạm thời Firewall proxy Uỷ nhiệm bảo vệ Smart reference proxy Kiểm soát các đối tượng bổ sung Synchoronization Proxy Uỷ nhiệm đồng bộ Copy_ on_write proxy. Cho phép ghi vaò đĩa mọi lúc Adapter pattern Mẫu thích nghi LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC CHƢƠNG I. 6 MẪU THIẾT KẾ.
Mẫu thiết kế là gì?. Lịch sử các mẫu. Các thành phần của mẫu thiết kế. Mô tả mẫu thiết kế.
Tên gọi và phân loại. Các tên gọi khác. Lý do sử dụng. Khả năng áp dụng.
Vai trò của mẫu trong phát triển phần mềm. Mẫu thiết kế và kỹ nghệ phần mềm. Những mẫu thiết kế trong vòng đời phát triển phần mềm. Vòng đời mẫu.
Đặc điểm chung của mẫu. 15 CÁC LOẠI MẪU THIẾT KẾ. 15 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn thạc sỹ Nguyễn Đức Toàn 2. Phân loại mẫu.
Mẫu thiết kế với từng bài toán. Mẫu chế tạo (Factory Pattern). Một biểu đồ lớp bằng UML của mẫu chế tạo. Mẫu chế tạo trừu tượng (Abstract Factory Pattern).
Thiết kế động với mẫu chế tạo trừu tượng. Biểu đồ lớp bằng UML của mẫu. Trường hợp sử dụng. Cách thực hiện.
Ứng dụng của mẫu đơn chiếc. Mẫu uỷ nhiệm (Proxy Pattern). Đặc điểm chung .4 Biểu đồ lớp bằng UML của mẫu. Mẫu thích nghi (Adapter Pattern).
Phạm vi ứng dụng. 25 2 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn thạc sỹ Nguyễn Đức Toàn 2.4 Biểu đồ lớp bằng UML của mẫu. Sơ đồ mối liên kết các mẫu thiết kế. 27 ỨNG DỤNG MẪU.
27 Phân tích, thiết kế hệ thống “ Quản lý khám chữa bệnh “ .1 Mô tả bài toán .2 Các vấn đề cần giải quyết .2 Phát triển hệ thống .1 Các chức năng của hệ thống .2 Các khái niệm và mô hình lĩnh vực .3 Xác định các tác nhân, các ca sử dụng và mô tả các ca sử dụng .2 Xác định các ca sử dụng .3 Mô hình ca sử dụng.4 Mô tả chi tiết ca sử dụng .4 Phân tích hệ thống .1 Ca sử dụng cập nhật thông tin phòng khám (Clinic) .2 Ca sử dụng cập nhật thông tin loại phòng khám (Provider Type) .3 Ca sử dụng cập nhật loại quyền sử dụng (BenefitScheme) .4 Ca sử dụng cập nhật thanh toán theo đợt tới từng công ty (Invoice).5 Ca sử dụng cập nhật thông tin khám (EmpVisit) .1 Áp dụng mẫu Uỷ nhiệm (Proxy) .2 Áp dụng mẫu tạo (Factory) .3 Áp dụng mẫu đơn chiếc (Singleton) .4 Biểu đồ lớp khi chưa áp dụng mẫu. 77 3 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn thạc sỹ Nguyễn Đức Toàn 3.5 Biểu đồ lớp sau khi áp dụng mẫu.6 Mô tả chi tiết các đối tượng. 86 4 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn thạc sỹ Nguyễn Đức Toàn 3.7 Cấu hình phần cứng .8 Thiết kế giao diện. 98 5 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn thạc sỹ Nguyễn Đức Toàn CHƢƠNG I MẪU THIẾT KẾ 1.
Mẫu thiết kế là gì? Nhìn chung, một mẫu là mô tả các vấn đề thường xuyên xuất hiện trong thiết kế, triển khai phần mềm và các giải pháp cho nó theo cách có thể sử dụng lại được. Những mẫu thiết kế có ý nghĩa thực tế tốt, chúng là phương tiện thiết kế để làm tài liệu và để truyền đạt kiến thức, những kinh nghiệm của các chuyên gia cho những người mới học. Mẫu còn 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 mẫu có thể được xem như một “khuôn dạng” có sẵn có thể á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 bất kỳ hệ thống phần mềm hướng đối tượng nào, chúng ta cũng có thể bắt gặp các vấn đề lặp lại. Các mẫu phân tích Các mẫu phân tích (Analysis Patterns) là để hiểu các vấn đề từ các yêu cầu bên ngoài. Martin Fowler đã định nghĩa các mẫu phân tích như “ Nhóm những khái niệm được đại diện cho một cấu trúc chung trong các mô hình nghiệp vụ”. Các mẫu kiến trúc Các mẫu kiến trúc (Structual Patterns) mô tả sơ đồ tổ chức với cấu trúc cơ bản cho hệ thống phần mềm.
Nó cung cấp một tập hợp các định nghĩa về các hệ thống con hoặc các thành phần. Đồng thời chỉ rõ trách nhiệm của các thành phần đó cùng các qui tắc và các nguyên tắc cho việc tạo lập mối quan hệ giữa chúng. Những mẫu kiến trúc là phương tiện của kiến trúc, cung cấp tài liệu cho những hệ thống hỗn tạp và phức tạp. Do đó nó giúp quản lý các ứng dụng phức tạp.
Mẫu thiết kế Mẫu thiết kế (Design pettern) cung cấp một sơ đồ để làm mịn các hệ thống con, các thành phần của một hệ thống phần mềm hoặc mối quan hệ giữa chúng. Nó mô tả một cấu trúc, xác định những thành phần truyền thông nhằm giải quyết một vấn đề thiết kế chung trong một ngữ cảnh đặc biệt. Mẫu chiến lược, mẫu trạng thái và mẫu uỷ nhiệm là những ví dụ cho phạm trù này. Thành ngữ 6 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn thạc sỹ Nguyễn Đức Toàn Thành ngữ (idoms) là một loại mẫu đặc biệt mức thấp dành cho một ngôn ngữ lập trình.
Một thành ngữ miêu tả làm sao để thực hiện những khía cạnh đặc biệt của thành phần hoặc mối quan hệ giữa chúng khi sử dụng những đặc tính của một ngôn ngữ lập trình đã cho như: C++, Java hoặc Smalltalk. Các mẫu là các kinh nghiệm thiết kế đã được kiểm chứng. Phần lớn những mẫu được tìm ra hoặc được làm tài liệu là các mẫu được xây dựng lên từ nhiều dự án đã được tiến hành trong thực tế hơn là những mẫu được sáng chế ra. Các mẫu là cách mô tả ngắn gọn và hiệu quả để truyền đạt những khái niệm và kinh nghiệm của các nhà phát triển từ các vấn đề thực tế.
Lịch sử các mẫu Ý tưởng của mẫu phần mềm được phát triển rất đa dạng. Kiến trúc sư Christopher Alexander trường đại học California ở Berkeley là người phát triển nền tảng của mẫu. Từ “mẫu” đã gần như gắn liền với sự nghiệp hoạt động của giáo sư. Giáo sư và nhóm nghiên cứu của ông đã mất khoảng hơn 20 năm để phát triển một cách tiếp cận tới các kiến trúc thông thường có sử dụng các mẫu.
Alexander đã giới thiệu hơn 250 mẫu với nhiều mức độ trừu tượng từ kiến trúc của một thành phố đến các thiết kế phòng. Kiến trúc sư đã thành lập khung mẫu miêu tả cơ bản của một mẫu như một giải pháp của vấn đề ở mức ngữ cảnh. Ông đã phát triển một nguyên mẫu từ các mẫu dùng trong công việc của ông về kiến trúc. Kent Beck và Ward Cunningham[1] đã rất say mê áp dụng ý tưởng của Alexander để phát triển các mẫu phần mềm.
Họ đã tập hợp các mẫu đầu tiên nói về đặc tả giao diện người dùng. Kent tập trung vào các thành ngữ cho Smalltalk và Ward diễn đạt kinh nghiệm của mình bằng các hệ thống nghiệp vụ (hệ thống kế toán). Erich Gamma đã xuất bản ấn phẩm đầu tiên về vấn đề sử dụng các mẫu trong phát triển phần mềm năm 1991. Cuốn sách được viết ở Đức, nhưng cuốn sách này không được chú ý nhiều.
Bruce Anderson là một trong những nhà lãnh đạo trong cộng đồng mẫu. Ông thành lập một ngân hàng mẫu ở OOPSLA vào đầu những năm 1990. Jim Coplien miêu tả thành ngữ trên C++ trong quyển lập trình C++ tiên tiến. Theo một cách nào đó, những thành ngữ này có liên quan tới ý tưởng của những giải pháp cung cấp tài liệu cho những vấn đề thường xuyên.
Một nhóm có tên là Hillside Group được hình thành nhằm khai thác sâu hơn những ý tưởng này và thúc đẩy sử dụng mẫu trong quá trình phát triển phần mềm. Họ xây dựng mẫu nhằm dẫn dắt và hỗ trợ những thành viên mới trong cộng đồng mẫu. Nhóm này được hình thành đầu tiên với tên PLOP vào năm 1994. 7 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn thạc sỹ Nguyễn Đức Toàn Những kiến thức cơ bản của quá trình phát triển mẫu được Gang of Four (GoF) xuất bản trong cuốn” những mẫu thiết kế”.
Những phần tử của phần mềm hướng đối tượng đã được giới thiệu và được miêu tả dễ hiểu với mẫu thiết kế hướng đối tượng. Gamma, Helm, Johnson, and Vlissides' work là đại diện cho lĩnh vực phân loại những giải pháp thiết kế, và việc sử dụng thông dùng bên trong mẫu hướng đối tượng. Họ xây dựng một tập hợp gồm 23 mẫu chia làm 3 phạm trù: theo hành vi, theo cấu trúc, và tạo sinh. Peter Coad gần đây cũng nghiên cứu về các mẫu hướng đối tượng.
Trong đó, ông đã mô tả 7 loại mẫu cơ bản trong phân tích và thiết kế hướng đối tượng. Ông làm việc dựa trên các mẫu, tức là nhờ vào việc phân tích một ứng dụng của miền đã được đưa ra và sử dụng công nghệ hướng đối tượng để xây dựng các ứng dụng. Douglas Schmidt cũng là một người dẫn dắt những người mới tham gia vào lĩnh vực dùng mẫu. Ông là tác giả của rất nhiều mẫu trong lĩnh vực các hệ thống truyền thông và các ứng dụng phân tán.
Douglas Schmidt đã làm việc trên mẫu về các ứng dụng cho vấn đề phát triển khung làm việc.