1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

10 18 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 205,74 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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]

Trang 1

ĐẠ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

Trang 2

MỤC LỤC

CHƯƠNG I 7

MẪU THIẾT KẾ 7

1.1 Mẫu thiết kế là gì? 7

1.2 Lịch sử các mẫu 8

1.3 Các thành phần của mẫu thiết kế 9

1.3.1 Tên mẫu 9

1.3.2 Vấn đề 9

1.3.3 Giải pháp 9

1.3.4 Hệ quả 9

1.4 Mô tả mẫu thiết kế 9

1.4.1 Tên gọi và 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ý do sử dụng Error! Bookmark not defined

1.4.5 Khả năng á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ò của mẫu trong phát triển phần mềm Error! Bookmark not defined.

1.6 Mẫu thiết kế và kỹ nghệ phần mềm Error! Bookmark not defined.

1.6.1 Những mẫu thiết kế trong 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 của mẫu Error! Bookmark not defined.

CHƯƠNG 2 Error! Bookmark not defined.

CÁC LOẠI MẪU THIẾT KẾ Error! Bookmark not defined.

Trang 3

2.1 Phân loại mẫu Error! Bookmark not defined 2.2 Mẫu thiết kế với từng bà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 bằng UML của 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 bằng UML của mẫu Error! Bookmark not defined

