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ó ý ng[r]
(1)ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CƠNG NGHỆ
Nguyễn Đức Tồn
VẬN DỤNG CÁC MẪU THIẾT KẾ ĐỂ GIẢI QUYẾT BÀI TỐN QUẢN LÝ THEO CƠNG
NGHỆ HƯỚNG ĐỐI TƯỢNG
LUẬN VĂN THẠC SỸ
(2)MỤC LỤC
CHƯƠNG I
MẪU THIẾT KẾ
1.1 Mẫu thiết kế gì?
1.2 Lịch sử mẫu
1.3 Các thành phần mẫu thiết kế
1.3.1 Tên mẫu
1.3.2 Vấn đề
1.3.3 Giải pháp
1.3.4 Hệ
1.4 Mô tả mẫu thiết kế
1.4.1 Tên gọi phân loại Error! Bookmark not defined. 1.4.2 Mục đích Error! Bookmark not defined. 1.4.3 Các tên gọi khác Error! Bookmark not defined. 1.4.4 Lý sử dụng Error! Bookmark not defined. 1.4.5 Khả áp dụng Error! Bookmark not defined. 1.4.6 Cấu Trúc Error! Bookmark not defined. 1.4.7 Kết Quả Error! Bookmark not defined. 1.4.8.Triển Khai Error! Bookmark not defined. 1.5 Vai trò mẫu phát triển phần mềm Error! Bookmark not defined.
1.6 Mẫu thiết kế kỹ nghệ phần mềm Error! Bookmark not defined.
1.6.1 Những mẫu thiết kế vòng đời phát triển phần mềmError! Bookmark not defined. 1.6.2 Vòng đời mẫu Error! Bookmark not defined.
1.7 Đặc điểm chung mẫu Error! Bookmark not defined.
CHƯƠNG Error! Bookmark not defined.
(3)2.1 Phân loại mẫu Error! Bookmark not defined.
2.2 Mẫu thiết kế với toán Error! Bookmark not defined.
2.3 Mẫu chế tạo (Factory Pattern) Error! Bookmark not defined.
2.3.1 Định nghĩa Error! Bookmark not defined. 2.3.2 Đặc điểm Error! Bookmark not defined. 2.3.3 Phân loại Error! Bookmark not defined. 2.3.4 Một biểu đồ lớp UML mẫu chế tạoError! Bookmark not defined. 2.4 Mẫu chế tạo trừu tượng (Abstract Factory Pattern)Error! Bookmark not defined.
2.4.1 Định nghĩa Error! Bookmark not defined. 2.4.2 Thiết kế động với mẫu chế tạo trừu tượng Error! Bookmark not defined. 2.4.3 Biểu đồ lớp UML mẫu Error! Bookmark not defined. 2.5 Mẫu đơn (Singleton Pattern) Error! Bookmark not defined.
2.5.1 Định nghĩa Error! Bookmark not defined. 2.5.2 Lợi ích Error! Bookmark not defined. 2.5.3 Trường hợp sử dụng Error! Bookmark not defined. 2.5.4 Cách thực Error! Bookmark not defined. 2.5.5 Ứng dụng mẫu đơn Error! Bookmark not defined. 2.5.6 Nhận xét Error! Bookmark not defined. 2.6 Mẫu uỷ nhiệm (Proxy Pattern) Error! Bookmark not defined.
2.6.1 Định nghĩa Error! Bookmark not defined. 2.6.2 Phân loại Error! Bookmark not defined. 2.6.3 Đặc điểm chung Error! Bookmark not defined. 2.6.4 Biểu đồ lớp UML mẫu Error! Bookmark not defined. 2.7 Mẫu thích nghi (Adapter Pattern) Error! Bookmark not defined.
(4)2.7.4 Biểu đồ lớp UML mẫu Error! Bookmark not defined. 2.8 Sơ đồ mối liên kết mẫu thiết kế Error! Bookmark not defined.
CHƯƠNG Error! Bookmark not defined.
ỨNG DỤNG MẪU Error! Bookmark not defined.
Phân tích, thiết kế hệ thống “ Quản lý khám chữa bệnh “Error! Bookmark not defined.
3.1 Mơ tả tốn Error! Bookmark not defined.
3.1.1 Bài toán Error! Bookmark not defined. 3.1.2 Các vấn đề cần giải Error! Bookmark not defined. 3.2 Phát triển hệ thống Error! Bookmark not defined.
3.2.1 Các chức hệ thống Error! Bookmark not defined. 3.2.2 Các khái niệm mơ hình lĩnh vực Error! Bookmark not defined.
3.3 Xác định tác nhân, ca sử dụng mô tả ca sử dụngError! Bookmark not defined.
3.3.1 Xác định tác nhân Error! Bookmark not defined. 3.3.2 Xác định ca sử dụng Error! Bookmark not defined. 3.3.3 Mơ hình ca sử dụng Error! Bookmark not defined. 3.3.4 Mô tả chi tiết ca sử dụng Error! Bookmark not defined. 3.4 Phân tích hệ thống Error! Bookmark not defined.
3.4.1 Ca sử dụng cập nhật thông tin phòng khám (Clinic)Error! Bookmark not defined.
3.4.2 Ca sử dụng cập nhật thơng tin loại phịng khám (Provider Type)Error! Bookmark not defined. 3.4.3 Ca sử dụng cập nhật loại quyền sử dụng (BenefitScheme)Error! Bookmark not defined.
3.4.4 Ca sử dụng cập nhật toán theo đợt tới công ty (Invoice).Error! Bookmark not defined. 3.4.5 Ca sử dụng cập nhật thông tin khám (EmpVisit)Error! Bookmark not defined.
3.5 Biểu đồ lớp Error! Bookmark not defined.
(5)3.5.5 Biểu đồ lớp sau áp dụng mẫu Error! Bookmark not defined.
3.6 Mô tả chi tiết đối tượng Error! Bookmark not defined.
(6)3.6.26 BSInPanelRdb Error! Bookmark not defined. 3.6.27 VisitDisplayVO Error! Bookmark not defined. 3.6.28 VisitDisplayRdb Error! Bookmark not defined. 3.6.29 BatchVO Error! Bookmark not defined. 3.6.30 BatchRdb Error! Bookmark not defined. 3.6.31 InvoiceVO Error! Bookmark not defined. 3.6.32 InvoiceRdb Error! Bookmark not defined. 3.6.33 PaymentAdviceVO Error! Bookmark not defined. 3.6.34 PaymentAdviceRdb Error! Bookmark not defined. 3.6.35 EmployeeVO Error! Bookmark not defined. 3.6.36 EmployeeRdb Error! Bookmark not defined. 3.6.37 DependantVO Error! Bookmark not defined. 3.6.38 DependantRdb Error! Bookmark not defined. 3.6.39 EmpVisitVO Error! Bookmark not defined. 3.6.40 EmpVisitRdb Error! Bookmark not defined. 3.6.41 DrugVisitVO Error! Bookmark not defined. 3.6.42 DrugVisitRdb Error! Bookmark not defined. 3.6.43 LabVisitVO Error! Bookmark not defined. 3.6.44 LabVisitRdb Error! Bookmark not defined. 3.6.45 XRayVisitVO Error! Bookmark not defined. 3.6.46 XRayVisitRdb Error! Bookmark not defined. 3.7 Cấu hình phần cứng Error! Bookmark not defined.
3.8 Thiết kế giao diện Error! Bookmark not defined.
(7)CHƯƠNG I MẪU THIẾT KẾ 1.1 Mẫu thiết kế gì?
Nhìn chung, mẫu mơ tả vấn đề thường xuyên xuất thiết kế, triển khai phần mềm giải pháp cho theo cách sử dụng lại Những mẫu thiết kế có ý nghĩa thực tế tốt, chúng phương tiện thiết kế để làm tài liệu để truyền đạt kiến thức, kinh nghiệm chuyên gia cho người học
Mẫu cịn mơ tả giải pháp chung vấn đề thiết kế thường “lặp lại” nhiều dự án Nói cách khác, mẫu xem “khn dạng” có sẵn áp dụng cho nhiều tình khác để giải vấn đề cụ thể Trong hệ thống phần mềm hướng đối tượng nào, bắt gặp vấn đề lặp lại
a Các mẫu phân tích
Các mẫu phân tích (Analysis Patterns) để hiểu vấn đề từ yêu cầu bên Martin Fowler định nghĩa mẫu phân tích “ Nhóm khái niệm đại diện cho cấu trúc chung mơ hình nghiệp vụ”
b 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 cho hệ thống phần mềm Nó cung cấp tập hợp định nghĩa hệ thống thành phần Đồng thời rõ trách nhiệm thành phần qui tắc nguyên tắc cho việc tạo lập mối quan hệ chúng Những mẫu kiến trúc phương tiện kiến trúc, cung cấp tài liệu cho hệ thống hỗn tạp phức tạp Do giúp quản lý ứng dụng phức tạp
c Mẫu thiết kế
Mẫu thiết kế (Design pettern) cung cấp sơ đồ để làm mịn hệ thống con, thành phần hệ thống phần mềm mối quan hệ chúng Nó mơ tả cấu trúc, xác định thành phần truyền thông nhằm giải vấn đề thiết kế chung ngữ cảnh đặc biệt Mẫu chiến lược, mẫu trạng thái mẫu uỷ nhiệm ví dụ cho phạm trù
d Thành ngữ
Thành ngữ (idoms) loại mẫu đặc biệt mức thấp dành cho ngơn ngữ lập trình Một thành ngữ miêu tả để thực khía cạnh đặc biệt thành phần mối quan hệ chúng sử dụng đặc tính ngơn ngữ lập trình cho như: C++, Java Smalltalk
(8)1.2 Lịch sử mẫu
Ý tưởng mẫu phần mềm phát triển đa dạng Kiến trúc sư Christopher Alexander trường đại học California Berkeley người phát triển tảng mẫu Từ “mẫu” gần gắn liền với nghiệp hoạt động giáo sư Giáo sư nhóm nghiên cứu ơng khoảng 20 năm để phát triển cách tiếp cận tới kiến trúc thơng thường có sử dụng mẫu Alexander giới thiệu 250 mẫu với nhiều mức độ trừu tượng từ kiến trúc thành phố đến thiết kế phòng Kiến trúc sư thành lập khung mẫu miêu tả mẫu giải pháp vấn đề mức ngữ cảnh Ông phát triển nguyên mẫu từ mẫu dùng công việc ông kiến trúc
Kent Beck Ward Cunningham[1] say mê áp dụng ý tưởng Alexander để phát triển mẫu phần mềm Họ tập hợp mẫu nói đặc tả giao diện người dùng Kent tập trung vào thành ngữ cho Smalltalk Ward diễn đạt kinh nghiệm hệ thống nghiệp vụ (hệ thống kế toán)
Erich Gamma xuất ấn phẩm vấn đề sử dụng mẫu phát triển phần mềm năm 1991 Cuốn sách viết Đức, sách không ý nhiều Bruce Anderson nhà lãnh đạo cộng đồng mẫu Ông thành lập ngân hàng mẫu OOPSLA vào đầu năm 1990 Jim Coplien miêu tả thành ngữ C++ lập trình C++ tiên tiến Theo cách đó, thành ngữ có liên quan tới ý tưởng giải pháp cung cấp tài liệu cho vấn đề thường xuyên Một nhóm có tên Hillside Group hình thành nhằm khai thác sâu ý tưởng thúc đẩy sử dụng mẫu trình phát triển phần mềm Họ xây dựng mẫu nhằm dẫn dắt hỗ trợ thành viên cộng đồng mẫu Nhóm hình thành với tên PLOP vào năm 1994
Những kiến thức trình phát triển mẫu Gang of Four (GoF) xuất cuốn” mẫu thiết kế” Những phần tử phần mềm hướng đối tượng giới thiệu miêu tả dễ hiểu với mẫu thiết kế hướng đối tượng Gamma, Helm, Johnson, and Vlissides' work đại diện cho lĩnh vực phân loại giải pháp thiết kế, việc sử dụng thông dùng bên mẫu hướng đối tượng Họ xây dựng tập hợp gồm 23 mẫu chia làm phạm trù: theo hành vi, theo cấu trúc, tạo sinh
Peter Coad gần nghiên cứu mẫu hướng đối tượng Trong đó, ơng mơ tả loại mẫu phân tích thiết kế hướng đối tượng Ơng làm việc dựa mẫu, tức nhờ vào việc phân tích ứng dụng miền đưa sử dụng công nghệ hướng đối tượng để xây dựng ứng dụng Douglas Schmidt người dẫn dắt người tham gia vào lĩnh vực dùng mẫu Ông tác giả nhiều mẫu lĩnh vực hệ thống truyền thông ứng dụng phân tán
Douglas Schmidt làm việc mẫu ứng dụng cho vấn đề phát triển khung làm việc Ông tạo yếu tố cấu trúc vào siêu mẫu sử dụng để phát triển khung làm việc điền địa Hot - Sport Hooks/templates tiếp cận việc phát triển khung làm việc
(9)1.3 Các thành phần mẫu thiết kế
Mỗi mẫu thiết kế (Design Pattern) trước tiên mơ tả tốn mà ta gặp nhiều lần, mô tả yếu tố để giải toán theo cách mà ta áp dụng lại nhiều lần Dựa mô tả mẫu thiết kế, ta thấy chúng bao gồm thành phần sau:
1.3.1 Tên mẫu
Tên mẫu (Pattern Name) tên gọi qua ta hình dung toán cần giải
giải pháp thực hay kết Việc đặt tên mẫu thiết kế cho phép mơ tả tốn giải pháp cách ngắn gọn Nó tạo thành ngơn ngữ cộng đồng người thiết kế Ví dụ, nói đến mẫu thiết kế "Facade " (bề mặt), ta hình dung đến mơ hình thiết kế đối tượng với vai trò “interfacce” (giao diện) tập thành phần nhỏ
1.3.2 Vấn đề
Vấn đề (Problem) cho phép xác định trường hợp áp dụng mẫu thơng qua mơ tả tốn ngữ cảnh tốn
1.3.3 Giải pháp
Giải pháp (Solution) mô tả thành phần tạo nên mẫu thiết kế mối quan hệ, vai trò cách thức phối hợp chúng Giải pháp không đề cập đến cách thức thiết kế hay thực cụ thể áp dụng nhiều tình khác Thay vào đó, giải pháp mẫu thiết kế mơ tả với tính khái qt cao, với cách thức tổ chức chung thành phần việc giải toán
1.3.4 Hệ
Hệ (Consequences) cho thấy việc áp dụng giải pháp để giải vấn đề có hiệu hay khơng Nói cách khác, hệ đặt cho bạn cách lựa chọn, từ bạn xem xét lựa chọn phù hợp nhất, tốt
Ngoài ra, số tác giả (như Craig Larma, Kent Beck Ward Cunningham) bổ sung thêm số thành phần khác
1.4 Mô tả mẫu thiết kế
Cách thức mơ tả góp phần quan trọng việc hiểu áp dụng mẫu thiết kế Những tiêu chí mơ tả mẫu thiết kế bao gồm: đơn giản, xác đầy đủ Như vậy, cần có khn dạng mơ tả thích hợp để đáp ứng mẫu thiết kế khác Đồng thời, khuôn dạng cho phép người xây dựng người sử dụng có chung cách nhìn tiếp cận mẫu thiết kế
(10)Tài liệu tham khảo
[1] Nguyễn văn Vỵ “ Phân tích thiết kế hệ thống hướng đối tượng” , giảng cao học khoa công nghệ trường ĐHQGHN, 2004
[2] 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ê, 2002
[3] Đoàn Văn Ban “ Phân tích thiết kế hướng đối tượng UML “, ging, 2003 [4] Đặng Văn Đức “ Phân tích thiết kế hướng đối tượng UML”, NXB giáo dục,2002 [5] Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides “Design Pattern elements of reuseable objected software- gang of four “,1999
[6] Craig Larma, “ Applying UML and petterns, An introduction to object- oriented analysis and
design “, 2004
[7] Cood P and Yourdon E, “ Object- oriendted analysis “, second edittion yourdon press, 233
pp 1990
[8] Sherif M, Yacoub, Hany H , Ammar Pattern- “ Oriented Analysis and Design: Composing Patterrns to Design Software Systems “, 2003
http://en.wikipedia.org/wiki/Design_pattern_(computer_science) http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/patterns/