- 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 ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
Trần Thị Xuân Hƣơng MẪU THIẾT KẾ VÀ ỨNG DỤNG PHÁT
TRIỂN HỆ THỐNG THÔNG TIN QUẢN LÝ
XUẤT NHẬP VÀ TỒN KHO TRONG HOẠT
ĐỘNG LOGISTICS Chuyên ngành : Khoa học máy tính
Luận văn thạc sĩ Khoa học máy tính
- 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 Thái Nguyên, 2012
MỞ ĐẦU
4. Những nội dung nghiên cứu chính
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ả.
- 4 –
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Ế TRONG KỸ NGHỆ HƢỚNG ĐỐI
TƢỢNG VÀ HOẠT ĐỘNG LOGISTICS
1.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
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
- 6 –
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 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
á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
- 8 –
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 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ế.
1.2. 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
1.2.2. Mục đích của việc phân tích thiết kế hƣớng mẫu
Khi yêu cầu về các hệ thống phần mềm tăng, các nhà nghiên cứu cũng
như các nhà thực hành đã tìm kiếm các phương pháp luận và công nghệ để tự
động hóa quá trình sản xuất phần mềm và làm thuận lợi quá trình bảo trì hệ
thống. Những công nghệ này xuất hiện gần đây bao gồm các mẫu thiết kế và
các khung làm việc. Trường hợp đặc biệt, trong cùng một khoảng thời gian
chúng ta nhận thấy sự cần thiết của một phương pháp luận phát triển để phát
triển các hệ thống phức tạp với qui mô lớn và học được kinh nghiệm của các
nhà thiết kế hệ thống khác trong việc giải quyết các vấn đề lặp lại của thiết kế.
Tài liệu của mẫu thiết kế miêu tả chi tiết về một mẫu như: cách dùng,
cấu trúc, hành vi của những người tham gia, những phần tử và những nguyên
tắc chỉ đạo cho việc triển khai. Chúng ta hiểu lỗi là gì, làm sao để biên soạn
những mẫu này để phát triển các ứng dụng. Một hệ thống hoàn chỉnh không
thể và cũng không bao giờ được xây dựng từ một mẫu đơn.
- 10 –
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 ta có thể soạn các mẫu ở cùng một mức của lớp hoặc một mức
của đối tượng. Các mô hình lớp trình bày khía cạnh triển khai và bảo trì của
một mẫu. Trong khi các mô hình lớp trình bày khía cạnh triển khai và bảo trì
của một mẫu. Trong khi các mô hình đối tượng trình bày về sự thực hiện,
hành vi và khía cạnh vai trò. Các nhà nghiên cứu và các nhà thực thi quan tâm
tới vấn đề kết hợp sử dụng vai trò các mẫu và mô hình nghiệp vụ. Các vấn đề
của soạn mẫu như các lớp thành phần ít được chú ý hơn.
Mục đích của phân tích và thiết kế hướng mẫu là đẩy mạnh quá trình
phát triển trên nền mẫu. Chúng ta đang tìm kiếm những cách sao cho nhiều
nhà thiết kế sử dụng nhiều các mẫu hơn. Chúng ta muốn thu hút những nhà
thiết kế mới để giúp họ sử dụng các mẫu một cách đơn giản theo từng tiến
trình của họ. Đẩy mạnh sự phát triển trên nền mẫu, chúng ta cần định nghĩa
1.3. Phân loại mẫu thiết kế
Erich Gamma và các đồng sự của ông đề xuất 23 mẫu thiết kế và đã
đưa ra hai tiêu chí để phân loại các mẫu thiết kế này. Đó là phân loại theo
mục đích sử dụng và phạm vi áp dụng của mẫu.
1.3.1. Phân loại theo mục đích sử dụng
Các mẫu thiết kế được phân thành 3 nhóm: mẫu kiến tạo, mẫu cấu trúc,
mẫu hành vi.
Mẫu kiến tạo (Creational Patterns): mẫu kiến tạo trừu tượng hóa quá trình
khởi tạo đối tượng. Các mẫu này giúp hệ thống không phải phụ thuộc vào
cách một đối tượng được tạo ra, xây dựng và thể hiện.
Mẫu thiết kế kiến tạo bao gồm các mẫu sau: Abstract Factory, Builder,
Factory Method, Prototype, Singleton.
Mẫu cấu trúc (Structural Patterns): mẫu thiết kế cấu trúc đề cập đến cách
mà các đối tượng và lớp đối tượng kết hợp để tạo nên một cấu trúc lớn hơn
- 12 –
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 và hữu dụng hơn. Việc thiết kế các lớp đối tượng là nhằm đáp ứng các
ràng buộc cụ thể của hệ thống. Mẫu cấu trúc mô tả mối quan hệ giữa các
lớp này và sắp xếp sao cho nếu có bất kì sự thay đổi nào với hệ thống đều
không làm thay đổi những quan hệ đó.
Mẫu thiết kế cấu trúc bao gồm các mẫu sau: Adapter, Bridge, Composite,
Decorator, Façade, Flyweight, Proxy.
Mẫu hành vi (Behavioral Patterns): mẫu hành vi mô tả sự tương tác giữa
các đối tượng và cách chúng phân phối, cộng tác, để giải quyết một hay
một nhóm trách nhiệm nào đó.
Mẫu hành vi bao gồm các mẫu sau: Chain of Responsibility, Command,
Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy,
Template Method, Visitor.
1.5. Tổng quan về Logistics
Hình 1.1: Sơ đồ mối quan hệ giữa các mẫu thiết kế
- 15 –
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
1.5. Tổng quan về Logistics
Logistics đã phát triển rất nhanh chóng, giờ đây logistics được ghi nhận
như một chức năng kinh tế chủ yếu, một công cụ hữu hiệu mang lại thành
công cho các doanh nghiệp cả trong khu vực sản xuất lẫn trong khu vực dịch
vụ.
tay người tiêu dùng cuối cùng, thông qua hàng loạt các hoạt động kinh
doanh.
Theo giáo sư Martin Christopher: “Logistics là quá trình quản trị chiến
lược thu mua, di chuyển và dự trữ nguyên liệu, bán thành phẩm, thành phẩm
(và dòng thông tin tương ứng) trong một công ty và qua các kênh phân phối
của công ty để tối đa hóa lợi nhuận hiện tại và tương lai thông qua việc hoàn
tất các đơn hàng với chi phí thấp nhất”.
Theo quan điểm “5 right” thì: “Logistics là quá trình cung cấp đúng
sản phẩm đến đúng vị trí, vào đúng thời điểm với điều kiện và chi phí phù hợp
cho khách hàng tiêu dùng sản phẩm”.
Theo nhóm tác giả của cuốn sách “Logistics– những vấn đề cơ bản” thì
logistics được định nghĩa như sau: “Logistics là quá trình tối ưu hóa về vị trí
và thời điểm, vận chuyển và dự trữ nguồn tài nguyên từ điểm đầu tiên của
chuỗi cung ứng qua các khâu sản xuất phân phối cho đến tay người tiêu dùng
cuối cùng, thông qua hàng loại các hoạt động kinh tế.”
1.5.2. Vai trò của logistics đối với các doanh nghiệp
Logistics giúp giải quyết cả đầu ra lẫn đầu vào của doanh nghiệp một
cách hiệu quả.
- 17 –
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 Logistics góp phần nâng cao hiệu quả quản lý, giảm thiểu chi phí nhằm
nâng cao năng lực cạnh tranh của doanh nghiệp.
Logistics còn góp phần giảm phí thông qua việc tiêu chuẩn hóa chứng
từ.
Ngoài ra, logistics còn hỗ trợ đắc lực cho hoạt động marketing:
Logistics đóng vai trò then chốt trong việc đưa sản phẩm đến đúng nơi cần
đến, vào đúng thời điểm thích hợp.
1.5.3. Xu hƣớng phát triển của logistics
Trên thế giới, logistics đã và đang phát triển mạnh mẽ. Ở Việt Nam
logistics đã bắt đầu được nhìn nhận như một công cụ “sắc bén” đem lại thành
công cho các doanh nghiệp trong điều kiện hội nhập và chắc chắn logistics sẽ
phát triển trong tương lai không xa.
1.5.4. Vai trò của các mẫu thiết kế trong việc phát triển các hệ thống
quản lý hoạt động logistics
Hệ thống quản lý có xu thế được phát triển với cường độ mạnh khi sử
dụng các công nghệ kỹ thuật mới: ứng dụng công nghệ tiên tiến như sử dụng
kỹ nghệ hướng đối tượng, công cụ mô hình hóa UML và “mẫu” trong thiết kế
cũng như ứng dụng công nghệ web để cập nhật và xử lý thông tin.
Cũng nhờ vậy, việc thiết kế hệ thống dựa trên các nguyên tắc “hướng
mẫu” nhằm bảo đảm trước hết có được một hệ thống quản lý chất lượng các
hoạt động logistics, sau đó cho phép hệ thống dễ bảo trì, dễ mở rộng trong
tương lai, đáp ứng được các yêu cầu phức tạp, có nhiều thay đổi và yêu cầu
phát triển ngày càng cao của xã hội. Hệ thống logistics được xây dựng trên cơ
sở như thế sẽ được áp dụng ngày càng rộng rãi trong các tổ chức và doanh
nghiệp có kết nối mạng máy tính.
- 19 –
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 - 20 –
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 II
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Ý
Không thể có một mẫu nào có thể vận dụng tốt cho mọi trường hợp.
Trong đó:
AbstractFactory: là lớp trừu tượng, tạo ra các đối tượng thuộc 2 lớp trừu
tượng là: AbstractProductA và AbstractProductB
ConcreteFactoryX: là lớp kế thừa từ AbstractFatory, lớp này sẽ tạo ra
một đối tượng cụ thể.
AbstractProduct: là các lớp trừu tượng, các đối tượng cụ thể sẽ là các
thể hiện của các lớp dẫn xuất từ lớp này.
* Phạm vi ứng dụng mẫu
Hình 2.1. Cấu trúc của mẫu Abstract Factory
- 22 –
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 Phía trình khách sẽ không phụ thuộc vào việc những sản phẩm được tạo
ra như thế nào.
Ứng dụng sẽ được cấu hình với một hoặc nhiều họ sản phẩm.
Các đối tượng cần phải được tạo ra như một tập hợp để có thể tương thích
với nhau.
Chúng ta muốn cung cấp một tập các lớp và chúng ta muốn thể hiện các
ràng buộc, các mối quan hệ giữa chúng mà không phải là các thực thi của
ConcreteBuilder: là lớp dẫn xuất của Builder, khởi tạo từng đối tượng cụ
thể, lớp này sẽ khởi tạo đối tượng.
* Phạm vi ứng dụng mẫu
Áp dụng cho các lớp có cấu trúc bên trong phức tạp (đặc biệt là một biến
là một tập các đối tượng liên quan với nhau).
Ứng dụng cho các lớp có các thuộc tính phụ thuộc vào các thuộc tính
khác.
Sử dụng các đối tượng khác trong hệ thống mà có thể khó khởi tạo hoặc
khởi tạo phức tạp.
2.1.3. Mẫu chế tạo (Factory Method Pattern)
Mẫu chế tạo đóng vai trò như một “nhà xưởng” có nhiệm vụ trừu tượng
hóa quá trình khởi tạo đối tượng cụ thể khi ứng dụng chạy. Tại thời điểm thiết
kế, đối tượng được định nghĩa trừu tượng. Các mẫu này giúp hệ thống không
phải phụ thuộc vào cách một đối tượng được tạo ra, xây dựng và thể hiện.
* Cấu trúc của mẫu Hình 2.3. Cấu trúc của mẫu Factory
- 24 –
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
Trong đó:
Prototype: Là lớp trừu tượng cài đặt phương thức myClose() là phương
thức sao chép bản thân đối tượng đã tồn tại.
ConcretePrototype1 và ConcretePrototype2: là các lớp kế thừa từ lớp
Prototype.
* Phạm vi ứng dụng mẫu
Ứng dụng mẫu khi muốn khởi tạo một đối tượng bằng cách sao chép từ
một đối tượng đã tồn tại.
2.1.5. Mẫu đơn chiếc (Singleton Pattern)
Mẫu đơn chiếc đảm bảo một lớp chỉ có một thể hiện duy nhất được tạo
ra và đồng thời cung cấp một truy cập toàn cục đến đối tượng được tạo ra.
Việc sử dụng mẫu đơn chiếc mang lại nhiều tiện ích: Quản lý việc truy
cập tốt hơn; cho phép cải tiến các tác vụ và các thể hiện do mẫu có thể được
kế thừa và tùy biến lại thông qua một thể hiện của lớp con; quản lý số lượng
thể hiện của một lớp, không nhất thiết chỉ có một thể hiện mà có số thể hiện
xác định; khả chuyển hơn so với việc dùng một lớp có thuộc tính tĩnh, vì việc
dùng lớp tĩnh chỉ có thể sử dụng một thể hiện duy nhất, còn mẫu đơn chiếc
cho phép quản lý các thể hiện tốt hơn và tùy biến theo điều kiện cụ thể.
* Cấu trúc của mẫu