2.5 Mẫu đơn chiếc (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 hiện Error! Bookmark not defined 2.5.5 Ứng dụng của mẫu đơn chiếc 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 bằng UML của mẫu Error! Bookmark not defined

2.7 Mẫu thích nghi (Adapter Pattern) Error! Bookmark not defined.

2.7.1 Định nghĩa Error! Bookmark not defined 2.7.2 Đặc điểm Error! Bookmark not defined 2.7.3 Phạm vi ứng dụng Error! Bookmark not defined

Trang 4

2.7.4 Biểu đồ lớp bằng UML của mẫu Error! Bookmark not defined

2.8 Sơ đồ mối liên kết các mẫu thiết kế Error! Bookmark not defined.

CHƯƠNG 3 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ả bài toá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 quyết Error! Bookmark not defined

3.2 Phát triển hệ thống Error! Bookmark not defined.

3.2.1 Các chức năng của hệ thống Error! Bookmark not defined

3.2.2 Các khái niệm và mô hình lĩnh vực Error! Bookmark not defined

3.3 Xác định các tác nhân, các ca sử dụng và mô tả các ca sử dụngError! Bookmark not defined.

3.3.1 Xác định các tác nhân Error! Bookmark not defined

3.3.2 Xác định các 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 thanh toán theo đợt tới từng 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.

3.5.1 Áp dụng mẫu Uỷ nhiệm (Proxy) Error! Bookmark not defined

3.5.2 Áp dụng mẫu tạo (Factory) Error! Bookmark not defined

3.5.3 Áp dụng mẫu đơn chiếc (Singleton) Error! Bookmark not defined

3.5.4 Biểu đồ lớp khi chưa áp dụng mẫu Error! Bookmark not defined.

Trang 5

3.5.5 Biểu đồ lớp sau khi áp dụng mẫu Error! Bookmark not defined 3.6 Mô tả chi tiết các đối tượng Error! Bookmark not defined.

3.6.1 ClinicVO Error! Bookmark not defined 3.6.2 ClinicRdb Error! Bookmark not defined 3.6.3 ProviderTypeVO Error! Bookmark not defined 3.6.4 ProviderTypeRdb Error! Bookmark not defined 3.6.5 DiagnosisVO Error! Bookmark not defined 3.6.6 DiagnosisRdb Error! Bookmark not defined 3.6.7 DrugVO Error! Bookmark not defined 3.6.8 DrugRdb Error! Bookmark not defined 3.6.9 LabVO Error! Bookmark not defined 3.6.10 LabRdb Error! Bookmark not defined 3.6.11 XRayVO Error! Bookmark not defined 3.6.12 XRayRdb Error! Bookmark not defined 3.6.13 GroupVO Error! Bookmark not defined 3.6.14 GroupRdb Error! Bookmark not defined 3.6.15 UserVO Error! Bookmark not defined 3.6.16 UserRdb Error! Bookmark not defined 3.6.17 UserRoleTypeVO Error! Bookmark not defined 3.6.18 UserRoleTypeRdb Error! Bookmark not defined 3.6.19 UserRoleVO Error! Bookmark not defined 3.6.20 UserRoleRdb Error! Bookmark not defined 3.6.21 CompanyVO Error! Bookmark not defined 3.6.22 CompanyRdb Error! Bookmark not defined 3.6.23 BenefitSchemeVO Error! Bookmark not defined 3.6.24 BenefitSchemeRdb Error! Bookmark not defined 3.6.25 BSInPanelVO Error! Bookmark not defined

Trang 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.

KẾT LUẬN Error! Bookmark not defined.

Trang 7

CHƯƠNG I MẪU THIẾT KẾ 1.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

a 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ụ”

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 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

c 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

d Thành ngữ

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ế

Trang 8

1.2 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

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 Ông đã tạo ra các yếu tố cơ bản của cấu trúc vào trong các siêu mẫu được sử dụng để phát triển các khung làm việc và điền địa chỉ Hot - Sport và Hooks/templates tiếp cận trong việc phát triển khung làm việc

Kiến trúc phần mềm hướng mẫu: Một hệ thống mẫu còn được gọi “Gang of five”, hướng vào việc sử dụng các mẫu ở mức kiến trúc trong quá trình phát triển phần mềm Nhiều tác giả phân loại các mẫu phần mềm thành mẫu kiến trúc, mẫu thiết kế và thành ngữ Hầu hết sự đóng góp của họ được hướng về khía cạnh mẫu kiến trúc Những quyển sách của họ cùng với những quyển sách của Gof đánh dấu điểm bắt đầu của những người mới trong cộng đồng mẫu

Trang 9

1.3 Các thành phần của mẫu thiết kế

Mỗi mẫu thiết kế (Design Pattern) trước tiên mô tả một bài toán mà ta gặp nhiều lần, rồi mô tả những yếu tố căn bản nhất để giải quyết bài toán theo cách mà ta có thể áp dụng lại nhiều lần Dựa trên mô tả như trên về các mẫu thiết kế, ta thấy chúng bao gồm những thành phần cơ bản sau:

1.3.1 Tên mẫu

Tên mẫu (Pattern Name) là tên gọi qua đó ta có thể hình dung được bài toán cần giải quyết và

giải pháp thực hiện hay kết quả Việc đặt tên mẫu thiết kế cho phép mô tả các bài toán và giải pháp một cách ngắn gọn Nó tạo thành một ngôn ngữ trong cộng đồng những người thiết kế Ví

dụ, khi nói đến mẫu thiết kế "Facade " (bề mặt), ta hình dung ngay đến mô hình thiết kế một đối tượng với vai trò “interfacce” (giao diện) của một tập các thành phần nhỏ hơn

1.3.2 Vấn đề

Vấn đề (Problem) cho phép xác định trong trường hợp nào thì áp dụng mẫu thông qua mô tả bài

toán và ngữ cảnh của bài toán đó

1.3.3 Giải pháp

Giải pháp (Solution) mô tả những thành phần tạo nên mẫu thiết kế cùng mối quan hệ, vai trò và cách thức phối hợp giữa chúng Giải pháp không đề cập đến cách thức thiết kế hay thực hiện cụ thể nào vì nó được áp dụng trong rất nhiều tình huống khác nhau Thay vào đó, giải pháp của mẫu thiết kế được mô tả với tính khái quát cao, với cách thức tổ chức chung nhất của các thành phần trong việc giải quyết bài toán

1.3.4 Hệ quả

Hệ quả (Consequences) cho thấy việc áp dụng các giải pháp để giải quyết những vấn đề có hiệu quả hay không Nói cách khác, hệ quả đặt ra cho bạn cách lựa chọn, từ đó bạn có thể xem xét lựa chọn nào là phù hợp nhất, tốt nhất

Ngoài ra, một số tác giả (như Craig Larma, Kent Beck và Ward Cunningham) còn bổ sung thêm một số thành phần khác nữa

1.4 Mô tả mẫu thiết kế

Cách thức mô tả góp phần quan trọng trong việc hiểu và áp dụng mẫu thiết kế Những tiêu chí cơ bản trong mô tả các mẫu thiết kế bao gồm: đơn giản, chính xác và đầy đủ Như vậy, cần có một khuôn dạng mô tả thích hợp để đáp ứng các mẫu thiết kế khác nhau Đồng thời, khuôn dạng này cũng cho phép người xây dựng và người sử dụng có chung một cách nhìn và tiếp cận đối với mẫu thiết kế

Theo GOF (Gang of Five), một mẫu thiết kế được mô tả với các nội dung sau:

Trang 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” , bài 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 hiện đại hướng cấu trúc và 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 bằng UML “, bài ging, 2003

[4] Đặng Văn Đức “ Phân tích thiết kế hướng đối tượng bằ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

[9] http://en.wikipedia.org/wiki/Design_pattern_(computer_science)

[10] http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/patterns/

Ngày đăng: 14/05/2021, 09:55

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w