Phân tích thiết kế hướng mẫu và ứng dụng cho bài toán quản lý kết quả học tập tại trường cao đẳng cộng đồng - Pdf 23


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN ÁNH NGỌC PHÂN TÍCH THIẾT KẾ HƢỚNG MẪU VÀ ỨNG DỤNG CHO
BÀI TOÁN QUẢN LÝ KẾT QUẢ HỌC TẬP TẠI TRƢỜNG
CAO ĐẲNG CỘNG ĐỒNG LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH Thái Nguyên - 2012


NGUYỄN ÁNH NGỌC
PHÂN TÍCH THIẾT KẾ HƢỚNG MẪU VÀ ỨNG DỤNG CHO
BÀI TOÁN QUẢN LÝ KẾT QUẢ HỌC TẬP TẠI TRƢỜNG
CAO ĐẲNG CỘNG ĐỒNG

Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH NGƢỜI HƢỚNG DẪN KHOA HỌC
PGS.TS Nguyễn Văn Vỵ
Thái Nguyên - 2012

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

LỜI CAM ĐOAN
Tôi xin cam đoan về toàn bộ nội dung của luận văn, những điều đƣợc trình
bày hoặc là của cá nhân hoặc là đƣợc tổng hợp từ nhiều nguồn tài liệu. Tất cả các tài
liệu tham khảo đều có xuất xứ rõ ràng và đƣợc trích dẫn hợp pháp.

1.3.2. Mẫu Ủy nhiệm (Proxy Pattern) 14
1.3.3. Sơ đồ mối liên kết các mẫu thiết kế 17
Chƣơng 2. BÀI TOÁN QUẢN LÝ KẾT QUẢ HỌC TẬP VÀ GIẢI PHÁP 19
2.1. Khảo sát thu thập dữ liệu về bài toán quản lý kết quả học tập hiện nay ở
trƣờng Cao đẳng Cộng đồng Hải phòng và một số cơ sở Đào tạo khác 19
2.1.1. Nộp hồ sơ 19
2.1.2. Nhập học 19
2.1.3. Hồ sơ Học viên 19
2.1.4. Kế hoạch đào tạo 20
2.2. Mô tả và đặc tả yêu cầu của bài toán đặt ra 23
2.3. Thực trạng của việc quản lý kết quả học tập hiện nay ở trƣờng Cao đẳng
Cộng đồng Hải phòng và những vấn đề đặt ra 23
2.4. Giải pháp tổng thể về công nghệ thông tin để giải quyết bài toán đặt ra 24
ii Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Chƣơng 3. PHÂN TÍCH THIẾT KẾ BÀI TOÁN HƢỚNG MẪU 25
3.1. Đặc tả bài toán theo hƣớng đối tƣợng 25
3.1.1. Các chức năng của hệ thống 25
3.1.2. Mô hình khái niệm mức nghiệp vụ 26
3.1.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 26
3.1.4. Mô hình ca sử dụng 27
3.1.5. Mô hình chi tiết ca sử dụng 31
3.2. Lựa chọn các mẫu thích hợp cho các đặc tả yêu cầu tƣơng ứng 41
3.2.1. Mẫu Ủy nhiệm (Proxy) 41
3.2.2. Mẫu tạo (Factory) 41
3.2.3. Áp dụng mẫu Ủy nhiệm (Proxy) 41
3.2.4. Áp dụng mẫu tạo (Factory) 42

dẫn, định hƣớng, giảng giải cho em trong việc nghiên cứu và thực hiện hoàn thành
luận văn.
Em xin đƣợc cảm ơn các Giáo Sƣ, Tiến Sĩ, các thầy cô trong trƣờng đại học
Công Nghệ Thông tin và Truyền thông - Đại học Thái Nguyên đã tận tình giảng
dạy, giúp đỡ em trong quá trình học tập, thực hành, làm bài tập, đọc và nhận xét
luận văn của em, giúp em hiểu thấu đáo hơn lĩnh vực mà em đang nghiên cứu và
những hạn chế cần khắc phục trong việc học tập, nghiên cứu và thực hiện bản luận
văn này.
Xin cảm ơn bạn bè, đồng nghiệp và nhất là các thành viên trong gia đình đã
tạo mọi điều kiện tốt nhất, động viên, cổ vũ tôi trong suốt quá trình học tập và làm
luận văn tốt nghiệp.
Học viên Nguyễn Ánh Ngọc
iv Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

