MỞ ĐẦU: Giới thiệu cơ sở khoa học và thực tiễn của đề tài, đối tượng và phạm vi nghiên cứu của đề tài. CHƢƠNG 1: Tổng quan về mẫu thiết kế trong kỹ nghệ hướng đối tượng và hoạt động logistics. Trong chương này trình bày mẫu thiết kế, phân tích và thiết kế hướng mẫu trong công nghệ hướng đối tượng và vai trò của logistics đối với doanh nghiệp, xu hướng phát triển của logistics và vai trò của mẫu thiết kế trong việc phát triển các hệ thống quản lý hoạt động logistics. CHƢƠNG 2: Một số vấn đề về ứng dụng các mẫu thiết kế trong quá trình phát triển HTTT quản lý.
Trong chương này trình bày về một số mẫu điển hình về hành vi, trình diễn, ứng dụng của các mẫu thiết kế vào các bài toán cụ thể. CHƢƠNG 3: Cài đặt ứng dụng bài toán xuất nhập và tồn kho Trong chương này trình bày về bài toán xuất nhập và tồn kho trong hoạt động logistics, phạm vi của bài toán và ứng dụng mẫu thiết kế vào bài toán quản lý hoạt động logistics và cài đặt ứng dụng. KẾT LUẬN: Đánh giá kết quả. - 3– Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.vn CHƢƠNG I TỔNG QUAN VỀ MẪU THIẾT KẾ TRONG KỸ NGHỆ HƢỚNG ĐỐI TƢỢNG VÀ HOẠT ĐỘNG LOGISTICS 1.
Mẫu thiết kế Năm 1995, Erich Gamma, Richard Helm, Join Vlissides và Ralph Johnson (Gang of Four - GOF) đã công bố cuốn sách “Elements of reusable Object – Oriented Software” đánh dấu sự ra đời của “Mẫu thiết kế”. Đây là một bước tiến vô cùng quan trọng đối với việc thiết kế phần mềm hướng đối tượng. Ý 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 đã 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ề đặt 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).
- 4– Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.vn 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 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 trú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. Erich Gamma, Richard Helm, Ralph Johnson và John Vlissides 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 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à theo 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 - 5– Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.vn 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 Four” hướng vào việc sử dụng các mẫu ở 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.
Khái niệm mẫu thiết kế Mẫu thiết kế (Design pattern) là một cặp giải pháp/vấn đề được đặt tên có thể áp dụng trong những ngữ cảnh mới và những hướng dẫn để áp dụng nó trong những tình huống mới như thế nào. [5] Mẫu thiết kế không đơn thuần là một bước nào đó trong các 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ế sẽ giúp cho việc xác định bài toán cần giải quyết nhanh gọn hơn, từ đó đưa ra cách giải quyết hợp lý.[7] 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 mà còn được sử dụng nhằm cô lập các thay đổi trong mã nguồn, từ đó - 6– Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.vn làm cho hệ thống có khả năng tái sử dụng cao do mẫu thiết kế tuân thủ rất nghiêm ngặt các nguyên lý thiết kế hướng đối tượng. [7] Việc xác định thế nào là một mẫu thiết kế phụ thuộc vào cách nhìn nhận vấn đề của mỗi người.
Theo GOF, cách nhìn nhận phổ biến về các mẫu thiết kế là coi chúng giống như các mô tả về các đối tượng phục vụ mục đích trao đổi thông tin trong quá trình thiết kế đã được hiệu chỉnh để giải quyết những yêu cầu thiết kế trong những trường hợp nhất định. Các thành phần của mẫu thiết kế Mỗi mẫu thiết kế 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 như sau: Tên mẫu (Design pattern name): là tên gọi qua đó ta có thể mô tả bài toán cần giải quyết, giải pháp thực hiện 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.
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”, ta hình dung ngay đến mô hình thiết kế một đối tượng với vai trò “interface” của một tập các thành phần nhỏ. Bài toán: Cho phép xác định trong trường hợp nào thì áp dụng mẫu thiết kế thông qua mô tả bài toán và ngữ cảnh của bài toán đó. Giải pháp giải quyết bài toán: Mô tả những thành phần tạo nên mẫu thiết kế (các lớp, các đối tượng) cùng mối quan hệ, vai trò và cách thức phối hợp giữa chúng (cấu trúc, thừa kế).
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 - 7– Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.vn trong việc giải quyết bài toán. Ví dụ như mẫu thiết kế được gọi như một thành ngữ (mẫu GRASP), mẫu thiết kế có thể mô tả bằng lời hoặc mô hình thiết kế hay bằng mã nguồn. Hệ quả: Là những gì thu nhận được cùng với những yếu tố cần cân nhắc khi áp dụng mẫu thiết kế để giải quyết bài toán.
Hệ quả thường không được đề cập khi nói đến một mẫu thiết kế nhưng đây là yếu tố quyết định khi cần chọn lựa hoặc phân tích chi phí và lợi ích khi áp dụng các mẫu thiết kế. Phân tích và thiết kế hƣớng mẫu trong công nghệ hƣớng đối tƣợng Phân tích và thiết kế hướng mẫu (Pattern – Oriented Analysis and Design - POAD) là một cách tiếp cận kiến trúc cấu thành nhằm gắn kết các mẫu ở mức thiết kế. Nó sử dụng các khái niệm của cấu trúc các mẫu thiết kế như là các thành phần thiết kế với các giao diện. Phân tích và thiết kế hướng mẫu dựa trên tiền đề là: tại một mức thiết kế nào đó, người ta biết các mẫu có thể sử dụng được trong ứng dụng và nó thực sự không lấn át công việc của người thiết kế với những chi tiết của thiết kế bên trong mỗi mẫu.
Vai trò của mẫu trong phát triển phần mềm Khi sự phức tạp của hệ thống phần mềm gia tăng, chúng ta tìm kiếm cách tiếp cận để làm đơn giản hóa sự phát triển của các ứng dụng phần mềm. Các mẫu thiết kế hứa hẹn sớm đem lại lợi ích của việc tái sử dụng trong vòng đời phát triển.