BẢNG DANH MỤC CÁC CHỮ VIẾT TẮT
Thuật ngữ
Chi tiết
Ý nghĩa
HeDT
Hệ đào tạo
Các loại hình đào tạo
NganhDT
Ngành đào tạo
Chuyên môn đào tạo

Copy-On-Write proxy
Cho phép ghi vaò đĩa mọi lúc
Creational patterns
Các mẫu tạo sinh
Design pettern
Mẫu thiết kế
Factory pattern
Mẫu chế tạo
Firewall proxy
Ủy nhiệm bức tƣờng lửa
Framework
Khung làm việc
GOF(gang of five)
Nhóm 5 thành viên
Idoms
Thành ngữ
Monitor Proxy
Ủy nhiệm màn hình
Protection proxy
Ủy nhiệm bảo vệ
Proxy class
Lớp Ủy nhiệm
Proxy pattern
Mẫu Ủy nhiệm
Remote Proxy
Ủy nhiệm từ xa
Singleton pattern
Mẫu đơn chiếc
Smart reference proxy
Kiểm soát các đối tƣợng bổ sung

Biểu đồ ca sử dụng mức gộp hệ thống
Hình 3.3
Biểu đồ ca sử dụng quản lý truy cập
Hình 3.4
Biểu đồ ca sử dụng quản lý tiến trình đào tạo
Hình 3.5
Biểu đồ ca sử dụng quản lý lớp và danh sách
Hình 3.6
Biểu đồ ca sử dụng quản lý nhập điểm
Hình 3.7
Áp dụng mẫu Proxy vào quá trình thao tác với cơ sở dữ liệu
Hình 3.8
Sơ đồ liên kết ca sử dụng cập nhật môn học
Hình 3.9
Sơ đồ cộng tác ca sử dụng cập nhật môn học
Hình 3.10
Sơ đồ liên kết ca sử dụng cập nhật chƣơng trình đào tạo
Hình 3.11
Sơ đồ cộng tác ca sử dụng cập nhật chƣơng trình đào tạo
Hình 3.12
Sơ đồ liên kết ca sử dụng nhập điểm
Hình 3.13
Sơ đồ cộng tác ca sử dụng nhập điểm
Hình 3.14
Biểu đồ phân tích thực thi các ca sử dụng
Hình 3.15
Biểu đồ lớp ca sử dụng cập nhật môn học
Hình 3.16
Biểu đồ lớp ca sử dụng cập nhật giáo viên giảng dạy
Hình 3.17

Hình 4.8
Form giao diện quản lý chƣơng trình đào tạo
Hình 4.9
Form giao diện thành lập lớp
Hình 4.10
Form giao diện tải từ xls file
Hình 4.11
Form giao diện nhập danh sách từ file Excel
Hình 4.12
Form giao diện thôi học
Hình 4.13
Form giao diện chuyển lớp
Hình 4.14
Form giao diện chuyển điểm từ lớp cũ sang lớp mới
Hình 4.15
Form giao diện trở lại học
Hình 4.16
Form giao diện chức năng nhập điểm
Hình 4.17
Giao diện nhập điểm từ file Excel
Hình 4.18
Form giao diện chức năng nhập điểm tốt nghiệp

1

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

MỞ ĐẦU
Những năm gần đây, cùng với sự phát triển mạnh mẽ của kinh tế - xã hội, nhu cầu
bổ sung một lực lƣợng lao động đông đảo cho xã hội ngày một lớn. Để đáp ứng nhu

1.1. Khái niệm mẫu thiết kế, các đặc trƣng, phân loại mẫu thiết kế
1.1.1. Khái niệm
Theo định nghĩa của Christopher Alexander: “Một mẫu mô tả một vấn đề xảy ra
lặp đi lặp lại và mô tả phần cốt lõi của giải pháp cho vấn đề đó, chúng ta có thể sử
dụng lại giải pháp đã có hàng triệu lần” [7].
Nói chung, một mẫu mô tả một vấn đề thƣờng xảy ra trong phát triển phần mềm
và mô tả giải pháp cho vấn đề đó theo cách có thể dùng lại đƣợc. Các mẫu là phƣơng
tiện truyền bá tri thức và kinh nghiệm, truyền từ những ngƣời giàu kinh nghiệm đến
những ngƣời thiếu kinh nghiệm.
Hầu hết các mẫu được xây dựng để hỗ trợ chỉ cho tiếp cận hướng đối tượng
Thông thƣờng một mẫu đƣợc thể hiện với 4 yếu tố chính:
 Tên mẫu: cụm từ ngắn, cho phép tham chiếu đến mẫu
 Vấn đề: mô tả khi nào áp dụng mẫu, giải thích vấn đề và khung cảnh.
 Giải pháp cho vấn đề: mô tả các yếu tố tạo nên thiết kế, các mối quan hệ giữa
chúng, các trách nhiệm và sự cộng tác giữa chúng. Giải pháp không mô tả thiết
kế hoặc triển khai cụ thể, vì một mẫu có thể đƣợc áp dụng trong nhiều tình
huống khác nhau. Mẫu chỉ cung cấp bản mô tả trừu tƣợng về một vấn đề thiết kế
và việc sắp xếp các yếu tố ở mức chung nhất để giải quyết nó.
 Kết quả: là các kết quả của việc áp dụng mẫu. Vì chúng ta luôn phải trả giá cho
việc áp dụng mẫu nên trƣớc đó chúng ta cần xác định chi phí bỏ ra cũng nhƣ kết
quả thu về để có thể quyết định lựa chọn mẫu phù hợp và áp dụng nó.
3 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Ví dụ:
Tên mẫu:
Creator
Vấn đề:

tƣợng thể hiện các vi xử lý hay các thuật toán mà không xuất hiện trong thế giới thực
nhƣng chúng lại là phần cốt lõi của các thiết kế mềm dẻo. Mẫu Strategy mô tả cách
triển khai họ các thuật toán. Mẫu State thể hiện mỗi trạng thái của một thực thể nhƣ là
một đối tƣợng. Các đối tƣợng này ít khi đƣợc tìm thấy trong giai đoạn phân tích hoặc
giai đoạn đầu của thiết kế, chúng chỉ đƣợc nhận ra khi hoàn thiện thiết kế để tăng tính
mềm dẻo và tăng khả năng tái sử dụng của thiết kế.
- Quyết định kĩch cỡ của các đối tượng
Các mẫu hỗ trợ việc xác định đối tƣợng, phân chia đối tƣợng để thu đƣợc các đối
tƣợng với kích thƣớc nhỏ hơn. Ví dụ, Mẫu Abstract Factory và mẫu Builder sinh ra các
đối tƣợng mà trách nhiệm duy nhất của chúng là tạo ra các đối tƣợng khác, mẫu Visitor
và mẫu Command sinh ra các đối tƣợng mà trách nhiệm duy nhất của chúng là triển
khai một yêu cầu trên một đối tƣợng khác hoặc trên một nhóm đối tƣợng khác.
- Đặc tả các giao diện đối tượng (object interface)
Các tác vụ (operator) của đối tƣợng đƣợc mô tả bằng tên tác vụ, tham số, giá trị
trả về. Mô tả tác vụ còn đƣợc gọi là khai báo tác vụ. Tập hợp tất cả các khai báo tác vụ
của một đối tƣợng tạo thành giao diện của đối tƣợng đó. Giao diện của một đối tƣợng
thể hiện các yêu cầu có thể đƣợc gửi đến đối tƣợng đó, bất kỳ yêu cầu nào mà khớp với
một khai báo trong giao diện đều có thể đƣợc gửi tới đối tƣợng.
Một kiểu (type) là một tên gọi đƣợc sử dụng để nói đến một giao diện cụ thể.
Chúng ta nói rằng, một đối tƣợng có kiểu Window nếu nó chấp nhận tất cả các yêu cầu
cho các tác vụ đƣợc định nghĩa trong giao diện có tên là Window. Một đối tƣợng có
nhiều kiểu và các đối tƣợng khác nhau có thể chia xẻ cùng một kiểu. Một phần của
giao diện đối tƣợng có thể đặc trƣng bởi một kiểu và các phần khác thì bởi các kiểu
khác. Hai đối tƣợng của cùng một kiểu chỉ cần chia xẻ các phần giao diện của chúng.
Các giao diện có thể chứa các giao diện khác nhƣ là các tập con của chúng. Chúng ta
5 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Các mẫu thiết kế cũng đặc tả mối quan hệ giữa các giao diện. Cụ thể, chúng
thƣờng yêu cầu một vài lớp có các giao diện tƣơng tự nhau hoặc chúng đặt các ràng
buộc trên giao diện của một vài lớp, ví dụ mẫu Decorator và mẫu Proxy.
- Đặc tả việc triển khai đối tượng
Lớp khác với kiểu: lớp định nghĩa việc triển khai đối tƣợng, kiểu chỉ tham chiếu
tới giao diện của đối tƣợng, nó thể hiện một tập yêu cầu có thể gửi đến đối tƣợng.
Nhiều mẫu thiết kế chú trọng đến sự phân biệt giữa lớp và kiểu. Ví dụ, các đối
tƣợng trong mẫu Chain of Responsibility phải có cùng kiểu nhƣng thƣờng có các sự cài
đặt khác nhau.
- Tăng hiệu quả tái sử dụng
Trong phát triển hƣớng đối tƣợng, có hai cách để tái sử dụng là sử dụng thừa kế
và kết hợp các đối tƣợng. Mỗi cách này có những thuận lợi và rào cản riêng. Sử dụng
thành phần đại diện (delegation) là một cách để kết hợp những thuận lợi của hai cách
trên. Nhiều mẫu hỗ trợ sử dụng khái niệm này trong thiết kế, nhƣ State, Strategy,
Visitor, Mediator, Chain of Responsibility và Bridge.
- Liên hệ các cấu trúc thời gian chạy và các cấu trúc thời gian biên dịch
Các cấu trúc ở thời gian biên dịch gồm các lớp và mối quan hệ cố định giữa các
lớp, còn các cấu trúc ở thời gian chạy gồm các đối tƣợng và sự giao tiếp giữa các đối
tƣợng. Có nhiều mẫu hỗ trợ hiểu và xây dựng các cấu trúc thời gian chạy phức tạp,
chẳng hạn Compostise, Decorator, Observer, Chain of Responsibility.
- Thiết kế cho sự thay đổi
Tính chất của thiết kế mà đảm bảo khả năng tái sử dụng là cho phép bổ sung yêu
cầu mới và thay đổi yêu cầu hiện tại. Mẫu giúp cho hệ thống có thể thay đổi bằng cách
để cho một số phần của hệ thống độc lập với những phần khác, chẳng hạn, các mẫu
Bridge, Chain of Responsibility, Composite, Decorator, Observer và Strategy hỗ trợ
mợ rộng các chức năng của hệ thống bằng cách tạo các lớp con.
7
Interator
Mediator
Memento
Observer
State
Strategy
Visitor

Class:
- Các mẫu áp dụng chủ yếu lên các lớp
- Giải quyết mối quan hệ giữa các lớp và các lớp con. Các mối quan hệ này đƣợc
thiết lập qua thừa kế, là mối quan hệ tĩnh, tại thời gian biên dịch.
8 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Object:
- Các mẫu áp dụng chủ yếu lên các đối tƣợng.
- Giải quyết mối quan hệ giữa các đối tƣợng, là mối quan hệ động và thay đổi tại
thời gian chạy.
- Các mẫu cấu trúc áp dụng trên lớp dùng thừa kế để cấu thành lớp.
- Các mẫu cấu trúc áp dụng trên đối tƣợng mô tả các cách để kết hợp các đối
tƣợng.
- Các mẫu hành vi áp dụng trên lớp dùng thừa kế để mô tả các thuật toán và các
luồng điều khiển.
- Các mẫu hành vi áp dụng trên đối tƣợng mô tả cách thức mà một nhóm đối
tƣợng cộng tác với nhau để thực hiện một nhiệm vụ mà không có một đối tƣợng riêng
lẻ nào có thể thực hiện độc lập.
+ Phân loại theo ngôn ngữ triển khai mẫu: Ngôn ngữ Java: interfaces,

Composite
Decorator
Façade
Flyweight
Proxy
Interpreter
Template Method
Chain of Responsibility
Command
Interator
Mediator
Memento
Observer
State
Strategy
Visitor

1.2. Quy trình phân tích thiết kế hƣớng mẫu
1.2.1. Giai đoạn 1
Khai phá: Trong việc tạo ra bất kì mẫu nào, giai đoạn đầu tiên đều liên quan tới
việc làm tài liệu Mẫu. Hoạt động chính trong giai đoạn này là việc khai phá các Mẫu.
Các tác giả có kinh nghiệm, làm việc trong các dự án thực tế, khám phá và làm tài liệu
các Mẫu. Các tác giả cũng có thể khai thác các Mẫu trong các dự án của họ [7]. Tác giả
của một Mẫu phải quyết định điều gì tạo thành một Mẫu, điều gì làm cho nó có thể
đƣợc sử dụng lại, nó phục vụ cho miền nào và vì thế chỉ rõ đó có phải là một Mẫu hay
không.
10 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


Hình 1.2. Vòng đời của Mẫu Pattern
12 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Nhƣ đƣợc chỉ trong Hình 1.2, các giai đoạn trong vòng đời mẫu đƣợc thực hiện
lặp đi lặp lại, vì vậy các Mẫu sẽ đƣợc cải tiến liên tục. Chúng ta mong đợi rằng các
Mẫu đã đƣợc chứng minh tính đúng đắn trong việc dùng lại sẽ đạt đƣợc chất lƣợng cao,
bởi vì nó đã trải qua một số giai đoạn cải tiến. Chất lƣợng cao là một thuộc tính then
chốt của thành phần thiết kế và vì vậy các Mẫu tuân theo vòng đời phát triển này sẽ đủ
điều kiện để là các thành phần thiết kế.
1.3. Đặc tả một số các mẫu thiết kế cần dùng cho bài toán
Trong số 23 mẫu thiết kế mà Erich gama và các đồng sự đã đƣa [7], thông thƣờng
chúng ta chỉ sử dụng một số trong số các mẫu thiết kế đó. Cụ thể là trong quá trình xây
dựng hệ thống đối với bài toán Quản lý điểm tại trƣờng Cao đẳng Cộng Đồng Hải
Phòng, chúng tôi đã áp dụng các mẫu thiết kế sau:
1.3.1. Mẫu chế tạo (Factory Pattern)
1.3.1.1. Định nghĩa
Mẫu chế tạo (Factory Pattern) định nghĩa một lớp (interface, abstract, class) đó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 [4].
1.3.1.2. Đặc điểm
Mẫu chế tạo kiểm soát đƣợc các hoạt động trong suốt chu kỳ sống của đối tƣợng,
nhƣ khởi tạo đối tƣợng, hủy đối tƣợng…Đảm bảo cho các đối tƣợng đƣợc thực thi an
toàn. Nắm đƣợc thông tin về những đối tƣợng nào đƣợc tạo ra và đƣợc khởi tạo ra sao.

Mẫu Ủy nhiệm (Proxy pattern): là mẫu thiết kế mà ở đó tất cả các truy cập trực
tiếp một đối tƣợng nào đó sẽ đƣợc chuyển hƣớng vào một đối tƣợng trung gian của lớp
Ủy nhiệm (Proxy class) [4].
Mẫu Ủy nhiệm không những giúp quản lý đối tƣợng tốt hơn mà còn có nhiệm vụ
bảo vệ việc truy cập một đối tƣợng bằng cách thông qua proxy, hay còn gọi là truy cập
gián tiếp. Mẫu Proxy đƣợc Ủy quyền về phía ứng dụng khách cho phép tƣơng tác với
đối tƣợng đích theo những cách khác nhau, nhƣ gửi yêu cầu một dịch vụ nào đó, theo
dõi trạng thái và vòng đời đối tƣợng, xây dựng lớp vỏ bảo vệ đối tƣợng…Thí dụ,
chúng ta phát hiện ra một đối tƣợng nhƣ một thƣ viện DLL có thể bị khai thác truy cập
vào trong một số trƣờng quan trọng, khi đó chúng ta không thể mở mã nguồn thƣ viện
15 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

đã đƣợc dịch để vá lỗ hổng. Giải pháp lúc này là xây dựng một proxy ngăn chặn truy
cập các trƣờng đó và cuối cùng biên dịch lại thành một DLL mới.
1.3.2.2. Phân loại [4]
Độ phức tạp của giải pháp sử dụng mẫu Ủy nhiệm phụ thuộc vào tình huống bài
toán đƣa ra.
- Ủy nhiệm từ xa (Remote Proxy): Máy khách truy cập qua remote proxy để tham
chiếu tới một đối tƣợng đƣợc bảo vệ nằm bên ngoài ứng dụng nhƣ dịch vụ Windows,
dịch vụ web, ứng dụng từ xa. . . Mô hình này “ che giấu” đối tƣợng đƣợc triệu gọi đang
nằm ở rất xa đâu đó và client có vẻ nhƣ truy cập vào đối tƣợng nằm trên cùng một
miền làm việc.
- Ủy nhiệm ảo (Virtual Proxy): tạo ra một đối tƣợng trung gian mỗi khi có yêu cầu tại
thời điểm thực thi ứng dụng, nhờ đó làm tăng hiệu suất của ứng dụng.
- Ủy nhiệm giám sát (Monitor Proxy): sẽ thiết lập các ràng buộc bảo mật trên đối tƣợng
cần bảo vệ, ngăn không cho client truy cập một số trƣờng quan trọng của đối tƣợng.
- Ủy nhiệm bảo vệ (Protection proxy): Đối với proxy này thì phạm vi truy cập của các


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status